
Bob Jamison wrote:
Instead of linking together the set of individual $inkscape_private_libs (and their link problems) with the client apps to make the executables, concatenate each of their libxxx_a_OBJECTS variables together to make a single libinkscape.a and libinkscape.so. Link -THAT- with the client apps (inkscape, inkview, etc)
Here is what I mean. Look at the entry for libinkscape_a_LIBADD.
For some reason, this entry isn't working at the moment. I think it is a syntax problem with one of the included files. I'm still looking at it. I have tried it with fewer included libs, and it does make a library just fine.
Bob
## 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 # handle foo/libfoo_a_CPPFLAGS properly (if at all). # Update: We now avoid setting foo/libfoo_a_CPPFLAGS, # so perhaps 1.6 will work. AUTOMAKE_OPTIONS = 1.7 subdir-objects
INCLUDES = \ $(FREETYPE_CFLAGS) \ $(GNOME_PRINT_CFLAGS) \ $(GNOME_VFS_CFLAGS) \ $(XFT_CFLAGS) \ -DPOTRACE="potrace" \ $(INKSCAPE_CFLAGS) \ -I$(top_srcdir)/cxxtest
include Makefile_insert include application/Makefile_insert include dialogs/Makefile_insert include display/Makefile_insert include extension/Makefile_insert include extension/implementation/Makefile_insert include extension/internal/Makefile_insert include extension/script/Makefile_insert include helper/Makefile_insert include inkjar/Makefile_insert include io/Makefile_insert include libcroco/Makefile_insert include libnr/Makefile_insert include libnrtype/Makefile_insert include livarot/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/dialog/Makefile_insert include ui/view/Makefile_insert include ui/widget/Makefile_insert include util/Makefile_insert include trace/Makefile_insert
libinkscape_a_SOURCES =
libinkscape_a_LIBADD = \ $(libinkpre_a_OBJECTS) \ $(libinkpost_a_OBJECTS) \ $(application_libinkapp_a_OBJECTS) \ $(debug_libinkdebug_a_OBJECTS) \ $(dialogs_libspdialogs_a_OBJECTS) \ $(display_libspdisplay_a_OBJECTS) \ $(extension_implementation_libimplementation_a_OBJECTS) \ $(extension_internal_libinternal_a_OBJECTS) \ $(extension_libextension_a_OBJECTS) \ $(extension_script_libscript_a_OBJECTS) \ $(helper_libspchelp_a_OBJECTS) \ $(io_libio_a_OBJECTS) \ $(libcroco_libcroco_a_OBJECTS) \ $(libnr_libnr_a_OBJECTS) \ $(libnrtype_libnrtype_a_OBJECTS) \ $(livarot_libvarot_a_OBJECTS) \ $(svg_libspsvg_a_OBJECTS) \ $(trace_libtrace_a_OBJECTS) \ $(ui_dialog_libuidialog_a_OBJECTS) \ $(ui_libui_a_OBJECTS) \ $(ui_view_libuiview_a_OBJECTS) \ $(ui_widget_libuiwidget_a_OBJECTS) \ $(util_libinkutil_a_OBJECTS) \ $(widgets_libspwidgets_a_OBJECTS) \ $(xml_libspxml_a_OBJECTS)
inkscape2_SOURCES = main.cpp inkscape2_LDADD = libinkscape.a inkscape2_LDFLAGS = --export-dynamic
bin_PROGRAMS = inkscape inkscape2 inkview
noinst_LIBRARIES = \ libinkscape.a \ libinkpre.a \ application/libinkapp.a \ dialogs/libspdialogs.a \ display/libspdisplay.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 \ livarot/libvarot.a \ svg/libspsvg.a \ widgets/libspwidgets.a \ trace/libtrace.a \ xml/libspxml.a \ libinkpost.a
check_LIBRARIES = \ libnr/libtest-nr.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 \ make.dep \ make.files \ make.ofiles \ Doxyfile \ algorithms/makefile.in \ application/makefile.in \ dialogs/makefile.in \ display/makefile.in \ extension/makefile.in \ extension/implementation/makefile.in \ extension/internal/makefile.in \ helper/makefile.in \ inkjar/makefile.in \ io/makefile.in \ io/crystalegg.xml \ io/doc2html.xsl \ libnr/makefile.in \ libnrtype/makefile.in \ livarot/makefile.in \ svg/makefile.in \ trace/makefile.in \ traits/makefile.in \ utest/makefile.in \ ui/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 \ extension/internal/win32.cpp \ extension/internal/win32.h \ helper/sp-marshal.list \ utest/utest.h \ utest/test-1ary-cases.h \ algorithms/find-if-before.h \ algorithms/find-last-if.h \ algorithms/longest-common-suffix.h \ traits/copy.h \ traits/function.h \ traits/list-copy.h \ traits/reference.h
EXTRA_PROGRAMS = \ inkview \ libnr/testnr
TESTS = \ test-all$(EXEEXT) \ attributes-test$(EXEEXT) \ dir-util-test$(EXEEXT) \ extract-uri-test$(EXEEXT) \ mod360-test$(EXEEXT) \ round-test$(EXEEXT) \ sp-gradient-test$(EXEEXT) \ sp-style-elem-test$(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) \ util/list-container-test$(EXEEXT) \ xml/test-xml$(EXEEXT) \ xml/quote-test$(EXEEXT) \ xml/repr-action-test$(EXEEXT)
# streamtest is unfinished and can't handle the relocations done during # "make distcheck". Not needed for the 0.41 release. # io/streamtest$(EXEEXT)
# automake adds $(EXEEXT) to check_PROGRAMS items but not to TESTS items: # TESTS items can be scripts etc.
check_PROGRAMS = \ test-all \ attributes-test \ dir-util-test \ extract-uri-test \ mod360-test \ round-test \ sp-gradient-test \ sp-style-elem-test \ 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 \ util/list-container-test \ xml/test-xml \ xml/quote-test \ xml/repr-action-test
# io/streamtest
test-all.cpp: $(libnr_test_nr_a_SOURCES) $(xml_test_xml_a_SOURCES) $(libnr_test_nr_includes) $(xml_test_xml_includes) $(top_srcdir)/cxxtest/cxxtestgen.pl --error-printer -root -o test-all.cpp $(libnr_test_nr_includes) $(xml_test_xml_includes)
test_all_SOURCES = \ test-all.cpp
test_all_LDADD = \ $(libnr_test_nr_LDADD) \ $(xml_test_xml_LDADD)
# ################################################ # # D I S T # # ################################################
dist-hook: mkdir $(distdir)/pixmaps cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps