Code

Only build static libraries for subdirs than actually contain libraries,
[inkscape.git] / src / Makefile.am
1 ## Process this file with automake to produce Makefile.in
4 # ################################################
5 #
6 #  G L O B A L
7 #
8 # ################################################
10 # Should work in either automake1.7 or 1.8, but 1.6 doesn't
11 # handle foo/libfoo_a_CPPFLAGS properly (if at all).
12 # Update: We now avoid setting foo/libfoo_a_CPPFLAGS,
13 # so perhaps 1.6 will work.
14 AUTOMAKE_OPTIONS = 1.7 subdir-objects
16 # Executables compiled by "make" and installed by "make install"
17 bin_PROGRAMS = inkscape inkview
19 # Add sources common for Inkscape and Inkview to this variable.
20 ink_common_sources =
21 # Add Inkscape-only sources here.
22 inkscape_SOURCES =
23 # Add Inkview-only sources here.
24 inkview_SOURCES =
26 # Libraries which should be compiled by "make" but not installed.
27 # Use this only for libraries that are really standalone, rather than for
28 # source tree subdirectories.
29 noinst_LIBRARIES = $(inkscape_private_libs)
31 INCLUDES =      \
32         $(PERL_CFLAGS) $(PYTHON_CFLAGS) \
33         $(FREETYPE_CFLAGS)      \
34         $(GNOME_PRINT_CFLAGS)   \
35         $(GNOME_VFS_CFLAGS)     \
36         $(IMAGEMAGICK_CFLAGS) \
37         $(INKBOARD_CFLAGS) \
38         $(LIBWPG_CFLAGS) \
39         $(XFT_CFLAGS)   \
40         $(LCMS_CFLAGS)  \
41         $(POPPLER_CFLAGS)       \
42         $(POPPLER_GLIB_CFLAGS)  \
43         -DPOTRACE=\"potrace\"   \
44         $(INKSCAPE_CFLAGS) \
45         -I$(top_srcdir)/cxxtest \
46         $(WIN32_CFLAGS) \
47         -I$(srcdir)/bind/javainc \
48         -I$(srcdir)/bind/javainc/linux \
49         $(AM_CPPFLAGS)
51 CXXTEST_TEMPLATE = $(srcdir)/cxxtest-template.tpl
52 CXXTESTGENFLAGS = --root --have-eh --template=$(CXXTEST_TEMPLATE)
53 CXXTESTGEN = $(top_srcdir)/cxxtest/cxxtestgen.pl $(CXXTESTGENFLAGS)
54 # Add test cases to this variable
55 CXXTEST_TESTSUITES =
57 # ################################################
58 #
59 #  E X T R A 
60 #
61 # ################################################
63 if PLATFORM_WIN32
64 win32_sources = winmain.cpp registrytool.cpp registrytool.h
65 win32ldflags = -lcomdlg32
66 endif 
68 if INKJAR
69 inkjar_dir = inkjar
70 inkjar_libs = inkjar/libinkjar.a
71 endif
73 # Extra files to remove when doing "make distclean"
74 DISTCLEANFILES =        \
75         helper/sp-marshal.cpp   \
76         helper/sp-marshal.h     \
77         inkscape-version.cpp
79 if WITH_INKBOARD
80 libpedro = pedro/libpedro.a
81 endif
83 inkscape_private_libs = \
84         dom/libdom.a            \
85         libcroco/libcroco.a     \
86         libavoid/libavoid.a     \
87         libgdl/libgdl.a         \
88         libcola/libcola.a       \
89         libvpsc/libvpsc.a       \
90         livarot/libvarot.a      \
91         2geom/lib2geom.a        \
92         $(libpedro)             \
93         libinkversion.a
95 all_libs =                      \
96         $(inkscape_private_libs)        \
97         $(INKSCAPE_LIBS)        \
98         $(GNOME_VFS_LIBS)       \
99         $(XFT_LIBS)             \
100         $(FREETYPE_LIBS)        \
101         $(kdeldadd)             \
102         $(win32ldflags)         \
103         $(CARBON_LDFLAGS)       \
104         $(PERL_LIBS)            \
105         $(PYTHON_LIBS)          \
106         $(INKBOARD_LIBS)        \
107         $(LIBWPG_LIBS)          \
108         $(IMAGEMAGICK_LIBS)
110 # Include all partial makefiles from subdirectories
111 include Makefile_insert
112 include application/Makefile_insert
113 include bind/Makefile_insert
114 include dialogs/Makefile_insert
115 include display/Makefile_insert
116 include dom/Makefile_insert
117 include extension/Makefile_insert
118 include extension/implementation/Makefile_insert
119 include extension/internal/Makefile_insert
120 include extension/script/Makefile_insert
121 include filters/Makefile_insert
122 include helper/Makefile_insert
123 include inkjar/Makefile_insert
124 include io/Makefile_insert
125 include pedro/Makefile_insert
126 include jabber_whiteboard/Makefile_insert
127 include libcroco/Makefile_insert
128 include libgdl/Makefile_insert
129 include libnr/Makefile_insert
130 include libnrtype/Makefile_insert
131 include libavoid/Makefile_insert
132 include livarot/Makefile_insert
133 include live_effects/Makefile_insert
134 include live_effects/parameter/Makefile_insert
135 include libvpsc/Makefile_insert
136 include libcola/Makefile_insert
137 include removeoverlap/Makefile_insert
138 include graphlayout/Makefile_insert
139 include svg/Makefile_insert
140 include widgets/Makefile_insert
141 include debug/Makefile_insert
142 include xml/Makefile_insert
143 include traits/Makefile_insert
144 include algorithms/Makefile_insert
145 include ui/Makefile_insert
146 include ui/cache/Makefile_insert
147 include ui/dialog/Makefile_insert
148 include ui/view/Makefile_insert
149 include ui/widget/Makefile_insert
150 include util/Makefile_insert
151 include trace/Makefile_insert
152 include 2geom/Makefile_insert
154 # Extra files not mentioned as sources to include in the source tarball
155 EXTRA_DIST =    \
156         $(top_srcdir)/Doxyfile  \
157         sp-skeleton.cpp sp-skeleton.h   \
158         algorithms/makefile.in  \
159         application/makefile.in \
160         bind/makefile.in        \
161         debug/makefile.in       \
162         dialogs/makefile.in     \
163         display/makefile.in     \
164         dom/makefile.in         \
165         extension/implementation/makefile.in    \
166         extension/internal/makefile.in  \
167         extension/makefile.in   \
168         extension/script/makefile.in    \
169         filters/makefile.in \
170         helper/makefile.in      \
171         inkjar/makefile.in      \
172         io/makefile.in  \
173         io/crystalegg.xml       \
174         io/doc2html.xsl         \
175         pedro/makefile.in       \
176         jabber_whiteboard/makefile.in   \
177         libgdl/makefile.in      \
178         libcroco/makefile.in    \
179         libnr/makefile.in       \
180         libnrtype/makefile.in   \
181         libavoid/makefile.in    \
182         livarot/makefile.in     \
183         live_effects/makefile.in        \
184         live_effects/parameter/makefile.in      \
185         removeoverlap/makefile.in       \
186         svg/makefile.in         \
187         trace/makefile.in       \
188         traits/makefile.in      \
189         ui/makefile.in          \
190         ui/cache/makefile.in    \
191         ui/dialog/makefile.in   \
192         ui/view/makefile.in     \
193         ui/widget/makefile.in   \
194         util/makefile.in        \
195         widgets/makefile.in     \
196         xml/makefile.in         \
197         2geom/makefile.in       \
198         extension/internal/win32.cpp    \
199         extension/internal/win32.h      \
200         extension/internal/emf-win32-inout.cpp  \
201         extension/internal/emf-win32-inout.h    \
202         extension/internal/emf-win32-print.cpp  \
203         extension/internal/emf-win32-print.h    \
204         helper/sp-marshal.list  \
205         traits/copy.h   \
206         traits/function.h       \
207         traits/list-copy.h      \
208         traits/reference.h \
209         $(jabber_whiteboard_SOURCES)
211 # ################################################
213 #  B I N A R I E S
215 # ################################################
217 inkscape_SOURCES += main.cpp $(ink_common_sources) $(win32_sources)
218 inkscape_LDADD = $(all_libs)
219 inkscape_LDFLAGS = --export-dynamic $(kdeldflags)
221 inkview_SOURCES += inkview.cpp $(ink_common_sources) $(win32_sources)
222 inkview_LDADD = $(all_libs)
224 # #################################
225 # ## TESTING STUFF (make check) ###
226 # #################################
228 # List of all programs that should be built before testing. Note that this is
229 # different from TESTS, because some tests can be scripts that don't
230 # need to be built. There should be one test program per directory.
231 # automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items:
232 # TESTS items can be scripts etc.
233 check_PROGRAMS = cxxtests
235 # streamtest is unfinished and can't handle the relocations done during
236 # "make distcheck".
238 # List of all tests to be run.
239 TESTS = $(check_PROGRAMS)
241 # including the the testsuites here ensures that they get distributed
242 cxxtests_SOURCES = cxxtests.cpp $(CXXTEST_TESTSUITES)
243 cxxtests_LDADD = libnr/nr-compose-reference.o $(ink_common_sources)
245 cxxtests.cpp: $(CXXTEST_TESTSUITES) $(CXXTEST_TEMPLATE)
246         $(CXXTESTGEN) -o cxxtests.cpp $(CXXTEST_TESTSUITES)
248 # ################################################
249 #  D I S T
250 # ################################################
252 dist-hook:
253         mkdir $(distdir)/pixmaps
254         cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
256 distclean-local:
257         rm -f cxxtests.xml cxxtests.log