Code

Filters. Custom predefined filters update and new ABC filters.
[inkscape.git] / src / Makefile.am
index 842c3eb4514bcf1dc16bb2fd451f4d1eed8efebb..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)      \
@@ -21,6 +67,7 @@ INCLUDES =    \
        $(IMAGEMAGICK_CFLAGS) \
        $(INKBOARD_CFLAGS) \
        $(LIBWPG_CFLAGS) \
+       $(DBUS_CFLAGS) \
        $(XFT_CFLAGS)   \
        $(LCMS_CFLAGS)  \
        $(POPPLER_CFLAGS)       \
@@ -28,29 +75,51 @@ INCLUDES =  \
        -DPOTRACE=\"potrace\"   \
        $(INKSCAPE_CFLAGS) \
        -I$(top_srcdir)/cxxtest \
-       $(WIN32_CFLAGS)
+       $(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
@@ -61,83 +130,25 @@ 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
 
-# Executables compiled by "make" and installed by "make install"
-bin_PROGRAMS = inkscape inkview
-
-# Libraries which should be compiled by "make" but not installed
-# Currently we use one library per source directory.
-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    \
-       filters/libfilters.a    \
-       bind/libbind.a  \
-       helper/libspchelp.a     \
-       io/libio.a      \
-       libcroco/libcroco.a     \
-       libgdl/libgdl.a         \
-       live_effects/liblive_effects.a \
-       live_effects/parameter/liblpeparam.a \
-       ui/libui.a      \
-       ui/cache/libuicache.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  \
-       2geom/lib2geom.a        \
-       libinkpost.a
-
-# Extra files to remove when doing "make distclean"
-DISTCLEANFILES =       \
-       helper/sp-marshal.cpp   \
-       helper/sp-marshal.h     \
-       inkscape_version.h
-
 # Extra files not mentioned as sources to include in the source tarball
-EXTRA_DIST   \
+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       \
@@ -150,7 +161,6 @@ EXTRA_DIST =        \
        extension/script/makefile.in    \
        filters/makefile.in \
        helper/makefile.in      \
-       inkjar/makefile.in      \
        io/makefile.in  \
        io/crystalegg.xml       \
        io/doc2html.xsl         \
@@ -164,11 +174,8 @@ EXTRA_DIST =       \
        livarot/makefile.in     \
        live_effects/makefile.in        \
        live_effects/parameter/makefile.in      \
-       removeoverlap/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   \
@@ -185,48 +192,88 @@ EXTRA_DIST =      \
        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
 
+# ################################################
+#  B I N A R I E S
+# ################################################
+
+# this should speed up the build
+libinkscape_a_SOURCES = $(ink_common_sources)
+
+inkscape_SOURCES += main.cpp $(win32_sources)
+inkscape_LDADD = $(all_libs)
+inkscape_LDFLAGS = --export-dynamic $(kdeldflags) $(mwindows)
+
+inkview_SOURCES += inkview.cpp $(win32_sources)
+inkview_LDADD = $(all_libs)
+inkview_LDFLAGS = $(mwindows) 
+
+# ################################################
+#  VERSION REPORTING
+# ################################################
+
+libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h
 
-##################################
-### TESTING STUFF (make check) ###
-##################################
+if USE_BZR_VERSION
+inkscape_version_deps = $(top_srcdir)/.bzr/branch/last-revision
+endif
+
+# 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) ###
+# #################################
 
 # 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 =       \
-       test-src        \
-       style-test      \
-       display/test-display    \
-       helper/test-helper      \
-       libnr/test-nr   \
-       svg/test-svg    \
-       util/test-util  \
-       xml/test-xml
-#      io/streamtest
+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)
+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:
@@ -234,4 +281,4 @@ dist-hook:
        cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
 
 distclean-local:
-       rm -f display/test-display.xml display/test-display.log helper/test-helper.xml helper/test-helper.log libnr/test-nr.xml libnr/test-nr.log svg/test-svg.xml svg/test-svg.log util/test-util.xml util/test-util.log xml/test-xml.xml xml/test-xml.log test-src.xml test-src.log
+       rm -f cxxtests.xml cxxtests.log