Code

Use subdirectories with icon sizes.
[inkscape.git] / src / Makefile.am
index 764ae3dc3788b56c5f017731ce547a674f21221d..0c585d6a9de38a2f9d5815be5755a2cec4319eb4 100644 (file)
@@ -1,10 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
-
 # ################################################
-#
 #  G L O B A L
-#
 # ################################################
 
 # Should work in either automake1.7 or 1.8, but 1.6 doesn't
 # so perhaps 1.6 will work.
 AUTOMAKE_OPTIONS = 1.7 subdir-objects
 
+# Executables compiled by "make" and installed by "make install"
+bin_PROGRAMS = inkscape inkview
+
+# Libraries which should be compiled by "make" but not installed.
+# Use this only for libraries that are really standalone, rather than for
+# source tree subdirectories.
+#if WITH_INKBOARD
+#libpedro = pedro/libpedro.a
+#endif
+noinst_LIBRARIES =     \
+       libinkscape.a           \
+       dom/libdom.a            \
+       libcroco/libcroco.a     \
+       libavoid/libavoid.a     \
+       libgdl/libgdl.a         \
+       libcola/libcola.a       \
+       libvpsc/libvpsc.a       \
+       livarot/libvarot.a      \
+       2geom/lib2geom.a        \
+       $(libpedro)             \
+       libinkversion.a
+
+all_libs =                     \
+       $(noinst_LIBRARIES)     \
+       $(INKSCAPE_LIBS)        \
+       $(GNOME_VFS_LIBS)       \
+       $(XFT_LIBS)             \
+       $(FREETYPE_LIBS)        \
+       $(kdeldadd)             \
+       $(win32ldflags)         \
+       $(CARBON_LDFLAGS)       \
+       $(PERL_LIBS)            \
+       $(PYTHON_LIBS)          \
+       $(INKBOARD_LIBS)        \
+       $(LIBWPG_LIBS)          \
+       $(DBUS_LIBS)            \
+       $(IMAGEMAGICK_LIBS)
+
+# Add sources common for Inkscape and Inkview to this variable.
+ink_common_sources =
+# Add Inkscape-only sources here.
+inkscape_SOURCES =
+# Add Inkview-only sources here.
+inkview_SOURCES =
+# Add sources that are built from meta files
+BUILT_SOURCES =
+# Extra files to distribute
+EXTRA_DIST =
+
 INCLUDES =     \
        $(PERL_CFLAGS) $(PYTHON_CFLAGS) \
        $(FREETYPE_CFLAGS)      \
        $(GNOME_PRINT_CFLAGS)   \
        $(GNOME_VFS_CFLAGS)     \
+       $(IMAGEMAGICK_CFLAGS) \
        $(INKBOARD_CFLAGS) \
+       $(LIBWPG_CFLAGS) \
+       $(DBUS_CFLAGS) \
        $(XFT_CFLAGS)   \
+       $(LCMS_CFLAGS)  \
+       $(POPPLER_CFLAGS)       \
+       $(POPPLER_GLIB_CFLAGS)  \
        -DPOTRACE=\"potrace\"   \
        $(INKSCAPE_CFLAGS) \
-       -I$(top_srcdir)/cxxtest
+       -I$(top_srcdir)/cxxtest \
+       $(WIN32_CFLAGS) \
+       -I$(srcdir)/bind/javainc \
+       -I$(srcdir)/bind/javainc/linux \
+       -I$(builddir)/extension/dbus \
+       $(AM_CPPFLAGS)
 
+CXXTEST_TEMPLATE = $(srcdir)/cxxtest-template.tpl
+CXXTESTGENFLAGS = --root --have-eh --template=$(CXXTEST_TEMPLATE)
+CXXTESTGEN = $(top_srcdir)/cxxtest/cxxtestgen.pl $(CXXTESTGENFLAGS)
+# Add test cases to this variable
+CXXTEST_TESTSUITES =
+
+# ################################################
+#
+#  E X T R A 
+#
+# ################################################
+
+if PLATFORM_WIN32
+win32_sources = winmain.cpp registrytool.cpp registrytool.h
+win32ldflags = -lcomdlg32 -lmscms
+mwindows = -mwindows
+endif 
+
+if INKJAR
+inkjar_dir = inkjar
+inkjar_libs = inkjar/libinkjar.a
+endif
+
+# Include all partial makefiles from subdirectories
 include Makefile_insert
-include application/Makefile_insert
+include bind/Makefile_insert
 include dialogs/Makefile_insert
 include display/Makefile_insert
 include dom/Makefile_insert
 include extension/Makefile_insert
+include extension/dbus/Makefile_insert
 include extension/implementation/Makefile_insert
 include extension/internal/Makefile_insert
 include extension/script/Makefile_insert
+include filters/Makefile_insert
 include helper/Makefile_insert
-include inkjar/Makefile_insert
 include io/Makefile_insert
-include pedro/Makefile_insert
-include jabber_whiteboard/Makefile_insert
+#include pedro/Makefile_insert
+#include jabber_whiteboard/Makefile_insert
 include libcroco/Makefile_insert
+include libgdl/Makefile_insert
 include libnr/Makefile_insert
 include libnrtype/Makefile_insert
 include libavoid/Makefile_insert
 include livarot/Makefile_insert
+include live_effects/Makefile_insert
+include live_effects/parameter/Makefile_insert
 include libvpsc/Makefile_insert
 include libcola/Makefile_insert
-include removeoverlap/Makefile_insert
-include graphlayout/Makefile_insert
 include svg/Makefile_insert
-include utest/Makefile_insert
 include widgets/Makefile_insert
 include debug/Makefile_insert
 include xml/Makefile_insert
-include traits/Makefile_insert
-include algorithms/Makefile_insert
 include ui/Makefile_insert
+include ui/cache/Makefile_insert
 include ui/dialog/Makefile_insert
+include ui/tool/Makefile_insert
 include ui/view/Makefile_insert
 include ui/widget/Makefile_insert
 include util/Makefile_insert
 include trace/Makefile_insert
+include 2geom/Makefile_insert
 
-bin_PROGRAMS = inkscape inkview
-
-noinst_LIBRARIES =     \
-       libinkpre.a     \
-       application/libinkapp.a \
-       dialogs/libspdialogs.a  \
-       pedro/libpedro.a \
-       jabber_whiteboard/libjabber_whiteboard.a \
-       display/libspdisplay.a  \
-       dom/libdom.a    \
-       extension/implementation/libimplementation.a    \
-       extension/internal/libinternal.a        \
-       extension/libextension.a        \
-       extension/script/libscript.a    \
-       helper/libspchelp.a     \
-       io/libio.a      \
-       libcroco/libcroco.a     \
-       ui/libui.a      \
-       ui/dialog/libuidialog.a \
-       ui/view/libuiview.a     \
-       ui/widget/libuiwidget.a \
-       util/libinkutil.a \
-       debug/libinkdebug.a \
-       $(inkjar_libs)  \
-       libnr/libnr.a   \
-       libnrtype/libnrtype.a   \
-       libavoid/libavoid.a     \
-       libvpsc/libvpsc.a       \
-       libcola/libcola.a       \
-       livarot/libvarot.a      \
-       removeoverlap/libremoveoverlap.a        \
-       graphlayout/libgraphlayout.a    \
-       svg/libspsvg.a  \
-       widgets/libspwidgets.a  \
-       trace/libtrace.a  \
-       xml/libspxml.a  \
-       libinkpost.a
-
-check_LIBRARIES =      \
-       libnr/libtest-nr.a      \
-       svg/libtest-svg.a       \
-       xml/libtest-xml.a
-
-DISTCLEANFILES =       \
-       helper/sp-marshal.cpp   \
-       helper/sp-marshal.h     \
-       inkscape_version.h
-
-EXTRA_DIST =   \
-       mkdep.pl        \
-       mkfiles.pl      \
-       make.exclude    \
-       Doxyfile        \
+# Extra files not mentioned as sources to include in the source tarball
+EXTRA_DIST +=  \
+       $(top_srcdir)/Doxyfile  \
        sp-skeleton.cpp sp-skeleton.h   \
-       algorithms/makefile.in  \
+       util/makefile.in        \
        application/makefile.in \
+       bind/makefile.in        \
        debug/makefile.in       \
        dialogs/makefile.in     \
-       dialogs/filedialog-win32.cpp    \
        display/makefile.in     \
        dom/makefile.in         \
        extension/implementation/makefile.in    \
        extension/internal/makefile.in  \
        extension/makefile.in   \
        extension/script/makefile.in    \
+       filters/makefile.in \
        helper/makefile.in      \
-       inkjar/makefile.in      \
        io/makefile.in  \
        io/crystalegg.xml       \
        io/doc2html.xsl         \
        pedro/makefile.in       \
        jabber_whiteboard/makefile.in   \
+       libgdl/makefile.in      \
        libcroco/makefile.in    \
        libnr/makefile.in       \
        libnrtype/makefile.in   \
        libavoid/makefile.in    \
        livarot/makefile.in     \
-       removeoverlap/makefile.in       \
+       live_effects/makefile.in        \
+       live_effects/parameter/makefile.in      \
        svg/makefile.in         \
        trace/makefile.in       \
-       traits/makefile.in      \
-       utest/makefile.in       \
        ui/makefile.in          \
+       ui/cache/makefile.in    \
        ui/dialog/makefile.in   \
        ui/view/makefile.in     \
        ui/widget/makefile.in   \
        util/makefile.in        \
        widgets/makefile.in     \
        xml/makefile.in         \
-       extension/internal/gnome.cpp    \
-       extension/internal/gnome.h      \
+       2geom/makefile.in       \
        extension/internal/win32.cpp    \
        extension/internal/win32.h      \
+       extension/internal/emf-win32-inout.cpp  \
+       extension/internal/emf-win32-inout.h    \
+       extension/internal/emf-win32-print.cpp  \
+       extension/internal/emf-win32-print.h    \
        helper/sp-marshal.list  \
-       utest/utest.h   \
-       utest/test-1ary-cases.h \
-       traits/copy.h   \
-       traits/function.h       \
-       traits/list-copy.h      \
-       traits/reference.h \
-       $(jabber_whiteboard_SOURCES)
+       show-preview.bmp \
+       winconsole.cpp \
+       $(jabber_whiteboard_SOURCES) \
+       $(CXXTEST_TEMPLATE)
 
-EXTRA_PROGRAMS =       \
-       inkview         \
-       libnr/testnr
+# Extra files to remove when doing "make distclean"
+DISTCLEANFILES =       \
+       helper/sp-marshal.cpp   \
+       helper/sp-marshal.h     \
+       inkscape-version.cpp
 
-TESTS =        \
-       test-all$(EXEEXT)       \
-       style-test$(EXEEXT)     \
-       display/bezier-utils-test$(EXEEXT)      \
-       helper/units-test$(EXEEXT)      \
-       libnr/in-svg-plane-test$(EXEEXT)        \
-       libnr/nr-matrix-test$(EXEEXT)   \
-       libnr/nr-point-fns-test$(EXEEXT)        \
-       libnr/nr-rotate-test$(EXEEXT)   \
-       libnr/nr-rotate-fns-test$(EXEEXT)       \
-       libnr/nr-scale-test$(EXEEXT)    \
-       libnr/nr-translate-test$(EXEEXT)        \
-       libnr/nr-types-test$(EXEEXT)    \
-       libnr/test-nr$(EXEEXT)  \
-       svg/test-svg$(EXEEXT)   \
-       util/list-container-test$(EXEEXT)       \
-       xml/test-xml$(EXEEXT)   \
-       xml/quote-test$(EXEEXT) \
-       xml/repr-action-test$(EXEEXT)
+# ################################################
+#  B I N A R I E S
+# ################################################
 
-# streamtest is unfinished and can't handle the relocations done during
-# "make distcheck".  Not needed for the 0.41 release.
-#      io/streamtest$(EXEEXT)
+# this should speed up the build
+libinkscape_a_SOURCES = $(ink_common_sources)
 
-# automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items:
-# TESTS items can be scripts etc.
+inkscape_SOURCES += main.cpp $(win32_sources)
+inkscape_LDADD = $(all_libs)
+inkscape_LDFLAGS = --export-dynamic $(kdeldflags) $(mwindows)
 
-check_PROGRAMS =       \
-       test-all        \
-       style-test      \
-       display/bezier-utils-test       \
-       helper/units-test       \
-       libnr/in-svg-plane-test \
-       libnr/nr-matrix-test    \
-       libnr/nr-point-fns-test \
-       libnr/nr-rotate-test    \
-       libnr/nr-rotate-fns-test        \
-       libnr/nr-scale-test     \
-       libnr/nr-translate-test \
-       libnr/nr-types-test     \
-       libnr/test-nr   \
-       svg/test-svg    \
-       util/list-container-test        \
-       xml/test-xml    \
-       xml/quote-test  \
-       xml/repr-action-test
+inkview_SOURCES += inkview.cpp $(win32_sources)
+inkview_LDADD = $(all_libs)
+inkview_LDFLAGS = $(mwindows) 
 
-#      io/streamtest
+# ################################################
+#  VERSION REPORTING
+# ################################################
 
+libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h
 
-test-all.cpp: \
-               $(libnr_test_nr_a_SOURCES)      \
-               $(svg_test_svg_a_SOURCES)       \
-               $(xml_test_xml_a_SOURCES)       \
-               $(libnr_test_nr_includes)       \
-               $(svg_test_svg_includes)        \
-               $(xml_test_xml_includes)        \
-               $(test_all_includes)
-       $(top_srcdir)/cxxtest/cxxtestgen.pl --template=$(srcdir)/selfname.tpl -root -o test-all.cpp     \
-               $(libnr_test_nr_includes)       \
-               $(svg_test_svg_includes)        \
-               $(xml_test_xml_includes)        \
-               $(test_all_includes)
+if USE_BZR_VERSION
+inkscape_version_deps = $(top_srcdir)/.bzr/branch/last-revision
+endif
 
-test_all_SOURCES = \
-       test-all.cpp $(test_all_includes)
+# If this is an BZR snapshot build, regenerate this file every time
+# someone updates the BZR working directory.
+inkscape-version.cpp: $(inkscape_version_deps)
+       VER_PREFIX="$(VERSION)";\
+       VER_BZRREV=" r`bzr revno`"; \
+       if test ! -z "`bzr status -S -V $(srcdir)`"; then \
+           VER_CUSTOM=" custom"; \
+       fi; \
+       VERSION="$$VER_PREFIX$$VER_BZRREV$$VER_CUSTOM"; \
+       echo "namespace Inkscape { " \
+            "char const *version_string = \"$$VERSION\"; " \
+            "}" > inkscape-version.new.cpp; \
+       if cmp -s inkscape-version.new.cpp inkscape-version.cpp; then \
+            rm inkscape-version.new.cpp; \
+       else \
+            mv inkscape-version.new.cpp inkscape-version.cpp; \
+       fi; \
+       echo $$VERSION
 
+# #################################
+# ## TESTING STUFF (make check) ###
+# #################################
 
-test_all_LDADD =       \
-       $(all_libs)     \
-       $(svg_test_svg_LDADD)   \
-       $(libnr_test_nr_LDADD)  \
-       $(xml_test_xml_LDADD) \
-       io/libio.a      
+# List of all programs that should be built before testing. Note that this is
+# different from TESTS, because some tests can be scripts that don't
+# need to be built. There should be one test program per directory.
+# automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items:
+# TESTS items can be scripts etc.
+check_PROGRAMS = cxxtests
 
+# streamtest is unfinished and can't handle the relocations done during
+# "make distcheck".
+
+# List of all tests to be run.
+TESTS = $(check_PROGRAMS) ../share/extensions/test/run-all-extension-tests
+XFAIL_TESTS = $(check_PROGRAMS) ../share/extensions/test/run-all-extension-tests
+
+# including the the testsuites here ensures that they get distributed
+cxxtests_SOURCES = cxxtests.cpp libnr/nr-compose-reference.cpp $(CXXTEST_TESTSUITES)
+cxxtests_LDADD = $(all_libs)
+
+cxxtests.cpp: $(CXXTEST_TESTSUITES) $(CXXTEST_TEMPLATE)
+       $(CXXTESTGEN) -o cxxtests.cpp $(CXXTEST_TESTSUITES)
 
 # ################################################
-#
 #  D I S T
-#
 # ################################################
 
 dist-hook:
@@ -254,4 +281,4 @@ dist-hook:
        cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
 
 distclean-local:
-       rm -f libnr/test-nr.xml libnr/test-nr.log svg/test-svg.xml svg/test-svg.log xml/test-xml.xml xml/test-xml.log test-all.xml test-all.log
+       rm -f cxxtests.xml cxxtests.log