From e471a664f923f517b68071f2e33fbb6ce070f8b7 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 8 Aug 2016 13:56:40 +0100 Subject: Remove deprecated Autotools and btool files. Please use CMake instead (bzr r15046) --- .bzrignore | 64 - Makefile.am | 650 -- README | 8 - acinclude.m4 | 3 - autogen.sh | 51 - build-lx.xml | 590 -- build-x64.xml | 950 --- build.xml | 920 --- buildtool.cpp | 10334 ------------------------- configure.ac | 1057 --- delautogen.sh | 14 - doc/Makefile.am | 20 - m4/Makefile.am | 11 - m4/ac_define_dir.m4 | 49 - m4/ax_cxx_compile_stdcxx.m4 | 562 -- m4/ax_cxx_compile_stdcxx_11.m4 | 39 - m4/ink_bzr_snapshot_build.m4 | 14 - m4/relaytool.m4 | 30 - share/Makefile.am | 25 - share/attributes/Makefile.am | 10 - share/branding/Makefile.am | 18 - share/examples/Makefile.am | 37 - share/extensions/Barcode/Makefile.am | 23 - share/extensions/Makefile.am | 42 - share/extensions/Poly3DObjects/Makefile.am | 33 - share/extensions/alphabet_soup/Makefile.am | 78 - share/extensions/ink2canvas/Makefile.am | 9 - share/extensions/test/Makefile.am | 60 - share/extensions/xaml2svg/Makefile.am | 19 - share/filters/Makefile.am | 13 - share/fonts/Makefile.am | 7 - share/gradients/Makefile.am | 7 - share/icons/Makefile.am | 58 - share/icons/application/16x16/Makefile.am | 5 - share/icons/application/22x22/Makefile.am | 5 - share/icons/application/24x24/Makefile.am | 5 - share/icons/application/256x256/Makefile.am | 5 - share/icons/application/32x32/Makefile.am | 5 - share/icons/application/48x48/Makefile.am | 5 - share/icons/application/Makefile.am | 15 - share/keys/Makefile.am | 17 - share/markers/Makefile.am | 9 - share/palettes/Makefile.am | 38 - share/patterns/Makefile.am | 12 - share/screens/Makefile.am | 8 - share/symbols/Makefile.am | 17 - share/templates/Makefile.am | 67 - share/tutorials/Makefile.am | 214 - share/ui/Makefile.am | 11 - src/2geom/Makefile_insert | 131 - src/Makefile.am | 278 - src/Makefile_insert | 251 - src/debug/Makefile_insert | 15 - src/display/Makefile_insert | 125 - src/extension/Makefile_insert | 54 - src/extension/dbus/Makefile_insert | 111 - src/extension/implementation/Makefile_insert | 9 - src/extension/internal/Makefile_insert | 173 - src/filters/Makefile_insert | 46 - src/helper/Makefile_insert | 45 - src/inkgc/Makefile_insert | 13 - src/io/Makefile_insert | 26 - src/libavoid/Makefile_insert | 37 - src/libcola/Makefile_insert | 18 - src/libcroco/Makefile_insert | 64 - src/libdepixelize/Makefile_insert | 22 - src/libnrtype/Makefile_insert | 28 - src/libuemf/Makefile_insert | 30 - src/libvpsc/Makefile_insert | 23 - src/livarot/Makefile_insert | 41 - src/live_effects/Makefile_insert | 115 - src/live_effects/parameter/Makefile_insert | 36 - src/svg/Makefile_insert | 32 - src/trace/Makefile_insert | 23 - src/ui/Makefile_insert | 31 - src/ui/cache/Makefile_insert | 6 - src/ui/dialog/Makefile_insert | 133 - src/ui/tool/Makefile_insert | 30 - src/ui/tools/Makefile_insert | 34 - src/ui/view/Makefile_insert | 9 - src/ui/widget/Makefile_insert | 106 - src/util/Makefile_insert | 49 - src/widgets/Makefile_insert | 129 - src/xml/Makefile_insert | 51 - 84 files changed, 18567 deletions(-) delete mode 100644 Makefile.am delete mode 100644 acinclude.m4 delete mode 100755 autogen.sh delete mode 100644 build-lx.xml delete mode 100644 build-x64.xml delete mode 100644 build.xml delete mode 100644 buildtool.cpp delete mode 100644 configure.ac delete mode 100755 delautogen.sh delete mode 100644 doc/Makefile.am delete mode 100644 m4/Makefile.am delete mode 100644 m4/ac_define_dir.m4 delete mode 100644 m4/ax_cxx_compile_stdcxx.m4 delete mode 100644 m4/ax_cxx_compile_stdcxx_11.m4 delete mode 100644 m4/ink_bzr_snapshot_build.m4 delete mode 100644 m4/relaytool.m4 delete mode 100644 share/Makefile.am delete mode 100644 share/attributes/Makefile.am delete mode 100644 share/branding/Makefile.am delete mode 100644 share/examples/Makefile.am delete mode 100644 share/extensions/Barcode/Makefile.am delete mode 100644 share/extensions/Makefile.am delete mode 100644 share/extensions/Poly3DObjects/Makefile.am delete mode 100644 share/extensions/alphabet_soup/Makefile.am delete mode 100644 share/extensions/ink2canvas/Makefile.am delete mode 100644 share/extensions/test/Makefile.am delete mode 100644 share/extensions/xaml2svg/Makefile.am delete mode 100644 share/filters/Makefile.am delete mode 100644 share/fonts/Makefile.am delete mode 100644 share/gradients/Makefile.am delete mode 100644 share/icons/Makefile.am delete mode 100644 share/icons/application/16x16/Makefile.am delete mode 100644 share/icons/application/22x22/Makefile.am delete mode 100644 share/icons/application/24x24/Makefile.am delete mode 100644 share/icons/application/256x256/Makefile.am delete mode 100644 share/icons/application/32x32/Makefile.am delete mode 100644 share/icons/application/48x48/Makefile.am delete mode 100644 share/icons/application/Makefile.am delete mode 100644 share/keys/Makefile.am delete mode 100644 share/markers/Makefile.am delete mode 100644 share/palettes/Makefile.am delete mode 100644 share/patterns/Makefile.am delete mode 100644 share/screens/Makefile.am delete mode 100644 share/symbols/Makefile.am delete mode 100644 share/templates/Makefile.am delete mode 100644 share/tutorials/Makefile.am delete mode 100644 share/ui/Makefile.am delete mode 100644 src/2geom/Makefile_insert delete mode 100644 src/Makefile.am delete mode 100644 src/Makefile_insert delete mode 100644 src/debug/Makefile_insert delete mode 100644 src/display/Makefile_insert delete mode 100644 src/extension/Makefile_insert delete mode 100644 src/extension/dbus/Makefile_insert delete mode 100644 src/extension/implementation/Makefile_insert delete mode 100644 src/extension/internal/Makefile_insert delete mode 100644 src/filters/Makefile_insert delete mode 100644 src/helper/Makefile_insert delete mode 100644 src/inkgc/Makefile_insert delete mode 100644 src/io/Makefile_insert delete mode 100644 src/libavoid/Makefile_insert delete mode 100644 src/libcola/Makefile_insert delete mode 100644 src/libcroco/Makefile_insert delete mode 100644 src/libdepixelize/Makefile_insert delete mode 100644 src/libnrtype/Makefile_insert delete mode 100644 src/libuemf/Makefile_insert delete mode 100644 src/libvpsc/Makefile_insert delete mode 100644 src/livarot/Makefile_insert delete mode 100644 src/live_effects/Makefile_insert delete mode 100644 src/live_effects/parameter/Makefile_insert delete mode 100644 src/svg/Makefile_insert delete mode 100644 src/trace/Makefile_insert delete mode 100644 src/ui/Makefile_insert delete mode 100644 src/ui/cache/Makefile_insert delete mode 100644 src/ui/dialog/Makefile_insert delete mode 100644 src/ui/tool/Makefile_insert delete mode 100644 src/ui/tools/Makefile_insert delete mode 100644 src/ui/view/Makefile_insert delete mode 100644 src/ui/widget/Makefile_insert delete mode 100644 src/util/Makefile_insert delete mode 100644 src/widgets/Makefile_insert delete mode 100644 src/xml/Makefile_insert diff --git a/.bzrignore b/.bzrignore index 114347d66..5bfe4946a 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1,12 +1,8 @@ ./Info.plist ./Makefile ./ABOUT-NLS -./aclocal.m4 -./autom4te.cache -./btool.exe ./build ./build.dep -./build-aux ./compile ./compile.lst ./config.guess @@ -63,44 +59,7 @@ ./CMakeLists.txt.user .deps .dirstamp -Makefile.in doc/Makefile -doc/Makefile.in -m4/codeset.m4 -m4/gettext.m4 -m4/glibc2.m4 -m4/glibc21.m4 -m4/iconv.m4 -m4/intdiv0.m4 -m4/intl.m4 -m4/intldir.m4 -m4/intlmacosx.m4 -m4/intltool.m4 -m4/intmax.m4 -m4/inttypes-pri.m4 -m4/inttypes_h.m4 -m4/lcmessage.m4 -m4/lib-ld.m4 -m4/lib-link.m4 -m4/lib-prefix.m4 -m4/libtool.m4 -m4/lock.m4 -m4/longlong.m4 -m4/ltoptions.m4 -m4/ltsugar.m4 -m4/ltversion.m4 -m4/lt~obsolete.m4 -m4/nls.m4 -m4/po.m4 -m4/printf-posix.m4 -m4/progtest.m4 -m4/size_max.m4 -m4/stdint_h.m4 -m4/uintmax_t.m4 -m4/visibility.m4 -m4/wchar_t.m4 -m4/wint_t.m4 -m4/xsize.m4 packaging/autopackage/default.apspec po/.intltool-merge-cache po/*.gmo @@ -118,35 +77,22 @@ po/remove-potcdate.sin po/Rules-quot po/stamp-it share/Makefile -share/Makefile.in share/attributes/Makefile -share/attributes/Makefile.in share/branding/Makefile share/clipart/Makefile -share/clipart/Makefile.in share/examples/Makefile -share/examples/Makefile.in share/extensions/Barcode/Makefile -share/extensions/Barcode/Makefile.in share/extensions/Makefile -share/extensions/Makefile.in share/extensions/Poly3DObjects/Makefile -share/extensions/Poly3DObjects/Makefile.in share/extensions/alphabet_soup/Makefile -share/extensions/alphabet_soup/Makefile.in share/extensions/ink2canvas/Makefile -share/extensions/ink2canvas/Makefile.in share/extensions/test/Makefile share/extensions/xaml2svg/Makefile -share/extensions/xaml2svg/Makefile.in share/filters/Makefile share/filters/filters.svg.h share/fonts/Makefile -share/fonts/Makefile.in share/gradients/Makefile -share/gradients/Makefile.in share/icons/Makefile -share/icons/Makefile.in share/icons/application/16x16/Makefile share/icons/application/22x22/Makefile share/icons/application/24x24/Makefile @@ -155,31 +101,21 @@ share/icons/application/32x32/Makefile share/icons/application/48x48/Makefile share/icons/application/Makefile share/keys/Makefile -share/keys/Makefile.in share/markers/Makefile -share/markers/Makefile.in share/palettes/Makefile -share/palettes/Makefile.in share/palettes/palettes.h share/patterns/Makefile -share/patterns/Makefile.in share/patterns/patterns.svg.h share/screens/Makefile -share/screens/Makefile.in share/symbols/Makefile -share/symbols/Makefile.in share/symbols/symbols.h share/templates/Makefile -share/templates/Makefile.in share/templates/templates.h share/tutorials/Makefile -share/tutorials/Makefile.in share/ui/Makefile -share/ui/Makefile.in src/.libs/ src/2geom/makefile src/Makefile -src/Makefile.in src/algorithms/makefile src/application/makefile src/bind/makefile diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 8ab952a9a..000000000 --- a/Makefile.am +++ /dev/null @@ -1,650 +0,0 @@ -## Process this file with automake to produce Makefile.in - -AUTOMAKE_OPTIONS = foreign - -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - -SUBDIRS = src doc share po - -Graphicsdir = $(datadir)/applications -Graphics_in_files = inkscape.desktop.in -Graphics_DATA = $(Graphics_in_files:.desktop.in=.desktop) -@INTLTOOL_DESKTOP_RULE@ - -appdatadir = $(datadir)/appdata -appdata_in_files = inkscape.appdata.xml.in -appdata_DATA = $(appdata_in_files:.xml.in=.xml) -@INTLTOOL_XML_RULE@ - -## dist-hook: -## mkdir $(distdir)/samples -## cp $(srcdir)/samples/*svg $(distdir)/samples -## cp $(srcdir)/samples/*png $(distdir)/samples -## cp $(srcdir)/AUTHORS $(distdir) -## cp $(srcdir)/NEWS $(distdir) - -DISTCHECK_CONFIGURE_FLAGS = --enable-localinstall - -man_MANS = \ - inkscape.1 \ - inkscape.de.1 \ - inkscape.el.1 \ - inkscape.fr.1 \ - inkscape.ja.1 \ - inkscape.sk.1 \ - inkscape.zh_TW.1 \ - inkview.1 - -EXTRA_DIST = \ - acinclude.m4 \ - autogen.sh \ - GPL2.txt \ - GPL3.txt \ - LGPL2.1.txt \ - fix-roff-punct \ - intltool-extract.in \ - intltool-merge.in \ - intltool-update.in \ - $(Graphics_in_files) \ - $(appdata_in_files) \ - po/check-markup \ - utf8-to-roff \ - inkscape.1 \ - inkscape.de.1 \ - inkscape.el.1 \ - inkscape.fr.1 \ - inkscape.ja.1 \ - inkscape.sk.1 \ - inkscape.zh_TW.1 \ - inkscape.pod \ - inkscape.de.pod \ - inkscape.el.pod \ - inkscape.fr.pod \ - inkscape.sk.pod \ - inkscape.zh_TW.pod \ - inkscape.spec.in \ - inkscape.spec \ - Info.plist.in \ - Info.plist \ - buildtool.cpp build.xml build-x64.xml \ - README README.ca.txt README.de.txt README.es.txt README.fr.txt README.it.txt README.osx.txt README.pt_BR.txt README.sk.txt README.sr.txt \ - TRANSLATORS \ - inkscape.png \ - inkscape.ico \ - mingwenv.bat \ - src/helper/sp-marshal.cpp.mingw src/helper/sp-marshal.h.mingw \ - src/2geom/angle.h \ - src/inkscape-manifest.xml src/inkview-manifest.xml \ - src/inkscape-manifest-x64.xml src/inkview-manifest-x64.xml \ - cxxtest/COPYING \ - cxxtest/cxxtestgen.pl \ - cxxtest/cxxtestgen.py \ - cxxtest/cxxtest/Descriptions.cpp \ - cxxtest/cxxtest/Descriptions.h \ - cxxtest/cxxtest/DummyDescriptions.cpp \ - cxxtest/cxxtest/DummyDescriptions.h \ - cxxtest/cxxtest/ErrorFormatter.h \ - cxxtest/cxxtest/ErrorPrinter.h \ - cxxtest/cxxtest/Flags.h \ - cxxtest/cxxtest/GlobalFixture.cpp \ - cxxtest/cxxtest/GlobalFixture.h \ - cxxtest/cxxtest/Gui.h \ - cxxtest/cxxtest/LinkedList.cpp \ - cxxtest/cxxtest/LinkedList.h \ - cxxtest/cxxtest/Mock.h \ - cxxtest/cxxtest/ParenPrinter.h \ - cxxtest/cxxtest/QtGui.h \ - cxxtest/cxxtest/RealDescriptions.cpp \ - cxxtest/cxxtest/RealDescriptions.h \ - cxxtest/cxxtest/Root.cpp \ - cxxtest/cxxtest/SelfTest.h \ - cxxtest/cxxtest/StdHeaders.h \ - cxxtest/cxxtest/StdValueTraits.h \ - cxxtest/cxxtest/StdioFilePrinter.h \ - cxxtest/cxxtest/StdioPrinter.h \ - cxxtest/cxxtest/TeeListener.h \ - cxxtest/cxxtest/TestListener.h \ - cxxtest/cxxtest/TestRunner.h \ - cxxtest/cxxtest/TestSuite.cpp \ - cxxtest/cxxtest/TestSuite.h \ - cxxtest/cxxtest/TestTracker.cpp \ - cxxtest/cxxtest/TestTracker.h \ - cxxtest/cxxtest/ValueTraits.cpp \ - cxxtest/cxxtest/ValueTraits.h \ - cxxtest/cxxtest/Win32Gui.h \ - cxxtest/cxxtest/X11Gui.h \ - cxxtest/cxxtest/YesNoRunner.h \ - packaging/autopackage/default.apspec.in \ - packaging/macosx/README.txt \ - packaging/macosx/Resources/Inkscape-Generic.icns \ - packaging/macosx/Resources/Inkscape.icns \ - packaging/macosx/Resources/MenuBar.nib/classes.nib \ - packaging/macosx/Resources/MenuBar.nib/info.nib \ - packaging/macosx/Resources/MenuBar.nib/objects.xib \ - packaging/macosx/Resources/ProgressWindow.nib/classes.nib \ - packaging/macosx/Resources/ProgressWindow.nib/info.nib \ - packaging/macosx/Resources/ProgressWindow.nib/objects.xib \ - packaging/macosx/Resources/alert_fccache.sh \ - packaging/macosx/Resources/application-gimp-gradient.icns \ - packaging/macosx/Resources/application-illustrator-svg.icns \ - packaging/macosx/Resources/application-illustrator.icns \ - packaging/macosx/Resources/application-pdf.icns \ - packaging/macosx/Resources/application-vnd.corel-draw-compressed.icns \ - packaging/macosx/Resources/application-vnd.corel-draw-template.icns \ - packaging/macosx/Resources/application-vnd.corel-draw.icns \ - packaging/macosx/Resources/application-vnd.ms.xaml.icns \ - packaging/macosx/Resources/application-vnd.wordperfect-graphic.icns \ - packaging/macosx/Resources/bin/gimp-wrapper.sh \ - packaging/macosx/Resources/bin/inkscape \ - packaging/macosx/Resources/etc/fonts/fonts.conf \ - packaging/macosx/Resources/etc/gtk-2.0/gtkrc \ - packaging/macosx/Resources/image-svg+xml-compressed.icns \ - packaging/macosx/Resources/image-svg+xml.icns \ - packaging/macosx/Resources/image-vnd.dxf.icns \ - packaging/macosx/Resources/image-vnd.sk1.icns \ - packaging/macosx/Resources/image-vnd.windows-metafile.icns \ - packaging/macosx/Resources/image-x-eps.icns \ - packaging/macosx/Resources/image-x-ps.icns \ - packaging/macosx/Resources/openDoc \ - packaging/macosx/Resources/script \ - packaging/macosx/Resources/xdg_setup.sh \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/application-exit.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/dialog-information.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-new.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-open-recent.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-open.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-print-preview.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-print.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-properties.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-revert-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-revert-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-save-as.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/document-save.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/drive-harddisk.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-clear.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-copy.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-cut.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-delete.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-find-replace.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-find.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-paste.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-redo-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-redo-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-select-all.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-undo-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/edit-undo-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/folder-remote.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/folder.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-indent-less-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-indent-less-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-indent-more-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-indent-more-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-justify-center.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-justify-fill.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-justify-left.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-justify-right.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-text-bold.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-text-italic.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-text-strikethrough.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/format-text-underline.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-bottom.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-down.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-first-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-first-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-home.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-jump-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-jump-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-last-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-last-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-next-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-next-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-previous-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-previous-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-top.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/go-up.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-caps-lock-warning.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-color-picker.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-connect.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-convert.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-disconnect.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-edit.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-font.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-index.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-orientation-landscape.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-orientation-portrait.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-orientation-reverse-landscape.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-orientation-reverse-portrait.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-page-setup.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-preferences.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-select-color.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-select-font.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-undelete-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/gtk-undelete-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/help-about.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/help-contents.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/image-missing.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/list-add.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/list-remove.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-floppy.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-optical.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-playback-pause.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-playback-start-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-playback-start-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-playback-stop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-record.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-seek-backward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-seek-backward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-seek-forward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-seek-forward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-skip-backward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-skip-backward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-skip-forward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/media-skip-forward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/network-idle.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/printer-error.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/printer-info.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/printer-paused.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/printer-warning.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/process-stop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/system-run.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/text-x-generic.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/tools-check-spelling.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/user-desktop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/user-home.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/view-fullscreen.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/view-refresh.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/view-restore.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/view-sort-ascending.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/view-sort-descending.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/window-close.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/zoom-fit-best.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/zoom-in.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/zoom-original.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/16/zoom-out.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/gtk-apply.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/gtk-cancel.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/gtk-no.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/gtk-ok.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/gtk-yes.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/20/window-close.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/application-exit.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/audio-volume-high.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/audio-volume-low.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/audio-volume-medium.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/audio-volume-muted.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/dialog-information.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-new.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-open-recent.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-open.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-print-preview.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-print.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-properties.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-revert-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-revert-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-save-as.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/document-save.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/drive-harddisk.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-clear.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-copy.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-cut.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-delete.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-find-replace.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-find.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-paste.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-redo-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-redo-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-select-all.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-undo-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/edit-undo-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/folder-remote.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/folder.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-indent-less-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-indent-less-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-indent-more-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-indent-more-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-justify-center.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-justify-fill.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-justify-left.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-justify-right.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-text-bold.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-text-italic.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-text-strikethrough.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/format-text-underline.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-bottom.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-down.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-first-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-first-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-home.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-jump-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-jump-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-last-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-last-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-next-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-next-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-previous-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-previous-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-top.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/go-up.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-caps-lock-warning.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-color-picker.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-connect.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-convert.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-disconnect.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-edit.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-font.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-index.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-orientation-landscape.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-orientation-portrait.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-orientation-reverse-landscape.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-orientation-reverse-portrait.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-page-setup.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-preferences.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-select-color.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-select-font.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-undelete-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/gtk-undelete-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/help-about.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/help-contents.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/image-missing.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/list-add.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/list-remove.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-floppy.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-optical.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-playback-pause.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-playback-start-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-playback-start-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-playback-stop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-record.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-seek-backward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-seek-backward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-seek-forward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-seek-forward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-skip-backward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-skip-backward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-skip-forward-ltr.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/media-skip-forward-rtl.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/network-idle.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/printer-error.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/printer-info.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/printer-paused.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/printer-warning.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/process-stop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/system-run.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/text-x-generic.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/tools-check-spelling.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/user-desktop.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/user-home.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/view-fullscreen.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/view-refresh.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/view-restore.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/view-sort-ascending.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/view-sort-descending.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/window-close.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/zoom-fit-best.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/zoom-in.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/zoom-original.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/24/zoom-out.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/32/gtk-dnd-multiple.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/32/gtk-dnd.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/48/dialog-error.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/48/dialog-information.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/48/dialog-password.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/48/dialog-question.png \ - packaging/macosx/Resources-extras/src/icons/stock-icons/48/dialog-warning.png \ - packaging/macosx/ScriptExec/English.lproj/InfoPlist.strings \ - packaging/macosx/ScriptExec/English.lproj/main.nib/classes.nib \ - packaging/macosx/ScriptExec/English.lproj/main.nib/info.nib \ - packaging/macosx/ScriptExec/English.lproj/main.nib/objects.xib \ - packaging/macosx/ScriptExec/Info.plist \ - packaging/macosx/ScriptExec/MenuBar.nib/classes.nib \ - packaging/macosx/ScriptExec/MenuBar.nib/info.nib \ - packaging/macosx/ScriptExec/MenuBar.nib/objects.xib \ - packaging/macosx/ScriptExec/ScriptExec.xcodeproj/project.pbxproj \ - packaging/macosx/ScriptExec/ScriptExec_Prefix.pch \ - packaging/macosx/ScriptExec/launcher-quartz-no-macintegration.sh \ - packaging/macosx/ScriptExec/main.c \ - packaging/macosx/ScriptExec/openDoc \ - packaging/macosx/ScriptExec/script \ - packaging/macosx/ScriptExec/version.plist \ - packaging/macosx/create-stock-icon-theme.sh \ - packaging/macosx/dmg_background.png \ - packaging/macosx/dmg_background.svg \ - packaging/macosx/dmg_set_style.scpt \ - packaging/macosx/inkscape.ds_store \ - packaging/macosx/osx-app.sh \ - packaging/macosx/osx-build.sh \ - packaging/macosx/osx-dmg.sh \ - packaging/macosx/ports/_resources/port1.0/group/python-1.0.tcl \ - packaging/macosx/ports/devel/dbus-python/Portfile \ - packaging/macosx/ports/devel/inkscape-packaging/Portfile \ - packaging/macosx/ports/lang/python25/Portfile \ - packaging/macosx/ports/lang/python25/files/_localemodule.c.ed \ - packaging/macosx/ports/lang/python25/files/locale.py.ed \ - packaging/macosx/ports/lang/python25/files/patch-64bit.diff \ - packaging/macosx/ports/lang/python25/files/patch-FSIORefNum.diff \ - packaging/macosx/ports/lang/python25/files/patch-Lib-cgi.py.diff \ - packaging/macosx/ports/lang/python25/files/patch-Lib-distutils-dist.py.diff \ - packaging/macosx/ports/lang/python25/files/patch-Makefile.pre.in.diff \ - packaging/macosx/ports/lang/python25/files/patch-Misc-setuid-prog.c.diff \ - packaging/macosx/ports/lang/python25/files/patch-Modules-posixmodule.c.diff \ - packaging/macosx/ports/lang/python25/files/patch-configure.diff \ - packaging/macosx/ports/lang/python25/files/patch-fwrapv.diff \ - packaging/macosx/ports/lang/python25/files/patch-libedit.diff \ - packaging/macosx/ports/lang/python25/files/patch-mac_ver.diff \ - packaging/macosx/ports/lang/python25/files/patch-pyconfig.h.in.diff \ - packaging/macosx/ports/lang/python25/files/patch-setup.py-disabled_modules.diff \ - packaging/macosx/ports/lang/python25/files/patch-setup.py.diff \ - packaging/macosx/ports/lang/python25/files/pyconfig.ed \ - packaging/macosx/ports/lang/python25/files/pyconfig.h-universal.ed \ - packaging/macosx/ports/lang/python25/files/python25 \ - packaging/macosx/ports/lang/python26/Portfile \ - packaging/macosx/ports/lang/python26/files/patch-Lib-cgi.py.diff \ - packaging/macosx/ports/lang/python26/files/patch-Lib-distutils-dist.py.diff \ - packaging/macosx/ports/lang/python26/files/patch-Mac-IDLE-Makefile.in.diff \ - packaging/macosx/ports/lang/python26/files/patch-Mac-Makefile.in.diff \ - packaging/macosx/ports/lang/python26/files/patch-Mac-PythonLauncher-Makefile.in.diff \ - packaging/macosx/ports/lang/python26/files/patch-Mac-Tools-Doc-setup.py.diff \ - packaging/macosx/ports/lang/python26/files/patch-Makefile.pre.in.diff \ - packaging/macosx/ports/lang/python26/files/patch-setup.py.diff \ - packaging/macosx/ports/lang/python26/files/pyconfig.ed \ - packaging/macosx/ports/lang/python26/files/python26 \ - packaging/macosx/ports/lang/python26/files/version.plist \ - packaging/macosx/ports/python/py-Pillow/Portfile \ - packaging/macosx/ports/python/py-Pillow/files/patch-setup.py.diff \ - packaging/macosx/ports/python/py-gobject/Portfile \ - packaging/macosx/ports/python/py-gobject/files/00git_class_init.patch \ - packaging/macosx/ports/python/py-gobject/files/00git_fix_qdata_warning.patch \ - packaging/macosx/ports/python/py-gobject/files/00git_gio_flag_type.patch \ - packaging/macosx/ports/python/py-gobject/files/patch-pygi-info.c-p1.diff \ - packaging/macosx/ports/python/py-numpy/Portfile \ - packaging/macosx/ports/python/py-numpy/files/patch-f2py_setup.py.diff \ - packaging/macosx/ports/python/py-numpy/files/patch-fcompiler_g95.diff \ - packaging/macosx/ports/python/py-numpy/files/patch-numpy_core_setup.py.diff \ - packaging/macosx/ports/python/py-numpy/files/patch-numpy_linalg_setup.py.diff \ - packaging/macosx/ports/python/py-numpy/files/wrapper-template \ - packaging/macosx/ports/python/py-sk1libs/Portfile \ - packaging/macosx/ports/python/py-sk1libs/files/patch-src-imaging-libimagingft-_imagingft.c.diff \ - packaging/macosx/ports/python/py-sk1libs/files/patch-src-utils-fs.py.diff \ - packaging/macosx/ports/python/py-uniconvertor/Portfile \ - packaging/macosx/ports/python/py25-Pillow/Portfile \ - packaging/macosx/ports/python/py25-Pillow/files/patch-_imagingft.c.diff \ - packaging/macosx/ports/python/py25-Pillow/files/patch-setup.py-v1.7.8.diff \ - packaging/macosx/ports/python/py25-lxml/Portfile \ - packaging/macosx/ports/python/py25-nose/Portfile \ - packaging/macosx/ports/python/py25-nose/files/nosetests24 \ - packaging/macosx/ports/python/py25-nose/files/nosetests25 \ - packaging/macosx/ports/python/py25-nose/files/nosetests26 \ - packaging/macosx/ports/python/py25-nose/files/nosetests27 \ - packaging/macosx/ports/python/py25-nose/files/nosetests31 \ - packaging/macosx/ports/python/py25-nose/files/nosetests32 \ - packaging/macosx/ports/python/py25-nose/files/nosetests33 \ - packaging/macosx/ports/python/py25-nose/files/nosetests34 \ - packaging/macosx/ports/python/py25-numpy/Portfile \ - packaging/macosx/ports/python/py25-numpy/files/patch-f2py_setup.py.diff \ - packaging/macosx/ports/python/py25-numpy/files/patch-fcompiler_g95.diff \ - packaging/macosx/ports/python/py25-numpy/files/patch-numpy_distutils_fcompiler___init__.py.diff \ - packaging/macosx/ports/python/py25-numpy/files/patch-numpy_linalg_setup.py.diff \ - packaging/macosx/ports/python/py25-numpy/files/patch-setup.py.diff \ - packaging/macosx/ports/python/py25-numpy/files/wrapper-template \ - packaging/macosx/ports/python/py25-setuptools/Portfile \ - packaging/macosx/ports/python/py26-cython/Portfile \ - packaging/macosx/ports/python/py26-cython/files/cython24 \ - packaging/macosx/ports/python/py26-cython/files/cython25 \ - packaging/macosx/ports/python/py26-cython/files/cython26 \ - packaging/macosx/ports/python/py26-cython/files/cython27 \ - packaging/macosx/ports/python/py26-cython/files/cython31 \ - packaging/macosx/ports/python/py26-cython/files/cython32 \ - packaging/macosx/ports/python/py26-cython/files/cython33 \ - packaging/macosx/ports/python/py26-cython/files/cython34 \ - packaging/macosx/ports/python/py26-lxml/Portfile \ - packaging/macosx/ports/python/py26-nose/Portfile \ - packaging/macosx/ports/python/py26-nose/files/nosetests24 \ - packaging/macosx/ports/python/py26-nose/files/nosetests25 \ - packaging/macosx/ports/python/py26-nose/files/nosetests26 \ - packaging/macosx/ports/python/py26-nose/files/nosetests27 \ - packaging/macosx/ports/python/py26-nose/files/nosetests31 \ - packaging/macosx/ports/python/py26-nose/files/nosetests32 \ - packaging/macosx/ports/python/py26-nose/files/nosetests33 \ - packaging/macosx/ports/python/py26-nose/files/nosetests34 \ - packaging/macosx/ports/python/py26-numpy/Portfile \ - packaging/macosx/ports/python/py26-numpy/files/patch-f2py_setup.py.diff \ - packaging/macosx/ports/python/py26-numpy/files/patch-fcompiler_g95.diff \ - packaging/macosx/ports/python/py26-numpy/files/patch-numpy_core_setup.py.diff \ - packaging/macosx/ports/python/py26-numpy/files/patch-numpy_linalg_setup.py.diff \ - packaging/macosx/ports/python/py26-numpy/files/wrapper-template \ - packaging/macosx/ports/python/py26-setuptools/Portfile \ - packaging/win32/inkscape.nsi \ - packaging/win32/inkscape.nsi.uninstall \ - packaging/win32/languages/Breton.nsh \ - packaging/win32/languages/Catalan.nsh \ - packaging/win32/languages/Czech.nsh \ - packaging/win32/languages/Danish.nsh \ - packaging/win32/languages/Dutch.nsh \ - packaging/win32/languages/English.nsh \ - packaging/win32/languages/Finnish.nsh \ - packaging/win32/languages/French.nsh \ - packaging/win32/languages/Galician.nsh \ - packaging/win32/languages/German.nsh \ - packaging/win32/languages/Greek.nsh \ - packaging/win32/languages/Hebrew.nsh \ - packaging/win32/languages/Indonesian.nsh \ - packaging/win32/languages/Icelandic.nsh \ - packaging/win32/languages/Italian.nsh \ - packaging/win32/languages/Japanese.nsh \ - packaging/win32/languages/Polish.nsh \ - packaging/win32/languages/Portuguese.nsh \ - packaging/win32/languages/PortugueseBR.nsh \ - packaging/win32/languages/Romanian.nsh \ - packaging/win32/languages/Russian.nsh \ - packaging/win32/languages/Slovak.nsh \ - packaging/win32/languages/Slovenian.nsh \ - packaging/win32/languages/Spanish.nsh \ - packaging/win32/languages/SimpChinese.nsh \ - packaging/win32/languages/TradChinese.nsh \ - packaging/win32/languages/Ukrainian.nsh \ - packaging/win32/header.bmp \ - packaging/win32/header.svg \ - packaging/win32/AdvUninstLog.nsh \ - packaging/win32/AdvUninstLog.txt \ - packaging/win32/ifexist.nsh \ - packaging/win32/md5dll.dll \ - packaging/win32/md5dll.txt \ - packaging/win32/messagebox.dll \ - packaging/win32/MessageBox.txt \ - packaging/win32/RequireLatestNSIS.nsh \ - packaging/win32/VersionCompleteXXXX.nsh \ - packaging/win32/welcomefinish.bmp \ - packaging/win32/welcomefinish.svg \ - packaging/win32/portable/help.html \ - packaging/win32/portable/readme.packaging.txt \ - packaging/win32/portable/App/readme.txt \ - packaging/win32/portable/App/AppInfo/appicon.ico \ - packaging/win32/portable/App/AppInfo/appicon_16.png \ - packaging/win32/portable/App/AppInfo/appicon_32.png \ - packaging/win32/portable/App/AppInfo/appinfo.ini \ - packaging/win32/portable/App/AppInfo/installer.ini \ - packaging/wix/README \ - packaging/wix/inkscape.wxs \ - packaging/wix/gpl-2.0.rtf \ - packaging/wix/install.bat \ - packaging/wix/files.py \ - packaging/wix/version.py \ - packaging/wix/next_uuid.py \ - packaging/wix/wixenv.bat \ - packaging/wix/Bitmaps/banner.bmp \ - packaging/wix/Bitmaps/banner.svg \ - packaging/wix/Bitmaps/dialog.bmp \ - packaging/wix/Bitmaps/dialog.svg \ - po/inkscape.pot \ - po/update_po_files.sh \ - src/inkscape.rc src/inkview.rc src/inkscape-x64.rc src/inkview-x64.rc - -# We want the built inkscape.1 to go in the distributed .tar.gz so -# that .tar.gz users don't need a full perl distribution to get a man -# page. - -DISTCLEANFILES = inkscape.appdata.xml \ - inkscape.desktop \ - intltool-extract \ - intltool-merge \ - intltool-update - -#ACLOCAL_AMFLAGS = -I m4 - -SUFFIXES = .pod .1 -inkscape.1 inkscape.de.1 inkscape.el.1 inkscape.fr.1 inkscape.ja.1 inkscape.sk.1 inkscape.zh_TW.1 : fix-roff-punct Makefile.am AUTHORS -.pod.1: - set -e; \ - d=`sed -n 's,/,-,g;s,.*\$$[D]ate: \(..........\).*,\1,p' $<`; \ - pod2man --utf8 $< \ - | sed 's/^\.TH .*/.TH INKSCAPE 1 "'"$$d"'" "Inkscape-$(VERSION)" "Inkscape"/' \ - | perl -pe 'if (/^\[\% .*INCLUDE.*AUTHORS.* \%\]/) { open(FOO, "$(srcdir)/AUTHORS");$$_ = join(",\n", map { chomp; $$_ } ) . "\n"; }' \ - | perl $(srcdir)/fix-roff-punct \ - > tmp.$$$$ \ - && mv -f tmp.$$$$ $@ -# ut8-to-roff removed (groff now supports utf8). -# | perl -CI $(srcdir)/utf8-to-roff \ -# man 7 groff_char for further remarks on charset encoding for man pages. - -po/inkscape.pot: - (cd $(srcdir)/po ; intltool-update --pot --output-file=$(distdir)/po/inkscape.pot) - -mande_DATA = inkscape.de.1 -mandedir = $(mandir)/de/man1 - -manel_DATA = inkscape.el.1 -maneldir = $(mandir)/el/man1 - -manfr_DATA = inkscape.fr.1 -manfrdir = $(mandir)/fr/man1 - -manja_DATA = inkscape.ja.1 -manjadir = $(mandir)/ja/man1 - -mansk_DATA = inkscape.ja.1 -manskdir = $(mandir)/sk/man1 - -manzhtw_DATA = inkscape.zh_TW.1 -manzhtwdir = $(mandir)/zh_TW/man1 - -#.PHONY: warn_markup -noinst_DATA = warn_markup -warn_markup: - @if perl $(srcdir)/po/check-markup $(srcdir)/po/*.po; [ $$? = 1 ]; then \ - echo "WARNING: Bad markup found in translations. Please consider fixing the above problems." >&2; \ - fi - -.PHONY: check_markup -check_DATA = check_markup -check_markup: - perl $(srcdir)/po/check-markup $(srcdir)/po/*.po || [ $$? = 127 ] -# # `make check' probably shouldn't require perl to be installed, hence ignoring 127. - -distcheck-hook: - perl $(srcdir)/po/check-markup $(srcdir)/po/*.po - -test-check-markup: - if perl -e 42; then \ - perl $(srcdir)/po/check-markup $(srcdir)/po/bad.po.test 2>&1 \ - | diff $(srcdir)/po/bad.po.test.exp -; \ - fi diff --git a/README b/README index ca958d44a..77791f12f 100644 --- a/README +++ b/README @@ -32,14 +32,6 @@ Inkscape version 0.92 and newer can be build using cmake: make make install -We also still include autoconf in 0.92 as an alternate build system, in -case anything goes haywire with the new cmake scripts: - - ./autogen.sh # Optional, use if configure doesn't exist - ./configure - make - make install - For platform specific instructions please read the README file that is associated with that platform (e.g. for Mac OS X read README.osx) diff --git a/acinclude.m4 b/acinclude.m4 deleted file mode 100644 index 36275e22f..000000000 --- a/acinclude.m4 +++ /dev/null @@ -1,3 +0,0 @@ -m4_include([m4/ac_define_dir.m4]) -m4_include([m4/relaytool.m4]) -m4_include([m4/ink_bzr_snapshot_build.m4]) diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 0a9cb7924..000000000 --- a/autogen.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -# This script does all the magic calls to automake/autoconf and -# friends that are needed to configure a cvs checkout. As described in -# the file HACKING you need a couple of extra tools to run this script -# successfully. -# -# If you are compiling from a released tarball you don't need these -# tools and you shouldn't use this script. Just call ./configure -# directly. - -test -n "$srcdir" || srcdir=`dirname "$0"` -test -n "$srcdir" || srcdir=. - -olddir=`pwd` -cd $srcdir - -WHICH_AUTORECONF=`which autoreconf` -if test -z $WHICH_AUTORECONF; then - echo "*** No autoreconf found, please install it ***" - exit 1 -fi - -WHICH_INTLTOOLIZE=`which intltoolize` -if test -z $WHICH_INTLTOOLIZE; then - echo "*** No intltoolize found, please install the intltool package ***" - exit 1 -fi - -WHICH_AUTOPOINT=`which autopoint` -if test -z $WHICH_AUTOPOINT; then - echo "*** No autopoint found, please install the autopoint package ***" - exit 1 -fi - -autopoint --force -AUTOPOINT='intltoolize --automake --copy' autoreconf --force --install --verbose - -# Patch the generated po/Makefile.in.in file so that locale files are installed -# in the correct location on OS X and Free-BSD systems. This is a workaround -# for a bug in intltool. See https://launchpad.net/bugs/398571 -# -# The issue should be fixed in intltool 0.51.0. -# -# TODO: Drop this hack, and bump our intltool version requirement once the issue -# is fixed in intltool -sed 's/itlocaledir = $(prefix)\/$(DATADIRNAME)\/locale/itlocaledir = $(datarootdir)\/locale/' < po/Makefile.in.in > po/Makefile.in.in.tmp -mv po/Makefile.in.in.tmp po/Makefile.in.in - -echo "" -echo "Done! Please run './configure' now." diff --git a/build-lx.xml b/build-lx.xml deleted file mode 100644 index 01be2d0fd..000000000 --- a/build-lx.xml +++ /dev/null @@ -1,590 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This version - is configured for Unix/Linux, but hopefully we can merge - in the future. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #define INKSCAPE_VERSION "${version}, revision ${svn.revision}" - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_ZLIB_H 1 - - #define ENABLE_LCMS 1 - - #define WITH_GTKMM_2_24 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* make us relocatable */ - #define BR_PTHREADS 1 - #define ENABLE_BINRELOC 1 - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Allow reading WordPerfect? */ - #define WITH_LIBWPG 1 - - /* Default to libwpg 0.1.x */ - #define WITH_LIBWPG01 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch - -O2 - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - - - -I${devlibs}/include - - ${pcc.gtkmm-2.4} - - ${pcc.libxslt} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - ${pcc.libwpg-0.1} ${pcc.libwpg-stream-0.1} - - -I${devlibs}/python/include - - -I${src}/bind/javainc -I${src}/bind/javainc/linux - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler} ${pcl.poppler-cairo} ${pcl.poppler-glib} - ${pcl.gtkmm-2.4} - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.gthread-2.0} - ${pcl.libxslt} - ${pcl.libwpg-0.1} ${pcl.libwpg-stream-0.1} - ${pcl.ImageMagick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms} - ${pcl.gsl} - -lssl -lcrypto - -lpng -ljpeg -ltiff -lpopt -lz - -lgc -lm - - - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler} - ${pcl.gtkmm-2.4} - ${pcl.cairo} ${pcl.cairomm-1.0} - - -L${devlibs}/perl/lib/CORE -lperl58 - - -L${devlibs}/python/libs -lpython25 - -lxml2 -lxslt - -lwpg-0.1 -lwpg-stream-0.1 - ${pcl.ImageMagick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms} - -lssl -lcrypto - -lpng -ljpeg -ltiff -lpopt -lz - -lgc - -lintl -liconv -lm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build-x64.xml b/build-x64.xml deleted file mode 100644 index e1134f841..000000000 --- a/build-x64.xml +++ /dev/null @@ -1,950 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This file - was written for GTK-3 on Win64. - - Note that the default target is 'dist-all'. You can execute other - targets instead, by "btool {target}", like "btool compile", if - you want to save time, or "dist-inkscape" if you don't want inkview. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Inkscape { - char const *version_string = "${version} ${bzr.revision}"; - } - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - #ifndef WIN32 - #define WIN32 - #endif - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_OPENMP 1 - #define HAVE_TR1_UNORDERED_SET 1 - #define HAVE_STDINT_H 1 - - #define HAVE_LIBLCMS2 1 - - #define WITH_GTKMM_3_10 1 - //#define WITH_GLIBMM_2_32 1 - #define HAVE_GLIBMM_THREADS_H 1 - #define WITH_GDL_3_6 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* keep binreloc off */ - #define BR_PTHREADS 0 - #undef ENABLE_BINRELOC - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_GLIB 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Exif and JPEG support for image resolution import */ - #define HAVE_EXIF 1 - #define HAVE_JPEG 1 - - /* WordPerfect import filter */ - #define WITH_LIBWPG 1 - #define WITH_LIBWPG03 1 - - /* Visio import filter */ - #define WITH_LIBVISIO 1 - #define WITH_LIBVISIO01 1 - - /* Corel Draw import filter */ - #define WITH_LIBCDR 1 - #define WITH_LIBCDR01 1 - - /* Do we support SVG Fonts? */ - #define ENABLE_SVG_FONTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ - //#define LPE_ENABLE_TEST_EFFECTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., SVG2 features enabled? */ - //#define WITH_SVG2 1 - //#define WITH_CSSCOMPOSITE 1 - //#define WITH_CSSBLEND 1 - //#define WITH_MESH 1 - - #define HAVE_ASPELL 1 - - #define HAVE_POTRACE 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch - -Werror=return-type - - - -Wno-error=pointer-sign - -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings - - -Wno-error=format -Wno-error=format-extra-args - -Wno-unused-local-typedefs - -O2 - -mms-bitfields - -fopenmp - - - -std=gnu++11 -DCPP11 - -Woverloaded-virtual - - -Wno-deprecated-declarations - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - -DPOPPLER_NEW_GFXFONT - -DPOPPLER_NEW_GFXPATCH - -DPOPPLER_NEW_ERRORAPI - -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API - -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API - - -DGLIBMM_DISABLE_DEPRECATED - -DG_DISABLE_DEPRECATED - -DGTK_DISABLE_SINGLE_INCLUDES - - - -DGDKMM_DISABLE_DEPRECATED - -DGSEAL_ENABLE - - - -I${devlibs}/include - - ${pcc.gtkmm-3.0} - ${pcc.gdkmm-3.0} - ${pcc.gtk+-3.0} - ${pcc.gdk-3.0} - ${pcc.gdl-3.0} - ${pcc.glibmm-2.4} - - - ${pcc.pangomm-1.4} - ${pcc.cairomm-1.0} - - ${pcc.Magick++} - ${pcc.libxml-2.0} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - -I${devlibs}/include/potracelib - ${pcc.libwpg-0.3} ${pcc.libvisio-0.1} ${pcc.libcdr-0.1} - -I${cxxtest} - - - - -I${devlibs}/python/include - - - - - - - - - - - - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows -m64 - -mthreads - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gtkmm-3.0} ${pcl.gdkmm-3.0} - ${pcl.gtk+-3.0} ${pcl.gdk-3.0} - ${pcl.gdl-3.0} - ${devlibs}/bin/libxml2-2.dll - ${devlibs}/bin/libxslt-1.dll - ${devlibs}/bin/libexslt-0.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-stream-0.0} ${pcl.libwpg-0.3} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - ${pcl.glibmm-2.4} - - - ${pcl.pangomm-1.4} - ${pcl.cairomm-1.0} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lwinpthread - -laspell - -lmscms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Settings] -#gtk-font-name = Tahoma 8 -#gtk-theme-name = Adwaita -gtk-menu-images = true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build.xml b/build.xml deleted file mode 100644 index b782183ae..000000000 --- a/build.xml +++ /dev/null @@ -1,920 +0,0 @@ - - - - - - - - Build file for the Inkscape SVG editor. This file - was written for GTK-2.10 on Win32, but it should work - well for other types of builds with only minor adjustments. - Note that the default target is 'dist-all'. You can execute other - targets instead, by "btool {target}", like "btool compile", if - you want to save time, or "dist-inkscape" if you don't want inkview. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namespace Inkscape { - char const *version_string = "${version} ${bzr.revision}"; - } - - - #ifndef _CONFIG_H_ - #define _CONFIG_H_ - - #ifndef WIN32 - #define WIN32 - #endif - - /*###################################### - ## This is for require-config.h, whose - ## purpose I cannot fathom. - ######################################*/ - - #define PACKAGE_TARNAME - - /*###################################### - #### RESOURCE DIRECTORIES - ######################################*/ - - #define INKSCAPE_DATADIR "." - #define PACKAGE_LOCALE_DIR "locale" - - - /*###################################### - #### OTHER DEFINITIONS - ######################################*/ - - #define GETTEXT_PACKAGE "inkscape" - - #define PACKAGE_STRING VERSION - - #define HAVE_GETOPT_H 1 - #define HAVE_STRING_H 1 - #define HAVE_LIBINTL_H 1 - #define HAVE_MALLOC_H 1 - #define HAVE_STDLIB_H 1 - #define HAVE_SYS_STAT_H 1 - #define HAVE_INTTYPES_H 1 - #define HAVE_OPENMP 1 - #define HAVE_TR1_UNORDERED_SET 1 - - #define HAVE_LIBLCMS2 1 - - #define ENABLE_NLS 1 - #define HAVE_BIND_TEXTDOMAIN_CODESET 1 - - /* keep binreloc off */ - #define BR_PTHREADS 0 - #undef ENABLE_BINRELOC - - /* CairoPDF options */ - #define HAVE_CAIRO_PDF 1 - #define PANGO_ENABLE_ENGINE 1 - #define RENDER_WITH_PANGO_CAIRO 1 - - #define HAVE_GTK_WINDOW_FULLSCREEN 1 - - /* internal interpreter */ - #define WITH_PYTHON 1 - - /* use poppler for pdf import? */ - #define HAVE_POPPLER 1 - #define HAVE_POPPLER_GLIB 1 - #define HAVE_POPPLER_CAIRO 1 - - /* do we want bitmap manipulation? */ - #define WITH_IMAGE_MAGICK 1 - - /* Exif and JPEG support for image resolution import */ - #define HAVE_EXIF 1 - #define HAVE_JPEG 1 - - /* Allow reading WordPerfect? */ - #define WITH_LIBWPG 1 - - /* Default to libwpg 0.2.x */ - #define WITH_LIBWPG02 1 - - /* Visio import filter */ - #define WITH_LIBVISIO 1 - /* Librevenge based filter */ - #define WITH_LIBVISIO01 1 - - /* Corel Draw import filter */ - #define WITH_LIBCDR 1 - /* Librevenge based filter */ - #define WITH_LIBCDR01 1 - - /* Do we support SVG Fonts? */ - #define ENABLE_SVG_FONTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ - //#define LPE_ENABLE_TEST_EFFECTS 1 - - /* Do we want experimental, unsupported, unguaranteed, etc., SVG2 features enabled? */ - //#define WITH_SVG2 1 - //#define WITH_CSSCOMPOSITE 1 - //#define WITH_CSSBLEND 1 - //#define WITH_MESH 1 - - #define HAVE_ASPELL 1 - - #define HAVE_POTRACE 1 - - #endif /* _CONFIG_H_ */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch - -Werror=return-type - - - -Wno-error=pointer-sign - -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings - - -Wno-error=format -Wno-error=format-extra-args - -O2 - -mms-bitfields - -fopenmp - - - - -Woverloaded-virtual - - - -DVERSION=\"${version}\" - -DHAVE_CONFIG_H - -D_INTL_REDIRECT_INLINE - -DHAVE_SSL - -DRELAYTOOL_SSL="static const int libssl_is_present=1; static int __attribute__((unused)) libssl_symbol_is_present(char *s){ return 1; }" - -DPOPPLER_NEW_GFXFONT - -DPOPPLER_NEW_GFXPATCH - -DPOPPLER_NEW_ERRORAPI - -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API - -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API - - -DGLIBMM_DISABLE_DEPRECATED - -DG_DISABLE_DEPRECATED - -DGTK_DISABLE_SINGLE_INCLUDES - - - -DGDKMM_DISABLE_DEPRECATED - -DGSEAL_ENABLE - - - -I${devlibs}/include - - ${pcc.gtkmm-2.4} - ${pcc.gmodule-2.0} - - ${pcc.Magick++} - ${pcc.libxml-2.0} - ${pcc.freetype2} - ${pcc.cairo} - ${pcc.poppler} - -I${devlibs}/include/gc - -I${devlibs}/include/potracelib - ${pcc.librevenge-0.0} ${pcc.librevenge-stream-0.0} - ${pcc.libwpg-0.2} ${pcc.libvisio-0.1} ${pcc.libcdr-0.1} - -I${cxxtest} - - - - -I${devlibs}/python/include - - - - - - - - - - - - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows - -mthreads - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gmodule-2.0} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - - - --include-dir=${src} - - - - - -mwindows - -mthreads - - - - - - - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gmodule-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - - - -mconsole - -mthreads - - - - - - - - - - - - -L${devlibs}/lib - ${pcl.poppler-cairo} ${pcl.poppler-glib} ${pcl.poppler} - ${pcl.gtkmm-2.4} ${pcl.pangoft2} ${pcl.gthread-2.0} - ${pcl.gmodule-2.0} - ${devlibs}/bin/libxml2.dll - ${devlibs}/bin/libxslt.dll - ${devlibs}/bin/libexslt.dll - ${pcl.cairo} ${pcl.cairomm-1.0} - ${pcl.librevenge-0.0} ${pcl.librevenge-stream-0.0} - ${pcl.libwpg-0.2} ${pcl.libvisio-0.1} ${pcl.libcdr-0.1} - -liconv - ${pcl.Magick++} - ${pcl.fontconfig} ${pcl.freetype2} - ${pcl.lcms2} - ${pcl.gsl} - -lpng -ljpeg -ltiff -lexif -lpopt -lz - -lgc -lpotrace - -lws2_32 -lintl -lgdi32 -lcomdlg32 -lm - -lgomp -lpthreadGC2 -laspell - -lmscms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gtk-icon-sizes = "gtk-menu=16,16:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32:inkscape-decoration=16,16" - gtk-toolbar-icon-size = small-toolbar - - # disable images in buttons. i've only seen ugly delphi apps use this feature. - gtk-button-images = 0 - - # disable the annoying beep in editable controls - gtk-error-bell = 0 - - # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly. - # the office apps use them heavily, though. - gtk-menu-images = 1 - - # use the win32 button ordering instead of the GNOME HIG one, where applicable - gtk-alternative-button-order = 1 - - style "msw-default" - { - GtkWidget::interior-focus = 1 - GtkOptionMenu::indicator-size = { 9, 5 } - GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } - GtkSpinButton::shadow-type = in - - # Owen and I disagree that these should be themable - #GtkUIManager::add-tearoffs = 0 - #GtkComboBox::add-tearoffs = 0 - - GtkComboBox::appears-as-list = 1 - GtkComboBox::focus-on-click = 0 - - GOComboBox::add_tearoffs = 0 - - GtkTreeView::allow-rules = 0 - GtkTreeView::expander-size = 12 - - GtkExpander::expander-size = 12 - - GtkScrolledWindow::scrollbar_spacing = 1 - - GtkSeparatorMenuItem::horizontal-padding = 2 - - engine "wimp" - { - } - } - class "*" style "msw-default" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/buildtool.cpp b/buildtool.cpp deleted file mode 100644 index a64340e24..000000000 --- a/buildtool.cpp +++ /dev/null @@ -1,10334 +0,0 @@ -/** - * Simple build automation tool. - * - * Authors: - * Bob Jamison - * Jasper van de Gronde - * Johan Engelen - * - * Copyright (C) 2006-2008 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * To use this file, compile with: - *
- * g++ -O3 buildtool.cpp -o btool.exe -fopenmp
- * (or whatever your compiler might be)
- * Then
- * btool
- * or
- * btool {target}
- *
- * Note: if you are using MinGW, and a not very recent version of it,
- * gettimeofday() might be missing.  If so, just build this file with
- * this command:
- * g++ -O3 -DNEED_GETTIMEOFDAY buildtool.cpp -o btool.exe -fopenmp
- *
- */
-
-#define BUILDTOOL_VERSION  "BuildTool v0.9.9multi"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-
-#ifdef __WIN32__
-#define WIN32_LEAN_AND_MEAN
-#define NOGDI
-#include 
-#endif
-
-#include 
-
-
-//########################################################################
-//# Definition of gettimeofday() for those who don't have it
-//########################################################################
-#ifdef NEED_GETTIMEOFDAY
-#include 
-
-struct timezone {
-      int tz_minuteswest; /* minutes west of Greenwich */
-      int tz_dsttime;     /* type of dst correction */
-    };
-
-static int gettimeofday (struct timeval *tv, struct timezone *tz)
-{
-   struct _timeb tb;
-
-   if (!tv)
-      return (-1);
-
-    _ftime (&tb);
-    tv->tv_sec  = tb.time;
-    tv->tv_usec = tb.millitm * 1000 + 500;
-    if (tz)
-        {
-        tz->tz_minuteswest = -60 * _timezone;
-        tz->tz_dsttime = _daylight;
-        }
-    return 0;
-}
-
-#endif
-
-
-
-
-
-
-
-namespace buildtool
-{
-
-
-
-
-//########################################################################
-//########################################################################
-//##  R E G E X P
-//########################################################################
-//########################################################################
-
-/**
- * This is the SLRE (Super Light Regular Expression library)
- * SLRE is an ISO C library that implements a subset of Perl
- * regular expression syntax.
- *
- * See https://github.com/cesanta/slre for details
- *
- * It's clean code and small size allow us to
- * embed it in BuildTool without adding a dependency
- *
- */    
-
-//begin slre.h
-
-/*
- * Copyright (c) 2004-2013 Sergey Lyubka 
- * Copyright (c) 2013 Cesanta Software Limited
- * All rights reserved
- *
- * This library is dual-licensed: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation. For the terms of this
- * license, see .
- *
- * You are free to use this library under the terms of the GNU General
- * Public License, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * Alternatively, you can license this library under a commercial
- * license, as set out in .
- */
-
-/*
- * This is a regular expression library that implements a subset of Perl RE.
- * Please refer to README.md for a detailed reference.
- */
-
-#ifndef SLRE_HEADER_DEFINED
-#define SLRE_HEADER_DEFINED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct slre_cap {
-  const char *ptr;
-  int len;
-};
-
-
-int slre_match(const char *regexp, const char *buf, int buf_len,
-               struct slre_cap *caps, int num_caps, int flags);
-
-/* Possible flags for slre_match() */
-enum { SLRE_IGNORE_CASE = 1 };
-
-
-/* slre_match() failure codes */
-#define SLRE_NO_MATCH               -1
-#define SLRE_UNEXPECTED_QUANTIFIER  -2
-#define SLRE_UNBALANCED_BRACKETS    -3
-#define SLRE_INTERNAL_ERROR         -4
-#define SLRE_INVALID_CHARACTER_SET  -5
-#define SLRE_INVALID_METACHARACTER  -6
-#define SLRE_CAPS_ARRAY_TOO_SMALL   -7
-#define SLRE_TOO_MANY_BRANCHES      -8
-#define SLRE_TOO_MANY_BRACKETS      -9
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* SLRE_HEADER_DEFINED */
-
-//end slre.h
-
-//start slre.c
-
-/*
- * Copyright (c) 2004-2013 Sergey Lyubka 
- * Copyright (c) 2013 Cesanta Software Limited
- * All rights reserved
- *
- * This library is dual-licensed: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation. For the terms of this
- * license, see .
- *
- * You are free to use this library under the terms of the GNU General
- * Public License, but WITHOUT ANY WARRANTY; without even the implied
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * Alternatively, you can license this library under a commercial
- * license, as set out in .
- */
-
-#include 
-#include 
-#include 
-
-//#include "slre.h"
-
-#define MAX_BRANCHES 100
-#define MAX_BRACKETS 100
-#define FAIL_IF(condition, error_code) if (condition) return (error_code)
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(ar) (sizeof(ar) / sizeof((ar)[0]))
-#endif
-
-#ifdef SLRE_DEBUG
-#define DBG(x) printf x
-#else
-#define DBG(x)
-#endif
-
-struct bracket_pair {
-  const char *ptr;  /* Points to the first char after '(' in regex  */
-  int len;          /* Length of the text between '(' and ')'       */
-  int branches;     /* Index in the branches array for this pair    */
-  int num_branches; /* Number of '|' in this bracket pair           */
-};
-
-struct branch {
-  int bracket_index;    /* index for 'struct bracket_pair brackets' */
-                        /* array defined below                      */
-  const char *schlong;  /* points to the '|' character in the regex */
-};
-
-struct regex_info {
-  /*
-   * Describes all bracket pairs in the regular expression.
-   * First entry is always present, and grabs the whole regex.
-   */
-  struct bracket_pair brackets[MAX_BRACKETS];
-  int num_brackets;
-
-  /*
-   * Describes alternations ('|' operators) in the regular expression.
-   * Each branch falls into a specific branch pair.
-   */
-  struct branch branches[MAX_BRANCHES];
-  int num_branches;
-
-  /* Array of captures provided by the user */
-  struct slre_cap *caps;
-  int num_caps;
-
-  /* E.g. SLRE_IGNORE_CASE. See enum below */
-  int flags;
-};
-
-static int is_metacharacter(const unsigned char *s) {
-  static const char *metacharacters = "^$().[]*+?|\\Ssdbfnrtv";
-  return strchr(metacharacters, *s) != NULL;
-}
-
-static int op_len(const char *re) {
-  return re[0] == '\\' && re[1] == 'x' ? 4 : re[0] == '\\' ? 2 : 1;
-}
-
-static int set_len(const char *re, int re_len) {
-  int len = 0;
-
-  while (len < re_len && re[len] != ']') {
-    len += op_len(re + len);
-  }
-
-  return len <= re_len ? len + 1 : -1;
-}
-
-static int get_op_len(const char *re, int re_len) {
-  return re[0] == '[' ? set_len(re + 1, re_len - 1) + 1 : op_len(re);
-}
-
-static int is_quantifier(const char *re) {
-  return re[0] == '*' || re[0] == '+' || re[0] == '?';
-}
-
-static int toi(int x) {
-  return isdigit(x) ? x - '0' : x - 'W';
-}
-
-static int hextoi(const unsigned char *s) {
-  return (toi(tolower(s[0])) << 4) | toi(tolower(s[1]));
-}
-
-static int match_op(const unsigned char *re, const unsigned char *s,
-                    struct regex_info *info) {
-  int result = 0;
-  switch (*re) {
-    case '\\':
-      /* Metacharacters */
-      switch (re[1]) {
-        case 'S': FAIL_IF(isspace(*s), SLRE_NO_MATCH); result++; break;
-        case 's': FAIL_IF(!isspace(*s), SLRE_NO_MATCH); result++; break;
-        case 'd': FAIL_IF(!isdigit(*s), SLRE_NO_MATCH); result++; break;
-        case 'b': FAIL_IF(*s != '\b', SLRE_NO_MATCH); result++; break;
-        case 'f': FAIL_IF(*s != '\f', SLRE_NO_MATCH); result++; break;
-        case 'n': FAIL_IF(*s != '\n', SLRE_NO_MATCH); result++; break;
-        case 'r': FAIL_IF(*s != '\r', SLRE_NO_MATCH); result++; break;
-        case 't': FAIL_IF(*s != '\t', SLRE_NO_MATCH); result++; break;
-        case 'v': FAIL_IF(*s != '\v', SLRE_NO_MATCH); result++; break;
-
-        case 'x':
-          /* Match byte, \xHH where HH is hexadecimal byte representaion */
-          FAIL_IF(hextoi(re + 2) != *s, SLRE_NO_MATCH);
-          result++;
-          break;
-
-        default:
-          /* Valid metacharacter check is done in bar() */
-          FAIL_IF(re[1] != s[0], SLRE_NO_MATCH);
-          result++;
-          break;
-      }
-      break;
-
-    case '|': FAIL_IF(1, SLRE_INTERNAL_ERROR); break;
-    case '$': FAIL_IF(1, SLRE_NO_MATCH); break;
-    case '.': result++; break;
-
-    default:
-      if (info->flags & SLRE_IGNORE_CASE) {
-        FAIL_IF(tolower(*re) != tolower(*s), SLRE_NO_MATCH);
-      } else {
-        FAIL_IF(*re != *s, SLRE_NO_MATCH);
-      }
-      result++;
-      break;
-  }
-
-  return result;
-}
-
-static int match_set(const char *re, int re_len, const char *s,
-                     struct regex_info *info) {
-  int len = 0, result = -1, invert = re[0] == '^';
-
-  if (invert) re++, re_len--;
-
-  while (len <= re_len && re[len] != ']' && result <= 0) {
-    /* Support character range */
-    if (re[len] != '-' && re[len + 1] == '-' && re[len + 2] != ']' &&
-        re[len + 2] != '\0') {
-      result = info->flags &  SLRE_IGNORE_CASE ?
-        tolower(*s) >= tolower(re[len]) && tolower(*s) <= tolower(re[len + 2]) :
-        *s >= re[len] && *s <= re[len + 2];
-      len += 3;
-    } else {
-      result = match_op((unsigned char *) re + len, (unsigned char *) s, info);
-      len += op_len(re + len);
-    }
-  }
-  return (!invert && result > 0) || (invert && result <= 0) ? 1 : -1;
-}
-
-static int doh(const char *s, int s_len, struct regex_info *info, int bi);
-
-static int bar(const char *re, int re_len, const char *s, int s_len,
-               struct regex_info *info, int bi) {
-  /* i is offset in re, j is offset in s, bi is brackets index */
-  int i, j, n, step;
-
-  for (i = j = 0; i < re_len && j <= s_len; i += step) {
-
-    /* Handle quantifiers. Get the length of the chunk. */
-    step = re[i] == '(' ? info->brackets[bi + 1].len + 2 :
-      get_op_len(re + i, re_len - i);
-
-    DBG(("%s [%.*s] [%.*s] re_len=%d step=%d i=%d j=%d\n", __func__,
-         re_len - i, re + i, s_len - j, s + j, re_len, step, i, j));
-
-    FAIL_IF(is_quantifier(&re[i]), SLRE_UNEXPECTED_QUANTIFIER);
-    FAIL_IF(step <= 0, SLRE_INVALID_CHARACTER_SET);
-
-    if (i + step < re_len && is_quantifier(re + i + step)) {
-      DBG(("QUANTIFIER: [%.*s]%c [%.*s]\n", step, re + i,
-           re[i + step], s_len - j, s + j));
-      if (re[i + step] == '?') {
-        int result = bar(re + i, step, s + j, s_len - j, info, bi);
-        j += result > 0 ? result : 0;
-        i++;
-      } else if (re[i + step] == '+' || re[i + step] == '*') {
-        int j2 = j, nj = j, n1, n2 = -1, ni, non_greedy = 0;
-
-        /* Points to the regexp code after the quantifier */
-        ni = i + step + 1;
-        if (ni < re_len && re[ni] == '?') {
-          non_greedy = 1;
-          ni++;
-        }
-
-        do {
-          if ((n1 = bar(re + i, step, s + j2, s_len - j2, info, bi)) > 0) {
-            j2 += n1;
-          }
-          if (re[i + step] == '+' && n1 < 0) break;
-
-          if (ni >= re_len) {
-            /* After quantifier, there is nothing */
-            nj = j2;
-          } else if ((n2 = bar(re + ni, re_len - ni, s + j2,
-                               s_len - j2, info, bi)) >= 0) {
-            /* Regex after quantifier matched */
-            nj = j2 + n2;
-          }
-          if (nj > j && non_greedy) break;
-        } while (n1 > 0);
-
-        /*
-         * Even if we found one or more pattern, this branch will be executed,
-         * changing the next captures.
-         */
-        if (n1 < 0 && n2 < 0 && re[i + step] == '*' &&
-            (n2 = bar(re + ni, re_len - ni, s + j, s_len - j, info, bi)) > 0) {
-          nj = j + n2;
-        }
-
-        DBG(("STAR/PLUS END: %d %d %d %d %d\n", j, nj, re_len - ni, n1, n2));
-        FAIL_IF(re[i + step] == '+' && nj == j, SLRE_NO_MATCH);
-
-        /* If while loop body above was not executed for the * quantifier,  */
-        /* make sure the rest of the regex matches                          */
-        FAIL_IF(nj == j && ni < re_len && n2 < 0, SLRE_NO_MATCH);
-
-        /* Returning here cause we've matched the rest of RE already */
-        return nj;
-      }
-      continue;
-    }
-
-    if (re[i] == '[') {
-      n = match_set(re + i + 1, re_len - (i + 2), s + j, info);
-      DBG(("SET %.*s [%.*s] -> %d\n", step, re + i, s_len - j, s + j, n));
-      FAIL_IF(n <= 0, SLRE_NO_MATCH);
-      j += n;
-    } else if (re[i] == '(') {
-      n = SLRE_NO_MATCH;
-      bi++;
-      FAIL_IF(bi >= info->num_brackets, SLRE_INTERNAL_ERROR);
-      DBG(("CAPTURING [%.*s] [%.*s] [%s]\n",
-           step, re + i, s_len - j, s + j, re + i + step));
-
-      if (re_len - (i + step) <= 0) {
-        /* Nothing follows brackets */
-        n = doh(s + j, s_len - j, info, bi);
-      } else {
-        int j2;
-        for (j2 = 0; j2 <= s_len - j; j2++) {
-          if ((n = doh(s + j, s_len - (j + j2), info, bi)) >= 0 &&
-              bar(re + i + step, re_len - (i + step),
-                  s + j + n, s_len - (j + n), info, bi) >= 0) break;
-        }
-      }
-
-      DBG(("CAPTURED [%.*s] [%.*s]:%d\n", step, re + i, s_len - j, s + j, n));
-      FAIL_IF(n < 0, n);
-      if (info->caps != NULL && n > 0) {
-        info->caps[bi - 1].ptr = s + j;
-        info->caps[bi - 1].len = n;
-      }
-      j += n;
-    } else if (re[i] == '^') {
-      FAIL_IF(j != 0, SLRE_NO_MATCH);
-    } else if (re[i] == '$') {
-      FAIL_IF(j != s_len, SLRE_NO_MATCH);
-    } else {
-      FAIL_IF(j >= s_len, SLRE_NO_MATCH);
-      n = match_op((unsigned char *) (re + i), (unsigned char *) (s + j), info);
-      FAIL_IF(n <= 0, n);
-      j += n;
-    }
-  }
-
-  return j;
-}
-
-/* Process branch points */
-static int doh(const char *s, int s_len, struct regex_info *info, int bi) {
-  const struct bracket_pair *b = &info->brackets[bi];
-  int i = 0, len, result;
-  const char *p;
-
-  do {
-    p = i == 0 ? b->ptr : info->branches[b->branches + i - 1].schlong + 1;
-    len = b->num_branches == 0 ? b->len :
-      i == b->num_branches ? (int) (b->ptr + b->len - p) :
-      (int) (info->branches[b->branches + i].schlong - p);
-    DBG(("%s %d %d [%.*s] [%.*s]\n", __func__, bi, i, len, p, s_len, s));
-    result = bar(p, len, s, s_len, info, bi);
-    DBG(("%s <- %d\n", __func__, result));
-  } while (result <= 0 && i++ < b->num_branches);  /* At least 1 iteration */
-
-  return result;
-}
-
-static int baz(const char *s, int s_len, struct regex_info *info) {
-  int i, result = -1, is_anchored = info->brackets[0].ptr[0] == '^';
-
-  for (i = 0; i <= s_len; i++) {
-    result = doh(s + i, s_len - i, info, 0);
-    if (result >= 0) {
-      result += i;
-      break;
-    }
-    if (is_anchored) break;
-  }
-
-  return result;
-}
-
-static void setup_branch_points(struct regex_info *info) {
-  int i, j;
-  struct branch tmp;
-
-  /* First, sort branches. Must be stable, no qsort. Use bubble algo. */
-  for (i = 0; i < info->num_branches; i++) {
-    for (j = i + 1; j < info->num_branches; j++) {
-      if (info->branches[i].bracket_index > info->branches[j].bracket_index) {
-        tmp = info->branches[i];
-        info->branches[i] = info->branches[j];
-        info->branches[j] = tmp;
-      }
-    }
-  }
-
-  /*
-   * For each bracket, set their branch points. This way, for every bracket
-   * (i.e. every chunk of regex) we know all branch points before matching.
-   */
-  for (i = j = 0; i < info->num_brackets; i++) {
-    info->brackets[i].num_branches = 0;
-    info->brackets[i].branches = j;
-    while (j < info->num_branches && info->branches[j].bracket_index == i) {
-      info->brackets[i].num_branches++;
-      j++;
-    }
-  }
-}
-
-static int foo(const char *re, int re_len, const char *s, int s_len,
-               struct regex_info *info) {
-  int i, step, depth = 0;
-
-  /* First bracket captures everything */
-  info->brackets[0].ptr = re;
-  info->brackets[0].len = re_len;
-  info->num_brackets = 1;
-
-  /* Make a single pass over regex string, memorize brackets and branches */
-  for (i = 0; i < re_len; i += step) {
-    step = get_op_len(re + i, re_len - i);
-
-    if (re[i] == '|') {
-      FAIL_IF(info->num_branches >= (int) ARRAY_SIZE(info->branches),
-              SLRE_TOO_MANY_BRANCHES);
-      info->branches[info->num_branches].bracket_index =
-        info->brackets[info->num_brackets - 1].len == -1 ?
-        info->num_brackets - 1 : depth;
-      info->branches[info->num_branches].schlong = &re[i];
-      info->num_branches++;
-    } else if (re[i] == '\\') {
-      FAIL_IF(i >= re_len - 1, SLRE_INVALID_METACHARACTER);
-      if (re[i + 1] == 'x') {
-        /* Hex digit specification must follow */
-        FAIL_IF(re[i + 1] == 'x' && i >= re_len - 3,
-                SLRE_INVALID_METACHARACTER);
-        FAIL_IF(re[i + 1] ==  'x' && !(isxdigit(re[i + 2]) &&
-                isxdigit(re[i + 3])), SLRE_INVALID_METACHARACTER);
-      } else {
-        FAIL_IF(!is_metacharacter((unsigned char *) re + i + 1),
-                SLRE_INVALID_METACHARACTER);
-      }
-    } else if (re[i] == '(') {
-      FAIL_IF(info->num_brackets >= (int) ARRAY_SIZE(info->brackets),
-              SLRE_TOO_MANY_BRACKETS);
-      depth++;  /* Order is important here. Depth increments first. */
-      info->brackets[info->num_brackets].ptr = re + i + 1;
-      info->brackets[info->num_brackets].len = -1;
-      info->num_brackets++;
-      FAIL_IF(info->num_caps > 0 && info->num_brackets - 1 > info->num_caps,
-              SLRE_CAPS_ARRAY_TOO_SMALL);
-    } else if (re[i] == ')') {
-      int ind = info->brackets[info->num_brackets - 1].len == -1 ?
-        info->num_brackets - 1 : depth;
-      info->brackets[ind].len = (int) (&re[i] - info->brackets[ind].ptr);
-      DBG(("SETTING BRACKET %d [%.*s]\n",
-           ind, info->brackets[ind].len, info->brackets[ind].ptr));
-      depth--;
-      FAIL_IF(depth < 0, SLRE_UNBALANCED_BRACKETS);
-      FAIL_IF(i > 0 && re[i - 1] == '(', SLRE_NO_MATCH);
-    }
-  }
-
-  FAIL_IF(depth != 0, SLRE_UNBALANCED_BRACKETS);
-  setup_branch_points(info);
-
-  return baz(s, s_len, info);
-}
-
-int slre_match(const char *regexp, const char *s, int s_len,
-               struct slre_cap *caps, int num_caps, int flags) {
-  struct regex_info info;
-
-  /* Initialize info structure */
-  info.flags = flags;
-  info.num_brackets = info.num_branches = 0;
-  info.num_caps = num_caps;
-  info.caps = caps;
-
-  DBG(("========================> [%s] [%.*s]\n", regexp, s_len, s));
-  return foo(regexp, (int) strlen(regexp), s, s_len, &info);
-}
-
-//end slre.c
-
-//########################################################################
-//########################################################################
-//##  E N D    R E G E X P
-//########################################################################
-//########################################################################
-
-
-
-
-
-//########################################################################
-//########################################################################
-//##  X M L
-//########################################################################
-//########################################################################
-
-// Note:  This mini-dom library comes from Pedro, another little project
-// of mine.
-
-typedef std::string String;
-typedef unsigned int XMLCh;
-
-
-class Namespace
-{
-public:
-    Namespace()
-        {}
-
-    Namespace(const String &prefixArg, const String &namespaceURIArg)
-        {
-        prefix       = prefixArg;
-        namespaceURI = namespaceURIArg;
-        }
-
-    Namespace(const Namespace &other)
-        {
-        assign(other);
-        }
-
-    Namespace &operator=(const Namespace &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual ~Namespace()
-        {}
-
-    virtual String getPrefix()
-        { return prefix; }
-
-    virtual String getNamespaceURI()
-        { return namespaceURI; }
-
-protected:
-
-    void assign(const Namespace &other)
-        {
-        prefix       = other.prefix;
-        namespaceURI = other.namespaceURI;
-        }
-
-    String prefix;
-    String namespaceURI;
-
-};
-
-class Attribute
-{
-public:
-    Attribute()
-        {}
-
-    Attribute(const String &nameArg, const String &valueArg)
-        {
-        name  = nameArg;
-        value = valueArg;
-        }
-
-    Attribute(const Attribute &other)
-        {
-        assign(other);
-        }
-
-    Attribute &operator=(const Attribute &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual ~Attribute()
-        {}
-
-    virtual String getName()
-        { return name; }
-
-    virtual String getValue()
-        { return value; }
-
-protected:
-
-    void assign(const Attribute &other)
-        {
-        name  = other.name;
-        value = other.value;
-        }
-
-    String name;
-    String value;
-
-};
-
-
-class Element
-{
-friend class Parser;
-
-public:
-    Element()
-        {
-        init();
-        }
-
-    Element(const String &nameArg)
-        {
-        init();
-        name   = nameArg;
-        }
-
-    Element(const String &nameArg, const String &valueArg)
-        {
-        init();
-        name   = nameArg;
-        value  = valueArg;
-        }
-
-    Element(const Element &other)
-        {
-        assign(other);
-        }
-
-    Element &operator=(const Element &other)
-        {
-        assign(other);
-        return *this;
-        }
-
-    virtual Element *clone();
-
-    virtual ~Element()
-        {
-        for (std::size_t i=0 ; i getChildren()
-        { return children; }
-
-    std::vector findElements(const String &name);
-
-    String getAttribute(const String &name);
-
-    std::vector &getAttributes()
-        { return attributes; } 
-
-    String getTagAttribute(const String &tagName, const String &attrName);
-
-    String getTagValue(const String &tagName);
-
-    void addChild(Element *child);
-
-    void addAttribute(const String &name, const String &value);
-
-    void addNamespace(const String &prefix, const String &namespaceURI);
-
-
-    /**
-     * Prettyprint an XML tree to an output stream.  Elements are indented
-     * according to element hierarchy.
-     * @param f a stream to receive the output
-     * @param elem the element to output
-     */
-    void writeIndented(FILE *f);
-
-    /**
-     * Prettyprint an XML tree to standard output.  This is the equivalent of
-     * writeIndented(stdout).
-     * @param elem the element to output
-     */
-    void print();
-    
-    int getLine()
-        { return line; }
-
-protected:
-
-    void init()
-        {
-        parent = NULL;
-        line   = 0;
-        }
-
-    void assign(const Element &other)
-        {
-        parent     = other.parent;
-        children   = other.children;
-        attributes = other.attributes;
-        namespaces = other.namespaces;
-        name       = other.name;
-        value      = other.value;
-        line       = other.line;
-        }
-
-    void findElementsRecursive(std::vector&res, const String &name);
-
-    void writeIndentedRecursive(FILE *f, int indent);
-
-    Element *parent;
-
-    std::vectorchildren;
-
-    std::vector attributes;
-    std::vector namespaces;
-
-    String name;
-    String value;
-    
-    int line;
-};
-
-
-
-
-
-class Parser
-{
-public:
-    /**
-     * Constructor
-     */
-    Parser()
-        { init(); }
-
-    virtual ~Parser()
-        {}
-
-    /**
-     * Parse XML in a char buffer.
-     * @param buf a character buffer to parse
-     * @param pos position to start parsing
-     * @param len number of chars, from pos, to parse.
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parse(const char *buf,int pos,int len);
-
-    /**
-     * Parse XML in a char buffer.
-     * @param buf a character buffer to parse
-     * @param pos position to start parsing
-     * @param len number of chars, from pos, to parse.
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parse(const String &buf);
-
-    /**
-     * Parse a named XML file.  The file is loaded like a data file;
-     * the original format is not preserved.
-     * @param fileName the name of the file to read
-     * @return a pointer to the root of the XML document;
-     */
-    Element *parseFile(const String &fileName);
-
-    /**
-     * Utility method to preprocess a string for XML
-     * output, escaping its entities.
-     * @param str the string to encode
-     */
-    static String encode(const String &str);
-
-    /**
-     *  Removes whitespace from beginning and end of a string
-     */
-    String trim(const String &s);
-
-private:
-
-    void init()
-        {
-        keepGoing       = true;
-        currentNode     = NULL;
-        parselen        = 0;
-        parsebuf        = NULL;
-        currentPosition = 0;
-        }
-
-    int countLines(int begin, int end);
-
-    void getLineAndColumn(int pos, int *lineNr, int *colNr);
-
-    void error(const char *fmt, ...);
-
-    int peek(int pos);
-
-    int match(int pos, const char *text);
-
-    int skipwhite(int p);
-
-    int getWord(int p0, String &buf);
-
-    int getQuoted(int p0, String &buf, int do_i_parse);
-
-    int parseVersion(int p0);
-
-    int parseDoctype(int p0);
-
-    int parseElement(int p0, Element *par,int depth);
-
-    Element *parse(XMLCh *buf,int pos,int len);
-
-    bool       keepGoing;
-    Element    *currentNode;
-    int        parselen;
-    XMLCh      *parsebuf;
-    String     cdatabuf;
-    int        currentPosition;
-};
-
-
-
-
-//########################################################################
-//# E L E M E N T
-//########################################################################
-
-Element *Element::clone()
-{
-    Element *elem = new Element(name, value);
-    elem->parent     = parent;
-    elem->attributes = attributes;
-    elem->namespaces = namespaces;
-    elem->line       = line;
-
-    std::vector::iterator iter;
-    for (iter = children.begin(); iter != children.end() ; iter++)
-        {
-        elem->addChild((*iter)->clone());
-        }
-    return elem;
-}
-
-
-void Element::findElementsRecursive(std::vector&res, const String &name)
-{
-    if (getName() == name)
-        {
-        res.push_back(this);
-        }
-    for (std::size_t i=0; ifindElementsRecursive(res, name);
-}
-
-std::vector Element::findElements(const String &name)
-{
-    std::vector res;
-    findElementsRecursive(res, name);
-    return res;
-}
-
-String Element::getAttribute(const String &name)
-{
-    for (std::size_t i=0 ; ielems = findElements(tagName);
-    if (elems.size() <1)
-        return "";
-    String res = elems[0]->getAttribute(attrName);
-    return res;
-}
-
-String Element::getTagValue(const String &tagName)
-{
-    std::vectorelems = findElements(tagName);
-    if (elems.size() <1)
-        return "";
-    String res = elems[0]->getValue();
-    return res;
-}
-
-void Element::addChild(Element *child)
-{
-    if (!child)
-        return;
-    child->parent = this;
-    children.push_back(child);
-}
-
-
-void Element::addAttribute(const String &name, const String &value)
-{
-    Attribute attr(name, value);
-    attributes.push_back(attr);
-}
-
-void Element::addNamespace(const String &prefix, const String &namespaceURI)
-{
-    Namespace ns(prefix, namespaceURI);
-    namespaces.push_back(ns);
-}
-
-void Element::writeIndentedRecursive(FILE *f, int indent)
-{
-    int i;
-    if (!f)
-        return;
-    //Opening tag, and attributes
-    for (i=0;i\n");
-
-    //Between the tags
-    if (value.size() > 0)
-        {
-        for (int i=0;iwriteIndentedRecursive(f, indent+2);
-
-    //Closing tag
-    for (int i=0; i\n", name.c_str());
-}
-
-void Element::writeIndented(FILE *f)
-{
-    writeIndentedRecursive(f, 0);
-}
-
-void Element::print()
-{
-    writeIndented(stdout);
-}
-
-
-//########################################################################
-//# P A R S E R
-//########################################################################
-
-
-
-typedef struct
-    {
-    const char *escaped;
-    char value;
-    } EntityEntry;
-
-static EntityEntry entities[] =
-{
-    { "&" , '&'  },
-    { "<"  , '<'  },
-    { ">"  , '>'  },
-    { "'", '\'' },
-    { """, '"'  },
-    { NULL    , '\0' }
-};
-
-
-
-/**
- *  Removes whitespace from beginning and end of a string
- */
-String Parser::trim(const String &s)
-{
-    if (s.size() < 1)
-        return s;
-    
-    //Find first non-ws char
-    std::size_t begin = 0;
-    for ( ; begin < s.size() ; begin++)
-        {
-        if (!isspace(s[begin]))
-            break;
-        }
-
-    //Find first non-ws char, going in reverse
-    std::size_t end = s.size() - 1;
-    for ( ; end > begin ; end--)
-        {
-        if (!isspace(s[end]))
-            break;
-        }
-    //trace("begin:%d  end:%d", begin, end);
-
-    String res = s.substr(begin, end-begin+1);
-    return res;
-}
-
-
-int Parser::countLines(int begin, int end)
-{
-    int count = 0;
-    for (int i=begin ; i= parselen)
-        return -1;
-    currentPosition = pos;
-    int ch = parsebuf[pos];
-    //printf("ch:%c\n", ch);
-    return ch;
-}
-
-
-
-String Parser::encode(const String &str)
-{
-    String ret;
-    for (std::size_t i=0 ; i')
-            ret.append(">");
-        else if (ch == '\'')
-            ret.append("'");
-        else if (ch == '"')
-            ret.append(""");
-        else
-            ret.push_back(ch);
-
-        }
-    return ret;
-}
-
-
-int Parser::match(int p0, const char *text)
-{
-    int p = p0;
-    while (*text)
-        {
-        if (peek(p) != *text)
-            return p0;
-        p++; text++;
-        }
-    return p;
-}
-
-
-
-int Parser::skipwhite(int p)
-{
-
-    while (p p)
-            {
-            p = p2;
-            while (p");
-              if (p2 > p)
-                  {
-                  p = p2;
-                  break;
-                  }
-              p++;
-              }
-          }
-      XMLCh b = peek(p);
-      if (!isspace(b))
-          break;
-      p++;
-      }
-  return p;
-}
-
-/* modify this to allow all chars for an element or attribute name*/
-int Parser::getWord(int p0, String &buf)
-{
-    int p = p0;
-    while (p' || b=='=')
-            break;
-        buf.push_back(b);
-        p++;
-        }
-    return p;
-}
-
-int Parser::getQuoted(int p0, String &buf, int do_i_parse)
-{
-
-    int p = p0;
-    if (peek(p) != '"' && peek(p) != '\'')
-        return p0;
-    p++;
-
-    while ( pvalue ; ee++)
-                {
-                int p2 = match(p, ee->escaped);
-                if (p2>p)
-                    {
-                    buf.push_back(ee->value);
-                    p = p2;
-                    found = true;
-                    break;
-                    }
-                }
-            if (!found)
-                {
-                error("unterminated entity");
-                return false;
-                }
-            }
-        else
-            {
-            buf.push_back(b);
-            p++;
-            }
-        }
-    return p;
-}
-
-int Parser::parseVersion(int p0)
-{
-    //printf("### parseVersion: %d\n", p0);
-
-    int p = p0;
-
-    p = skipwhite(p0);
-
-    if (peek(p) != '<')
-        return p0;
-
-    p++;
-    if (p>=parselen || peek(p)!='?')
-        return p0;
-
-    p++;
-
-    String buf;
-
-    while (p=parselen || peek(p)!='<')
-        return p0;
-
-    p++;
-
-    if (peek(p)!='!' || peek(p+1)=='-')
-        return p0;
-    p++;
-
-    String buf;
-    while (p')
-            {
-            p++;
-            break;
-            }
-        buf.push_back(ch);
-        p++;
-        }
-
-    //printf("Got doctype:%s\n",buf.c_str());
-    return p;
-}
-
-
-
-int Parser::parseElement(int p0, Element *par,int lineNr)
-{
-
-    int p = p0;
-
-    int p2 = p;
-
-    p = skipwhite(p);
-
-    //## Get open tag
-    XMLCh ch = peek(p);
-    if (ch!='<')
-        return p0;
-
-    //int line, col;
-    //getLineAndColumn(p, &line, &col);
-
-    p++;
-
-    String openTagName;
-    p = skipwhite(p);
-    p = getWord(p, openTagName);
-    //printf("####tag :%s\n", openTagName.c_str());
-    p = skipwhite(p);
-
-    //Add element to tree
-    Element *n = new Element(openTagName);
-    n->line = lineNr + countLines(p0, p);
-    n->parent = par;
-    par->addChild(n);
-
-    // Get attributes
-    if (peek(p) != '>')
-        {
-        while (p')
-                break;
-            else if (ch=='/' && p')
-                    {
-                    p++;
-                    //printf("quick close\n");
-                    return p;
-                    }
-                }
-            String attrName;
-            p2 = getWord(p, attrName);
-            if (p2==p)
-                break;
-            //printf("name:%s",buf);
-            p=p2;
-            p = skipwhite(p);
-            ch = peek(p);
-            //printf("ch:%c\n",ch);
-            if (ch!='=')
-                break;
-            p++;
-            p = skipwhite(p);
-            // ch = parsebuf[p];
-            // printf("ch:%c\n",ch);
-            String attrVal;
-            p2 = getQuoted(p, attrVal, true);
-            p=p2+1;
-            //printf("name:'%s'   value:'%s'\n",attrName.c_str(),attrVal.c_str());
-            char *namestr = (char *)attrName.c_str();
-            if (strncmp(namestr, "xmlns:", 6)==0)
-                n->addNamespace(attrName, attrVal);
-            else
-                n->addAttribute(attrName, attrVal);
-            }
-        }
-
-    bool cdata = false;
-
-    p++;
-    // ### Get intervening data ### */
-    String data;
-    while (pp)
-            {
-            p = p2;
-            while (p");
-                if (p2 > p)
-                    {
-                    p = p2;
-                    break;
-                    }
-                p++;
-                }
-            }
-
-        ch = peek(p);
-        //# END TAG
-        if (ch=='<' && !cdata && peek(p+1)=='/')
-            {
-            break;
-            }
-        //# CDATA
-        p2 = match(p, " p)
-            {
-            cdata = true;
-            p = p2;
-            continue;
-            }
-
-        //# CHILD ELEMENT
-        if (ch == '<')
-            {
-            p2 = parseElement(p, n, lineNr + countLines(p0, p));
-            if (p2 == p)
-                {
-                /*
-                printf("problem on element:%s.  p2:%d p:%d\n",
-                      openTagName.c_str(), p2, p);
-                */
-                return p0;
-                }
-            p = p2;
-            continue;
-            }
-        //# ENTITY
-        if (ch=='&' && !cdata)
-            {
-            bool found = false;
-            for (EntityEntry *ee = entities ; ee->value ; ee++)
-                {
-                int p2 = match(p, ee->escaped);
-                if (p2>p)
-                    {
-                    data.push_back(ee->value);
-                    p = p2;
-                    found = true;
-                    break;
-                    }
-                }
-            if (!found)
-                {
-                error("unterminated entity");
-                return -1;
-                }
-            continue;
-            }
-
-        //# NONE OF THE ABOVE
-        data.push_back(ch);
-        p++;
-        }/*while*/
-
-
-    n->value = data;
-    //printf("%d : data:%s\n",p,data.c_str());
-
-    //## Get close tag
-    p = skipwhite(p);
-    ch = peek(p);
-    if (ch != '<')
-        {
-        error("no < for end tag\n");
-        return p0;
-        }
-    p++;
-    ch = peek(p);
-    if (ch != '/')
-        {
-        error("no / on end tag");
-        return p0;
-        }
-    p++;
-    ch = peek(p);
-    p = skipwhite(p);
-    String closeTagName;
-    p = getWord(p, closeTagName);
-    if (openTagName != closeTagName)
-        {
-        error("Mismatched closing tag.  Expected . Got '%S'.",
-                openTagName.c_str(), closeTagName.c_str());
-        return p0;
-        }
-    p = skipwhite(p);
-    if (peek(p) != '>')
-        {
-        error("no > on end tag for '%s'", closeTagName.c_str());
-        return p0;
-        }
-    p++;
-    // printf("close element:%s\n",closeTagName.c_str());
-    p = skipwhite(p);
-    return p;
-}
-
-
-
-
-Element *Parser::parse(XMLCh *buf,int pos,int len)
-{
-    parselen = len;
-    parsebuf = buf;
-    Element *rootNode = new Element("root");
-    pos = parseVersion(pos);
-    pos = parseDoctype(pos);
-    pos = parseElement(pos, rootNode, 1);
-    return rootNode;
-}
-
-
-Element *Parser::parse(const char *buf, int pos, int len)
-{
-    XMLCh *charbuf = new XMLCh[len + 1];
-    long i = 0;
-    for ( ; i < len ; i++)
-        charbuf[i] = (XMLCh)buf[i];
-    charbuf[i] = '\0';
-
-    Element *n = parse(charbuf, pos, len);
-    delete[] charbuf;
-    return n;
-}
-
-Element *Parser::parse(const String &buf)
-{
-    long len = (long)buf.size();
-    XMLCh *charbuf = new XMLCh[len + 1];
-    long i = 0;
-    for ( ; i < len ; i++)
-        charbuf[i] = (XMLCh)buf[i];
-    charbuf[i] = '\0';
-
-    Element *n = parse(charbuf, 0, len);
-    delete[] charbuf;
-    return n;
-}
-
-Element *Parser::parseFile(const String &fileName)
-{
-
-    //##### LOAD INTO A CHAR BUF, THEN CONVERT TO XMLCh
-    FILE *f = fopen(fileName.c_str(), "rb");
-    if (!f)
-        return NULL;
-
-    struct stat  statBuf;
-    if (fstat(fileno(f),&statBuf)<0)
-        {
-        fclose(f);
-        return NULL;
-        }
-    long filelen = statBuf.st_size;
-
-    //printf("length:%d\n",filelen);
-    XMLCh *charbuf = new XMLCh[filelen + 1];
-    for (XMLCh *p=charbuf ; !feof(f) ; p++)
-        {
-        *p = (XMLCh)fgetc(f);
-        }
-    fclose(f);
-    charbuf[filelen] = '\0';
-
-
-    /*
-    printf("nrbytes:%d\n",wc_count);
-    printf("buf:%ls\n======\n",charbuf);
-    */
-    Element *n = parse(charbuf, 0, filelen);
-    delete[] charbuf;
-    return n;
-}
-
-//########################################################################
-//########################################################################
-//##  E N D    X M L
-//########################################################################
-//########################################################################
-
-
-
-
-
-
-//########################################################################
-//########################################################################
-//##  U R I
-//########################################################################
-//########################################################################
-
-//This would normally be a call to a UNICODE function
-#define isLetter(x) isalpha(x)
-
-/**
- *  A class that implements the W3C URI resource reference.
- */
-class URI
-{
-public:
-
-    typedef enum
-        {
-        SCHEME_NONE =0,
-        SCHEME_DATA,
-        SCHEME_HTTP,
-        SCHEME_HTTPS,
-        SCHEME_FTP,
-        SCHEME_FILE,
-        SCHEME_LDAP,
-        SCHEME_MAILTO,
-        SCHEME_NEWS,
-        SCHEME_TELNET
-        } SchemeTypes;
-
-    /**
-     *
-     */
-    URI()
-        {
-        init();
-        }
-
-    /**
-     *
-     */
-    URI(const String &str)
-        {
-        init();
-        parse(str);
-        }
-
-
-    /**
-     *
-     */
-    URI(const char *str)
-        {
-        init();
-        String domStr = str;
-        parse(domStr);
-        }
-
-
-    /**
-     *
-     */
-    URI(const URI &other)
-        {
-        init();
-        assign(other);
-        }
-
-
-    /**
-     *
-     */
-    URI &operator=(const URI &other)
-        {
-        init();
-        assign(other);
-        return *this;
-        }
-
-
-    /**
-     *
-     */
-    virtual ~URI()
-        {}
-
-
-
-    /**
-     *
-     */
-    virtual bool parse(const String &str);
-
-    /**
-     *
-     */
-    virtual String toString() const;
-
-    /**
-     *
-     */
-    virtual int getScheme() const;
-
-    /**
-     *
-     */
-    virtual String getSchemeStr() const;
-
-    /**
-     *
-     */
-    virtual String getAuthority() const;
-
-    /**
-     *  Same as getAuthority, but if the port has been specified
-     *  as host:port , the port will not be included
-     */
-    virtual String getHost() const;
-
-    /**
-     *
-     */
-    virtual int getPort() const;
-
-    /**
-     *
-     */
-    virtual String getPath() const;
-
-    /**
-     *
-     */
-    virtual String getNativePath() const;
-
-    /**
-     *
-     */
-    virtual bool isAbsolute() const;
-
-    /**
-     *
-     */
-    virtual bool isOpaque() const;
-
-    /**
-     *
-     */
-    virtual String getQuery() const;
-
-    /**
-     *
-     */
-    virtual String getFragment() const;
-
-    /**
-     *
-     */
-    virtual URI resolve(const URI &other) const;
-
-    /**
-     *
-     */
-    virtual void normalize();
-
-private:
-
-    /**
-     *
-     */
-    void init()
-        {
-        parsebuf  = NULL;
-        parselen  = 0;
-        scheme    = SCHEME_NONE;
-        schemeStr = "";
-        port      = 0;
-        authority = "";
-        path      = "";
-        absolute  = false;
-        opaque    = false;
-        query     = "";
-        fragment  = "";
-        }
-
-
-    /**
-     *
-     */
-    void assign(const URI &other)
-        {
-        scheme    = other.scheme;
-        schemeStr = other.schemeStr;
-        authority = other.authority;
-        port      = other.port;
-        path      = other.path;
-        absolute  = other.absolute;
-        opaque    = other.opaque;
-        query     = other.query;
-        fragment  = other.fragment;
-        }
-
-    int scheme;
-
-    String schemeStr;
-
-    String authority;
-
-    bool portSpecified;
-
-    int port;
-
-    String path;
-
-    bool absolute;
-
-    bool opaque;
-
-    String query;
-
-    String fragment;
-
-    void error(const char *fmt, ...);
-
-    void trace(const char *fmt, ...);
-
-
-    int peek(int p);
-
-    int match(int p, const char *key);
-
-    int parseScheme(int p);
-
-    int parseHierarchicalPart(int p0);
-
-    int parseQuery(int p0);
-
-    int parseFragment(int p0);
-
-    int parse(int p);
-
-    char *parsebuf;
-
-    int parselen;
-
-};
-
-
-
-typedef struct
-{
-    int         ival;
-    const char *sval;
-    int         port;
-} LookupEntry;
-
-LookupEntry schemes[] =
-{
-    { URI::SCHEME_DATA,   "data:",    0 },
-    { URI::SCHEME_HTTP,   "http:",   80 },
-    { URI::SCHEME_HTTPS,  "https:", 443 },
-    { URI::SCHEME_FTP,    "ftp",     12 },
-    { URI::SCHEME_FILE,   "file:",    0 },
-    { URI::SCHEME_LDAP,   "ldap:",  123 },
-    { URI::SCHEME_MAILTO, "mailto:", 25 },
-    { URI::SCHEME_NEWS,   "news:",  117 },
-    { URI::SCHEME_TELNET, "telnet:", 23 },
-    { 0,                  NULL,       0 }
-};
-
-
-String URI::toString() const
-{
-    String str = schemeStr;
-    if (authority.size() > 0)
-        {
-        str.append("//");
-        str.append(authority);
-        }
-    str.append(path);
-    if (query.size() > 0)
-        {
-        str.append("?");
-        str.append(query);
-        }
-    if (fragment.size() > 0)
-        {
-        str.append("#");
-        str.append(fragment);
-        }
-    return str;
-}
-
-
-int URI::getScheme() const
-{
-    return scheme;
-}
-
-String URI::getSchemeStr() const
-{
-    return schemeStr;
-}
-
-
-String URI::getAuthority() const
-{
-    String ret = authority;
-    if (portSpecified && port>=0)
-        {
-        char buf[7];
-        snprintf(buf, 6, ":%6d", port);
-        ret.append(buf);
-        }
-    return ret;
-}
-
-String URI::getHost() const
-{
-    return authority;
-}
-
-int URI::getPort() const
-{
-    return port;
-}
-
-
-String URI::getPath() const
-{
-    return path;
-}
-
-String URI::getNativePath() const
-{
-    String npath;
-#ifdef __WIN32__
-    std::size_t firstChar = 0;
-    if (path.size() >= 3)
-        {
-        if (path[0] == '/' &&
-            isLetter(path[1]) &&
-            path[2] == ':')
-            firstChar++;
-         }
-    for (std::size_t i=firstChar ; i  0 &&
-        other.path.size()      == 0 &&
-        other.scheme           == SCHEME_NONE &&
-        other.authority.size() == 0 &&
-        other.query.size()     == 0 )
-        {
-        URI fragUri = *this;
-        fragUri.fragment = other.fragment;
-        return fragUri;
-        }
-
-    //## 3 http://www.ietf.org/rfc/rfc2396.txt, section 5.2
-    URI newUri;
-    //# 3.1
-    newUri.scheme    = scheme;
-    newUri.schemeStr = schemeStr;
-    newUri.query     = other.query;
-    newUri.fragment  = other.fragment;
-    if (other.authority.size() > 0)
-        {
-        //# 3.2
-        if (absolute || other.absolute)
-            newUri.absolute = true;
-        newUri.authority = other.authority;
-        newUri.port      = other.port;//part of authority
-        newUri.path      = other.path;
-        }
-    else
-        {
-        //# 3.3
-        if (other.absolute)
-            {
-            newUri.absolute = true;
-            newUri.path     = other.path;
-            }
-        else
-            {
-            std::size_t pos = path.find_last_of('/');
-            if (pos != path.npos)
-                {
-                String tpath = path.substr(0, pos+1);
-                tpath.append(other.path);
-                newUri.path = tpath;
-                }
-            else
-                newUri.path = other.path;
-            }
-        }
-
-    newUri.normalize();
-    return newUri;
-}
-
-
-
-/**
- *  This follows the Java URI algorithm:
- *   1. All "." segments are removed.
- *   2. If a ".." segment is preceded by a non-".." segment
- *          then both of these segments are removed. This step
- *          is repeated until it is no longer applicable.
- *   3. If the path is relative, and if its first segment
- *          contains a colon character (':'), then a "." segment
- *          is prepended. This prevents a relative URI with a path
- *          such as "a:b/c/d" from later being re-parsed as an
- *          opaque URI with a scheme of "a" and a scheme-specific
- *          part of "b/c/d". (Deviation from RFC 2396)
- */
-void URI::normalize()
-{
-    std::vector segments;
-
-    //## Collect segments
-    if (path.size()<2)
-        return;
-    bool abs = false;
-    std::size_t pos=0;
-    if (path[0]=='/')
-        {
-        abs = true;
-        pos++;
-        }
-    while (pos < path.size())
-        {
-        std::size_t pos2 = path.find('/', pos);
-        if (pos2==path.npos)
-            {
-            String seg = path.substr(pos);
-            //printf("last segment:%s\n", seg.c_str());
-            segments.push_back(seg);
-            break;
-            }
-        if (pos2>pos)
-            {
-            String seg = path.substr(pos, pos2-pos);
-            //printf("segment:%s\n", seg.c_str());
-            segments.push_back(seg);
-            }
-        pos = pos2;
-        pos++;
-        }
-
-    //## Clean up (normalize) segments
-    bool edited = false;
-    std::vector::iterator iter;
-    for (iter=segments.begin() ; iter!=segments.end() ; )
-        {
-        String s = *iter;
-        if (s == ".")
-            {
-            iter = segments.erase(iter);
-            edited = true;
-            }
-        else if (s == ".." &&
-                 iter != segments.begin() &&
-                 *(iter-1) != "..")
-            {
-            iter--; //back up, then erase two entries
-            iter = segments.erase(iter);
-            iter = segments.erase(iter);
-            edited = true;
-            }
-        else
-            iter++;
-        }
-
-    //## Rebuild path, if necessary
-    if (edited)
-        {
-        path.clear();
-        if (abs)
-            {
-            path.append("/");
-            }
-        std::vector::iterator iter;
-        for (iter=segments.begin() ; iter!=segments.end() ; iter++)
-            {
-            if (iter != segments.begin())
-                path.append("/");
-            path.append(*iter);
-            }
-        }
-
-}
-
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-void URI::error(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stderr, "URI error: ");
-    va_start(args, fmt);
-    vfprintf(stderr, fmt, args);
-    va_end(args);
-    fprintf(stderr, "\n");
-}
-
-void URI::trace(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stdout, "URI: ");
-    va_start(args, fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args);
-    fprintf(stdout, "\n");
-}
-
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-
-
-int URI::peek(int p)
-{
-    if (p<0 || p>=parselen)
-        return -1;
-    return parsebuf[p];
-}
-
-
-
-int URI::match(int p0, const char *key)
-{
-    int p = p0;
-    while (p < parselen)
-        {
-        if (*key == '\0')
-            return p;
-        else if (*key != parsebuf[p])
-            break;
-        p++; key++;
-        }
-    return p0;
-}
-
-//#########################################################################
-//#  Parsing is performed according to:
-//#  http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#components
-//#########################################################################
-
-int URI::parseScheme(int p0)
-{
-    int p = p0;
-    for (LookupEntry *entry = schemes; entry->sval ; entry++)
-        {
-        int p2 = match(p, entry->sval);
-        if (p2 > p)
-            {
-            schemeStr = entry->sval;
-            scheme    = entry->ival;
-            port      = entry->port;
-            p = p2;
-            return p;
-            }
-        }
-
-    return p;
-}
-
-
-int URI::parseHierarchicalPart(int p0)
-{
-    int p = p0;
-    int ch;
-
-    //# Authority field (host and port, for example)
-    int p2 = match(p, "//");
-    if (p2 > p)
-        {
-        p = p2;
-        portSpecified = false;
-        String portStr;
-        while (p < parselen)
-            {
-            ch = peek(p);
-            if (ch == '/')
-                break;
-            else if (ch == ':')
-                portSpecified = true;
-            else if (portSpecified)
-                portStr.push_back((XMLCh)ch);
-            else
-                authority.push_back((XMLCh)ch);
-            p++;
-            }
-        if (portStr.size() > 0)
-            {
-            char *pstr = (char *)portStr.c_str();
-            char *endStr;
-            long val = strtol(pstr, &endStr, 10);
-            if (endStr > pstr) //successful parse?
-                port = val;
-            }
-        }
-
-    //# Are we absolute?
-    ch = peek(p);
-    if (isLetter(ch) && peek(p+1)==':')
-        {
-        absolute = true;
-        path.push_back((XMLCh)'/');
-        }
-    else if (ch == '/')
-        {
-        absolute = true;
-        if (p>p0) //in other words, if '/' is not the first char
-            opaque = true;
-        path.push_back((XMLCh)ch);
-        p++;
-        }
-
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '?' || ch == '#')
-            break;
-        path.push_back((XMLCh)ch);
-        p++;
-        }
-
-    return p;
-}
-
-int URI::parseQuery(int p0)
-{
-    int p = p0;
-    int ch = peek(p);
-    if (ch != '?')
-        return p0;
-
-    p++;
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '#')
-            break;
-        query.push_back((XMLCh)ch);
-        p++;
-        }
-
-
-    return p;
-}
-
-int URI::parseFragment(int p0)
-{
-
-    int p = p0;
-    int ch = peek(p);
-    if (ch != '#')
-        return p0;
-
-    p++;
-    while (p < parselen)
-        {
-        ch = peek(p);
-        if (ch == '?')
-            break;
-        fragment.push_back((XMLCh)ch);
-        p++;
-        }
-
-
-    return p;
-}
-
-
-int URI::parse(int p0)
-{
-
-    int p = p0;
-
-    int p2 = parseScheme(p);
-    if (p2 < 0)
-        {
-        error("Scheme");
-        return -1;
-        }
-    p = p2;
-
-
-    p2 = parseHierarchicalPart(p);
-    if (p2 < 0)
-        {
-        error("Hierarchical part");
-        return -1;
-        }
-    p = p2;
-
-    p2 = parseQuery(p);
-    if (p2 < 0)
-        {
-        error("Query");
-        return -1;
-        }
-    p = p2;
-
-
-    p2 = parseFragment(p);
-    if (p2 < 0)
-        {
-        error("Fragment");
-        return -1;
-        }
-    p = p2;
-
-    return p;
-
-}
-
-
-
-bool URI::parse(const String &str)
-{
-    init();
-    
-    parselen = str.size();
-
-    String tmp;
-    for (std::size_t i=0 ; i statCacheType;
-static statCacheType statCache;
-static int cachedStat(const String &f, struct stat *s) {
-    //printf("Stat path: %s\n", f.c_str());
-    std::pair result = statCache.insert(statCacheType::value_type(f, StatResult()));
-    if (result.second) {
-        result.first->second.result = stat(f.c_str(), &(result.first->second.statInfo));
-    }
-    *s = result.first->second.statInfo;
-    return result.first->second.result;
-}
-static void removeFromStatCache(const String f) {
-    //printf("Removing from cache: %s\n", f.c_str());
-    statCache.erase(f);
-}
-
-//########################################################################
-//# Dir cache to speed up dir requests
-//########################################################################
-/*struct DirListing {
-    bool available;
-    std::vector files;
-    std::vector dirs;
-};
-typedef std::map dirCacheType;
-static dirCacheType dirCache;
-static const DirListing &cachedDir(String fullDir)
-{
-    String dirNative = getNativePath(fullDir);
-    std::pair result = dirCache.insert(dirCacheType::value_type(dirNative, DirListing()));
-    if (result.second) {
-        DIR *dir = opendir(dirNative.c_str());
-        if (!dir)
-            {
-            error("Could not open directory %s : %s",
-                dirNative.c_str(), strerror(errno));
-            result.first->second.available = false;
-            }
-        else
-            {
-            result.first->second.available = true;
-            while (true)
-                {
-                struct dirent *de = readdir(dir);
-                if (!de)
-                    break;
-
-                //Get the directory member name
-                String s = de->d_name;
-                if (s.size() == 0 || s[0] == '.')
-                    continue;
-                String childName;
-                if (dirName.size()>0)
-                    {
-                    childName.append(dirName);
-                    childName.append("/");
-                    }
-                childName.append(s);
-                String fullChild = baseDir;
-                fullChild.append("/");
-                fullChild.append(childName);
-                
-                if (isDirectory(fullChild))
-                    {
-                    //trace("directory: %s", childName.c_str());
-                    if (!listFiles(baseDir, childName, res))
-                        return false;
-                    continue;
-                    }
-                else if (!isRegularFile(fullChild))
-                    {
-                    error("unknown file:%s", childName.c_str());
-                    return false;
-                    }
-
-            //all done!
-                res.push_back(childName);
-
-                }
-            closedir(dir);
-            }
-    }
-    return result.first->second;
-}*/
-
-//########################################################################
-//# F I L E S E T
-//########################################################################
-/**
- * This is the descriptor for a  item
- */
-class FileSet
-{
-public:
-
-    /**
-     *
-     */
-    FileSet()
-        {}
-
-    /**
-     *
-     */
-    FileSet(const FileSet &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    FileSet &operator=(const FileSet &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~FileSet()
-        {}
-
-    /**
-     *
-     */
-    String getDirectory() const
-        { return directory; }
-        
-    /**
-     *
-     */
-    void setDirectory(const String &val)
-        { directory = val; }
-
-    /**
-     *
-     */
-    void setFiles(const std::vector &val)
-        { files = val; }
-
-    /**
-     *
-     */
-    std::vector getFiles() const
-        { return files; }
-        
-    /**
-     *
-     */
-    void setIncludes(const std::vector &val)
-        { includes = val; }
-
-    /**
-     *
-     */
-    std::vector getIncludes() const
-        { return includes; }
-        
-    /**
-     *
-     */
-    void setExcludes(const std::vector &val)
-        { excludes = val; }
-
-    /**
-     *
-     */
-    std::vector getExcludes() const
-        { return excludes; }
-        
-    /**
-     *
-     */
-    std::size_t size() const
-        { return files.size(); }
-        
-    /**
-     *
-     */
-    String operator[](int index) const
-        { return files[index]; }
-        
-    /**
-     *
-     */
-    void clear()
-        {
-        directory = "";
-        files.clear();
-        includes.clear();
-        excludes.clear();
-        }
-        
-
-private:
-
-    void assign(const FileSet &other)
-        {
-        directory = other.directory;
-        files     = other.files;
-        includes  = other.includes;
-        excludes  = other.excludes;
-        }
-
-    String directory;
-    std::vector files;
-    std::vector includes;
-    std::vector excludes;
-};
-
-
-//########################################################################
-//# F I L E L I S T
-//########################################################################
-/**
- * This is a simpler, explicitly-named list of files
- */
-class FileList
-{
-public:
-
-    /**
-     *
-     */
-    FileList()
-        {}
-
-    /**
-     *
-     */
-    FileList(const FileList &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    FileList &operator=(const FileList &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~FileList()
-        {}
-
-    /**
-     *
-     */
-    String getDirectory()
-        { return directory; }
-        
-    /**
-     *
-     */
-    void setDirectory(const String &val)
-        { directory = val; }
-
-    /**
-     *
-     */
-    void setFiles(const std::vector &val)
-        { files = val; }
-
-    /**
-     *
-     */
-    std::vector getFiles()
-        { return files; }
-        
-    /**
-     *
-     */
-    std::size_t size()
-        { return files.size(); }
-        
-    /**
-     *
-     */
-    String operator[](int index)
-        { return files[index]; }
-        
-    /**
-     *
-     */
-    void clear()
-        {
-        directory = "";
-        files.clear();
-        }
-        
-
-private:
-
-    void assign(const FileList &other)
-        {
-        directory = other.directory;
-        files     = other.files;
-        }
-
-    String directory;
-    std::vector files;
-};
-
-
-
-
-//########################################################################
-//# M A K E    B A S E
-//########################################################################
-/**
- * Base class for all classes in this file
- */
-class MakeBase
-{
-public:
-
-    MakeBase()
-        { line = 0; }
-    virtual ~MakeBase()
-        {}
-
-    /**
-     *     Return the URI of the file associated with this object 
-     */     
-    URI getURI()
-        { return uri; }
-
-    /**
-     * Set the uri to the given string
-     */
-    void setURI(const String &uristr)
-        { uri.parse(uristr); }
-
-    /**
-     * Set the number of threads that can be used
-     */
-    void setNumThreads(const int num)
-        { numThreads = num; }
-
-    /**
-     *  Resolve another path relative to this one
-     */
-    String resolve(const String &otherPath);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * Assume that the string has already been syntax validated
-     */
-    String eval(const String &s, const String &defaultVal);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * return true or false
-     * Assume that the string has already been syntax validated
-     */
-    bool evalBool(const String &s, bool defaultVal);
-
-    /**
-     * replace variable refs like ${a} with their values
-     * return the value parsed as an integer
-     * Assume that the string has already been syntax validated
-     */
-    int evalInt(const String &s, int defaultVal);
-
-    /**
-     *  Get an element attribute, performing substitutions if necessary
-     */
-    bool getAttribute(Element *elem, const String &name, String &result);
-
-    /**
-     * Get an element value, performing substitutions if necessary
-     */
-    bool getValue(Element *elem, String &result);
-    
-    /**
-     * Set the current line number in the file
-     */         
-    void setLine(int val)
-        { line = val; }
-        
-    /**
-     * Get the current line number in the file
-     */         
-    int getLine()
-        { return line; }
-
-
-    /**
-     * Set a property to a given value
-     */
-    virtual void setProperty(const String &name, const String &val)
-        {
-        properties[name] = val;
-        }
-
-    /**
-     * Return a named property is found, else a null string
-     */
-    virtual String getProperty(const String &name)
-        {
-        String val;
-        std::map::iterator iter = properties.find(name);
-        if (iter != properties.end())
-            val = iter->second;
-        String sval;
-        if (!getSubstitutions(val, sval))
-            return String();
-        return sval;
-        }
-
-    /**
-     * Return true if a named property is found, else false
-     */
-    virtual bool hasProperty(const String &name)
-        {
-        std::map::iterator iter = properties.find(name);
-        if (iter == properties.end())
-            return false;
-        return true;
-        }
-
-
-protected:
-
-    /**
-     *    The path to the file associated with this object
-     */     
-    URI uri;
-
-    /**
-     *    The number of threads that can be used
-     */     
-    static int numThreads;
-
-    /**
-     *    If this prefix is seen in a substitution, use an environment
-     *    variable.
-     *             example:  
-     *             ${env.JAVA_HOME}
-     */
-    String envPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'all' query
-     *             example:  
-     *             ${pc.gtkmm}
-     */
-    String pcPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'cflags' query
-     *             example:  
-     *             ${pcc.gtkmm}
-     */
-    String pccPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    pkg-config 'libs' query
-     *             example:  
-     *             ${pcl.gtkmm}
-     */
-    String pclPrefix;
-
-    /**
-     *    If this prefix is seen in a substitution, use as a
-     *    Bazaar "bzr revno" query
-     *             example:   ???
-     *             ${bzr.Revision}
-     */
-    String bzrPrefix;
-
-
-
-
-
-    /**
-     *  Print a printf()-like formatted error message
-     */
-    void error(const char *fmt, ...);
-
-    /**
-     *  Print a printf()-like formatted trace message
-     */
-    void status(const char *fmt, ...);
-
-    /**
-     *  Show target status
-     */
-    void targetstatus(const char *fmt, ...);
-
-    /**
-     *  Print a printf()-like formatted trace message
-     */
-    void trace(const char *fmt, ...);
-
-    /**
-     *  Check if a given string matches a given regex pattern
-     */
-    bool regexMatch(const String &str, const String &pattern);
-
-    /**
-     *
-     */
-    String getSuffix(const String &fname);
-
-    /**
-     * Break up a string into substrings delimited the characters
-     * in delimiters.  Null-length substrings are ignored
-     */  
-    std::vector tokenize(const String &val,
-                          const String &delimiters);
-
-    /**
-     *  replace runs of whitespace with a space
-     */
-    String strip(const String &s);
-
-    /**
-     *  remove leading whitespace from each line
-     */
-    String leftJustify(const String &s);
-
-    /**
-     *  remove leading and trailing whitespace from string
-     */
-    String trim(const String &s);
-
-    /**
-     *  Return a lower case version of the given string
-     */
-    String toLower(const String &s);
-
-    /**
-     * Return the native format of the canonical
-     * path which we store
-     */
-    String getNativePath(const String &path);
-
-    /**
-     * Execute a shell command.  Outbuf is a ref to a string
-     * to catch the result.     
-     */         
-    bool executeCommand(const String &call,
-                        const String &inbuf,
-                        String &outbuf,
-                        String &errbuf);
-    /**
-     * List all directories in a given base and starting directory
-     * It is usually called like:
-     *        bool ret = listDirectories("src", "", result);    
-     */         
-    bool listDirectories(const String &baseName,
-                         const String &dirname,
-                         std::vector &res);
-
-    /**
-     * Find all files in the named directory 
-     */         
-    bool listFiles(const String &baseName,
-                   const String &dirname,
-                   std::vector &result);
-
-    /**
-     * Perform a listing for a fileset 
-     */         
-    bool listFiles(MakeBase &propRef, FileSet &fileSet);
-
-    /**
-     * Parse a 
-     */  
-    bool parsePatternSet(Element *elem,
-                       MakeBase &propRef,
-                       std::vector &includes,
-                       std::vector &excludes);
-
-    /**
-     * Parse a  entry, and determine which files
-     * should be included
-     */  
-    bool parseFileSet(Element *elem,
-                    MakeBase &propRef,
-                    FileSet &fileSet);
-    /**
-     * Parse a  entry
-     */  
-    bool parseFileList(Element *elem,
-                    MakeBase &propRef,
-                    FileList &fileList);
-
-    /**
-     * Return this object's property list
-     */
-    virtual std::map &getProperties()
-        { return properties; }
-
-
-    std::map properties;
-
-    /**
-     * Create a directory, making intermediate dirs
-     * if necessary
-     */                  
-    bool createDirectory(const String &dirname);
-
-    /**
-     * Delete a directory and its children if desired
-     */
-    bool removeDirectory(const String &dirName);
-
-    /**
-     * Copy a file from one name to another. Perform only if needed
-     */ 
-    bool copyFile(const String &srcFile, const String &destFile);
-
-    /**
-     * Delete a file
-     */ 
-    bool removeFile(const String &file);
-
-    /**
-     * Tests if the file exists
-     */ 
-    bool fileExists(const String &fileName);
-
-    /**
-     * Tests if the file exists and is a regular file
-     */ 
-    bool isRegularFile(const String &fileName);
-
-    /**
-     * Tests if the file exists and is a directory
-     */ 
-    bool isDirectory(const String &fileName);
-
-    /**
-     * Tests is the modification date of fileA is newer than fileB
-     */ 
-    bool isNewerThan(const String &fileA, const String &fileB);
-
-private:
-
-    bool pkgConfigRecursive(const String packageName,
-                            const String &path, 
-                            const String &prefix, 
-                            int query,
-                            String &result,
-                            std::set &deplist);
-
-    /**
-     * utility method to query for "all", "cflags", or "libs" for this package and its
-     * dependencies.  0, 1, 2
-     */          
-    bool pkgConfigQuery(const String &packageName, int query, String &result);
-
-    /**
-     * replace a variable ref like ${a} with a value
-     */
-    bool lookupProperty(const String &s, String &result);
-    
-    /**
-     * called by getSubstitutions().  This is in case a looked-up string
-     * has substitutions also.     
-     */
-    bool getSubstitutionsRecursive(const String &s, String &result, int depth);
-
-    /**
-     * replace variable refs in a string like ${a} with their values
-     */
-    bool getSubstitutions(const String &s, String &result);
-
-    int line;
-
-
-};
-
-int MakeBase::numThreads = 1;
-
-/**
- * Define the pkg-config class here, since it will be used in MakeBase method
- * implementations. 
- */
-class PkgConfig : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    PkgConfig()
-        {
-         path   = ".";
-         prefix = "/target";
-         init();
-         }
-
-    /**
-     *
-     */
-    PkgConfig(const PkgConfig &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    PkgConfig &operator=(const PkgConfig &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~PkgConfig()
-        { }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual String getPath()
-        { return path; }
-
-    /**
-     *
-     */
-    virtual void setPath(const String &val)
-        { path = val; }
-
-    /**
-     *
-     */
-    virtual String getPrefix()
-        { return prefix; }
-
-    /**
-     *  Allow the user to override the prefix in the file
-     */
-    virtual void setPrefix(const String &val)
-        { prefix = val; }
-
-    /**
-     *
-     */
-    virtual String getDescription()
-        { return description; }
-
-    /**
-     *
-     */
-    virtual String getCflags()
-        { return cflags; }
-
-    /**
-     *
-     */
-    virtual String getLibs()
-        { return libs; }
-
-    /**
-     *
-     */
-    virtual String getAll()
-        {
-         String ret = cflags;
-         ret.append(" ");
-         ret.append(libs);
-         return ret;
-        }
-
-    /**
-     *
-     */
-    virtual String getVersion()
-        { return version; }
-
-    /**
-     *
-     */
-    virtual int getMajorVersion()
-        { return majorVersion; }
-
-    /**
-     *
-     */
-    virtual int getMinorVersion()
-        { return minorVersion; }
-
-    /**
-     *
-     */
-    virtual int getMicroVersion()
-        { return microVersion; }
-
-    /**
-     *
-     */
-    virtual std::map &getAttributes()
-        { return attrs; }
-
-    /**
-     *
-     */
-    virtual std::vector &getRequireList()
-        { return requireList; }
-
-    /**
-     *  Read a file for its details
-     */         
-    virtual bool readFile(const String &fileName);
-
-    /**
-     *  Read a file for its details
-     */         
-    virtual bool query(const String &name);
-
-private:
-
-    void init()
-        {
-        //do not set path and prefix here
-        name         = "";
-        description  = "";
-        cflags       = "";
-        libs         = "";
-        requires     = "";
-        version      = "";
-        majorVersion = 0;
-        minorVersion = 0;
-        microVersion = 0;
-        fileName     = "";
-        attrs.clear();
-        requireList.clear();
-        }
-
-    void assign(const PkgConfig &other)
-        {
-        name         = other.name;
-        path         = other.path;
-        prefix       = other.prefix;
-        description  = other.description;
-        cflags       = other.cflags;
-        libs         = other.libs;
-        requires     = other.requires;
-        version      = other.version;
-        majorVersion = other.majorVersion;
-        minorVersion = other.minorVersion;
-        microVersion = other.microVersion;
-        fileName     = other.fileName;
-        attrs        = other.attrs;
-        requireList  = other.requireList;
-        }
-
-
-
-    int get(int pos);
-
-    int skipwhite(int pos);
-
-    int getword(int pos, String &ret);
-
-    /**
-     * Very important
-     */         
-    bool parseRequires();
-
-    void parseVersion();
-
-    bool parseLine(const String &lineBuf);
-
-    bool parse(const String &buf);
-
-    void dumpAttrs();
-
-    String name;
-
-    String path;
-
-    String prefix;
-
-    String description;
-
-    String cflags;
-
-    String libs;
-
-    String requires;
-
-    String version;
-
-    int majorVersion;
-
-    int minorVersion;
-
-    int microVersion;
-
-    String fileName;
-
-    std::map attrs;
-
-    std::vector requireList;
-
-    char *parsebuf;
-    int parselen;
-};
-
-/**
- * Execute the "bzr revno" command and return the result.
- * This is a simple, small class.
- */
-class BzrRevno : public MakeBase
-{
-public:
-
-    /**
-     * Safe way. Execute "bzr revno" and return the result.
-     * Safe from changes in format.
-     */
-    bool query(String &res)
-    {
-        String cmd = "bzr revno";
-
-        String outString, errString;
-        bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error("error executing '%s': %s", cmd.c_str(), errString.c_str());
-            return false;
-            }
-        res = outString;
-        return true;
-    } 
-};
-
-/**
- * Execute the "svn info" command and parse the result.
- * This is a simple, small class. Define here, because it
- * is used by MakeBase implementation methods. 
- */
-class SvnInfo : public MakeBase
-{
-public:
-
-#if 0
-    /**
-     * Safe way. Execute "svn info --xml" and parse the result.  Search for
-     * elements/attributes.  Safe from changes in format.
-     */
-    bool query(const String &name, String &res)
-    {
-        String cmd = "svn info --xml";
-    
-        String outString, errString;
-        bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error("error executing '%s': %s", cmd.c_str(), errString.c_str());
-            return false;
-            }
-        Parser parser;
-        Element *elem = parser.parse(outString); 
-        if (!elem)
-            {
-            error("error parsing 'svn info' xml result: %s", outString.c_str());
-            return false;
-            }
-        
-        res = elem->getTagValue(name);
-        if (res.size()==0)
-            {
-            res = elem->getTagAttribute("entry", name);
-            }
-        return true;
-    } 
-#else
-
-
-    /**
-     * Universal way.  Parse the file directly.  Not so safe from
-     * changes in format.
-     */
-    bool query(const String &name, String &res)
-    {
-        String fileName = resolve(".svn/entries");
-        String nFileName = getNativePath(fileName);
-        
-        std::map properties;
-        
-        FILE *f = fopen(nFileName.c_str(), "r");
-        if (!f)
-            {
-            error("could not open SVN 'entries' file");
-            return false;
-            }
-
-        const char *fieldNames[] =
-            {
-            "format-nbr",
-            "name",
-            "kind",
-            "revision",
-            "url",
-            "repos",
-            "schedule",
-            "text-time",
-            "checksum",
-            "committed-date",
-            "committed-rev",
-            "last-author",
-            "has-props",
-            "has-prop-mods",
-            "cachable-props",
-            };
-
-        for (int i=0 ; i<15 ; i++)
-            {
-            inbuf[0] = '\0';
-            if (feof(f) || !fgets(inbuf, 255, f))
-                break;
-            properties[fieldNames[i]] = trim(inbuf);
-            }
-        fclose(f);
-        
-        res = properties[name];
-        
-        return true;
-    } 
-    
-private:
-
-    char inbuf[256];
-
-#endif
-
-};
-
-
-
-
-
-
-/**
- *  Print a printf()-like formatted error message
- */
-void MakeBase::error(const char *fmt, ...)
-{
-    va_list args;
-    va_start(args,fmt);
-    fprintf(stderr, "Make error line %d: ", line);
-    vfprintf(stderr, fmt, args);
-    fprintf(stderr, "\n");
-    va_end(args) ;
-}
-
-
-
-/**
- *  Print a printf()-like formatted trace message
- */
-void MakeBase::status(const char *fmt, ...)
-{
-    va_list args;
-    //fprintf(stdout, " ");
-    va_start(args,fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args);
-    fprintf(stdout, "\n");
-    fflush(stdout);
-}
-
-
-/**
- *  Print a printf()-like formatted trace message
- */
-void MakeBase::trace(const char *fmt, ...)
-{
-    va_list args;
-    fprintf(stdout, "Make: ");
-    va_start(args,fmt);
-    vfprintf(stdout, fmt, args);
-    va_end(args) ;
-    fprintf(stdout, "\n");
-    fflush(stdout);
-}
-
-
-
-/**
- *  Resolve another path relative to this one
- */
-String MakeBase::resolve(const String &otherPath)
-{
-    URI otherURI(otherPath);
-    URI fullURI = uri.resolve(otherURI);
-    String ret = fullURI.toString();
-    return ret;
-}
-
-
-
-/**
- *  Check if a given string matches a given regex pattern
- */
-bool MakeBase::regexMatch(const String &str, const String &pattern)
-{
-    int res = slre_match(pattern.c_str(), str.c_str(), str.length(), NULL, 0, SLRE_IGNORE_CASE);
-    
-    bool ret = true;
-    if (res < 0)
-        {
-        ret = false;
-        
-        // error cases
-        if (res < -1)
-            {
-            String err;
-            switch(res)
-                {
-                    case SLRE_UNEXPECTED_QUANTIFIER:
-                        err = "unexpected quantifier"; break;
-                    case SLRE_UNBALANCED_BRACKETS:
-                        err = "unbalanced brackets"; break;
-                    case SLRE_INTERNAL_ERROR:
-                        err = "internal error"; break;
-                    case SLRE_INVALID_CHARACTER_SET:
-                        err = "invald character set"; break;
-                    case SLRE_INVALID_METACHARACTER:
-                        err = "invalid meta character"; break;
-                    default:
-                        err = "unknown error"; break;
-                }
-            error("regex failure (%s) while parsing [%s]!\n", err.c_str(), pattern.c_str());
-            }
-        }
-
-    return ret;
-}
-
-/**
- *  Return the suffix, if any, of a file name
- */
-String MakeBase::getSuffix(const String &fname)
-{
-    if (fname.size() < 2)
-        return "";
-    std::size_t pos = fname.find_last_of('.');
-    if (pos == fname.npos)
-        return "";
-    pos++;
-    String res = fname.substr(pos, fname.size()-pos);
-    //trace("suffix:%s", res.c_str()); 
-    return res;
-}
-
-
-
-/**
- * Break up a string into substrings delimited the characters
- * in delimiters.  Null-length substrings are ignored
- */  
-std::vector MakeBase::tokenize(const String &str,
-                                const String &delimiters)
-{
-
-    std::vector res;
-    char *del = (char *)delimiters.c_str();
-    String dmp;
-    for (std::size_t i=0 ; i 0)
-                {
-                res.push_back(dmp);
-                dmp.clear();
-                }
-            }
-        else
-            {
-            dmp.push_back(ch);
-            }
-        }
-    //Add tail
-    if (dmp.size() > 0)
-        {
-        res.push_back(dmp);
-        dmp.clear();
-        }
-
-    return res;
-}
-
-
-
-/**
- *  replace runs of whitespace with a single space
- */
-String MakeBase::strip(const String &s)
-{
-    int len = s.size();
-    String stripped;
-    for (int i = 0 ; i begin ; end--)
-        {
-        if (!isspace(s[end]))
-            break;
-        }
-    //trace("begin:%d  end:%d", begin, end);
-
-    String res = s.substr(begin, end-begin+1);
-    return res;
-}
-
-
-/**
- *  Return a lower case version of the given string
- */
-String MakeBase::toLower(const String &s)
-{
-    if (s.size()==0)
-        return s;
-
-    String ret;
-    for(std::size_t i=0; i= 3)
-        {
-        if (path[0] == '/' &&
-            isalpha(path[1]) &&
-            path[2] == ':')
-            firstChar++;
-        }
-    for (std::size_t i=firstChar ; i
-
-static String win32LastError()
-{
-
-    DWORD dw = GetLastError(); 
-
-    LPVOID str;
-    FormatMessage(
-        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-        FORMAT_MESSAGE_FROM_SYSTEM,
-        NULL,
-        dw,
-        0,
-        (LPTSTR) &str,
-        0, NULL );
-    LPTSTR p = _tcschr((const char *)str, _T('\r'));
-    if(p != NULL)
-        { // lose CRLF
-        *p = _T('\0');
-        }
-    String ret = (char *)str;
-    LocalFree(str);
-
-    return ret;
-}
-#endif
-
-
-
-
-#ifdef __WIN32__
-
-/**
- * Execute a system call, using pipes to send data to the
- * program's stdin,  and reading stdout and stderr.
- */
-bool MakeBase::executeCommand(const String &command,
-                              const String &inbuf,
-                              String &outbuf,
-                              String &errbuf)
-{
-
-//    status("============ cmd ============\n%s\n=============================",
-//                command.c_str());
-
-    outbuf.clear();
-    errbuf.clear();
-    
-
-    /*
-    I really hate having win32 code in this program, but the
-    read buffer in command.com and cmd.exe are just too small
-    for the large commands we need for compiling and linking.
-    */
-
-    bool ret = true;
-
-    //# Allocate a separate buffer for safety
-    char *paramBuf = new char[command.size() + 1];
-    if (!paramBuf)
-       {
-       error("executeCommand cannot allocate command buffer");
-       return false;
-       }
-    strcpy(paramBuf, (char *)command.c_str());
-   
-    //# Go to http://msdn2.microsoft.com/en-us/library/ms682499.aspx
-    //# to see how Win32 pipes work
-
-    //# Create pipes
-    SECURITY_ATTRIBUTES saAttr; 
-    saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
-    saAttr.bInheritHandle = TRUE; 
-    saAttr.lpSecurityDescriptor = NULL; 
-    HANDLE stdinRead,  stdinWrite;
-    HANDLE stdoutRead, stdoutWrite;
-    HANDLE stderrRead, stderrWrite;
-    if (!CreatePipe(&stdinRead, &stdinWrite, &saAttr, 0))
-        {
-        error("executeProgram: could not create pipe");
-        delete[] paramBuf;
-        return false;
-        } 
-    SetHandleInformation(stdinWrite, HANDLE_FLAG_INHERIT, 0);
-    if (!CreatePipe(&stdoutRead, &stdoutWrite, &saAttr, 0))
-        {
-        error("executeProgram: could not create pipe");
-        delete[] paramBuf;
-        return false;
-        } 
-    SetHandleInformation(stdoutRead, HANDLE_FLAG_INHERIT, 0);
-    if (&outbuf != &errbuf) {
-        if (!CreatePipe(&stderrRead, &stderrWrite, &saAttr, 0))
-            {
-            error("executeProgram: could not create pipe");
-            delete[] paramBuf;
-            return false;
-            } 
-        SetHandleInformation(stderrRead, HANDLE_FLAG_INHERIT, 0);
-    } else {
-        stderrRead = stdoutRead;
-        stderrWrite = stdoutWrite;
-    }
-
-    // Create the process
-    STARTUPINFO siStartupInfo;
-    PROCESS_INFORMATION piProcessInfo;
-    memset(&siStartupInfo, 0, sizeof(siStartupInfo));
-    memset(&piProcessInfo, 0, sizeof(piProcessInfo));
-    siStartupInfo.cb = sizeof(siStartupInfo);
-    siStartupInfo.hStdError   =  stderrWrite;
-    siStartupInfo.hStdOutput  =  stdoutWrite;
-    siStartupInfo.hStdInput   =  stdinRead;
-    siStartupInfo.dwFlags    |=  STARTF_USESTDHANDLES;
-   
-    if (!CreateProcess(NULL, paramBuf, NULL, NULL, true,
-                0, NULL, NULL, &siStartupInfo,
-                &piProcessInfo))
-        {
-        error("executeCommand : could not create process : %s",
-                    win32LastError().c_str());
-        ret = false;
-        }
-
-    delete[] paramBuf;
-
-    DWORD bytesWritten;
-    if (inbuf.size()>0 &&
-        !WriteFile(stdinWrite, inbuf.c_str(), inbuf.size(), 
-               &bytesWritten, NULL))
-        {
-        error("executeCommand: could not write to pipe");
-        return false;
-        }    
-    if (!CloseHandle(stdinWrite))
-        {          
-        error("executeCommand: could not close write pipe");
-        return false;
-        }
-    if (!CloseHandle(stdoutWrite))
-        {
-        error("executeCommand: could not close read pipe");
-        return false;
-        }
-    if (stdoutWrite != stderrWrite && !CloseHandle(stderrWrite))
-        {
-        error("executeCommand: could not close read pipe");
-        return false;
-        }
-
-    bool lastLoop = false;
-    while (true)
-        {
-        DWORD avail;
-        DWORD bytesRead;
-        char readBuf[4096];
-
-        //trace("## stderr");
-        PeekNamedPipe(stderrRead, NULL, 0, NULL, &avail, NULL);
-        if (avail > 0)
-            {
-            bytesRead = 0;
-            if (avail>4096) avail = 4096;
-            ReadFile(stderrRead, readBuf, avail, &bytesRead, NULL);
-            if (bytesRead > 0)
-                {
-                for (unsigned int i=0 ; i 0)
-            {
-            bytesRead = 0;
-            if (avail>4096) avail = 4096;
-            ReadFile(stdoutRead, readBuf, avail, &bytesRead, NULL);
-            if (bytesRead > 0)
-                {
-                for (unsigned int i=0 ; i
-
-
-
-/**
- * Execute a system call, using pipes to send data to the
- * program's stdin,  and reading stdout and stderr.
- */
-bool MakeBase::executeCommand(const String &command,
-                              const String &inbuf,
-                              String &outbuf,
-                              String &errbuf)
-{
-
-    status("============ cmd ============\n%s\n=============================",
-                command.c_str());
-
-    outbuf.clear();
-    errbuf.clear();
-    
-
-    int outfds[2];
-    if (pipe(outfds) < 0)
-        return false;
-    int errfds[2];
-    if (pipe(errfds) < 0)
-        return false;
-    int pid = fork();
-    if (pid < 0)
-        {
-        close(outfds[0]);
-        close(outfds[1]);
-        close(errfds[0]);
-        close(errfds[1]);
-        error("launch of command '%s' failed : %s",
-             command.c_str(), strerror(errno));
-        return false;
-        }
-    else if (pid > 0) // parent
-        {
-        close(outfds[1]);
-        close(errfds[1]);
-        }
-    else // == 0, child
-        {
-        close(outfds[0]);
-        dup2(outfds[1], STDOUT_FILENO);
-        close(outfds[1]);
-        close(errfds[0]);
-        dup2(errfds[1], STDERR_FILENO);
-        close(errfds[1]);
-
-        char *args[4];
-        args[0] = (char *)"sh";
-        args[1] = (char *)"-c";
-        args[2] = (char *)command.c_str();
-        args[3] = NULL;
-        execv("/bin/sh", args);
-        exit(EXIT_FAILURE);
-        }
-
-    String outb;
-    String errb;
-
-    int outRead = outfds[0];
-    int errRead = errfds[0];
-    int max = outRead;
-    if (errRead > max)
-        max = errRead;
-
-    bool outOpen = true;
-    bool errOpen = true;
-
-    while (outOpen || errOpen)
-        {
-        char ch;
-        fd_set fdset;
-        FD_ZERO(&fdset);
-        if (outOpen)
-            FD_SET(outRead, &fdset);
-        if (errOpen)
-            FD_SET(errRead, &fdset);
-        int ret = select(max+1, &fdset, NULL, NULL, NULL);
-        if (ret < 0)
-            break;
-        if (FD_ISSET(outRead, &fdset))
-            {
-            if (read(outRead, &ch, 1) <= 0)
-                { outOpen = false; }
-            else if (ch <= 0)
-                { /* outOpen = false; */ }
-            else
-                { outb.push_back(ch); }
-            }
-        if (FD_ISSET(errRead, &fdset))
-            {
-            if (read(errRead, &ch, 1) <= 0)
-                { errOpen = false; }
-            else if (ch <= 0)
-                { /* errOpen = false; */ }
-            else
-                { errb.push_back(ch); }
-            }
-        }
-
-    int childReturnValue;
-    wait(&childReturnValue);
-
-    close(outRead);
-    close(errRead);
-
-    outbuf = outb;
-    errbuf = errb;
-
-    if (childReturnValue != 0)
-        {
-        error("exec of command '%s' failed : %s",
-             command.c_str(), strerror(childReturnValue));
-        return false;
-        }
-
-    return true;
-} 
-
-#endif
-
-
-
-
-bool MakeBase::listDirectories(const String &baseName,
-                              const String &dirName,
-                              std::vector &res)
-{
-    res.push_back(dirName);
-    String fullPath = baseName;
-    if (dirName.size()>0)
-        {
-        if (dirName[0]!='/') fullPath.append("/");
-        fullPath.append(dirName);
-        }
-    DIR *dir = opendir(fullPath.c_str());
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName = dirName;
-        childName.append("/");
-        childName.append(s);
-
-        String fullChildPath = baseName;
-        fullChildPath.append("/");
-        fullChildPath.append(childName);
-        struct stat finfo;
-        String childNative = getNativePath(fullChildPath);
-        if (cachedStat(childNative, &finfo)<0)
-            {
-            error("cannot stat file:%s", childNative.c_str());
-            }
-        else if (S_ISDIR(finfo.st_mode))
-            {
-            //trace("directory: %s", childName.c_str());
-            if (!listDirectories(baseName, childName, res))
-                return false;
-            }
-        }
-    closedir(dir);
-
-    return true;
-}
-
-
-bool MakeBase::listFiles(const String &baseDir,
-                         const String &dirName,
-                         std::vector &res)
-{
-    String fullDir = baseDir;
-    if (dirName.size()>0)
-        {
-        fullDir.append("/");
-        fullDir.append(dirName);
-        }
-    String dirNative = getNativePath(fullDir);
-
-    std::vector subdirs;
-    DIR *dir = opendir(dirNative.c_str());
-    if (!dir)
-        {
-        error("Could not open directory %s : %s",
-              dirNative.c_str(), strerror(errno));
-        return false;
-        }
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName;
-        if (dirName.size()>0)
-            {
-            childName.append(dirName);
-            childName.append("/");
-            }
-        childName.append(s);
-        String fullChild = baseDir;
-        fullChild.append("/");
-        fullChild.append(childName);
-        
-        if (isDirectory(fullChild))
-            {
-            //trace("directory: %s", childName.c_str());
-            if (!listFiles(baseDir, childName, res))
-                return false;
-            continue;
-            }
-        else if (!isRegularFile(fullChild))
-            {
-            error("unknown file:%s", childName.c_str());
-            return false;
-            }
-
-       //all done!
-        res.push_back(childName);
-
-        }
-    closedir(dir);
-
-    return true;
-}
-
-
-/**
- * Several different classes extend MakeBase.  By "propRef", we mean
- * the one holding the properties.  Likely "Make" itself
- */
-bool MakeBase::listFiles(MakeBase &propRef, FileSet &fileSet)
-{
-    //before doing the list,  resolve any property references
-    //that might have been specified in the directory name, such as ${src}
-    String fsDir = fileSet.getDirectory();
-    String dir;
-    if (!propRef.getSubstitutions(fsDir, dir))
-        return false;
-    String baseDir = propRef.resolve(dir);
-    std::vector fileList;
-    if (!listFiles(baseDir, "", fileList))
-        return false;
-
-    std::vector includes = fileSet.getIncludes();
-    std::vector excludes = fileSet.getExcludes();
-
-    std::vector incs;
-    std::vector::iterator iter;
-
-    std::sort(fileList.begin(), fileList.end());
-
-    //If there are , then add files to the output
-    //in the order of the include list
-    if (includes.size()==0)
-        incs = fileList;
-    else
-        {
-        for (iter = includes.begin() ; iter != includes.end() ; iter++)
-            {
-            String &pattern = *iter;
-            std::vector::iterator siter;
-            for (siter = fileList.begin() ; siter != fileList.end() ; siter++)
-                {
-                String s = *siter;
-                if (regexMatch(s, pattern))
-                    {
-                    //trace("INCLUDED:%s", s.c_str());
-                    incs.push_back(s);
-                    }
-                }
-            }
-        }
-
-    //Now trim off the 
-    std::vector res;
-    for (iter = incs.begin() ; iter != incs.end() ; iter++)
-        {
-        String s = *iter;
-        bool skipme = false;
-        std::vector::iterator siter;
-        for (siter = excludes.begin() ; siter != excludes.end() ; siter++)
-            {
-            String &pattern = *siter;
-            if (regexMatch(s, pattern))
-                {
-                //trace("EXCLUDED:%s", s.c_str());
-                skipme = true;
-                break;
-                }
-            }
-        if (!skipme)
-            res.push_back(s);
-        }
-        
-    fileSet.setFiles(res);
-
-    return true;
-}
-
-
-/**
- * 0 == all, 1 = cflags, 2 = libs
- */ 
-bool MakeBase::pkgConfigRecursive(const String packageName,
-                                  const String &path, 
-                                  const String &prefix, 
-                                  int query,
-                                  String &result,
-                                  std::set &deplist) 
-{
-    PkgConfig pkgConfig;
-    if (path.size() > 0)
-        pkgConfig.setPath(path);
-    if (prefix.size() > 0)
-        pkgConfig.setPrefix(prefix);
-    if (!pkgConfig.query(packageName))
-        return false;
-    if (query == 0)
-        result = pkgConfig.getAll();
-    else if (query == 1)
-        result = pkgConfig.getCflags();
-    else
-        result = pkgConfig.getLibs();
-    deplist.insert(packageName);
-    std::vector list = pkgConfig.getRequireList();
-    for (std::size_t i = 0 ; i deplist;
-    String path = getProperty("pkg-config-path");
-    if (path.size()>0)
-        path = resolve(path);
-    String prefix = getProperty("pkg-config-prefix");
-    String val;
-    if (!pkgConfigRecursive(packageName, path, prefix, query, val, deplist))
-        return false;
-    result = val;
-    return true;
-}
-
-
-
-/**
- * replace a variable ref like ${a} with a value
- */
-bool MakeBase::lookupProperty(const String &propertyName, String &result)
-{
-    String varname = propertyName;
-    if (envPrefix.size() > 0 &&
-        varname.compare(0, envPrefix.size(), envPrefix) == 0)
-        {
-        varname = varname.substr(envPrefix.size());
-        char *envstr = getenv(varname.c_str());
-        if (!envstr)
-            {
-            error("environment variable '%s' not defined", varname.c_str());
-            return false;
-            }
-        result = envstr;
-        }
-    else if (pcPrefix.size() > 0 &&
-        varname.compare(0, pcPrefix.size(), pcPrefix) == 0)
-        {
-        varname = varname.substr(pcPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 0, val))
-            return false;
-        result = val;
-        }
-    else if (pccPrefix.size() > 0 &&
-        varname.compare(0, pccPrefix.size(), pccPrefix) == 0)
-        {
-        varname = varname.substr(pccPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 1, val))
-            return false;
-        result = val;
-        }
-    else if (pclPrefix.size() > 0 &&
-        varname.compare(0, pclPrefix.size(), pclPrefix) == 0)
-        {
-        varname = varname.substr(pclPrefix.size());
-        String val;
-        if (!pkgConfigQuery(varname, 2, val))
-            return false;
-        result = val;
-        }
-    else if (bzrPrefix.size() > 0 &&
-        varname.compare(0, bzrPrefix.size(), bzrPrefix) == 0)
-        {
-        varname = varname.substr(bzrPrefix.size());
-        String val;
-        //SvnInfo svnInfo;
-        BzrRevno bzrRevno;
-        if (varname == "revision")
-	    {
-            if (!bzrRevno.query(val))
-                return "";
-            result = "r"+val;
-        }
-        /*if (!svnInfo.query(varname, val))
-            return false;
-        result = val;*/
-        }
-    else
-        {
-        std::map::iterator iter;
-        iter = properties.find(varname);
-        if (iter != properties.end())
-            {
-            result = iter->second;
-            }
-        else
-            {
-            error("property '%s' not found", varname.c_str());
-            return false;
-            }
-        }
-    return true;
-}
-
-
-
-
-/**
- * Analyse a string, looking for any substitutions or other
- * things that need resolution 
- */
-bool MakeBase::getSubstitutionsRecursive(const String &str,
-                                         String &result, int depth)
-{
-    if (depth > 10)
-        {
-        error("nesting of substitutions too deep (>10) for '%s'",
-                        str.c_str());
-        return false;
-        }
-    String s = trim(str);
-    int len = (int)s.size();
-    String val;
-    for (int i=0 ; igetAttribute(name);
-    String tmp;
-    bool ret = getSubstitutions(s, tmp);
-    if (ret)
-        result = s;  //assign -if- ok
-    return ret;
-}
-
-
-/**
- * Get a string value, testing it for proper syntax and
- * property names.
- */
-bool MakeBase::getValue(Element *elem, String &result)
-{
-    String s = elem->getValue();
-    String tmp;
-    bool ret = getSubstitutions(s, tmp);
-    if (ret)
-        result = s;  //assign -if- ok
-    return ret;
-}
-
-
-
-
-/**
- * Parse a  entry
- */  
-bool MakeBase::parsePatternSet(Element *elem,
-                          MakeBase &propRef,
-                          std::vector &includes,
-                          std::vector &excludes
-                          )
-{
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "exclude")
-            {
-            String fname;
-            if (!propRef.getAttribute(child, "name", fname))
-                return false;
-            //trace("EXCLUDE: %s", fname.c_str());
-            excludes.push_back(fname);
-            }
-        else if (tagName == "include")
-            {
-            String fname;
-            if (!propRef.getAttribute(child, "name", fname))
-                return false;
-            //trace("INCLUDE: %s", fname.c_str());
-            includes.push_back(fname);
-            }
-        }
-
-    return true;
-}
-
-
-
-
-/**
- * Parse a  entry, and determine which files
- * should be included
- */  
-bool MakeBase::parseFileSet(Element *elem,
-                          MakeBase &propRef,
-                          FileSet &fileSet)
-{
-    String name = elem->getName();
-    if (name != "fileset")
-        {
-        error("expected ");
-        return false;
-        }
-
-
-    std::vector includes;
-    std::vector excludes;
-
-    //A fileset has one implied patternset
-    if (!parsePatternSet(elem, propRef, includes, excludes))
-        {
-        return false;
-        }
-    //Look for child tags, including more patternsets
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "patternset")
-            {
-            if (!parsePatternSet(child, propRef, includes, excludes))
-                {
-                return false;
-                }
-            }
-        }
-
-    String dir;
-    //Now do the stuff
-    //Get the base directory for reading file names
-    if (!propRef.getAttribute(elem, "dir", dir))
-        return false;
-
-    fileSet.setDirectory(dir);
-    fileSet.setIncludes(includes);
-    fileSet.setExcludes(excludes);
-    
-    /*
-    std::vector fileList;
-    if (dir.size() > 0)
-        {
-        String baseDir = propRef.resolve(dir);
-        if (!listFiles(baseDir, "", includes, excludes, fileList))
-            return false;
-        }
-    std::sort(fileList.begin(), fileList.end());
-    result = fileList;
-    */
-
-    
-    /*
-    for (std::size_t i=0 ; i entry.  This is far simpler than FileSet,
- * since no directory scanning is needed.  The file names are listed
- * explicitly.
- */  
-bool MakeBase::parseFileList(Element *elem,
-                          MakeBase &propRef,
-                          FileList &fileList)
-{
-    std::vector fnames;
-    //Look for child tags, namely "file"
-    std::vector children  = elem->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName == "file")
-            {
-            String fname = child->getAttribute("name");
-            if (fname.size()==0)
-                {
-                error(" element requires name="" attribute");
-                return false;
-                }
-            fnames.push_back(fname);
-            }
-        else
-            {
-            error("tag <%s> not allowed in ", tagName.c_str());
-            return false;
-            }
-        }
-
-    String dir;
-    //Get the base directory for reading file names
-    if (!propRef.getAttribute(elem, "dir", dir))
-        return false;
-    fileList.setDirectory(dir);
-    fileList.setFiles(fnames);
-
-    return true;
-}
-
-
-
-/**
- * Create a directory, making intermediate dirs
- * if necessary
- */                  
-bool MakeBase::createDirectory(const String &dirname)
-{
-    //trace("## createDirectory: %s", dirname.c_str());
-    //## first check if it exists
-    struct stat finfo;
-    String nativeDir = getNativePath(dirname);
-    char *cnative = (char *) nativeDir.c_str();
-#ifdef __WIN32__
-    if (strlen(cnative)==2 && cnative[1]==':')
-        return true;
-#endif
-    if (cachedStat(nativeDir, &finfo)==0)
-        {
-        if (!S_ISDIR(finfo.st_mode))
-            {
-            error("mkdir: file %s exists but is not a directory",
-                  cnative);
-            return false;
-            }
-        else //exists
-            {
-            return true;
-            }
-        }
-
-    //## 2: pull off the last path segment, if any,
-    //## to make the dir 'above' this one, if necessary
-    std::size_t pos = dirname.find_last_of('/');
-    if (pos>0 && pos != dirname.npos)
-        {
-        String subpath = dirname.substr(0, pos);
-        //A letter root (c:) ?
-        if (!createDirectory(subpath))
-            return false;
-        }
-        
-    //## 3: now make
-#ifdef __WIN32__
-    if (mkdir(cnative)<0)
-#else
-    if (mkdir(cnative, S_IRWXU | S_IRWXG | S_IRWXO)<0)
-#endif
-        {
-        error("cannot make directory '%s' : %s",
-                 cnative, strerror(errno));
-        return false;
-        }
-
-    removeFromStatCache(nativeDir);
-        
-    return true;
-}
-
-
-/**
- * Remove a directory recursively
- */ 
-bool MakeBase::removeDirectory(const String &dirName)
-{
-    char *dname = (char *)dirName.c_str();
-
-    DIR *dir = opendir(dname);
-    if (!dir)
-        {
-        //# Let this fail nicely.
-        return true;
-        //error("error opening directory %s : %s", dname, strerror(errno));
-        //return false;
-        }
-    
-    while (true)
-        {
-        struct dirent *de = readdir(dir);
-        if (!de)
-            break;
-
-        //Get the directory member name
-        String s = de->d_name;
-        if (s.size() == 0 || s[0] == '.')
-            continue;
-        String childName;
-        if (dirName.size() > 0)
-            {
-            childName.append(dirName);
-            childName.append("/");
-            }
-        childName.append(s);
-
-
-        struct stat finfo;
-        String childNative = getNativePath(childName);
-        char *cnative = (char *)childNative.c_str();
-        if (cachedStat(childNative, &finfo)<0)
-            {
-            error("cannot stat file:%s", cnative);
-            }
-        else if (S_ISDIR(finfo.st_mode))
-            {
-            //trace("DEL dir: %s", childName.c_str());
-            if (!removeDirectory(childName))
-                {
-                return false;
-                }
-            }
-        else if (!S_ISREG(finfo.st_mode))
-            {
-            //trace("not regular: %s", cnative);
-            }
-        else
-            {
-            //trace("DEL file: %s", childName.c_str());
-            if (!removeFile(childName))
-                {
-                return false;
-                }
-            }
-        }
-    closedir(dir);
-
-    //Now delete the directory
-    String native = getNativePath(dirName);
-    if (rmdir(native.c_str())<0)
-        {
-        error("could not delete directory %s : %s",
-            native.c_str() , strerror(errno));
-        return false;
-        }
-
-    removeFromStatCache(native);
-
-    return true;
-    
-}
-
-
-/**
- * Copy a file from one name to another. Perform only if needed
- */ 
-bool MakeBase::copyFile(const String &srcFile, const String &destFile)
-{
-    //# 1 Check up-to-date times
-    String srcNative = getNativePath(srcFile);
-    struct stat srcinfo;
-    if (cachedStat(srcNative, &srcinfo)<0)
-        {
-        error("source file %s for copy does not exist",
-                 srcNative.c_str());
-        return false;
-        }
-
-    String destNative = getNativePath(destFile);
-    struct stat destinfo;
-    if (cachedStat(destNative, &destinfo)==0)
-        {
-        if (destinfo.st_mtime >= srcinfo.st_mtime)
-            return true;
-        }
-        
-    //# 2 prepare a destination directory if necessary
-    std::size_t pos = destFile.find_last_of('/');
-    if (pos != destFile.npos)
-        {
-        String subpath = destFile.substr(0, pos);
-        if (!createDirectory(subpath))
-            return false;
-        }
-
-    //# 3 do the data copy
-#ifndef __WIN32__
-
-    FILE *srcf = fopen(srcNative.c_str(), "rb");
-    if (!srcf)
-        {
-        error("copyFile cannot open '%s' for reading", srcNative.c_str());
-        return false;
-        }
-    FILE *destf = fopen(destNative.c_str(), "wb");
-    if (!destf)
-        {
-        fclose(srcf);
-        error("copyFile cannot open %s for writing", srcNative.c_str());
-        return false;
-        }
-
-    while (!feof(srcf))
-        {
-        int ch = fgetc(srcf);
-        if (ch<0)
-            break;
-        fputc(ch, destf);
-        }
-
-    fclose(destf);
-    fclose(srcf);
-
-#else
-    
-    if (!CopyFile(srcNative.c_str(), destNative.c_str(), false))
-        {
-        error("copyFile from %s to %s failed",
-             srcNative.c_str(), destNative.c_str());
-        return false;
-        }
-        
-#endif /* __WIN32__ */
-
-    removeFromStatCache(destNative);
-
-    return true;
-}
-
-
-/**
- * Delete a file
- */ 
-bool MakeBase::removeFile(const String &file)
-{
-    String native = getNativePath(file);
-
-    if (!fileExists(native))
-        {
-        return true;
-        }
-
-#ifdef WIN32
-    // On Windows 'remove' will only delete files
-
-    if (remove(native.c_str())<0)
-        {
-        if (errno==EACCES)
-            {
-            error("File %s is read-only", native.c_str());
-            }
-        else if (errno==ENOENT)
-            {
-            error("File %s does not exist or is a directory", native.c_str());
-            }
-        else
-            {
-            error("Failed to delete file %s: %s", native.c_str(), strerror(errno));
-            }
-        return false;
-        }
-
-#else
-
-    if (!isRegularFile(native))
-        {
-        error("File %s does not exist or is not a regular file", native.c_str());
-        return false;
-        }
-
-    if (remove(native.c_str())<0)
-        {
-        if (errno==EACCES)
-            {
-            error("File %s is read-only", native.c_str());
-            }
-        else
-            {
-            error(
-                errno==EACCES ? "File %s is read-only" :
-                errno==ENOENT ? "File %s does not exist or is a directory" :
-                "Failed to delete file %s: %s", native.c_str());
-            }
-        return false;
-        }
-
-#endif
-
-    removeFromStatCache(native);
-
-    return true;
-}
-
-
-/**
- * Tests if the file exists
- */ 
-bool MakeBase::fileExists(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-    return true;
-}
-
-
-/**
- * Tests if the file exists and is a regular file
- */ 
-bool MakeBase::isRegularFile(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-
-    //check the file mode
-    if (!S_ISREG(finfo.st_mode))
-        return false;
-
-    return true;
-}
-
-/**
- * Tests if the file exists and is a directory
- */ 
-bool MakeBase::isDirectory(const String &fileName)
-{
-    String native = getNativePath(fileName);
-    struct stat finfo;
-    
-    //Exists?
-    if (cachedStat(native, &finfo)<0)
-        return false;
-
-
-    //check the file mode
-    if (!S_ISDIR(finfo.st_mode))
-        return false;
-
-    return true;
-}
-
-
-
-/**
- * Tests is the modification of fileA is newer than fileB
- */ 
-bool MakeBase::isNewerThan(const String &fileA, const String &fileB)
-{
-    //trace("isNewerThan:'%s' , '%s'", fileA.c_str(), fileB.c_str());
-    String nativeA = getNativePath(fileA);
-    struct stat infoA;
-    //IF source does not exist, NOT newer
-    if (cachedStat(nativeA, &infoA)<0)
-        {
-        return false;
-        }
-
-    String nativeB = getNativePath(fileB);
-    struct stat infoB;
-    //IF dest does not exist, YES, newer
-    if (cachedStat(nativeB, &infoB)<0)
-        {
-        return true;
-        }
-
-    //check the actual times
-    if (infoA.st_mtime > infoB.st_mtime)
-        {
-        return true;
-        }
-
-    return false;
-}
-
-
-//########################################################################
-//# P K G    C O N F I G
-//########################################################################
-
-
-/**
- * Get a character from the buffer at pos.  If out of range,
- * return -1 for safety
- */
-int PkgConfig::get(int pos)
-{
-    if (pos>parselen)
-        return -1;
-    return parsebuf[pos];
-}
-
-
-
-/**
- *  Skip over all whitespace characters beginning at pos.  Return
- *  the position of the first non-whitespace character.
- *  Pkg-config is line-oriented, so check for newline
- */
-int PkgConfig::skipwhite(int pos)
-{
-    while (pos < parselen)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isspace(ch))
-            break;
-        pos++;
-        }
-    return pos;
-}
-
-
-/**
- *  Parse the buffer beginning at pos, for a word.  Fill
- *  'ret' with the result.  Return the position after the
- *  word.
- */
-int PkgConfig::getword(int pos, String &ret)
-{
-    while (pos < parselen)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isalnum(ch) && ch != '_' && ch != '-' && ch != '+' && ch != '.')
-            break;
-        ret.push_back((char)ch);
-        pos++;
-        }
-    return pos;
-}
-
-bool PkgConfig::parseRequires()
-{
-    if (requires.size() == 0)
-        return true;
-    parsebuf = (char *)requires.c_str();
-    parselen = requires.size();
-    int pos = 0;
-    while (pos < parselen)
-        {
-        pos = skipwhite(pos);
-        String val;
-        int pos2 = getword(pos, val);
-        if (pos2 == pos)
-            break;
-        pos = pos2;
-        //trace("val %s", val.c_str());
-        requireList.push_back(val);
-        }
-    return true;
-}
-
-
-static int getint(const String str)
-{
-    char *s = (char *)str.c_str();
-    char *ends = NULL;
-    long val = strtol(s, &ends, 10);
-    if (ends == s)
-        return 0L;
-    else
-        return val;
-}
-
-void PkgConfig::parseVersion()
-{
-    if (version.size() == 0)
-        return;
-    String s1, s2, s3;
-    std::size_t pos = 0;
-    std::size_t pos2 = version.find('.', pos);
-    if (pos2 == version.npos)
-        {
-        s1 = version;
-        }
-    else
-        {
-        s1 = version.substr(pos, pos2-pos);
-        pos = pos2;
-        pos++;
-        if (pos < version.size())
-            {
-            pos2 = version.find('.', pos);
-            if (pos2 == version.npos)
-                {
-                s2 = version.substr(pos, version.size()-pos);
-                }
-            else
-                {
-                s2 = version.substr(pos, pos2-pos);
-                pos = pos2;
-                pos++;
-                if (pos < version.size())
-                    s3 = version.substr(pos, pos2-pos);
-                }
-            }
-        }
-
-    majorVersion = getint(s1);
-    minorVersion = getint(s2);
-    microVersion = getint(s3);
-    //trace("version:%d.%d.%d", majorVersion,
-    //          minorVersion, microVersion );
-}
-
-
-bool PkgConfig::parseLine(const String &lineBuf)
-{
-    parsebuf = (char *)lineBuf.c_str();
-    parselen = lineBuf.size();
-    int pos = 0;
-    
-    while (pos < parselen)
-        {
-        String attrName;
-        pos = skipwhite(pos);
-        int ch = get(pos);
-        if (ch == '#')
-            {
-            //comment.  eat the rest of the line
-            while (pos < parselen)
-                {
-                ch = get(pos);
-                if (ch == '\n' || ch < 0)
-                    break;
-                pos++;
-                }
-            continue;
-            }
-        pos = getword(pos, attrName);
-        if (attrName.size() == 0)
-            continue;
-        
-        pos = skipwhite(pos);
-        ch = get(pos);
-        if (ch != ':' && ch != '=')
-            {
-            error("expected ':' or '='");
-            return false;
-            }
-        pos++;
-        pos = skipwhite(pos);
-        String attrVal;
-        while (pos < parselen)
-            {
-            ch = get(pos);
-            if (ch == '\n' || ch < 0)
-                break;
-            else if (ch == '$' && get(pos+1) == '{')
-                {
-                //#  this is a ${substitution}
-                pos += 2;
-                String subName;
-                while (pos < parselen)
-                    {
-                    ch = get(pos);
-                    if (ch < 0)
-                        {
-                        error("unterminated substitution");
-                        return false;
-                        }
-                    else if (ch == '}')
-                        break;
-                    else
-                        subName.push_back((char)ch);
-                    pos++;
-                    }
-                //trace("subName:%s %s", subName.c_str(), prefix.c_str());
-                if (subName == "prefix" && prefix.size()>0)
-                    {
-                    attrVal.append(prefix);
-                    //trace("prefix override:%s", prefix.c_str());
-                    }
-                else
-                    {
-                    String subVal = attrs[subName];
-                    //trace("subVal:%s", subVal.c_str());
-                    attrVal.append(subVal);
-                    }
-                }
-            else
-                attrVal.push_back((char)ch);
-            pos++;
-            }
-
-        attrVal = trim(attrVal);
-        attrs[attrName] = attrVal;
-
-        String attrNameL = toLower(attrName);
-
-        if (attrNameL == "name")
-            name = attrVal;
-        else if (attrNameL == "description")
-            description = attrVal;
-        else if (attrNameL == "cflags")
-            cflags = attrVal;
-        else if (attrNameL == "libs")
-            libs = attrVal;
-        else if (attrNameL == "requires")
-            requires = attrVal;
-        else if (attrNameL == "version")
-            version = attrVal;
-
-        //trace("name:'%s'  value:'%s'",
-        //      attrName.c_str(), attrVal.c_str());
-        }
-
-    return true;
-}
-
-
-bool PkgConfig::parse(const String &buf)
-{
-    init();
-
-    String line;
-    int lineNr = 0;
-    for (std::size_t p=0 ; p0)
-        {
-        if (!parseLine(line))
-            return false;
-        }
-
-    parseRequires();
-    parseVersion();
-
-    return true;
-}
-
-
-
-
-void PkgConfig::dumpAttrs()
-{
-    //trace("### PkgConfig attributes for %s", fileName.c_str());
-    std::map::iterator iter;
-    for (iter=attrs.begin() ; iter!=attrs.end() ; iter++)
-        {
-        trace("   %s = %s", iter->first.c_str(), iter->second.c_str());
-        }
-}
-
-
-bool PkgConfig::readFile(const String &fname)
-{
-    fileName = getNativePath(fname);
-
-    FILE *f = fopen(fileName.c_str(), "r");
-    if (!f)
-        {
-        error("cannot open file '%s' for reading", fileName.c_str());
-        return false;
-        }
-    String buf;
-    while (true)
-        {
-        int ch = fgetc(f);
-        if (ch < 0)
-            break;
-        buf.push_back((char)ch);
-        }
-    fclose(f);
-
-    //trace("####### File:\n%s", buf.c_str());
-    if (!parse(buf))
-        {
-        return false;
-        }
-
-    //dumpAttrs();
-
-    return true;
-}
-
-
-
-bool PkgConfig::query(const String &pkgName)
-{
-    name = pkgName;
-
-    String fname = path;
-    fname.append("/");
-    fname.append(name);
-    fname.append(".pc");
-
-    if (!readFile(fname))
-        {
-        error("Cannot find package '%s'. Do you have it installed?",
-                       pkgName.c_str());
-        return false;
-        }
-    
-    return true;
-}
-
-
-//########################################################################
-//# D E P T O O L
-//########################################################################
-
-
-
-/**
- *  Class which holds information for each file.
- */
-class FileRec
-{
-public:
-
-    typedef enum
-        {
-        UNKNOWN,
-        CFILE,
-        HFILE,
-        OFILE
-        } FileType;
-
-    /**
-     *  Constructor
-     */
-    FileRec()
-        { init(); type = UNKNOWN; }
-
-    /**
-     *  Copy constructor
-     */
-    FileRec(const FileRec &other)
-        { init(); assign(other); }
-    /**
-     *  Constructor
-     */
-    FileRec(int typeVal)
-        { init(); type = typeVal; }
-    /**
-     *  Assignment operator
-     */
-    FileRec &operator=(const FileRec &other)
-        { init(); assign(other); return *this; }
-
-
-    /**
-     *  Destructor
-     */
-    ~FileRec()
-        {}
-
-    /**
-     *  Directory part of the file name
-     */
-    String path;
-
-    /**
-     *  Base name, sans directory and suffix
-     */
-    String baseName;
-
-    /**
-     *  File extension, such as cpp or h
-     */
-    String suffix;
-
-    /**
-     *  Type of file: CFILE, HFILE, OFILE
-     */
-    int type;
-
-    /**
-     * Used to list files ref'd by this one
-     */
-    std::map files;
-
-
-private:
-
-    void init()
-        {
-        }
-
-    void assign(const FileRec &other)
-        {
-        type     = other.type;
-        baseName = other.baseName;
-        suffix   = other.suffix;
-        files    = other.files;
-        }
-
-};
-
-
-
-/**
- *  Simpler dependency record
- */
-class DepRec
-{
-public:
-
-    /**
-     *  Constructor
-     */
-    DepRec()
-        {init();}
-
-    /**
-     *  Copy constructor
-     */
-    DepRec(const DepRec &other)
-        {init(); assign(other);}
-    /**
-     *  Constructor
-     */
-    DepRec(const String &fname)
-        {init(); name = fname; }
-    /**
-     *  Assignment operator
-     */
-    DepRec &operator=(const DepRec &other)
-        {init(); assign(other); return *this;}
-
-
-    /**
-     *  Destructor
-     */
-    ~DepRec()
-        {}
-
-    /**
-     *  Directory part of the file name
-     */
-    String path;
-
-    /**
-     *  Base name, without the path and suffix
-     */
-    String name;
-
-    /**
-     *  Suffix of the source
-     */
-    String suffix;
-
-
-    /**
-     * Used to list files ref'd by this one
-     */
-    std::vector files;
-
-
-private:
-
-    void init()
-        {
-        }
-
-    void assign(const DepRec &other)
-        {
-        path     = other.path;
-        name     = other.name;
-        suffix   = other.suffix;
-        files    = other.files; //avoid recursion
-        }
-
-};
-
-
-class DepTool : public MakeBase
-{
-public:
-
-    /**
-     *  Constructor
-     */
-    DepTool()
-        { init(); }
-
-    /**
-     *  Copy constructor
-     */
-    DepTool(const DepTool &other)
-        { init(); assign(other); }
-
-    /**
-     *  Assignment operator
-     */
-    DepTool &operator=(const DepTool &other)
-        { init(); assign(other); return *this; }
-
-
-    /**
-     *  Destructor
-     */
-    ~DepTool()
-        {}
-
-
-    /**
-     *  Reset this section of code
-     */
-    virtual void init();
-    
-    /**
-     *  Reset this section of code
-     */
-    virtual void assign(const DepTool &other)
-        {
-        }
-    
-    /**
-     *  Sets the source directory which will be scanned
-     */
-    virtual void setSourceDirectory(const String &val)
-        { sourceDir = val; }
-
-    /**
-     *  Returns the source directory which will be scanned
-     */
-    virtual String getSourceDirectory()
-        { return sourceDir; }
-
-    /**
-     *  Sets the list of files within the directory to analyze
-     */
-    virtual void setFileList(const std::vector &list)
-        { fileList = list; }
-
-    /**
-     * Creates the list of all file names which will be
-     * candidates for further processing.  Reads make.exclude
-     * to see which files for directories to leave out.
-     */
-    virtual bool createFileList();
-
-
-    /**
-     *  Generates the forward dependency list
-     */
-    virtual bool generateDependencies();
-
-
-    /**
-     *  Generates the forward dependency list, saving the file
-     */
-    virtual bool generateDependencies(const String &);
-
-
-    /**
-     *  Load a dependency file
-     */
-    std::vector loadDepFile(const String &fileName);
-
-    /**
-     *  Load a dependency file, generating one if necessary
-     */
-    std::vector getDepFile(const String &fileName,
-              bool forceRefresh);
-
-    /**
-     *  Save a dependency file
-     */
-    bool saveDepFile(const String &fileName);
-
-
-private:
-
-
-    /**
-     *
-     */
-    void parseName(const String &fullname,
-                   String &path,
-                   String &basename,
-                   String &suffix);
-
-    /**
-     *
-     */
-    int get(int pos);
-
-    /**
-     *
-     */
-    int skipwhite(int pos);
-
-    /**
-     *
-     */
-    int getword(int pos, String &ret);
-
-    /**
-     *
-     */
-    bool sequ(int pos, const char *key);
-
-    /**
-     *
-     */
-    bool addIncludeFile(FileRec *frec, const String &fname);
-
-    /**
-     *
-     */
-    bool scanFile(const String &fname, FileRec *frec);
-
-    /**
-     *
-     */
-    bool processDependency(FileRec *ofile, FileRec *include);
-
-    /**
-     *
-     */
-    String sourceDir;
-
-    /**
-     *
-     */
-    std::vector fileList;
-
-    /**
-     *
-     */
-    std::vector directories;
-
-    /**
-     * A list of all files which will be processed for
-     * dependencies.
-     */
-    std::map allFiles;
-
-    /**
-     * The list of .o files, and the
-     * dependencies upon them.
-     */
-    std::map oFiles;
-
-    int depFileSize;
-    char *depFileBuf;
-
-    static const int readBufSize = 8192;
-    char readBuf[8193];//byte larger
-
-};
-
-
-
-
-
-/**
- *  Clean up after processing.  Called by the destructor, but should
- *  also be called before the object is reused.
- */
-void DepTool::init()
-{
-    sourceDir = ".";
-
-    fileList.clear();
-    directories.clear();
-    
-    //clear output file list
-    std::map::iterator iter;
-    for (iter=oFiles.begin(); iter!=oFiles.end() ; iter++)
-        delete iter->second;
-    oFiles.clear();
-
-    //allFiles actually contains the master copies. delete them
-    for (iter= allFiles.begin(); iter!=allFiles.end() ; iter++)
-        delete iter->second;
-    allFiles.clear(); 
-
-}
-
-
-
-
-/**
- *  Parse a full path name into path, base name, and suffix
- */
-void DepTool::parseName(const String &fullname,
-                        String &path,
-                        String &basename,
-                        String &suffix)
-{
-    if (fullname.size() < 2)
-        return;
-
-    std::size_t pos = fullname.find_last_of('/');
-    if (pos != fullname.npos && pospath            = path;
-            fe->baseName        = basename;
-            fe->suffix          = sfx;
-            allFiles[fileName]  = fe;
-            }
-        else if (sfx == "h"   ||  sfx == "hh"  ||
-                 sfx == "hpp" ||  sfx == "hxx")
-            {
-            FileRec *fe         = new FileRec(FileRec::HFILE);
-            fe->path            = path;
-            fe->baseName        = basename;
-            fe->suffix          = sfx;
-            allFiles[fileName]  = fe;
-            }
-        }
-
-    if (!listDirectories(sourceDir, "", directories))
-        return false;
-        
-    return true;
-}
-
-
-
-
-
-/**
- * Get a character from the buffer at pos.  If out of range,
- * return -1 for safety
- */
-int DepTool::get(int pos)
-{
-    if (pos>depFileSize)
-        return -1;
-    return depFileBuf[pos];
-}
-
-
-
-/**
- *  Skip over all whitespace characters beginning at pos.  Return
- *  the position of the first non-whitespace character.
- */
-int DepTool::skipwhite(int pos)
-{
-    while (pos < depFileSize)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (!isspace(ch))
-            break;
-        pos++;
-        }
-    return pos;
-}
-
-
-/**
- *  Parse the buffer beginning at pos, for a word.  Fill
- *  'ret' with the result.  Return the position after the
- *  word.
- */
-int DepTool::getword(int pos, String &ret)
-{
-    while (pos < depFileSize)
-        {
-        int ch = get(pos);
-        if (ch < 0)
-            break;
-        if (isspace(ch))
-            break;
-        ret.push_back((char)ch);
-        pos++;
-        }
-    return pos;
-}
-
-/**
- * Return whether the sequence of characters in the buffer
- * beginning at pos match the key,  for the length of the key
- */
-bool DepTool::sequ(int pos, const char *key)
-{
-    while (*key)
-        {
-        if (*key != get(pos))
-            return false;
-        key++; pos++;
-        }
-    return true;
-}
-
-
-
-/**
- *  Add an include file name to a file record.  If the name
- *  is not found in allFiles explicitly, try prepending include
- *  directory names to it and try again.
- */
-bool DepTool::addIncludeFile(FileRec *frec, const String &iname)
-{
-    //# if the name is an exact match to a path name
-    //# in allFiles, like "myinc.h"
-    std::map::iterator iter =
-           allFiles.find(iname);
-    if (iter != allFiles.end()) //already exists
-        {
-         //h file in same dir
-        FileRec *other = iter->second;
-        //trace("local: '%s'", iname.c_str());
-        frec->files[iname] = other;
-        return true;
-        }
-    else 
-        {
-        //## Ok, it was not found directly
-        //look in other dirs
-        std::vector::iterator diter;
-        for (diter=directories.begin() ;
-             diter!=directories.end() ; diter++)
-            {
-            String dfname = *diter;
-            dfname.append("/");
-            dfname.append(iname);
-            URI fullPathURI(dfname);  //normalize path name
-            String fullPath = fullPathURI.getPath();
-            if (fullPath[0] == '/')
-                fullPath = fullPath.substr(1);
-            //trace("Normalized %s to %s", dfname.c_str(), fullPath.c_str());
-            iter = allFiles.find(fullPath);
-            if (iter != allFiles.end())
-                {
-                FileRec *other = iter->second;
-                //trace("other: '%s'", iname.c_str());
-                frec->files[fullPath] = other;
-                return true;
-                }
-            }
-        }
-    return true;
-}
-
-
-
-/**
- *  Lightly parse a file to find the #include directives.  Do
- *  a bit of state machine stuff to make sure that the directive
- *  is valid.  (Like not in a comment).
- */
-bool DepTool::scanFile(const String &fname, FileRec *frec)
-{
-    String fileName;
-    if (sourceDir.size() > 0)
-        {
-        fileName.append(sourceDir);
-        fileName.append("/");
-        }
-    fileName.append(fname);
-    String nativeName = getNativePath(fileName);
-    FILE *f = fopen(nativeName.c_str(), "r");
-    if (!f)
-        {
-        error("Could not open '%s' for reading", fname.c_str());
-        return false;
-        }
-    String buf;
-    while (!feof(f))
-        {
-        int nrbytes = fread(readBuf, 1, readBufSize, f);
-        readBuf[nrbytes] = '\0';
-        buf.append(readBuf);
-        }
-    fclose(f);
-
-    depFileSize = buf.size();
-    depFileBuf  = (char *)buf.c_str();
-    int pos = 0;
-
-
-    while (pos < depFileSize)
-        {
-        //trace("p:%c", get(pos));
-
-        //# Block comment
-        if (get(pos) == '/' && get(pos+1) == '*')
-            {
-            pos += 2;
-            while (pos < depFileSize)
-                {
-                if (get(pos) == '*' && get(pos+1) == '/')
-                    {
-                    pos += 2;
-                    break;
-                    }
-                else
-                    pos++;
-                }
-            }
-        //# Line comment
-        else if (get(pos) == '/' && get(pos+1) == '/')
-            {
-            pos += 2;
-            while (pos < depFileSize)
-                {
-                if (get(pos) == '\n')
-                    {
-                    pos++;
-                    break;
-                    }
-                else
-                    pos++;
-                }
-            }
-        //# #include! yaay
-        else if (sequ(pos, "#include"))
-            {
-            pos += 8;
-            pos = skipwhite(pos);
-            String iname;
-            pos = getword(pos, iname);
-            if (iname.size()>2)
-                {
-                iname = iname.substr(1, iname.size()-2);
-                addIncludeFile(frec, iname);
-                }
-            }
-        else
-            {
-            pos++;
-            }
-        }
-
-    return true;
-}
-
-
-
-/**
- *  Recursively check include lists to find all files in allFiles to which
- *  a given file is dependent.
- */
-bool DepTool::processDependency(FileRec *ofile, FileRec *include)
-{
-    std::map::iterator iter;
-    for (iter=include->files.begin() ; iter!=include->files.end() ; iter++)
-        {
-        String fname  = iter->first;
-        if (ofile->files.find(fname) != ofile->files.end())
-            {
-            //trace("file '%s' already seen", fname.c_str());
-            continue;
-            }
-        FileRec *child  = iter->second;
-        ofile->files[fname] = child;
-      
-        processDependency(ofile, child);
-        }
-
-
-    return true;
-}
-
-
-
-
-
-/**
- *  Generate the file dependency list.
- */
-bool DepTool::generateDependencies()
-{
-    std::map::iterator iter;
-    //# First pass.  Scan for all includes
-    for (iter=allFiles.begin() ; iter!=allFiles.end() ; iter++)
-        {
-        FileRec *frec = iter->second;
-        if (!scanFile(iter->first, frec))
-            {
-            //quit?
-            }
-        }
-
-    //# Second pass.  Scan for all includes
-    for (iter=allFiles.begin() ; iter!=allFiles.end() ; iter++)
-        {
-        FileRec *include = iter->second;
-        if (include->type == FileRec::CFILE)
-            {
-            //String cFileName   = iter->first;
-            FileRec *ofile     = new FileRec(FileRec::OFILE);
-            ofile->path        = include->path;
-            ofile->baseName    = include->baseName;
-            ofile->suffix      = include->suffix;
-            String fname       = include->path;
-            if (fname.size()>0)
-                fname.append("/");
-            fname.append(include->baseName);
-            fname.append(".o");
-            oFiles[fname]    = ofile;
-            //add the .c file first?   no, don't
-            //ofile->files[cFileName] = include;
-            
-            //trace("ofile:%s", fname.c_str());
-
-            processDependency(ofile, include);
-            }
-        }
-
-      
-    return true;
-}
-
-
-
-/**
- *  High-level call to generate deps and optionally save them
- */
-bool DepTool::generateDependencies(const String &fileName)
-{
-    if (!createFileList())
-        return false;
-    if (!generateDependencies())
-        return false;
-    if (!saveDepFile(fileName))
-        return false;
-    return true;
-}
-
-
-/**
- *   This saves the dependency cache.
- */
-bool DepTool::saveDepFile(const String &fileName)
-{
-    time_t tim;
-    time(&tim);
-
-    FILE *f = fopen(fileName.c_str(), "w");
-    if (!f)
-        {
-        trace("cannot open '%s' for writing", fileName.c_str());
-        }
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-
-    fprintf(f, "\n\n", sourceDir.c_str());
-    std::map::iterator iter;
-    for (iter=oFiles.begin() ; iter!=oFiles.end() ; iter++)
-        {
-        FileRec *frec = iter->second;
-        if (frec->type == FileRec::OFILE)
-            {
-            fprintf(f, "\n",
-                 frec->path.c_str(), frec->baseName.c_str(), frec->suffix.c_str());
-            std::map::iterator citer;
-            for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++)
-                {
-                String cfname = citer->first;
-                fprintf(f, "    \n", cfname.c_str());
-                }
-            fprintf(f, "\n\n");
-            }
-        }
-
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-    fprintf(f, "\n");
-
-    fclose(f);
-
-    return true;
-}
-
-
-
-
-/**
- *   This loads the dependency cache.
- */
-std::vector DepTool::loadDepFile(const String &depFile)
-{
-    std::vector result;
-    
-    Parser parser;
-    Element *root = parser.parseFile(depFile.c_str());
-    if (!root)
-        {
-        //error("Could not open %s for reading", depFile.c_str());
-        return result;
-        }
-
-    if (root->getChildren().size()==0 ||
-        root->getChildren()[0]->getName()!="dependencies")
-        {
-        error("loadDepFile: main xml element should be ");
-        delete root;
-        return result;
-        }
-
-    //########## Start parsing
-    Element *depList = root->getChildren()[0];
-
-    std::vector objects = depList->getChildren();
-    for (std::size_t i=0 ; igetName();
-        if (tagName != "object")
-            {
-            error("loadDepFile:  should have only  children");
-            return result;
-            }
-
-        String objName   = objectElem->getAttribute("name");
-         //trace("object:%s", objName.c_str());
-        DepRec depObject(objName);
-        depObject.path   = objectElem->getAttribute("path");
-        depObject.suffix = objectElem->getAttribute("suffix");
-        //########## DESCRIPTION
-        std::vector depElems = objectElem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName != "dep")
-                {
-                error("loadDepFile:  should have only  children");
-                return result;
-                }
-            String depName = depElem->getAttribute("name");
-            //trace("    dep:%s", depName.c_str());
-            depObject.files.push_back(depName);
-            }
-
-        //Insert into the result list, in a sorted manner
-        bool inserted = false;
-        std::vector::iterator iter;
-        for (iter = result.begin() ; iter != result.end() ; iter++)
-            {
-            String vpath = iter->path;
-            vpath.append("/");
-            vpath.append(iter->name);
-            String opath = depObject.path;
-            opath.append("/");
-            opath.append(depObject.name);
-            if (vpath > opath)
-                {
-                inserted = true;
-                iter = result.insert(iter, depObject);
-                break;
-                }
-            }
-        if (!inserted)
-            result.push_back(depObject);
-        }
-
-    delete root;
-
-    return result;
-}
-
-
-/**
- *   This loads the dependency cache.
- */
-std::vector DepTool::getDepFile(const String &depFile,
-                   bool forceRefresh)
-{
-    std::vector result;
-    if (forceRefresh)
-        {
-        generateDependencies(depFile);
-        result = loadDepFile(depFile);
-        }
-    else
-        {
-        //try once
-        result = loadDepFile(depFile);
-        if (result.size() == 0)
-            {
-            //fail? try again
-            generateDependencies(depFile);
-            result = loadDepFile(depFile);
-            }
-        }
-    return result;
-}
-
-
-
-
-//########################################################################
-//# T A S K
-//########################################################################
-//forward decl
-class Target;
-class Make;
-
-/**
- *
- */
-class Task : public MakeBase
-{
-
-public:
-
-    typedef enum
-        {
-        TASK_NONE,
-        TASK_CC,
-        TASK_COPY,
-        TASK_CXXTEST_PART,
-        TASK_CXXTEST_ROOT,
-        TASK_CXXTEST_RUN,
-        TASK_DELETE,
-        TASK_ECHO,
-        TASK_JAR,
-        TASK_JAVAC,
-        TASK_LINK,
-        TASK_MAKEFILE,
-        TASK_MKDIR,
-        TASK_MSGFMT,
-        TASK_PKG_CONFIG,
-        TASK_RANLIB,
-        TASK_RC,
-        TASK_SHAREDLIB,
-        TASK_STATICLIB,
-        TASK_STRIP,
-        TASK_TOUCH,
-        TASK_TSTAMP
-        } TaskType;
-        
-
-    /**
-     *
-     */
-    Task(MakeBase &par) : parent(par)
-        { init(); }
-
-    /**
-     *
-     */
-    Task(const Task &other) : parent(other.parent)
-        { init(); assign(other); }
-
-    /**
-     *
-     */
-    Task &operator=(const Task &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Task()
-        { }
-
-
-    /**
-     *
-     */
-    virtual MakeBase &getParent()
-        { return parent; }
-
-     /**
-     *
-     */
-    virtual int  getType()
-        { return type; }
-
-    /**
-     *
-     */
-    virtual void setType(int val)
-        { type = val; }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual bool execute()
-        { return true; }
-
-    /**
-     *
-     */
-    virtual bool parse(Element *elem)
-        { return true; }
-
-    /**
-     *
-     */
-    Task *createTask(Element *elem, int lineNr);
-
-
-protected:
-
-    void init()
-        {
-        type = TASK_NONE;
-        name = "none";
-        }
-
-    void assign(const Task &other)
-        {
-        type = other.type;
-        name = other.name;
-        }
-        
-    /**
-     *  Show task status
-     */
-    void taskstatus(const char *fmt, ...)
-        {
-        va_list args;
-        va_start(args,fmt);
-        fprintf(stdout, "    %s : ", name.c_str());
-        vfprintf(stdout, fmt, args);
-        fprintf(stdout, "\n");
-        va_end(args) ;
-        }
-
-    String getAttribute(Element *elem, const String &attrName)
-        {
-        String str;
-        return str;
-        }
-
-    MakeBase &parent;
-
-    int type;
-
-    String name;
-};
-
-
-
-/**
- * This task runs the C/C++ compiler.  The compiler is invoked
- * for all .c or .cpp files which are newer than their correcsponding
- * .o files.  
- */
-class TaskCC : public Task
-{
-public:
-
-    TaskCC(MakeBase &par) : Task(par)
-        {
-        type = TASK_CC;
-        name = "cc";
-        }
-
-    virtual ~TaskCC()
-        {}
-        
-    virtual bool isExcludedInc(const String &dirname)
-        {
-        for (std::size_t i=0 ; i deps =
-             depTool.getDepFile("build.dep", refreshCache);
-        
-        String incs;
-        incs.append("-I");
-        incs.append(parent.resolve("."));
-        incs.append(" ");
-        if (includes.size()>0)
-            {
-            incs.append(includes);
-            incs.append(" ");
-            }
-        std::set paths;
-        std::vector::iterator viter;
-        for (viter=deps.begin() ; viter!=deps.end() ; viter++)
-            {
-            DepRec dep = *viter;
-            if (dep.path.size()>0)
-                paths.insert(dep.path);
-            }
-        if (source.size()>0)
-            {
-            incs.append(" -I");
-            incs.append(parent.resolve(source));
-            incs.append(" ");
-            }
-        std::set::iterator setIter;
-        for (setIter=paths.begin() ; setIter!=paths.end() ; setIter++)
-            {
-            String dirName = *setIter;
-            //check excludeInc to see if we dont want to include this dir
-            if (isExcludedInc(dirName))
-                continue;
-            incs.append(" -I");
-            String dname;
-            if (source.size()>0)
-                {
-                dname.append(source);
-                dname.append("/");
-                }
-            dname.append(dirName);
-            incs.append(parent.resolve(dname));
-            }
-
-// First create all directories, fails if done in OpenMP parallel loop below... goes superfast anyway, so don't optimize
-        for (std::size_t fi = 0; fi < deps.size() ; ++fi)
-        {
-            DepRec dep = deps[fi];
- 
-            //## Make paths
-            String destPath = dest;
-            if (dep.path.size()>0)
-            {
-                destPath.append("/");
-                destPath.append(dep.path);
-            }
-            //## Make sure destination directory exists
-            if (!createDirectory(destPath))
-            {
-                taskstatus("problem creating folder: %s", destPath.c_str());
-                if (f) {
-                    fclose(f);
-                }
-                return false;
-            }
-        }
-
-        /**
-         * Compile each of the C files that need it
-         */
-        bool errorOccurred = false;
-
-#ifdef _OPENMP 
-        taskstatus("compile with %d threads in parallel", numThreads);
-#       pragma omp parallel for num_threads(numThreads)
-#endif
-
-        for (std::size_t fi = 0; fi < deps.size() ; ++fi)
-        {
-            DepRec dep = deps[fi];
-
-            //## Select command
-            String sfx = dep.suffix;
-            String command = ccCommand;
-            String flags = ccflags;
-            if (sfx == "cpp" || sfx == "cxx" || sfx == "c++" ||
-                 sfx == "cc" || sfx == "CC")
-            {
-                command = cxxCommand;
-                flags += " " + cxxflags;
-            }
- 
-            //## Make paths
-            String destPath = dest;
-            String srcPath  = source;
-            if (dep.path.size()>0)
-            {
-                destPath.append("/");
-                destPath.append(dep.path);
-                srcPath.append("/");
-                srcPath.append(dep.path);
-            }
-
-            //## Check whether it needs to be done
-            String destName;
-            if (destPath.size()>0)
-                {
-                destName.append(destPath);
-                destName.append("/");
-                }
-            destName.append(dep.name);
-            destName.append(".o");
-            String destFullName = parent.resolve(destName);
-            String srcName;
-            if (srcPath.size()>0)
-                {
-                srcName.append(srcPath);
-                srcName.append("/");
-                }
-            srcName.append(dep.name);
-            srcName.append(".");
-            srcName.append(dep.suffix);
-            String srcFullName = parent.resolve(srcName);
-            bool compileMe = false;
-            //# First we check if the source is newer than the .o
-            if (isNewerThan(srcFullName, destFullName))
-                {
-//                taskstatus("compile of %s (req. by: %s)",
-//                        destFullName.c_str(), srcFullName.c_str());
-                fprintf(stdout, "compile %s\n", srcFullName.c_str());
-                compileMe = true;
-                }
-            else
-                {
-                //# secondly, we check if any of the included dependencies
-                //# of the .c/.cpp is newer than the .o
-                for (std::size_t i=0 ; i0)
-                        {
-                        depName.append(source);
-                        depName.append("/");
-                        }
-                    depName.append(dep.files[i]);
-                    String depFullName = parent.resolve(depName);
-                    bool depRequires = isNewerThan(depFullName, destFullName);
-                    //trace("%d %s %s\n", depRequires,
-                    //        destFullName.c_str(), depFullName.c_str());
-                    if (depRequires)
-                        {
-                        taskstatus("compile %s (%s modified)",
-                                srcFullName.c_str(), depFullName.c_str());
-                        compileMe = true;
-                        break;
-                        }
-                    }
-                }
-            if (!compileMe)
-                {
-                continue;
-                }
-
-            //## Assemble the command
-            String cmd = command;
-            cmd.append(" -c ");
-            cmd.append(flags);
-            cmd.append(" ");
-            cmd.append(defines);
-            cmd.append(" ");
-            cmd.append(incs);
-            cmd.append(" ");
-            cmd.append(srcFullName);
-            cmd.append(" -o ");
-            cmd.append(destFullName);
-
-            //## Execute the command
-
-            String outString, errString;
-            bool ret = executeCommand(cmd.c_str(), "", outString, errString);
-
-            if (f)
-                {
-                fprintf(f, "########################### File : %s\n",
-                             srcFullName.c_str());
-                fprintf(f, "#### COMMAND ###\n");
-                int col = 0;
-                for (std::size_t i = 0 ; i < cmd.size() ; i++)
-                    {
-                    char ch = cmd[i];
-                    if (isspace(ch)  && col > 63)
-                        {
-                        fputc('\n', f);
-                        col = 0;
-                        }
-                    else
-                        {
-                        fputc(ch, f);
-                        col++;
-                        }
-                    if (col > 76)
-                        {
-                        fputc('\n', f);
-                        col = 0;
-                        }
-                    }
-                fprintf(f, "\n");
-                fprintf(f, "#### STDOUT ###\n%s\n", outString.c_str());
-                fprintf(f, "#### STDERR ###\n%s\n\n", errString.c_str());
-                fflush(f);
-                }
-            if (!ret) {
-                error("problem compiling: %s", errString.c_str());
-                errorOccurred = true;
-            } else if (!errString.empty()) {
-                fprintf(stdout, "STDERR: \n%s\n", errString.c_str());
-            }
-
-
-            if (errorOccurred && !continueOnError) {
-#ifndef _OPENMP // figure out a way to break the loop here with OpenMP
-                break;
-#endif
-            }
-
-            removeFromStatCache(getNativePath(destFullName));
-        }
-
-        if (f)
-            {
-            fclose(f);
-            }
-        
-        return !errorOccurred;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        String s;
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (commandOpt.size()>0)
-            { cxxCommandOpt = ccCommandOpt = commandOpt; }
-        if (!parent.getAttribute(elem, "cc", ccCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "cxx", cxxCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destdir", destOpt))
-            return false;
-        if (!parent.getAttribute(elem, "continueOnError", continueOnErrorOpt))
-            return false;
-        if (!parent.getAttribute(elem, "refreshCache", refreshCacheOpt))
-            return false;
-
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                flagsOpt = strip(flagsOpt);
-                }
-            else if (tagName == "cxxflags")
-                {
-                if (!parent.getValue(child, cxxflagsOpt))
-                    return false;
-                cxxflagsOpt = strip(cxxflagsOpt);
-                }
-            else if (tagName == "includes")
-                {
-                if (!parent.getValue(child, includesOpt))
-                    return false;
-                includesOpt = strip(includesOpt);
-                }
-            else if (tagName == "defines")
-                {
-                if (!parent.getValue(child, definesOpt))
-                    return false;
-                definesOpt = strip(definesOpt);
-                }
-            else if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                sourceOpt = fileSet.getDirectory();
-                }
-            else if (tagName == "excludeinc")
-                {
-                if (!parseFileList(child, parent, excludeInc))
-                    return false;
-                }
-            }
-
-        return true;
-        }
-        
-protected:
-
-    String   commandOpt;
-    String   ccCommandOpt;
-    String   cxxCommandOpt;
-    String   sourceOpt;
-    String   destOpt;
-    String   flagsOpt;
-    String   cxxflagsOpt;
-    String   definesOpt;
-    String   includesOpt;
-    String   continueOnErrorOpt;
-    String   refreshCacheOpt;
-    FileSet  fileSet;
-    FileList excludeInc;
-    
-};
-
-
-
-/**
- *
- */
-class TaskCopy : public Task
-{
-public:
-
-    typedef enum
-        {
-        CP_NONE,
-        CP_TOFILE,
-        CP_TODIR
-        } CopyType;
-
-    TaskCopy(MakeBase &par) : Task(par)
-        {
-        type        = TASK_COPY;
-        name        = "copy";
-        cptype      = CP_NONE;
-        haveFileSet = false;
-        }
-
-    virtual ~TaskCopy()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName   = parent.eval(fileNameOpt   , ".");
-        String toFileName = parent.eval(toFileNameOpt , ".");
-        String toDirName  = parent.eval(toDirNameOpt  , ".");
-        bool   verbose    = parent.evalBool(verboseOpt, false);
-        switch (cptype)
-           {
-           case CP_TOFILE:
-               {
-               if (fileName.size()>0)
-                   {
-                   taskstatus("%s to %s",
-                        fileName.c_str(), toFileName.c_str());
-                   String fullSource = parent.resolve(fileName);
-                   String fullDest = parent.resolve(toFileName);
-                   if (verbose)
-                       taskstatus("copy %s to file %s", fullSource.c_str(),
-                                          fullDest.c_str());
-                   if (!isRegularFile(fullSource))
-                       {
-                       error("copy : file %s does not exist", fullSource.c_str());
-                       return false;
-                       }
-                   if (!isNewerThan(fullSource, fullDest))
-                       {
-                       taskstatus("skipped");
-                       return true;
-                       }
-                   if (!copyFile(fullSource, fullDest))
-                       return false;
-                   taskstatus("1 file copied");
-                   }
-               return true;
-               }
-           case CP_TODIR:
-               {
-               if (haveFileSet)
-                   {
-                   if (!listFiles(parent, fileSet))
-                       return false;
-                   String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-
-                   taskstatus("%s to %s",
-                       fileSetDir.c_str(), toDirName.c_str());
-
-                   int nrFiles = 0;
-                   for (std::size_t i=0 ; i0)
-                           {
-                           sourcePath.append(fileSetDir);
-                           sourcePath.append("/");
-                           }
-                       sourcePath.append(fileName);
-                       String fullSource = parent.resolve(sourcePath);
-                       
-                       //Get the immediate parent directory's base name
-                       String baseFileSetDir = fileSetDir;
-                       std::size_t pos = baseFileSetDir.find_last_of('/');
-                       if (pos!=baseFileSetDir.npos &&
-                                  pos < baseFileSetDir.size()-1)
-                           baseFileSetDir =
-                              baseFileSetDir.substr(pos+1,
-                                   baseFileSetDir.size());
-                       //Now make the new path
-                       String destPath;
-                       if (toDirName.size()>0)
-                           {
-                           destPath.append(toDirName);
-                           destPath.append("/");
-                           }
-                       if (baseFileSetDir.size()>0)
-                           {
-                           destPath.append(baseFileSetDir);
-                           destPath.append("/");
-                           }
-                       destPath.append(fileName);
-                       String fullDest = parent.resolve(destPath);
-                       //trace("fileName:%s", fileName.c_str());
-                       if (verbose)
-                           taskstatus("copy %s to new dir : %s",
-                                 fullSource.c_str(), fullDest.c_str());
-                       if (!isNewerThan(fullSource, fullDest))
-                           {
-                           if (verbose)
-                               taskstatus("copy skipping %s", fullSource.c_str());
-                           continue;
-                           }
-                       if (!copyFile(fullSource, fullDest))
-                           return false;
-                       nrFiles++;
-                       }
-                   taskstatus("%d file(s) copied", nrFiles);
-                   }
-               else //file source
-                   {
-                   //For file->dir we want only the basename of
-                   //the source appended to the dest dir
-                   taskstatus("%s to %s", 
-                       fileName.c_str(), toDirName.c_str());
-                   String baseName = fileName;
-                   std::size_t pos = baseName.find_last_of('/');
-                   if (pos!=baseName.npos && pos0)
-                       {
-                       destPath.append(toDirName);
-                       destPath.append("/");
-                       }
-                   destPath.append(baseName);
-                   String fullDest = parent.resolve(destPath);
-                   if (verbose)
-                       taskstatus("file %s to new dir : %s", fullSource.c_str(),
-                                          fullDest.c_str());
-                   if (!isRegularFile(fullSource))
-                       {
-                       error("copy : file %s does not exist", fullSource.c_str());
-                       return false;
-                       }
-                   if (!isNewerThan(fullSource, fullDest))
-                       {
-                       taskstatus("skipped");
-                       return true;
-                       }
-                   if (!copyFile(fullSource, fullDest))
-                       return false;
-                   taskstatus("1 file copied");
-                   }
-               return true;
-               }
-           }
-        return true;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "tofile", toFileNameOpt))
-            return false;
-        if (toFileNameOpt.size() > 0)
-            cptype = CP_TOFILE;
-        if (!parent.getAttribute(elem, "todir", toDirNameOpt))
-            return false;
-        if (toDirNameOpt.size() > 0)
-            cptype = CP_TODIR;
-        if (!parent.getAttribute(elem, "verbose", verboseOpt))
-            return false;
-            
-        haveFileSet = false;
-        
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    {
-                    error("problem getting fileset");
-                    return false;
-                    }
-                haveFileSet = true;
-                }
-            }
-
-        //Perform validity checks
-        if (fileNameOpt.size()>0 && fileSet.size()>0)
-            {
-            error(" can only have one of : file= and ");
-            return false;
-            }
-        if (toFileNameOpt.size()>0 && toDirNameOpt.size()>0)
-            {
-            error(" can only have one of : tofile= or todir=");
-            return false;
-            }
-        if (haveFileSet && toDirNameOpt.size()==0)
-            {
-            error("a  task with a  must have : todir=");
-            return false;
-            }
-        if (cptype == CP_TOFILE && fileNameOpt.size()==0)
-            {
-            error(" tofile= must be associated with : file=");
-            return false;
-            }
-        if (cptype == CP_TODIR && fileNameOpt.size()==0 && !haveFileSet)
-            {
-            error(" todir= must be associated with : file= or ");
-            return false;
-            }
-
-        return true;
-        }
-        
-private:
-
-    int cptype;
-    bool haveFileSet;
-
-    FileSet fileSet;
-    String  fileNameOpt;
-    String  toFileNameOpt;
-    String  toDirNameOpt;
-    String  verboseOpt;
-};
-
-
-/**
- * Generate CxxTest files
- */
-class TaskCxxTestPart: public Task
-{
-public:
-
-    TaskCxxTestPart(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_PART;
-         name    = "cxxtestpart";
-         }
-
-    virtual ~TaskCxxTestPart()
-        {}
-
-    virtual bool execute()
-        {
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-                
-        String fullDest = parent.resolve(parent.eval(destPathOpt, "."));
-        String cmd = parent.eval(commandOpt, "cxxtestgen.py");
-        cmd.append(" --part -o ");
-        cmd.append(fullDest);
-
-        unsigned int newFiles = 0;
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            cmd.append(" ");
-            cmd.append(fullSource);
-            if (isNewerThan(fullSource, fullDest)) newFiles++;
-            }
-        
-        if (newFiles>0) {
-            size_t const lastSlash = fullDest.find_last_of('/');
-            if (lastSlash != fullDest.npos) {
-                String directory(fullDest, 0, lastSlash);
-                if (!createDirectory(directory))
-                    return false;
-            }
-
-            String outString, errString;
-            if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", destPathOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  destPathOpt;
-    FileSet fileSet;
-
-};
-
-
-/**
- * Generate the CxxTest root file
- */
-class TaskCxxTestRoot: public Task
-{
-public:
-
-    TaskCxxTestRoot(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_ROOT;
-         name    = "cxxtestroot";
-         }
-
-    virtual ~TaskCxxTestRoot()
-        {}
-
-    virtual bool execute()
-        {
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        unsigned int newFiles = 0;
-                
-        String fullDest = parent.resolve(parent.eval(destPathOpt, "."));
-        String cmd = parent.eval(commandOpt, "cxxtestgen.py");
-        cmd.append(" --root -o ");
-        cmd.append(fullDest);
-        String templateFile = parent.eval(templateFileOpt, "");
-        if (templateFile.size()>0) {
-            String fullTemplate = parent.resolve(templateFile);
-            cmd.append(" --template=");
-            cmd.append(fullTemplate);
-            if (isNewerThan(fullTemplate, fullDest)) newFiles++;
-        }
-
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            cmd.append(" ");
-            cmd.append(fullSource);
-            if (isNewerThan(fullSource, fullDest)) newFiles++;
-            }
-        
-        if (newFiles>0) {
-            size_t const lastSlash = fullDest.find_last_of('/');
-            if (lastSlash != fullDest.npos) {
-                String directory(fullDest, 0, lastSlash);
-                if (!createDirectory(directory))
-                    return false;
-            }
-
-            String outString, errString;
-            if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "template", templateFileOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", destPathOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  templateFileOpt;
-    String  destPathOpt;
-    FileSet fileSet;
-
-};
-
-
-/**
- * Execute the CxxTest test executable
- */
-class TaskCxxTestRun: public Task
-{
-public:
-
-    TaskCxxTestRun(MakeBase &par) : Task(par)
-         {
-         type    = TASK_CXXTEST_RUN;
-         name    = "cxxtestrun";
-         }
-
-    virtual ~TaskCxxTestRun()
-        {}
-
-    virtual bool execute()
-        {
-        unsigned int newFiles = 0;
-                
-        String workingDir = parent.resolve(parent.eval(workingDirOpt, "inkscape"));
-        String rawCmd = parent.eval(commandOpt, "build/cxxtests");
-
-        String cmdExe;
-        if (fileExists(rawCmd)) {
-            cmdExe = rawCmd;
-        } else if (fileExists(rawCmd + ".exe")) {
-            cmdExe = rawCmd + ".exe";
-        } else {
-            error(" problem: cxxtests executable not found! (command=\"%s\")", rawCmd.c_str());
-        }
-        // Note that the log file names are based on the exact name used to call cxxtests (it uses argv[0] + ".log"/".xml")
-        if (isNewerThan(cmdExe, rawCmd + ".log") || isNewerThan(cmdExe, rawCmd + ".xml")) newFiles++;
-
-        // Prepend the necessary ../'s
-        String cmd = rawCmd;
-        unsigned int workingDirDepth = 0;
-        bool wasSlash = true;
-        for(size_t i=0; i0) {
-            char olddir[1024];
-            if (workingDir.size()>0) {
-                // TODO: Double-check usage of getcwd and handle chdir errors
-                getcwd(olddir, 1024);
-                chdir(workingDir.c_str());
-            }
-
-            String outString;
-            if (!executeCommand(cmd.c_str(), "", outString, outString))
-                {
-                error(" problem: %s", outString.c_str());
-                return false;
-                }
-
-            if (workingDir.size()>0) {
-                // TODO: Handle errors?
-                chdir(olddir);
-            }
-
-            removeFromStatCache(getNativePath(cmd + ".log"));
-            removeFromStatCache(getNativePath(cmd + ".xml"));
-        }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "workingdir", workingDirOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String  commandOpt;
-    String  workingDirOpt;
-
-};
-
-
-/**
- *
- */
-class TaskDelete : public Task
-{
-public:
-
-    typedef enum
-        {
-        DEL_FILE,
-        DEL_DIR,
-        DEL_FILESET
-        } DeleteType;
-
-    TaskDelete(MakeBase &par) : Task(par)
-        { 
-        type        = TASK_DELETE;
-        name        = "delete";
-        delType     = DEL_FILE;
-        }
-
-    virtual ~TaskDelete()
-        {}
-
-    virtual bool execute()
-        {
-        String dirName   = parent.eval(dirNameOpt, ".");
-        String fileName  = parent.eval(fileNameOpt, ".");
-        bool verbose     = parent.evalBool(verboseOpt, false);
-        bool quiet       = parent.evalBool(quietOpt, false);
-        bool failOnError = parent.evalBool(failOnErrorOpt, true);
-        switch (delType)
-            {
-            case DEL_FILE:
-                {
-                taskstatus("file: %s", fileName.c_str());
-                String fullName = parent.resolve(fileName);
-                char *fname = (char *)fullName.c_str();
-                if (!quiet && verbose)
-                    taskstatus("path: %s", fname);
-                if (failOnError && !removeFile(fullName))
-                    {
-                    //error("Could not delete file '%s'", fullName.c_str());
-                    return false;
-                    }
-                return true;
-                }
-            case DEL_DIR:
-                {
-                taskstatus("dir: %s", dirName.c_str());
-                String fullDir = parent.resolve(dirName);
-                if (!quiet && verbose)
-                    taskstatus("path: %s", fullDir.c_str());
-                if (failOnError && !removeDirectory(fullDir))
-                    {
-                    //error("Could not delete directory '%s'", fullDir.c_str());
-                    return false;
-                    }
-                return true;
-                }
-            }
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() > 0)
-            delType = DEL_FILE;
-        if (!parent.getAttribute(elem, "dir", dirNameOpt))
-            return false;
-        if (dirNameOpt.size() > 0)
-            delType = DEL_DIR;
-        if (fileNameOpt.size()>0 && dirNameOpt.size()>0)
-            {
-            error(" can have one attribute of file= or dir=");
-            return false;
-            }
-        if (fileNameOpt.size()==0 && dirNameOpt.size()==0)
-            {
-            error(" must have one attribute of file= or dir=");
-            return false;
-            }
-        if (!parent.getAttribute(elem, "verbose", verboseOpt))
-            return false;
-        if (!parent.getAttribute(elem, "quiet", quietOpt))
-            return false;
-        if (!parent.getAttribute(elem, "failonerror", failOnErrorOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    int delType;
-    String dirNameOpt;
-    String fileNameOpt;
-    String verboseOpt;
-    String quietOpt;
-    String failOnErrorOpt;
-};
-
-
-/**
- * Send a message to stdout
- */
-class TaskEcho : public Task
-{
-public:
-
-    TaskEcho(MakeBase &par) : Task(par)
-        { type = TASK_ECHO; name = "echo"; }
-
-    virtual ~TaskEcho()
-        {}
-
-    virtual bool execute()
-        {
-        //let message have priority over text
-        String message = parent.eval(messageOpt, "");
-        String text    = parent.eval(textOpt, "");
-        if (message.size() > 0)
-            {
-            fprintf(stdout, "%s\n", message.c_str());
-            }
-        else if (text.size() > 0)
-            {
-            fprintf(stdout, "%s\n", text.c_str());
-            }
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getValue(elem, textOpt))
-            return false;
-        textOpt    = leftJustify(textOpt);
-        if (!parent.getAttribute(elem, "message", messageOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String messageOpt;
-    String textOpt;
-};
-
-
-
-/**
- *
- */
-class TaskJar : public Task
-{
-public:
-
-    TaskJar(MakeBase &par) : Task(par)
-        { type = TASK_JAR; name = "jar"; }
-
-    virtual ~TaskJar()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt, "jar");
-        String basedir  = parent.eval(basedirOpt, ".");
-        String destfile = parent.eval(destfileOpt, ".");
-
-        String cmd = command;
-        cmd.append(" -cf ");
-        cmd.append(destfile);
-        cmd.append(" -C ");
-        cmd.append(basedir);
-        cmd.append(" .");
-
-        String execCmd = cmd;
-
-        String outString, errString;
-        bool ret = executeCommand(execCmd.c_str(), "", outString, errString);
-        if (!ret)
-            {
-            error(" command '%s' failed :\n %s",
-                                      execCmd.c_str(), errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(destfile));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "basedir", basedirOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destfile", destfileOpt))
-            return false;
-        if (basedirOpt.size() == 0 || destfileOpt.size() == 0)
-            {
-            error(" required both basedir and destfile attributes to be set");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String basedirOpt;
-    String destfileOpt;
-};
-
-
-/**
- *
- */
-class TaskJavac : public Task
-{
-public:
-
-    TaskJavac(MakeBase &par) : Task(par)
-        { 
-        type = TASK_JAVAC; name = "javac";
-        }
-
-    virtual ~TaskJavac()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt, "javac");
-        String srcdir   = parent.eval(srcdirOpt, ".");
-        String destdir  = parent.eval(destdirOpt, ".");
-        String target   = parent.eval(targetOpt, "");
-
-        std::vector fileList;
-        if (!listFiles(srcdir, "", fileList))
-            {
-            return false;
-            }
-        String cmd = command;
-        cmd.append(" -d ");
-        cmd.append(destdir);
-        cmd.append(" -classpath ");
-        cmd.append(destdir);
-        cmd.append(" -sourcepath ");
-        cmd.append(srcdir);
-        cmd.append(" ");
-        if (target.size()>0)
-            {
-            cmd.append(" -target ");
-            cmd.append(target);
-            cmd.append(" ");
-            }
-        String fname = "javalist.btool";
-        FILE *f = fopen(fname.c_str(), "w");
-        int count = 0;
-        for (std::size_t i=0 ; i command '%s' failed :\n %s",
-                                      execCmd.c_str(), errString.c_str());
-            return false;
-            }
-        // TODO: 
-        //removeFromStatCache(getNativePath(........));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "srcdir", srcdirOpt))
-            return false;
-        if (!parent.getAttribute(elem, "destdir", destdirOpt))
-            return false;
-        if (srcdirOpt.size() == 0 || destdirOpt.size() == 0)
-            {
-            error(" required both srcdir and destdir attributes to be set");
-            return false;
-            }
-        if (!parent.getAttribute(elem, "target", targetOpt))
-            return false;
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String srcdirOpt;
-    String destdirOpt;
-    String targetOpt;
-
-};
-
-
-/**
- *
- */
-class TaskLink : public Task
-{
-public:
-
-    TaskLink(MakeBase &par) : Task(par)
-        {
-        type = TASK_LINK; name = "link";
-        }
-
-    virtual ~TaskLink()
-        {}
-
-    virtual void UniqueParams(std::string& source) {
-        size_t prev = 0;
-        size_t next = 0;
-        std::list thelist;
-        std::list::iterator it;
-        std::string tstring=" ";
-        source +=std::string(" "); // else the last token may be lost
-	while ((next = source.find_first_of(" ", prev)) != std::string::npos){
-	   if (next - prev != 0){
-	      thelist.push_back(source.substr(prev, next - prev));
-	   }
-	   prev = next + 1;
-	}
-        thelist.sort();
-        source.clear();
-        source +=std::string(" ");
-        for(it=thelist.begin(); it!=thelist.end();it++){
-        	if(*it != tstring){
-        		tstring = *it;
-        		source +=tstring;
-        		source +=std::string(" ");
-        	}
-        }
-     }
-
-    virtual bool execute()
-        {
-        String  command        = parent.eval(commandOpt, "g++");
-        String  fileName       = parent.eval(fileNameOpt, "");
-        String  flags          = parent.eval(flagsOpt, "");
-        String  libs           = parent.eval(libsOpt, "");
-        bool    doStrip        = parent.evalBool(doStripOpt, false);
-        String  symFileName    = parent.eval(symFileNameOpt, "");
-        String  stripCommand   = parent.eval(stripCommandOpt, "strip");
-        String  objcopyCommand = parent.eval(objcopyCommandOpt, "objcopy");
-
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        //trace("%d files in %s", fileSet.size(), fileSetDir.c_str());
-        bool doit = false;
-        String fullTarget = parent.resolve(fileName);
-        String cmd = command;
-        cmd.append(" -o ");
-        cmd.append(fullTarget);
-        cmd.append(" ");
-        cmd.append(flags);
-        for (std::size_t i=0 ; i0)
-                {
-                obj.append(fileSetDir);
-                obj.append("/");
-                }
-            obj.append(fileSet[i]);
-            String fullObj = parent.resolve(obj);
-            String nativeFullObj = getNativePath(fullObj);
-            cmd.append(nativeFullObj);
-            //trace("link: tgt:%s obj:%s", fullTarget.c_str(),
-            //          fullObj.c_str());
-            if (isNewerThan(fullObj, fullTarget))
-                doit = true;
-            }
-        cmd.append(" ");
-        // trim it down to unique elements, reduce command line size
-        UniqueParams(libs);
-        cmd.append(libs);
-        if (!doit)
-            {
-            //trace("link not needed");
-            return true;
-            }
-        //trace("LINK cmd:%s", cmd.c_str());
-
-
-        String outbuf, errbuf;
-        // std::cout << "DEBUG command = " << cmd << std::endl;
-        if (!executeCommand(cmd.c_str(), "", outbuf, errbuf))
-            {
-            error("LINK problem: %s", errbuf.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullTarget));
-
-        if (symFileName.size()>0)
-            {
-            String symFullName = parent.resolve(symFileName);
-            cmd = objcopyCommand;
-            cmd.append(" --only-keep-debug ");
-            cmd.append(getNativePath(fullTarget));
-            cmd.append(" ");
-            cmd.append(getNativePath(symFullName));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-                {
-                error(" symbol file failed : %s", errbuf.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(symFullName));
-            }
-            
-        if (doStrip)
-            {
-            cmd = stripCommand;
-            cmd.append(" ");
-            cmd.append(getNativePath(fullTarget));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-               {
-               error(" failed : %s", errbuf.c_str());
-               return false;
-               }
-            removeFromStatCache(getNativePath(fullTarget));
-            }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "objcopycommand", objcopyCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "stripcommand", stripCommandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "strip", doStripOpt))
-            return false;
-        if (!parent.getAttribute(elem, "symfile", symFileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            else if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                flagsOpt = strip(flagsOpt);
-                }
-            else if (tagName == "libs")
-                {
-                if (!parent.getValue(child, libsOpt))
-                    return false;
-                libsOpt = strip(libsOpt);
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String  commandOpt;
-    String  fileNameOpt;
-    String  flagsOpt;
-    String  libsOpt;
-    String  doStripOpt;
-    String  symFileNameOpt;
-    String  stripCommandOpt;
-    String  objcopyCommandOpt;
-
-};
-
-
-
-/**
- * Create a named file
- */
-class TaskMakeFile : public Task
-{
-public:
-
-    TaskMakeFile(MakeBase &par) : Task(par)
-        { type = TASK_MAKEFILE; name = "makefile"; }
-
-    virtual ~TaskMakeFile()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-        bool force      = parent.evalBool(forceOpt, false);
-        String text     = parent.eval(textOpt, "");
-
-        taskstatus("%s", fileName.c_str());
-        String fullName = parent.resolve(fileName);
-        if (!force && !isNewerThan(parent.getURI().getPath(), fullName))
-            {
-            taskstatus("skipped");
-            return true;
-            }
-        String fullNative = getNativePath(fullName);
-        //trace("fullName:%s", fullName.c_str());
-        FILE *f = fopen(fullNative.c_str(), "w");
-        if (!f)
-            {
-            error(" could not open %s for writing : %s",
-                fullName.c_str(), strerror(errno));
-            return false;
-            }
-        for (std::size_t i=0 ; i requires 'file=\"filename\"' attribute");
-            return false;
-            }
-        if (!parent.getValue(elem, textOpt))
-            return false;
-        textOpt = leftJustify(textOpt);
-        //trace("dirname:%s", dirName.c_str());
-        return true;
-        }
-
-private:
-
-    String fileNameOpt;
-    String forceOpt;
-    String textOpt;
-};
-
-
-
-/**
- * Create a named directory
- */
-class TaskMkDir : public Task
-{
-public:
-
-    TaskMkDir(MakeBase &par) : Task(par)
-        { type = TASK_MKDIR; name = "mkdir"; }
-
-    virtual ~TaskMkDir()
-        {}
-
-    virtual bool execute()
-        {
-        String dirName = parent.eval(dirNameOpt, ".");
-        
-        taskstatus("%s", dirName.c_str());
-        String fullDir = parent.resolve(dirName);
-        //trace("fullDir:%s", fullDir.c_str());
-        if (!createDirectory(fullDir))
-            return false;
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "dir", dirNameOpt))
-            return false;
-        if (dirNameOpt.size() == 0)
-            {
-            error(" requires 'dir=\"dirname\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String dirNameOpt;
-};
-
-
-
-/**
- * Create a named directory
- */
-class TaskMsgFmt: public Task
-{
-public:
-
-    TaskMsgFmt(MakeBase &par) : Task(par)
-         { type = TASK_MSGFMT;  name = "msgfmt"; }
-
-    virtual ~TaskMsgFmt()
-        {}
-
-    virtual bool execute()
-        {
-        String  command   = parent.eval(commandOpt, "msgfmt");
-        String  toDirName = parent.eval(toDirNameOpt, ".");
-        String  outName   = parent.eval(outNameOpt, "");
-        bool    owndir    = parent.evalBool(owndirOpt, false);
-
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = fileSet.getDirectory();
-
-        //trace("msgfmt: %d", fileSet.size());
-        for (std::size_t i=0 ; i0)
-                {
-                sourcePath.append(fileSetDir);
-                sourcePath.append("/");
-                }
-            sourcePath.append(fileName);
-            String fullSource = parent.resolve(sourcePath);
-
-            String destPath;
-            if (toDirName.size()>0)
-                {
-                destPath.append(toDirName);
-                destPath.append("/");
-                }
-            if (owndir)
-                {
-                String subdir = fileName;
-                std::size_t pos = subdir.find_last_of('.');
-                if (pos != subdir.npos)
-                    subdir = subdir.substr(0, pos);
-                destPath.append(subdir);
-                destPath.append("/");
-                }
-            //Pick the output file name
-            if (outName.size() > 0)
-                {
-                destPath.append(outName);
-                }
-            else
-                {
-                destPath.append(fileName);
-                destPath[destPath.size()-2] = 'm';
-                }
-
-            String fullDest = parent.resolve(destPath);
-
-            if (!isNewerThan(fullSource, fullDest))
-                {
-                //trace("skip %s", fullSource.c_str());
-                continue;
-                }
-                
-            String cmd = command;
-            cmd.append(" ");
-            cmd.append(fullSource);
-            cmd.append(" -o ");
-            cmd.append(fullDest);
-            
-            int pos = fullDest.find_last_of('/');
-            if (pos>0)
-                {
-                String fullDestPath = fullDest.substr(0, pos);
-                if (!createDirectory(fullDestPath))
-                    return false;
-                }
-
-
-
-            String outString, errString;
-           if (!executeCommand(cmd.c_str(), "", outString, errString))
-                {
-                error(" problem: %s", errString.c_str());
-                return false;
-                }
-            removeFromStatCache(getNativePath(fullDest));
-            }
-
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "todir", toDirNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", outNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "owndir", owndirOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String  commandOpt;
-    String  toDirNameOpt;
-    String  outNameOpt;
-    String  owndirOpt;
-
-};
-
-
-
-/**
- *  Perform a Package-Config query similar to pkg-config
- */
-class TaskPkgConfig : public Task
-{
-public:
-
-    typedef enum
-        {
-        PKG_CONFIG_QUERY_CFLAGS,
-        PKG_CONFIG_QUERY_LIBS,
-        PKG_CONFIG_QUERY_ALL
-        } QueryTypes;
-
-    TaskPkgConfig(MakeBase &par) : Task(par)
-        {
-        type = TASK_PKG_CONFIG;
-        name = "pkg-config";
-        }
-
-    virtual ~TaskPkgConfig()
-        {}
-
-    virtual bool execute()
-        {
-        String pkgName       = parent.eval(pkgNameOpt,      "");
-        String prefix        = parent.eval(prefixOpt,       "");
-        String propName      = parent.eval(propNameOpt,     "");
-        String pkgConfigPath = parent.eval(pkgConfigPathOpt,"");
-        String query         = parent.eval(queryOpt,        "all");
-
-        String path = parent.resolve(pkgConfigPath);
-        PkgConfig pkgconfig;
-        pkgconfig.setPath(path);
-        pkgconfig.setPrefix(prefix);
-        if (!pkgconfig.query(pkgName))
-            {
-            error(" query failed for '%s", name.c_str());
-            return false;
-            }
-            
-        String val = "";
-        if (query == "cflags")
-            val = pkgconfig.getCflags();
-        else if (query == "libs")
-            val =pkgconfig.getLibs();
-        else if (query == "all")
-            val = pkgconfig.getAll();
-        else
-            {
-            error(" unhandled query : %s", query.c_str());
-            return false;
-            }
-        taskstatus("property %s = '%s'", propName.c_str(), val.c_str());
-        parent.setProperty(propName, val);
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //# NAME
-        if (!parent.getAttribute(elem, "name", pkgNameOpt))
-            return false;
-        if (pkgNameOpt.size()==0)
-            {
-            error(" requires 'name=\"package\"' attribute");
-            return false;
-            }
-
-        //# PROPERTY
-        if (!parent.getAttribute(elem, "property", propNameOpt))
-            return false;
-        if (propNameOpt.size()==0)
-            {
-            error(" requires 'property=\"name\"' attribute");
-            return false;
-            }
-        //# PATH
-        if (!parent.getAttribute(elem, "path", pkgConfigPathOpt))
-            return false;
-        //# PREFIX
-        if (!parent.getAttribute(elem, "prefix", prefixOpt))
-            return false;
-        //# QUERY
-        if (!parent.getAttribute(elem, "query", queryOpt))
-            return false;
-
-        return true;
-        }
-
-private:
-
-    String queryOpt;
-    String pkgNameOpt;
-    String prefixOpt;
-    String propNameOpt;
-    String pkgConfigPathOpt;
-
-};
-
-
-
-
-
-
-/**
- *  Process an archive to allow random access
- */
-class TaskRanlib : public Task
-{
-public:
-
-    TaskRanlib(MakeBase &par) : Task(par)
-        { type = TASK_RANLIB; name = "ranlib"; }
-
-    virtual ~TaskRanlib()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-        String command  = parent.eval(commandOpt, "ranlib");
-
-        String fullName = parent.resolve(fileName);
-        //trace("fullDir:%s", fullDir.c_str());
-        String cmd = command;
-        cmd.append(" ");
-        cmd.append(fullName);
-        String outbuf, errbuf;
-        if (!executeCommand(cmd, "", outbuf, errbuf))
-            return false;
-        // TODO:
-        //removeFromStatCache(getNativePath(fullDest));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileNname\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String fileNameOpt;
-    String commandOpt;
-};
-
-
-
-/**
- * Compile a resource file into a binary object
- */
-class TaskRC : public Task
-{
-public:
-
-    TaskRC(MakeBase &par) : Task(par)
-        { type = TASK_RC; name = "rc"; }
-
-    virtual ~TaskRC()
-        {}
-
-    virtual bool execute()
-        {
-        String command  = parent.eval(commandOpt,  "windres");
-        String flags    = parent.eval(flagsOpt,    "");
-        String fileName = parent.eval(fileNameOpt, "");
-        String outName  = parent.eval(outNameOpt,  "");
-
-        String fullFile = parent.resolve(fileName);
-        String fullOut  = parent.resolve(outName);
-        if (!isNewerThan(fullFile, fullOut))
-            return true;
-        String cmd = command;
-        cmd.append(" -o ");
-        cmd.append(fullOut);
-        cmd.append(" ");
-        cmd.append(flags);
-        cmd.append(" ");
-        cmd.append(fullFile);
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error("RC problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "out", outNameOpt))
-            return false;
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "flags")
-                {
-                if (!parent.getValue(child, flagsOpt))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String flagsOpt;
-    String fileNameOpt;
-    String outNameOpt;
-
-};
-
-
-
-/**
- *  Collect .o's into a .so or DLL
- */
-class TaskSharedLib : public Task
-{
-public:
-
-    TaskSharedLib(MakeBase &par) : Task(par)
-        { type = TASK_SHAREDLIB; name = "dll"; }
-
-    virtual ~TaskSharedLib()
-        {}
-
-    virtual bool execute()
-        {
-        String command     = parent.eval(commandOpt, "dllwrap");
-        String fileName    = parent.eval(fileNameOpt, "");
-        String defFileName = parent.eval(defFileNameOpt, "");
-        String impFileName = parent.eval(impFileNameOpt, "");
-        String libs        = parent.eval(libsOpt, "");
-
-        //trace("###########HERE %d", fileSet.size());
-        bool doit = false;
-        
-        String fullOut = parent.resolve(fileName);
-        //trace("ar fullout: %s", fullOut.c_str());
-        
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-            //trace("ar : %s/%s", fullOut.c_str(), fullName.c_str());
-            if (isNewerThan(fullName, fullOut))
-                doit = true;
-            }
-        //trace("Needs it:%d", doit);
-        if (!doit)
-            {
-            return true;
-            }
-
-        String cmd = "dllwrap";
-        cmd.append(" -o ");
-        cmd.append(fullOut);
-        if (defFileName.size()>0)
-            {
-            cmd.append(" --def ");
-            cmd.append(defFileName);
-            cmd.append(" ");
-            }
-        if (impFileName.size()>0)
-            {
-            cmd.append(" --implib ");
-            cmd.append(impFileName);
-            cmd.append(" ");
-            }
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-
-            cmd.append(" ");
-            cmd.append(fullName);
-            }
-        cmd.append(" ");
-        cmd.append(libs);
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error(" problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "import", impFileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "def", defFileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            else if (tagName == "libs")
-                {
-                if (!parent.getValue(child, libsOpt))
-                    return false;
-                libsOpt = strip(libsOpt);
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String commandOpt;
-    String fileNameOpt;
-    String defFileNameOpt;
-    String impFileNameOpt;
-    String libsOpt;
-
-};
-
-
-
-/**
- * Run the "ar" command to archive .o's into a .a
- */
-class TaskStaticLib : public Task
-{
-public:
-
-    TaskStaticLib(MakeBase &par) : Task(par)
-        { type = TASK_STATICLIB; name = "staticlib"; }
-
-    virtual ~TaskStaticLib()
-        {}
-
-    virtual bool execute()
-        {
-        String command = parent.eval(commandOpt, "ar crv");
-        String fileName = parent.eval(fileNameOpt, "");
-
-        bool doit = false;
-        
-        String fullOut = parent.resolve(fileName);
-        //trace("ar fullout: %s", fullOut.c_str());
-        
-        if (!listFiles(parent, fileSet))
-            return false;
-        String fileSetDir = parent.eval(fileSet.getDirectory(), ".");
-        //trace("###########HERE %s", fileSetDir.c_str());
-
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-            //trace("ar : %s/%s", fullOut.c_str(), fullName.c_str());
-            if (isNewerThan(fullName, fullOut))
-                doit = true;
-            }
-        //trace("Needs it:%d", doit);
-        if (!doit)
-            {
-            return true;
-            }
-
-        String cmd = command;
-        cmd.append(" ");
-        cmd.append(fullOut);
-        for (std::size_t i=0 ; i0)
-                {
-                fname.append(fileSetDir);
-                fname.append("/");
-                }
-            fname.append(fileSet[i]);
-            String fullName = parent.resolve(fname);
-
-            cmd.append(" ");
-            cmd.append(fullName);
-            }
-
-        String outString, errString;
-        if (!executeCommand(cmd.c_str(), "", outString, errString))
-            {
-            error(" problem: %s", errString.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullOut));
-        return true;
-        }
-
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-            
-        std::vector children = elem->getChildren();
-        for (std::size_t i=0 ; igetName();
-            if (tagName == "fileset")
-                {
-                if (!parseFileSet(child, parent, fileSet))
-                    return false;
-                }
-            }
-        return true;
-        }
-
-private:
-
-    FileSet fileSet;
-
-    String commandOpt;
-    String fileNameOpt;
-
-};
-
-
-
-
-/**
- * Strip an executable
- */
-class TaskStrip : public Task
-{
-public:
-
-    TaskStrip(MakeBase &par) : Task(par)
-        { type = TASK_STRIP; name = "strip"; }
-
-    virtual ~TaskStrip()
-        {}
-
-    virtual bool execute()
-        {
-        String command     = parent.eval(commandOpt, "strip");
-        String fileName    = parent.eval(fileNameOpt, "");
-        String symFileName = parent.eval(symFileNameOpt, "");
-
-        String fullName = parent.resolve(fileName);
-        //trace("fullDir:%s", fullDir.c_str());
-        String cmd;
-        String outbuf, errbuf;
-
-        if (symFileName.size()>0)
-            {
-            String symFullName = parent.resolve(symFileName);
-            cmd = "objcopy --only-keep-debug ";
-            cmd.append(getNativePath(fullName));
-            cmd.append(" ");
-            cmd.append(getNativePath(symFullName));
-            if (!executeCommand(cmd, "", outbuf, errbuf))
-                {
-                error(" symbol file failed : %s", errbuf.c_str());
-                return false;
-                }
-            }
-            
-        cmd = command;
-        cmd.append(getNativePath(fullName));
-       if (!executeCommand(cmd, "", outbuf, errbuf))
-            {
-            error(" failed : %s", errbuf.c_str());
-            return false;
-            }
-        removeFromStatCache(getNativePath(fullName));
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        if (!parent.getAttribute(elem, "command", commandOpt))
-            return false;
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (!parent.getAttribute(elem, "symfile", symFileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileName\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-private:
-
-    String commandOpt;
-    String fileNameOpt;
-    String symFileNameOpt;
-};
-
-
-/**
- *
- */
-class TaskTouch : public Task
-{
-public:
-
-    TaskTouch(MakeBase &par) : Task(par)
-        { type = TASK_TOUCH; name = "touch"; }
-
-    virtual ~TaskTouch()
-        {}
-
-    virtual bool execute()
-        {
-        String fileName = parent.eval(fileNameOpt, "");
-
-        String fullName = parent.resolve(fileName);
-        String nativeFile = getNativePath(fullName);
-        if (!isRegularFile(fullName) && !isDirectory(fullName))
-            {            
-            // S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH
-            int ret = creat(nativeFile.c_str(), 0666);
-            if (ret != 0) 
-                {
-                error(" could not create '%s' : %s",
-                    nativeFile.c_str(), strerror(ret));
-                return false;
-                }
-            return true;
-            }
-        int ret = utime(nativeFile.c_str(), (struct utimbuf *)0);
-        if (ret != 0)
-            {
-            error(" could not update the modification time for '%s' : %s",
-                nativeFile.c_str(), strerror(ret));
-            return false;
-            }
-        removeFromStatCache(nativeFile);
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //trace("touch parse");
-        if (!parent.getAttribute(elem, "file", fileNameOpt))
-            return false;
-        if (fileNameOpt.size() == 0)
-            {
-            error(" requires 'file=\"fileName\"' attribute");
-            return false;
-            }
-        return true;
-        }
-
-    String fileNameOpt;
-};
-
-
-/**
- *
- */
-class TaskTstamp : public Task
-{
-public:
-
-    TaskTstamp(MakeBase &par) : Task(par)
-        { type = TASK_TSTAMP; name = "tstamp"; }
-
-    virtual ~TaskTstamp()
-        {}
-
-    virtual bool execute()
-        {
-        return true;
-        }
-
-    virtual bool parse(Element *elem)
-        {
-        //trace("tstamp parse");
-        return true;
-        }
-};
-
-
-
-/**
- *
- */
-Task *Task::createTask(Element *elem, int lineNr)
-{
-    String tagName = elem->getName();
-    //trace("task:%s", tagName.c_str());
-    Task *task = NULL;
-    if (tagName == "cc")
-        task = new TaskCC(parent);
-    else if (tagName == "copy")
-        task = new TaskCopy(parent);
-    else if (tagName == "cxxtestpart")
-        task = new TaskCxxTestPart(parent);
-    else if (tagName == "cxxtestroot")
-        task = new TaskCxxTestRoot(parent);
-    else if (tagName == "cxxtestrun")
-        task = new TaskCxxTestRun(parent);
-    else if (tagName == "delete")
-        task = new TaskDelete(parent);
-    else if (tagName == "echo")
-        task = new TaskEcho(parent);
-    else if (tagName == "jar")
-        task = new TaskJar(parent);
-    else if (tagName == "javac")
-        task = new TaskJavac(parent);
-    else if (tagName == "link")
-        task = new TaskLink(parent);
-    else if (tagName == "makefile")
-        task = new TaskMakeFile(parent);
-    else if (tagName == "mkdir")
-        task = new TaskMkDir(parent);
-    else if (tagName == "msgfmt")
-        task = new TaskMsgFmt(parent);
-    else if (tagName == "pkg-config")
-        task = new TaskPkgConfig(parent);
-    else if (tagName == "ranlib")
-        task = new TaskRanlib(parent);
-    else if (tagName == "rc")
-        task = new TaskRC(parent);
-    else if (tagName == "sharedlib")
-        task = new TaskSharedLib(parent);
-    else if (tagName == "staticlib")
-        task = new TaskStaticLib(parent);
-    else if (tagName == "strip")
-        task = new TaskStrip(parent);
-    else if (tagName == "touch")
-        task = new TaskTouch(parent);
-    else if (tagName == "tstamp")
-        task = new TaskTstamp(parent);
-    else
-        {
-        error("Unknown task '%s'", tagName.c_str());
-        return NULL;
-        }
-
-    task->setLine(lineNr);
-
-    if (!task->parse(elem))
-        {
-        delete task;
-        return NULL;
-        }
-    return task;
-}
-
-
-
-//########################################################################
-//# T A R G E T
-//########################################################################
-
-/**
- *
- */
-class Target : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    Target(Make &par) : parent(par)
-        { init(); }
-
-    /**
-     *
-     */
-    Target(const Target &other) : parent(other.parent)
-        { init(); assign(other); }
-
-    /**
-     *
-     */
-    Target &operator=(const Target &other)
-        { init(); assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Target()
-        { cleanup() ; }
-
-
-    /**
-     *
-     */
-    virtual Make &getParent()
-        { return parent; }
-
-    /**
-     *
-     */
-    virtual String getName()
-        { return name; }
-
-    /**
-     *
-     */
-    virtual void setName(const String &val)
-        { name = val; }
-
-    /**
-     *
-     */
-    virtual String getDescription()
-        { return description; }
-
-    /**
-     *
-     */
-    virtual void setDescription(const String &val)
-        { description = val; }
-
-    /**
-     *
-     */
-    virtual void addDependency(const String &val)
-        { deps.push_back(val); }
-
-    /**
-     *
-     */
-    virtual void parseDependencies(const String &val)
-        { deps = tokenize(val, ", "); }
-
-    /**
-     *
-     */
-    virtual std::vector &getDependencies()
-        { return deps; }
-
-    /**
-     *
-     */
-    virtual String getIf()
-        { return ifVar; }
-
-    /**
-     *
-     */
-    virtual void setIf(const String &val)
-        { ifVar = val; }
-
-    /**
-     *
-     */
-    virtual String getUnless()
-        { return unlessVar; }
-
-    /**
-     *
-     */
-    virtual void setUnless(const String &val)
-        { unlessVar = val; }
-
-    /**
-     *
-     */
-    virtual void addTask(Task *val)
-        { tasks.push_back(val); }
-
-    /**
-     *
-     */
-    virtual std::vector &getTasks()
-        { return tasks; }
-
-private:
-
-    void init()
-        {
-        }
-
-    void cleanup()
-        {
-        tasks.clear();
-        }
-
-    void assign(const Target &other)
-        {
-        //parent      = other.parent;
-        name        = other.name;
-        description = other.description;
-        ifVar       = other.ifVar;
-        unlessVar   = other.unlessVar;
-        deps        = other.deps;
-        tasks       = other.tasks;
-        }
-
-    Make &parent;
-
-    String name;
-
-    String description;
-
-    String ifVar;
-
-    String unlessVar;
-
-    std::vector deps;
-
-    std::vector tasks;
-
-};
-
-
-
-
-
-
-
-
-//########################################################################
-//# M A K E
-//########################################################################
-
-
-/**
- *
- */
-class Make : public MakeBase
-{
-
-public:
-
-    /**
-     *
-     */
-    Make()
-        { init(); }
-
-    /**
-     *
-     */
-    Make(const Make &other)
-        { assign(other); }
-
-    /**
-     *
-     */
-    Make &operator=(const Make &other)
-        { assign(other); return *this; }
-
-    /**
-     *
-     */
-    virtual ~Make()
-        { cleanup(); }
-
-    /**
-     *
-     */
-    virtual std::map &getTargets()
-        { return targets; }
-
-
-    /**
-     *
-     */
-    virtual String version()
-        { return BUILDTOOL_VERSION; }
-
-    /**
-     * Overload a 
-     */
-    virtual bool specifyProperty(const String &name,
-                                 const String &value);
-
-    /**
-     *
-     */
-    virtual bool run();
-
-    /**
-     *
-     */
-    virtual bool run(const String &target);
-
-
-
-private:
-
-    /**
-     *
-     */
-    void init();
-
-    /**
-     *
-     */
-    void cleanup();
-
-    /**
-     *
-     */
-    void assign(const Make &other);
-
-    /**
-     *
-     */
-    bool executeTask(Task &task);
-
-
-    /**
-     *
-     */
-    bool executeTarget(Target &target,
-             std::set &targetsCompleted);
-
-
-    /**
-     *
-     */
-    bool execute();
-
-    /**
-     *
-     */
-    bool checkTargetDependencies(Target &prop,
-                    std::vector &depList);
-
-    /**
-     *
-     */
-    bool parsePropertyFile(const String &fileName,
-                           const String &prefix);
-
-    /**
-     *
-     */
-    bool parseProperty(Element *elem);
-
-    /**
-     *
-     */
-    bool parseFile();
-
-    /**
-     *
-     */
-    std::vector glob(const String &pattern);
-
-
-    //###############
-    //# Fields
-    //###############
-
-    String projectName;
-
-    String currentTarget;
-
-    String defaultTarget;
-
-    String specifiedTarget;
-
-    String baseDir;
-
-    String description;
-    
-    //std::vector properties;
-    
-    std::map targets;
-
-    std::vector allTasks;
-    
-    std::map specifiedProperties;
-
-};
-
-
-//########################################################################
-//# C L A S S  M A I N T E N A N C E
-//########################################################################
-
-/**
- *
- */
-void Make::init()
-{
-    uri             = "build.xml";
-    projectName     = "";
-    currentTarget   = "";
-    defaultTarget   = "";
-    specifiedTarget = "";
-    baseDir         = "";
-    description     = "";
-    envPrefix       = "env.";
-    pcPrefix        = "pc.";
-    pccPrefix       = "pcc.";
-    pclPrefix       = "pcl.";
-    bzrPrefix       = "bzr.";
-    properties.clear();
-    for (std::size_t i = 0 ; i < allTasks.size() ; i++)
-        delete allTasks[i];
-    allTasks.clear();
-}
-
-
-
-/**
- *
- */
-void Make::cleanup()
-{
-    for (std::size_t i = 0 ; i < allTasks.size() ; i++)
-        delete allTasks[i];
-    allTasks.clear();
-}
-
-
-
-/**
- *
- */
-void Make::assign(const Make &other)
-{
-    uri              = other.uri;
-    projectName      = other.projectName;
-    currentTarget    = other.currentTarget;
-    defaultTarget    = other.defaultTarget;
-    specifiedTarget  = other.specifiedTarget;
-    baseDir          = other.baseDir;
-    description      = other.description;
-    properties       = other.properties;
-}
-
-
-
-//########################################################################
-//# U T I L I T Y    T A S K S
-//########################################################################
-
-/**
- *  Perform a file globbing
- */
-std::vector Make::glob(const String &pattern)
-{
-    std::vector res;
-    return res;
-}
-
-
-//########################################################################
-//# P U B L I C    A P I
-//########################################################################
-
-
-
-/**
- *
- */
-bool Make::executeTarget(Target &target,
-             std::set &targetsCompleted)
-{
-
-    String name = target.getName();
-
-    //First get any dependencies for this target
-    std::vector deps = target.getDependencies();
-    for (std::size_t i=0 ; i &tgts =
-               target.getParent().getTargets();
-        std::map::iterator iter =
-               tgts.find(dep);
-        if (iter == tgts.end())
-            {
-            error("Target '%s' dependency '%s' not found",
-                      name.c_str(),  dep.c_str());
-            return false;
-            }
-        Target depTarget = iter->second;
-        if (!executeTarget(depTarget, targetsCompleted))
-            {
-            return false;
-            }
-        }
-
-    status("##### Target : %s\n##### %s", name.c_str(),
-            target.getDescription().c_str());
-
-    //Now let's do the tasks
-    std::vector &tasks = target.getTasks();
-    for (std::size_t i=0 ; igetName().c_str());
-        if (!task->execute())
-            {
-            return false;
-            }
-        }
-        
-    targetsCompleted.insert(name);
-    
-    return true;
-}
-
-
-
-/**
- *  Main execute() method.  Start here and work
- *  up the dependency tree 
- */
-bool Make::execute()
-{
-    status("######## EXECUTE");
-
-    //Determine initial target
-    if (specifiedTarget.size()>0)
-        {
-        currentTarget = specifiedTarget;
-        }
-    else if (defaultTarget.size()>0)
-        {
-        currentTarget = defaultTarget;
-        }
-    else
-        {
-        error("execute: no specified or default target requested");
-        return false;
-        }
-
-    std::map::iterator iter =
-               targets.find(currentTarget);
-    if (iter == targets.end())
-        {
-        error("Initial target '%s' not found",
-                 currentTarget.c_str());
-        return false;
-        }
-        
-    //Now run
-    Target target = iter->second;
-    std::set targetsCompleted;
-    if (!executeTarget(target, targetsCompleted))
-        {
-        return false;
-        }
-
-    status("######## EXECUTE COMPLETE");
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::checkTargetDependencies(Target &target, 
-                            std::vector &depList)
-{
-    String tgtName = target.getName().c_str();
-    depList.push_back(tgtName);
-
-    std::vector deps = target.getDependencies();
-    for (std::size_t i=0 ; i::iterator diter;
-            for (diter=depList.begin() ; diter!=depList.end() ; diter++)
-                {
-                error("  %s", diter->c_str());
-                }
-            return false;
-            }
-
-        std::map &tgts =
-                  target.getParent().getTargets();
-        std::map::iterator titer = tgts.find(dep);
-        if (titer == tgts.end())
-            {
-            error("Target '%s' dependency '%s' not found",
-                      tgtName.c_str(), dep.c_str());
-            return false;
-            }
-        if (!checkTargetDependencies(titer->second, depList))
-            {
-            return false;
-            }
-        }
-    return true;
-}
-
-
-
-
-
-static int getword(int pos, const String &inbuf, String &result)
-{
-    int p = pos;
-    int len = (int)inbuf.size();
-    String val;
-    while (p < len)
-        {
-        char ch = inbuf[p];
-        if (!isalnum(ch) && ch!='.' && ch!='_')
-            break;
-        val.push_back(ch);
-        p++;
-        }
-    result = val;
-    return p;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parsePropertyFile(const String &fileName,
-                             const String &prefix)
-{
-    FILE *f = fopen(fileName.c_str(), "r");
-    if (!f)
-        {
-        error("could not open property file %s", fileName.c_str());
-        return false;
-        }
-    int linenr = 0;
-    while (!feof(f))
-        {
-        char buf[256];
-        if (!fgets(buf, 255, f))
-            break;
-        linenr++;
-        String s = buf;
-        s = trim(s);
-        int len = s.size();
-        if (len == 0)
-            continue;
-        if (s[0] == '#')
-            continue;
-        String key;
-        String val;
-        int p = 0;
-        int p2 = getword(p, s, key);
-        if (p2 <= p)
-            {
-            error("property file %s, line %d: expected keyword",
-                    fileName.c_str(), linenr);
-            fclose(f);
-			return false;
-            }
-        if (prefix.size() > 0)
-            {
-            key.insert(0, prefix);
-            }
-
-        //skip whitespace
-        for (p=p2 ; p=len || s[p]!='=')
-            {
-            error("property file %s, line %d: expected '='",
-                    fileName.c_str(), linenr);
-            return false;
-            }
-        p++;
-
-        //skip whitespace
-        for ( ; p=len)
-            {
-            error("property file %s, line %d: expected value",
-                    fileName.c_str(), linenr);
-            return false;
-            }
-        val = s.substr(p);
-        if (key.size()==0)
-            continue;
-        //allow property to be set, even if val=""
-
-        //trace("key:'%s' val:'%s'", key.c_str(), val.c_str());
-        //See if we wanted to overload this property
-        std::map::iterator iter =
-            specifiedProperties.find(key);
-        if (iter!=specifiedProperties.end())
-            {
-            val = iter->second;
-            status("overloading property '%s' = '%s'",
-                   key.c_str(), val.c_str());
-            }
-        properties[key] = val;
-        }
-    fclose(f);
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parseProperty(Element *elem)
-{
-    std::vector &attrs = elem->getAttributes();
-    for (std::size_t i=0 ; i 0)
-                {
-                properties[attrVal] = val;
-                }
-            else
-                {
-                if (!getAttribute(elem, "location", val))
-                    return false;
-                //let the property exist, even if not defined
-                properties[attrVal] = val;
-                }
-            //See if we wanted to overload this property
-            std::map::iterator iter =
-                specifiedProperties.find(attrVal);
-            if (iter != specifiedProperties.end())
-                {
-                val = iter->second;
-                status("overloading property '%s' = '%s'",
-                    attrVal.c_str(), val.c_str());
-                properties[attrVal] = val;
-                }
-            }
-        else if (attrName == "file")
-            {
-            String prefix;
-            if (!getAttribute(elem, "prefix", prefix))
-                return false;
-            if (prefix.size() > 0)
-                {
-                if (prefix[prefix.size()-1] != '.')
-                    prefix.push_back('.');
-                }
-            if (!parsePropertyFile(attrName, prefix))
-                return false;
-            }
-        else if (attrName == "environment")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("environment prefix cannot have a '.' in it");
-                return false;
-                }
-            envPrefix = attrVal;
-            envPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config prefix cannot have a '.' in it");
-                return false;
-                }
-            pcPrefix = attrVal;
-            pcPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config-cflags")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config-cflags prefix cannot have a '.' in it");
-                return false;
-                }
-            pccPrefix = attrVal;
-            pccPrefix.push_back('.');
-            }
-        else if (attrName == "pkg-config-libs")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("pkg-config-libs prefix cannot have a '.' in it");
-                return false;
-                }
-            pclPrefix = attrVal;
-            pclPrefix.push_back('.');
-            }
-        else if (attrName == "subversion")
-            {
-            if (attrVal.find('.') != attrVal.npos)
-                {
-                error("bzr prefix cannot have a '.' in it");
-                return false;
-                }
-            bzrPrefix = attrVal;
-            bzrPrefix.push_back('.');
-            }
-        }
-
-    return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::parseFile()
-{
-    status("######## PARSE : %s", uri.getPath().c_str());
-
-    setLine(0);
-
-    Parser parser;
-    Element *root = parser.parseFile(uri.getNativePath());
-    if (!root)
-        {
-        error("Could not open %s for reading",
-              uri.getNativePath().c_str());
-        return false;
-        }
-    
-    setLine(root->getLine());
-
-    if (root->getChildren().size()==0 ||
-        root->getChildren()[0]->getName()!="project")
-        {
-        error("Main xml element should be ");
-        delete root;
-        return false;
-        }
-
-    //########## Project attributes
-    Element *project = root->getChildren()[0];
-    String s = project->getAttribute("name");
-    if (s.size() > 0)
-        projectName = s;
-    s = project->getAttribute("default");
-    if (s.size() > 0)
-        defaultTarget = s;
-    s = project->getAttribute("basedir");
-    if (s.size() > 0)
-        baseDir = s;
-
-    //######### PARSE MEMBERS
-    std::vector children = project->getChildren();
-    for (std::size_t i=0 ; igetLine());
-        String tagName = elem->getName();
-
-        //########## DESCRIPTION
-        if (tagName == "description")
-            {
-            description = parser.trim(elem->getValue());
-            }
-
-        //######### PROPERTY
-        else if (tagName == "property")
-            {
-            if (!parseProperty(elem))
-                return false;
-            }
-
-        //######### TARGET
-        else if (tagName == "target")
-            {
-            String tname   = elem->getAttribute("name");
-            String tdesc   = elem->getAttribute("description");
-            String tdeps   = elem->getAttribute("depends");
-            String tif     = elem->getAttribute("if");
-            String tunless = elem->getAttribute("unless");
-            Target target(*this);
-            target.setName(tname);
-            target.setDescription(tdesc);
-            target.parseDependencies(tdeps);
-            target.setIf(tif);
-            target.setUnless(tunless);
-            std::vector telems = elem->getChildren();
-            for (std::size_t i=0 ; igetLine());
-                if (!task)
-                    return false;
-                allTasks.push_back(task);
-                target.addTask(task);
-                }
-
-            //Check name
-            if (tname.size() == 0)
-                {
-                error("no name for target");
-                return false;
-                }
-            //Check for duplicate name
-            if (targets.find(tname) != targets.end())
-                {
-                error("target '%s' already defined", tname.c_str());
-                return false;
-                }
-            //more work than targets[tname]=target, but avoids default allocator
-            auto pair = std::make_pair(tname, target); 
-            targets.insert(pair);
-            }
-        //######### none of the above
-        else
-            {
-            error("unknown toplevel tag: <%s>", tagName.c_str());
-            return false;
-            }
-
-        }
-
-    std::map::iterator iter;
-    for (iter = targets.begin() ; iter!= targets.end() ; iter++)
-        {
-        Target tgt = iter->second;
-        std::vector depList;
-        if (!checkTargetDependencies(tgt, depList))
-            {
-            return false;
-            }
-        }
-
-
-    delete root;
-    status("######## PARSE COMPLETE");
-    return true;
-}
-
-
-/**
- * Overload a 
- */
-bool Make::specifyProperty(const String &name, const String &value)
-{
-    if (specifiedProperties.find(name) != specifiedProperties.end())
-        {
-        error("Property %s already specified", name.c_str());
-        return false;
-        }
-    specifiedProperties[name] = value;
-    return true;
-}
-
-
-
-/**
- *
- */
-bool Make::run()
-{
-    if (!parseFile())
-        return false;
-        
-    if (!execute())
-        return false;
-
-    return true;
-}
-
-
-
-
-/**
- * Get a formatted MM:SS.sss time elapsed string
- */ 
-static String
-timeDiffString(struct timeval &x, struct timeval &y)
-{
-    long microsX  = x.tv_usec;
-    long secondsX = x.tv_sec;
-    long microsY  = y.tv_usec;
-    long secondsY = y.tv_sec;
-    if (microsX < microsY)
-        {
-        microsX += 1000000;
-        secondsX -= 1;
-        }
-
-    int seconds = (int)(secondsX - secondsY);
-    int millis  = (int)((microsX - microsY)/1000);
-
-    int minutes = seconds/60;
-    seconds -= minutes*60;
-    char buf[80];
-    snprintf(buf, 79, "%dm %d.%03ds", minutes, seconds, millis);
-    String ret = buf;
-    return ret;
-    
-}
-
-/**
- *
- */
-bool Make::run(const String &target)
-{
-    status("####################################################");
-    status("#   %s", version().c_str());
-    status("####################################################");
-    struct timeval timeStart, timeEnd;
-    ::gettimeofday(&timeStart, NULL);
-    specifiedTarget = target;
-    if (!run())
-        return false;
-    ::gettimeofday(&timeEnd, NULL);
-    String timeStr = timeDiffString(timeEnd, timeStart);
-    status("####################################################");
-    status("#   BuildTool Completed : %s", timeStr.c_str());
-    status("####################################################");
-    return true;
-}
-
-
-
-
-
-
-
-}// namespace buildtool
-//########################################################################
-//# M A I N
-//########################################################################
-
-typedef buildtool::String String;
-
-/**
- *  Format an error message in printf() style
- */
-static void error(const char *fmt, ...)
-{
-    va_list ap;
-    va_start(ap, fmt);
-    fprintf(stderr, "BuildTool error: ");
-    vfprintf(stderr, fmt, ap);
-    fprintf(stderr, "\n");
-    va_end(ap);
-}
-
-
-static bool parseProperty(const String &s, String &name, String &val)
-{
-    int len = s.size();
-    int i;
-    for (i=0 ; i           use given buildfile\n");
-    printf("  -f                  ''\n");
-    printf("  -D=   use value for given property\n");
-    printf("  -j [N]                 build using N threads or infinite number of threads if no argument\n");
-}
-
-
-
-
-/**
- * Parse the command-line args, get our options,
- * and run this thing
- */   
-static bool parseOptions(int argc, char **argv)
-{
-    if (argc < 1)
-        {
-        error("Cannot parse arguments");
-        return false;
-        }
-
-    buildtool::Make make;
-
-    String target;
-
-    //char *progName = argv[0];
-    for (int i=1 ; i1 && arg[0]=='-')
-            {
-            if (arg == "-h" || arg == "-help")
-                {
-                usage(argc,argv);
-                return true;
-                }
-            else if (arg == "-version")
-                {
-                printf("%s", make.version().c_str());
-                return true;
-                }
-            else if (arg == "-f" || arg == "-file")
-                {
-                if (i>=argc-1)
-                   {
-                   usage(argc, argv);
-                   return false;
-                   }
-                i++; //eat option
-                make.setURI(argv[i]);
-                }
-            else if (arg == "-j")
-            {
-                if (i>=argc-1) {  // if -j is given as last argument
-                    make.setNumThreads(20); // default to some high value
-                } else {
-                    i++; //eat option
-                    if (argv[i] && (*argv[i] == '-')) { // if -j is followed by another '-...' option
-                        make.setNumThreads(20); // default to some high value
-                    } else {
-                        make.setNumThreads(atoi(argv[i]));
-                    }
-                }
-            }
-            else if (arg.size()>2 && sequ(arg, "-D"))
-                {
-                String s = arg.substr(2, arg.size());
-                String name, value;
-                if (!parseProperty(s, name, value))
-                   {
-                   usage(argc, argv);
-                   return false;
-                   }
-                if (!make.specifyProperty(name, value))
-                    return false;
-                }
-            else
-                {
-                error("Unknown option:%s", arg.c_str());
-                return false;
-                }
-            }
-        else
-            {
-            if (target.size()>0)
-                {
-                error("only one initial target");
-                usage(argc, argv);
-                return false;
-                }
-            target = arg;
-            }
-        }
-
-    //We have the options.  Now execute them
-    if (!make.run(target))
-        return false;
-
-    return true;
-}
-
-
-
-
-/*
-static bool runMake()
-{
-    buildtool::Make make;
-    if (!make.run())
-        return false;
-    return true;
-}
-
-
-static bool pkgConfigTest()
-{
-    buildtool::PkgConfig pkgConfig;
-    if (!pkgConfig.readFile("gtk+-2.0.pc"))
-        return false;
-    return true;
-}
-
-
-
-static bool depTest()
-{
-    buildtool::DepTool deptool;
-    deptool.setSourceDirectory("/dev/ink/inkscape/src");
-    if (!deptool.generateDependencies("build.dep"))
-        return false;
-    std::vector res =
-           deptool.loadDepFile("build.dep");
-    if (res.size() == 0)
-        return false;
-    return true;
-}
-
-static bool popenTest()
-{
-    buildtool::Make make;
-    buildtool::String out, err;
-    bool ret = make.executeCommand("gcc xx.cpp", "", out, err);
-    printf("Popen test:%d '%s' '%s'\n", ret, out.c_str(), err.c_str());
-    return true;
-}
-
-
-static bool propFileTest()
-{
-    buildtool::Make make;
-    make.parsePropertyFile("test.prop", "test.");
-    return true;
-}
-*/
-
-int main(int argc, char **argv)
-{
-
-    if (!parseOptions(argc, argv))
-        return 1;
-    /*
-    if (!popenTest())
-        return 1;
-
-    if (!depTest())
-        return 1;
-    if (!propFileTest())
-        return 1;
-    if (runMake())
-        return 1;
-    */
-    return 0;
-}
-
-
-//########################################################################
-//# E N D 
-//########################################################################
-
-
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index e57f63885..000000000
--- a/configure.ac
+++ /dev/null
@@ -1,1057 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_PREREQ([2.64])
-
-# Always use 0.xx+devel instead of 0.xxdevel for the version, e.g. 0.46+devel.
-# Rationale: (i) placate simple version comparison software such as
-# `dpkg --compare-versions'.  (ii) We don't always know what the next
-# version is going to be called until about the time we release it
-# (whereas we always know what the previous version was called).
-#
-# Pre-releases are named "M.NNpreX" where X starts at 0 for the first alpha.
-AC_INIT([inkscape], [0.92pre1],
-        [http://bugs.launchpad.net/inkscape/+filebug],
-        [inkscape],
-        [http://inkscape.org/])
-
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_SRCDIR([src/main.cpp])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_AUX_DIR([build-aux])
-AC_CANONICAL_HOST
-
-# We need version 1.9 of Automake or higher since we no longer distribute the
-# obsolete mkinstalldirs script
-AM_INIT_AUTOMAKE([-Wall dist-zip dist-bzip2 tar-pax 1.9])
-
-m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Workaround for Automake 1.12
-
-AC_ARG_ENABLE([lsb], AS_HELP_STRING([--enable-lsb], [LSB-compatible build configuration]), [
-  prefix=/opt/inkscape
-  PATH="/opt/lsb/bin:$PATH"
-  CC=lsbcc
-  CXX=lsbc++
-  export CC CXX
-])
-
-AC_LANG(C++)
-AC_PROG_CXX
-AC_PROG_CC
-AM_PROG_AS
-AX_CXX_COMPILE_STDCXX_11([], [mandatory])
-
-# Initialize libtool
-LT_PREREQ([2.2])
-LT_INIT
-AC_HEADER_STDC
-INK_BZR_SNAPSHOT_BUILD
-
-dnl If automake 1.11 shave the output to look nice
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
-
-dnl *********************************************************
-dnl Configure a strict set of build rules to prevent usage of 
-dnl deprecated features in external libraries and code that
-dnl triggers compiler warnings.
-dnl *********************************************************
-AC_ARG_ENABLE(strict-build,
-	      [AS_HELP_STRING([--enable-strict-build], [Enable strict build configuration [[default=yes]].  Usage of most deprecated symbols is forbidden by default.  Set the argument to "high" to introduce very strict checking that will cause the build to fail on many systems.])],
-	      [enable_strict_build=$enableval],
-	      [enable_strict_build=yes])
-
-if test "x$enable_strict_build" = "xno"; then
-	AC_MSG_WARN([Strict build options disabled])
-elif test "x$enable_strict_build" = "xhigh"; then
-	AC_MSG_WARN([Strictest build options enabled.  This will cause build failure on most systems])
-else
-	AC_MSG_RESULT([Strict build options enabled])
-fi
-
-dnl These next few lines are needed only while libcroco is in our source tree.
-AM_PROG_CC_C_O
-if test "$GCC" = "yes"; then
-  # Enable some warnings from gcc.
-  AC_LANG_PUSH(C)
-
-  ####
-  # Generic cpp flags...
-
-  # What is just plain "-W" ?
-  # Fortify source requires -O2 or higher, which is handled with newer autoconf
-  CPPFLAGS="-W -D_FORTIFY_SOURCE=2 $CPPFLAGS"
-  # Enable format and format security warnings
-  CPPFLAGS="-Wformat -Wformat-security $CPPFLAGS"
-  # Enable all default warnings
-  CPPFLAGS="-Wall $CPPFLAGS"
-
-  # Permit only top-level Glib headers to be used.
-  # 
-  # TODO: This is already used in Glib >= 2.32 so this flag can be 
-  #       dropped when all targeted distros use higher Glib versions.
-  CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
-
-  # Ensure that private GTK+ fields are not accessible. This strictly
-  # enforced in Gtk+ 3, so it is important to check this in Gtk+ 2 builds
-  CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
-
-  # Unfortunately, we cannot (yet) build with -Werror, so we have to manually
-  # change a ton of warnings into errors.
-  # After some more work on fixing warning-inducing code, we can change this set into
-  # it's complement and use -Wno-error=...
-  # Test for -Werror=... (introduced some time post-4.0)
-  AC_MSG_CHECKING([compiler support for -Werror=...])
-  ink_svd_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="-Werror=format-security -Wswitch -Werror=return-type $CPPFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    CPPFLAGS="$ink_svd_CPPFLAGS"
-  fi
-
-  # Uncomment for SVG2 stuff
-  CPPFLAGS="-DWITH_MESH -DWITH_CSSBLEND -DWITH_CSSCOMPOSITE -DWITH_SVG2 $CPPFLAGS"
-
-  # Uncomment for LPE Tool and All LPEs
-  CPPFLAGS="-DWITH_LPETOOL -DLPE_ENABLE_TEST_EFFECTS $CPPFLAGS"
-
-  ####
-  # C-specific flags...
-
-  # -Wno-pointer-sign is probably new in gcc 4.0; certainly it isn't accepted
-  # by gcc 2.95.
-  AC_MSG_CHECKING([compiler support for -Wno-pointer-sign])
-  ink_svd_CFLAGS="$CFLAGS"
-  CFLAGS="-Wno-pointer-sign $CFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    CFLAGS="$ink_svd_CFLAGS"
-  fi
-
-  
-  # This Automake variable is only used to suppress warnings in our internal
-  # fork of GDL.  Once we get rid of our GDL fork, we can delete this test
-  AC_MSG_CHECKING([compiler support for -Wno-unused-but-set-variable])
-  ink_svd_CFLAGS="$CFLAGS"
-  CFLAGS="-Wno-unused-but-set-variable $CFLAGS"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  CFLAGS="$ink_svd_CFLAGS"
-  AM_CONDITIONAL(CC_WNO_UNUSED_BUT_SET_VARIABLE_SUPPORTED, test "$ink_opt_ok" = "yes")
-  
-
-  ####
-  # Linker flags...
-
-  # Have linker produce read-only relocations, if it knows how
-  AC_MSG_CHECKING([linker tolerates -z relro])
-  ink_svd_LDFLAGS="$LDFLAGS"
-  LDFLAGS="-Wl,-z,relro $LDFLAGS"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([])], [ink_opt_ok=yes], [ink_opt_ok=no])
-  AC_MSG_RESULT([$ink_opt_ok])
-  if test "x$ink_opt_ok" != "xyes"; then
-    LDFLAGS="$ink_svd_LDFLAGS"
-  fi
-
-  AC_LANG_POP
-
-  # C++-specific flags are defined further below.  Look for CXXFLAGS...
-fi
-
-# Test whether GCC emits a spurious warning when using boost::optional
-# If yes, turn off strict aliasing warnings to reduce noise
-# and allow the legitimate warnings to stand out
-AC_MSG_CHECKING([for overzealous strict aliasing warnings])
-ignore_strict_aliasing=no
-CXXFLAGS_SAVE=$CXXFLAGS
-CXXFLAGS="$CXXFLAGS -Werror=strict-aliasing"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#include 
-boost::optional x;
-int func() {
-  return *x;
-}
-])], [ignore_strict_aliasing=no], [ignore_strict_aliasing=yes])
-AC_MSG_RESULT($ignore_strict_aliasing)
-CXXFLAGS=$CXXFLAGS_SAVE
-if test "x$ignore_strict_aliasing" = "xyes"; then
-  CXXFLAGS="$CXXFLAGS -Wno-strict-aliasing"
-fi
-
-dnl ******************************
-dnl Gettext stuff
-dnl ******************************
-IT_PROG_INTLTOOL([0.40.0])
-
-AM_GNU_GETTEXT_VERSION([0.17])
-AM_GNU_GETTEXT([external])
-
-GETTEXT_PACKAGE="AC_PACKAGE_NAME"
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Translation domain used])
-
-AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-if test "x$PKG_CONFIG" = "xno"; then
-	AC_MSG_ERROR(You have to install pkg-config to compile inkscape.)
-fi
-
-dnl Find msgfmt.  Without this, po/Makefile fails to set MSGFMT on some platforms.
-AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
-AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-dnl ******************************
-dnl Check for OpenMP 
-dnl ******************************
-AC_OPENMP
-if test "x$ac_cv_prog_cxx_openmp" != "xunsupported"; then
-	openmp_ok=yes
-	dnl We have it, now set up the flags
-	CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
-	AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP])
-fi
-
-dnl ********************
-dnl Check for libpotrace
-dnl ********************
-AC_CHECK_LIB(potrace, potrace_trace, [AC_CHECK_HEADER(potracelib.h, potrace_ok=yes, potrace_ok=no)], potrace_ok=no)
-if test "x$potrace_ok" = "xyes"; then
-   LIBS="-lpotrace $LIBS"
-   AC_DEFINE(HAVE_POTRACE, 1, [Use Potrace])
-fi
-
-AM_CONDITIONAL(HAVE_POTRACE, test "x$potrace_ok" = "xyes")
-
-dnl ******************************
-dnl Check for libexif
-dnl ******************************
-PKG_CHECK_MODULES(EXIF, libexif, exif_ok=yes, exif_ok=no)
-if test "x$exif_ok" = "xyes"; then
-   AC_DEFINE(HAVE_EXIF, 1, [Use libexif])
-fi
-AC_SUBST(EXIF_LIBS)
-AC_SUBST(EXIF_CFLAGS)
-
-dnl ******************************
-dnl Check for libjpeg
-dnl ******************************
-AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [AC_CHECK_HEADER(jpeglib.h, jpeg_ok=yes, jpeg_ok=no)], jpeg_ok=no)
-if test "x$jpeg_ok" = "xyes"; then
-   LIBS="-ljpeg $LIBS"
-   AC_DEFINE(HAVE_JPEG, 1, [Use libjpeg])
-fi
-
-dnl This check is to get a FIONREAD definition on Solaris 8
-AC_CHECK_HEADERS([sys/filio.h])
-
-
-AC_CHECK_HEADERS([malloc.h])
-AC_CHECK_FUNCS([mallinfo], [
-	AC_CHECK_MEMBERS([struct mallinfo.usmblks,
-			  struct mallinfo.fsmblks,
-			  struct mallinfo.uordblks,
-			  struct mallinfo.fordblks,
-			  struct mallinfo.hblkhd],,,
-			 [#include ])
-])
-
-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
-if test "x$FREETYPE_CONFIG" = "xno"; then
-	AC_MSG_ERROR([Cannot find freetype-config])
-fi
-FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
-FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-AC_SUBST(FREETYPE_CFLAGS)
-AC_SUBST(FREETYPE_LIBS)
-
-dnl ******************************
-dnl Win32
-dnl ******************************
-AC_MSG_CHECKING([for Win32 platform])
-case "$host" in
-  *-*-mingw*)
-    platform_win32=yes
-    WIN32_CFLAGS="-mms-bitfields -DLIBXML_STATIC"
-    ;;
-  *)
-    platform_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_win32])
-AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
-AC_SUBST(WIN32_CFLAGS)
-
-dnl TODO - switch to a linker/libtool/feature check, not OS check:
-dnl ******************************
-dnl MacOS X
-dnl ******************************
-AC_MSG_CHECKING([for OSX platform])
-if test "x$build_vendor" = "xapple" ; then
-  platform_osx=yes
-else
-  platform_osx=no
-fi
-AC_MSG_RESULT([$platform_osx])
-	
-AC_MSG_CHECKING([for Solaris platform])
-case "$host" in
-  *-solaris2.*)
-    platform_solaris=yes
-    solaris_version=`echo $host|sed -e 's/^.*-solaris2\.//' -e s'/\..*$//'`
-    CFLAGS="$CFLAGS -DSOLARIS=$solaris_version"
-    CXXFLAGS="$CXXFLAGS -DSOLARIS=$solaris_version"
-    ;;
-  *)
-    platform_solaris=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_solaris])
-AM_CONDITIONAL(PLATFORM_SOLARIS, test "$platform_solaris" = "yes")
-
-dnl ******************************
-dnl gnome vfs checking
-dnl ******************************
-
-AC_ARG_WITH(gnome-vfs,
-	AS_HELP_STRING([--with-gnome-vfs],[use gnome vfs for loading files]),
-	[with_gnome_vfs=$withval], [with_gnome_vfs=auto])
-
-if test "x$with_gnome_vfs" = "xno"; then
-	dnl Asked to ignore gnome-vfs
-	gnome_vfs=no
-else
-        dnl Have to test gnome-vfs presence
-	PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0 >= 2.0, gnome_vfs=yes, gnome_vfs=no)
-	if test "x$gnome_vfs" != "xyes"; then
-	        dnl No gnome-vfs found
-		if test "x$with_gnome_vfs" = "xyes"; then
-		        dnl Gnome-VFS was explicitly asked for, so stop
-			AC_MSG_ERROR([--with-gnome-vfs was specified, but appropriate libgnomevfs development packages could not be found])
-		else
-			# gnome-vfs is no, tell us for the log file
-			AC_MSG_RESULT($gnome_vfs)
-		fi
-	fi
-fi
-
-AM_CONDITIONAL(USE_GNOME_VFS, test "x$gnome_vfs" = "xyes")
-if test "x$gnome_vfs" = "xyes"; then
-	AC_DEFINE(WITH_GNOME_VFS, 1, [Use gnome vfs file load functionality])
-fi
-
-AC_SUBST(GNOME_VFS_CFLAGS)
-AC_SUBST(GNOME_VFS_LIBS)
-
-dnl ******************************
-dnl libinkjar checking
-dnl ******************************
-
-AC_ARG_WITH(inkjar,
-	AS_HELP_STRING([--without-inkjar],[disable openoffice files (SVG jars)]),[with_ij=$withval], [with_ij=yes])
-
-if test "x$with_ij" = "xyes"; then
-	AC_DEFINE(WITH_INKJAR, 1, [enable openoffice files (SVG jars)])
-	AC_C_BIGENDIAN
-	AC_CHECK_HEADERS(zlib.h)
-	ij=yes
-else
-	ij=no
-fi
-AM_CONDITIONAL(INKJAR, test "$with_ij" = "yes")
-
-dnl ******************************
-dnl LittleCms checking
-dnl ******************************
-
-AC_ARG_ENABLE(lcms,
-	AS_HELP_STRING([--enable-lcms],[enable LittleCms for color management]),
-	[enable_lcms=$enableval], [enable_lcms=yes])
-
-if test "x$enable_lcms" = "xno"; then
-    # Asked to ignore LittleCms
-    lcms=no
-    have_lcms2=no
-else
-    # Have to test LittleCms presence
-    PKG_CHECK_MODULES(LCMS2, lcms2, have_lcms2="yes", have_lcms2="no")
-
-    if test "x${have_lcms2}" = "xyes"; then
-        LIBS="$LIBS $LCMS2_LIBS"
-        AC_DEFINE(HAVE_LIBLCMS2, 1, [define to 1 if you have lcms version 2.x])
-	AC_SUBST(LCMS2_CFLAGS)
-	AC_SUBST(LCMS2_LIBS)
-    else
-        PKG_CHECK_MODULES(LCMS, lcms >= 1.13, lcms=yes, lcms=no)
-        if test "x$lcms" = "xyes"; then
-            LIBS="$LIBS $LCMS_LIBS"
-            AC_DEFINE(HAVE_LIBLCMS1, 1, [define to 1 if you have lcms version 1.x])
-	    AC_SUBST(LCMS_CFLAGS)
-	    AC_SUBST(LCMS_LIBS)
-        else
-            # No lcms found. LittleCms was explicitly asked for, so stop
-            AC_MSG_ERROR([--enable-lcms was specified, but appropriate LittleCms development packages could not be found])
-        fi
-    fi
-fi
-
-dnl ******************************
-dnl Libpoppler checking
-dnl ******************************
-
-AC_ARG_ENABLE(poppler-cairo,
-	AS_HELP_STRING([--enable-poppler-cairo],[Enable libpoppler-cairo for rendering PDF preview]),
-	[enable_poppler_cairo=$enableval], [enable_poppler_cairo=yes])
-
-POPPLER_CFLAGS=""
-PKG_CHECK_MODULES(POPPLER, poppler >= 0.20.0, poppler=yes, poppler=no)
-
-if test "x$poppler" = "xyes"; then
-	dnl Working libpoppler
-	dnl Have to test libpoppler-glib presence
-	PKG_CHECK_MODULES(POPPLER_GLIB, poppler-glib >= 0.20.0, poppler_glib=yes, poppler_glib=no)
-	if test "x$poppler_glib" = "xyes"; then
-		dnl Working libpoppler-glib found
-		dnl Check whether the Cairo SVG backend is available
-		PKG_CHECK_MODULES(CAIRO_SVG, cairo-svg, cairo_svg=yes, cairo_svg=no)
-		if test "x$cairo_svg" = "xyes"; then
-			POPPLER_LIBS="$POPPLER_LIBS $POPPLER_GLIB_LIBS "
-		fi
-	fi
-	if test "x$enable_poppler_cairo" = "xyes"; then
-		dnl Have to test libpoppler-cairo presence for PDF preview
-		dnl AC_CHECK_HEADER(Magick++.h, magick_ok=yes, magick_ok=no)
-		PKG_CHECK_MODULES(POPPLER_CAIRO, poppler-cairo >= 0.20.0, poppler_cairo=yes, poppler_cairo=no)
-		if test "x$poppler_glib" = "xyes" -a "x$poppler_cairo" = "xyes" -a \
-			"x$cairo_svg" = "xno"
-		then
-			POPPLER_LIBS="$POPPLER_LIBS $POPPLER_CAIRO_LIBS "
-		fi
-	fi
-fi
-
-if test "x$poppler" = "xyes"; then
-	LIBS="$LIBS $POPPLER_LIBS"
-	AC_DEFINE(HAVE_POPPLER, 1, [Use libpoppler for direct PDF import])
-fi
-if test "x$poppler_cairo" = "xyes" -a "x$poppler_glib" = "xyes"; then
-	AC_DEFINE(HAVE_POPPLER_CAIRO, 1, [Use libpoppler-cairo for rendering PDF preview])
-fi
-if test "x$poppler_glib" = "xyes" -a "x$cairo_svg" = "xyes"; then
-	AC_DEFINE(HAVE_POPPLER_GLIB, 1, [Use libpoppler-glib and Cairo-SVG for PDF import])
-fi
-AC_SUBST(POPPLER_CFLAGS)
-AC_SUBST(POPPLER_LIBS)
-
-ink_svd_CPPFLAGS=$CPPFLAGS
-ink_svd_LIBS=$LIBS
-CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS"
-LIBS="$LIBS $POPPLER_LIBS"
-
-PKG_CHECK_MODULES(POPPLER_EVEN_NEWER_COLOR_SPACE_API, poppler >= 0.26.0, popplernewercolorspaceapi=yes, popplernewercolorspaceapi=no)
-if test "x$popplernewercolorspaceapi" = "xyes"; then
-	AC_DEFINE(POPPLER_EVEN_NEWER_COLOR_SPACE_API, 1, [Use even newer color space API from Poppler >= 0.26.0])
-fi
-
-PKG_CHECK_MODULES(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API, poppler >= 0.29.0, popplernewernewcolorspaceapi=yes, popplernewernewcolorspaceapi=no)
-if test "x$popplernewernewcolorspaceapi" = "xyes"; then
-	AC_DEFINE(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API, 1, [Use even newer new color space API from Poppler >= 0.29.0])
-fi
-
-CPPFLAGS=$ink_svd_CPPFLAGS
-LIBS=$ink_svd_LIBS
-
-dnl ******************************
-dnl Check for libwpg for extension
-dnl ******************************
-
-AC_ARG_ENABLE(wpg,
-       AS_HELP_STRING([--disable-wpg], [compile without support for WordPerfect Graphics]),
-       enable_wpg=$enableval,enable_wpg=yes)
-
-with_libwpg=no
-
-if test "x$enable_wpg" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBWPG03, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0, with_libwpg03=yes, with_libwpg03=no)
-	if test "x$with_libwpg03" = "xyes"; then
-		AC_DEFINE(WITH_LIBWPG03,1,[Build using libwpg 0.3.x])
-		with_libwpg=yes
-		AC_SUBST(LIBWPG_LIBS, $LIBWPG03_LIBS)
-		AC_SUBST(LIBWPG_CFLAGS, $LIBWPG03_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no)
-		if test "x$with_libwpg02" = "xyes"; then
-			AC_DEFINE(WITH_LIBWPG02,1,[Build using libwpg 0.2.x])
-			with_libwpg=yes
-			AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
-			AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libwpg" = "xyes"; then
-		AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBWPG03, test "x$with_libwpg03" = "xyes")
-AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
-AM_CONDITIONAL(WITH_LIBWPG, test "x$with_libwpg" = "xyes")
-
-dnl ********************************
-dnl Check for libvisio for extension
-dnl ********************************
-
-AC_ARG_ENABLE(visio,
-       AS_HELP_STRING([--disable-visio], [compile without support for Microsoft Visio Diagrams]),
-       enable_visio=$enableval,enable_visio=yes)
-
-with_libvisio=no
-
-if test "x$enable_visio" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBVISIO01, libvisio-0.1 librevenge-0.0 librevenge-stream-0.0, with_libvisio01=yes, with_libvisio01=no)
-	if test "x$with_libvisio01" = "xyes"; then
-		AC_DEFINE(WITH_LIBVISIO01,1,[Build using libvisio 0.1.x])
-		with_libvisio=yes
-		AC_SUBST(LIBVISIO_LIBS, $LIBVISIO01_LIBS)
-		AC_SUBST(LIBVISIO_CFLAGS, $LIBVISIO01_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBVISIO00, libvisio-0.0 >= 0.0.20 libwpd-0.9 libwpd-stream-0.9 libwpg-0.2, with_libvisio00=yes, with_libvisio00=no)
-		if test "x$with_libvisio00" = "xyes"; then
-			AC_DEFINE(WITH_LIBVISIO00,1,[Build using libvisio 0.0.x])
-			with_libvisio=yes
-			AC_SUBST(LIBVISIO_LIBS, $LIBVISIO00_LIBS)
-			AC_SUBST(LIBVISIO_CFLAGS, $LIBVISIO00_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libvisio" = "xyes"; then
-		AC_DEFINE(WITH_LIBVISIO,1,[Build in libvisio])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBVISIO01, test "x$with_libvisio01" = "xyes")
-AM_CONDITIONAL(WITH_LIBVISIO00, test "x$with_libvisio00" = "xyes")
-AM_CONDITIONAL(WITH_LIBVISIO, test "x$with_libvisio" = "xyes")
-
-dnl ********************************
-dnl Check for libcdr for extension
-dnl ********************************
-
-AC_ARG_ENABLE(cdr,
-       AS_HELP_STRING([--disable-cdr], [compile without support for CorelDRAW Diagrams]),
-       enable_cdr=$enableval,enable_cdr=yes)
-
-with_libcdr=no
-
-if test "x$enable_cdr" = "xyes"; then
-        dnl **************************************************************
-        dnl Try using librevenge framework first. Fall back to old libs
-        dnl if unavailable.
-        dnl TODO: Drop subsequent tests once this is widespread in distros
-        dnl **************************************************************
-	PKG_CHECK_MODULES(LIBCDR01, libcdr-0.1 librevenge-0.0 librevenge-stream-0.0, with_libcdr01=yes, with_libcdr01=no)
-	if test "x$with_libcdr01" = "xyes"; then
-		AC_DEFINE(WITH_LIBCDR01,1,[Build using libcdr 0.1.x])
-		with_libcdr=yes
-		AC_SUBST(LIBCDR_LIBS, $LIBCDR01_LIBS)
-		AC_SUBST(LIBCDR_CFLAGS, $LIBCDR01_CFLAGS)
-	else
-		PKG_CHECK_MODULES(LIBCDR00, libcdr-0.0 >= 0.0.3 libwpd-0.9 libwpd-stream-0.9 libwpg-0.2, with_libcdr00=yes, with_libcdr00=no)
-		if test "x$with_libcdr00" = "xyes"; then
-			AC_DEFINE(WITH_LIBCDR00,1,[Build using libcdr 0.0.x])
-			with_libcdr=yes
-			AC_SUBST(LIBCDR_LIBS, $LIBCDR00_LIBS)
-			AC_SUBST(LIBCDR_CFLAGS, $LIBCDR00_CFLAGS)
-		fi
-	fi
-
-	if test "x$with_libcdr" = "xyes"; then
-		AC_DEFINE(WITH_LIBCDR,1,[Build in libcdr])
-	fi
-fi
-AM_CONDITIONAL(WITH_LIBCDR01, test "x$with_libcdr01" = "xyes")
-AM_CONDITIONAL(WITH_LIBCDR00, test "x$with_libcdr00" = "xyes")
-AM_CONDITIONAL(WITH_LIBCDR, test "x$with_libcdr" = "xyes")
-
-dnl ******************************
-dnl Support doing a local install
-dnl   (mostly for distcheck)
-dnl ******************************
-
-with_localinstall="no"
-AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install system files in the local path (for distcheck)]), with_localinstall=$enableval, with_localinstall=no)
-
-dnl ******************************
-dnl Check for dbus functionality
-dnl ******************************
-
-AC_ARG_ENABLE(dbusapi,
-       AS_HELP_STRING([--enable-dbusapi], [compile with support for DBus interface]),
-       enable_dbusapi=$enableval,enable_dbusapi=no)
-
-with_dbus="no"
-if test "x$enable_dbusapi" = "xyes"; then
-	PKG_CHECK_MODULES(DBUS, dbus-glib-1, with_dbus=yes, with_dbus=no)
-	if test "x$with_dbus" = "xyes"; then
-		if test "x$with_localinstall" = "xyes"; then
-			DBUSSERVICEDIR="${datadir}/dbus-1/services/"
-		else
-			DBUSSERVICEDIR=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`
-		fi
-		AC_SUBST(DBUSSERVICEDIR)
-		AC_DEFINE(WITH_DBUS,1,[Build in dbus])
-	fi
-fi
-AC_SUBST(DBUS_LIBS)
-AC_SUBST(DBUS_CFLAGS)
-AM_CONDITIONAL(WITH_DBUS, test "x$with_dbus" = "xyes")
-
-dnl ******************************
-dnl Check for ImageMagick Magick++ 
-dnl ******************************
-
-PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
-if test "x$magick_ok" = "xyes"; then
-      AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
-fi
-AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes")
-
-AC_SUBST(IMAGEMAGICK_LIBS)
-AC_SUBST(IMAGEMAGICK_CFLAGS)
-
-dnl ******************************
-dnl   Unconditional dependencies
-dnl ******************************
-
-dnl Separate out dependencies that are known to introduce
-dnl C++-specific compiler flags
-PKG_CHECK_MODULES(INKSCAPE_CXX_DEPS,
-		  cairomm-1.0 >= 1.9.8
-		  glibmm-2.4  >= 2.28
-		  giomm-2.4
-		  sigc++-2.0  >= 2.0.12
-		  )
-
-PKG_CHECK_MODULES(INKSCAPE,
-		  bdw-gc      >= 7.2
-		  cairo       >= 1.10
-		  glib-2.0    >= 2.28
-		  gmodule-2.0
-		  gsl
-		  gthread-2.0 >= 2.0
-		  libpng      >= 1.2
-		  libxml-2.0  >= 2.6.11
-		  libxslt     >= 1.0.15
-		  pango       >= 1.24
-		  pangoft2    >= 1.24
-		  )
-
-ink_spell_pkg=
-if pkg-config --exists gtkspell-3.0; then
-	ink_spell_pkg=gtkspell-3.0
-	AC_DEFINE(WITH_GTKSPELL, 1, [enable gtk spelling widget])
-fi
-
-PKG_CHECK_MODULES(GTK,
-                  gtk+-3.0  >= 3.8
-		  gdk-3.0   >= 3.8
-		  gdl-3.0   > 3.4
-		  $ink_spell_pkg)
-
-dnl Separate out dependencies that are known to introduce
-dnl C++-specific compiler flags
-PKG_CHECK_MODULES(GTKMM,
-		  gtkmm-3.0 >= 3.8
-		  gdkmm-3.0 >= 3.8)
-
-# Check whether we can use new features in Gtkmm 3.10
-# TODO: Drop this test and bump the version number in the GTK test above
-#       as soon as all supported distributions provide Gtkmm >= 3.10
-PKG_CHECK_MODULES(GTKMM_3_10,
-		  gtkmm-3.0 >= 3.10,
-		  with_gtkmm_3_10=yes,
-		  with_gtkmm_3_10=no)
-
-if test "x$with_gtkmm_3_10" = "xyes"; then
-	AC_MSG_RESULT([Using Gtkmm 3.10 build])
-	AC_DEFINE(WITH_GTKMM_3_10,1,[Build with Gtkmm 3.10.x or higher])
-fi
-
-# Check whether we are using Gdl >= 3.6.  This version introduced an API/ABI change.
-# TODO: We should drop support for older versions of Gdl once all supported distros
-#       provide Gdl 3.6 or higher
-PKG_CHECK_MODULES(GDL_3_6, gdl-3.0 >= 3.6, with_gdl_3_6=yes, with_gdl_3_6=no)
-
-if test "x$with_gdl_3_6" = "xyes"; then
-	AC_MSG_RESULT([Using Gdl 3.6 or higher])
-	AC_DEFINE(WITH_GDL_3_6,1,[Build with Gdl 3.6 or higher])
-fi
-
-# Check whether we are using the X11 backend target for Gtk+ 3.
-GTK_CHECK_BACKEND([x11], , [have_x11=yes], [have_x11=no])
-
-# Enable strict build options that should work on most systems unless
-# the build has been configured not to do so
-if test "x$enable_strict_build" != "xno"; then
-	# Add build flags here as soon as Inkscape trunk can build
-	# against Gtk+ 3 with the option enabled
-	echo ""
-fi
-
-# Enable strict build options that are known to cause failure in
-# Gtk+ 3 builds
-if test "x$enable_strict_build" = "xhigh"; then
-	# Disable deprecated Gtk+ symbols that have been removed since
-	# Gtk+ 3.
-	CPPFLAGS="-DGTKMM_DISABLE_DEPRECATED $CPPFLAGS"
-	CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
-	CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
-fi
-
-INKSCAPE_CFLAGS="$GTK_CFLAGS $INKSCAPE_CFLAGS"
-INKSCAPE_CXX_DEPS_CFLAGS="$GTKMM_CFLAGS $INKSCAPE_CXX_DEPS_CFLAGS"
-INKSCAPE_LIBS="$GTK_LIBS $INKSCAPE_LIBS"
-INKSCAPE_CXX_DEPS_LIBS="$GTKMM_LIBS $INKSCAPE_CXX_DEPS_LIBS"
-
-dnl Configure x11 library if Gtk+ uses it as a backend.
-dnl Note that this is only here because we directly use X11 functionality.  We
-dnl wouldn't need this check if we were only using X as the Gtk+ backend.
-if test "x$have_x11" = "xyes"; then
-	PKG_CHECK_MODULES(X11, x11)
-fi
-AC_SUBST(X11_CFLAGS)
-AC_SUBST(X11_LIBS)
-
-# Prevent usage of deprecated library symbols unless strict build
-# checking has been disabled
-if test "x$enable_strict_build" != "xno"; then
-	CPPFLAGS="-DGDKMM_DISABLE_DEPRECATED $CPPFLAGS"
-	
-	# Ensure that no deprecated glibmm symbols are introduced.
-	# lp:inkscape builds cleanly with this option at r10957
-	CPPFLAGS="-DGLIBMM_DISABLE_DEPRECATED $CPPFLAGS"
-	
-	dnl Pango 1.32.4 uses a deprecated Glib symbol:
-	dnl   https://bugzilla.gnome.org/show_bug.cgi?id=689843
-	dnl 
-	dnl TODO: Get rid of this check once we are sure that all targeted
-	dnl       platforms have got rid of this Pango version.  Apply the
-	dnl       G_DISABLE_DEPRECATED flag to all builds.
-	pango_uses_deprecated_glib_symbols=no
-
-	PKG_CHECK_MODULES(PANGO_USES_DEPRECATED_GLIB_SYMBOLS,
-			  pango = 1.32.4,
-			  pango_uses_deprecated_glib_symbols=yes,
-			  pango_uses_deprecated_glib_symbols=no)
-
-	# Don't disable deprecated Glib symbols if it will break stuff in an
-	# external library header that we use
-	if test "x$pango_uses_deprecated_glib_symbols" = "xyes"; then
-		AC_MSG_WARN([The available version of Pango uses deprecated Glib symbols.  Deprecated Glib symbol usage will be allowed])
-	else
-		CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
-	fi
-fi
-
-# Disable all deprecated symbols if very strict build is requested.
-# TODO: Make this a default option for Gtk+ 2 or 3 builds as soon as
-#       possible.
-if test "x$enable_strict_build" = "xhigh"; then
-        CPPFLAGS="-Werror=deprecated-declarations $CPPFLAGS"
-fi
-
-# Check for some boost header files
-AC_CHECK_HEADERS([boost/concept_check.hpp], [], AC_MSG_ERROR([You need the boost package (e.g. libboost-dev)]))
-
-PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, cairo_pdf=yes, cairo_pdf=no)
-if test "x$cairo_pdf" = "xyes"; then
-  AC_DEFINE(HAVE_CAIRO_PDF, 1, [Whether the Cairo PDF backend is available])
-fi
-
-dnl Shouldn't we test for libz?
-INKSCAPE_LIBS="$INKSCAPE_LIBS -lz"
-if test "x$openmp_ok" = "xyes"; then
-	INKSCAPE_LIBS="$INKSCAPE_LIBS -lgomp"
-fi
-
-AC_CHECK_HEADER(popt.h,
-		[INKSCAPE_LIBS="$INKSCAPE_LIBS -lpopt"],
-		AC_MSG_ERROR([libpopt is required]))
-
-dnl **************************
-dnl Check for aspell 
-dnl ******************************
-AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm)
-if test "x$aspell_ok" = "xyes"; then
-	AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker])
-  INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell"
-else
-	AC_MSG_CHECKING([Aspell not found, spell checker will be disabled])
-fi
-
-dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
-sp_save_LIBS=$LIBS
-LIBS="$LIBS $INKSCAPE_LIBS"
-AC_CHECK_FUNCS(bind_textdomain_codeset)
-LIBS=$sp_save_LIBS
-
-
-dnl Check for binary relocation support
-dnl Hongli Lai 
-
-AC_ARG_ENABLE(binreloc,
-       AS_HELP_STRING([--enable-binreloc], [compile with binary relocation support]),
-       enable_binreloc=$enableval,enable_binreloc=no)
-
-AC_MSG_CHECKING(whether binary relocation support should be enabled)
-if test "$enable_binreloc" = "yes"; then
-       AC_MSG_RESULT(yes)
-       AC_MSG_CHECKING(for linker mappings at /proc/self/maps)
-       if test -e /proc/self/maps; then
-               AC_MSG_RESULT(yes)
-       else
-               AC_MSG_RESULT(no)
-               AC_MSG_ERROR(/proc/self/maps is not available. Binary relocation cannot be enabled.)
-               enable_binreloc="no"
-       fi
-
-elif test "$enable_binreloc" = "auto"; then
-       AC_MSG_RESULT(yes when available)
-       AC_MSG_CHECKING(for linker mappings at /proc/self/maps)
-       if test -e /proc/self/maps; then
-               AC_MSG_RESULT(yes)
-               enable_binreloc=yes
-
-               AC_MSG_CHECKING(whether everything is installed to the same prefix)
-               if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \
-                       "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \
-                       "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc'
-               then
-                       AC_MSG_RESULT(yes)
-               else
-                       AC_MSG_RESULT(no)
-                       AC_MSG_NOTICE(Binary relocation support will be disabled.)
-                       enable_binreloc=no
-               fi
-
-       else
-               AC_MSG_RESULT(no)
-               enable_binreloc=no
-       fi
-
-elif test "$enable_binreloc" = "no"; then
-       AC_MSG_RESULT(no)
-else
-       AC_MSG_RESULT([no (unknown value "$enable_binreloc")])
-       enable_binreloc=no
-fi
-AC_DEFINE(BR_PTHREADS,[0],[Use binreloc thread support?])
-if test "$enable_binreloc" = "yes"; then
-   AC_DEFINE(ENABLE_BINRELOC,,[Use AutoPackage?])
-fi
-
-AC_ARG_ENABLE(osxapp,
-       AS_HELP_STRING([--enable-osxapp], [compile with OSX .app data dir paths]),
-       enable_osxapp=$enableval,enable_osxapp=no)
-if test "$enable_osxapp" = "yes"; then
-   AC_DEFINE(ENABLE_OSX_APP_LOCATIONS,,[Build with OSX .app data dir paths?])
-   LDFLAGS="$LDFLAGS -headerpad_max_install_names"
-fi
-
-dnl ******************************
-dnl   Reported by autoscan
-dnl ******************************
-AC_CHECK_FUNCS(pow)
-# if we did not find pow(), see if it's in libm.
-if test x"$ac_cv_func_pow" = x"no" ; then
-	AC_CHECK_LIB(m,pow)
-fi
-AC_CHECK_FUNCS(sqrt)
-AC_CHECK_FUNCS(floor)
-AC_CHECK_FUNCS(gettimeofday)
-AC_CHECK_FUNCS(memmove)
-AC_CHECK_FUNCS(memset)
-AC_CHECK_FUNCS(mkdir)
-AC_CHECK_FUNCS(strncasecmp)
-AC_CHECK_FUNCS(strpbrk)
-AC_CHECK_FUNCS(strrchr)
-AC_CHECK_FUNCS(strspn)
-AC_CHECK_FUNCS(strstr)
-AC_CHECK_FUNCS(strtoul)
-AC_CHECK_FUNCS(fpsetmask)
-AC_CHECK_FUNCS(ecvt)
-AC_CHECK_HEADERS(ieeefp.h)
-AC_CHECK_HEADERS(fcntl.h)
-AC_CHECK_HEADERS(libintl.h)
-AC_CHECK_HEADERS(stddef.h)
-AC_CHECK_HEADERS(sys/time.h)
-AC_FUNC_STAT
-AC_FUNC_STRFTIME
-AC_FUNC_STRTOD
-AC_HEADER_STAT
-AC_HEADER_TIME
-AC_STRUCT_TM
-AC_TYPE_MODE_T
-
-dnl Work around broken gcc 3.3 (seen on OSX) where "ENABLE_NLS" isn't
-dnl set correctly because the gettext function isn't noticed.
-if test "$ac_cv_header_libintl_h" = "yes" &&
-   test "$ac_cv_func_bind_textdomain_codeset" = "yes"  &&
-   test "$gt_cv_func_have_gettext" != "yes"; then
-    AC_DEFINE([ENABLE_NLS], [], [Description])
-fi
-
-dnl ******************************
-dnl   Compilation warnings
-dnl ******************************
-if test "$GXX" = "yes"; then
-  # Enable some warnings from g++.
-
-  # Rationale: a number of bugs in inkscape have been fixed by enabling g++
-  # warnings and addressing the produced warnings.  Usually the committing
-  # developer is the best person to address the warnings.
-
-  ink_svd_CXXFLAGS="$CXXFLAGS"
-  CXXFLAGS="-Wno-unused-parameter $CXXFLAGS"
-  # -Wno-unused-parameter isn't accepted by gcc 2.95.
-  AC_COMPILE_IFELSE([AC_LANG_SOURCE([int dummy;])
-], , CXXFLAGS="-Wno-unused $ink_svd_CXXFLAGS",)
-  # Note: At least one bug has been caught from unused parameter warnings,
-  # so it might be worth trying not to disable it.
-  # One way of selectively disabling the warnings (i.e. only where the
-  # programmer deliberately isn't using the parameter, e.g. for a callback)
-  # is to remove the parameter name (leaving just its type), as is done
-  # in src/seltrans.cpp:sp_seltrans_handle_event; this indicates that the
-  # programmer deliberately has an unused parameter (e.g. because it's used
-  # as a callback or similar function pointer use).
-
-  # Add even more stuff
-  CXXFLAGS="-Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch $CXXFLAGS"
-
-fi
-
-dnl ******************************
-dnl   libinkscape
-dnl ******************************
-dnl
-dnl AC_ARG_ENABLE(libinkscape, AS_HELP_STRING([--enable-libinkscape],[Compile dynamic library (experimental)]), [splib=$enableval], [splib=no])
-dnl
-dnl AM_CONDITIONAL(ENABLE_LIBINKSCAPE, test "x$splib" != "xno")
-dnl
-
-AC_SUBST(INKSCAPE_CFLAGS)
-AC_SUBST(INKSCAPE_LIBS)
-AC_SUBST(INKSCAPE_CXX_DEPS_CFLAGS)
-AC_SUBST(INKSCAPE_CXX_DEPS_LIBS)
-
-dnl Define our data paths for config.h
-AC_DEFINE_DIR([INKSCAPE_DATADIR], [datadir], [Base data directory])
-AC_DEFINE_DIR([PACKAGE_LOCALE_DIR], [localedir], [Locatization directory])
-
-AC_CONFIG_FILES([
-Makefile
-src/Makefile
-src/check-header-compile
-src/debug/makefile
-src/display/makefile
-src/extension/implementation/makefile
-src/extension/internal/makefile
-src/extension/makefile
-src/extension/dbus/wrapper/inkdbus.pc
-src/filters/makefile
-src/helper/makefile
-src/io/makefile
-src/libcroco/makefile
-src/libnrtype/makefile
-src/libavoid/makefile
-src/libuemf/makefile
-src/livarot/makefile
-src/live_effects/makefile
-src/live_effects/parameter/makefile
-src/svg/makefile
-src/trace/makefile
-src/ui/cache/makefile
-src/ui/dialog/makefile
-src/ui/makefile
-src/ui/view/makefile
-src/ui/widget/makefile
-src/util/makefile
-src/widgets/makefile
-src/xml/makefile
-src/2geom/makefile
-doc/Makefile
-po/Makefile.in
-share/Makefile
-share/attributes/Makefile
-share/branding/Makefile
-share/examples/Makefile
-share/extensions/Makefile
-share/extensions/alphabet_soup/Makefile
-share/extensions/Barcode/Makefile
-share/extensions/Poly3DObjects/Makefile
-share/extensions/test/Makefile
-share/extensions/xaml2svg/Makefile
-share/extensions/ink2canvas/Makefile
-share/filters/Makefile
-share/fonts/Makefile
-share/gradients/Makefile
-share/icons/Makefile
-share/icons/application/Makefile
-share/icons/application/16x16/Makefile
-share/icons/application/22x22/Makefile
-share/icons/application/24x24/Makefile
-share/icons/application/32x32/Makefile
-share/icons/application/48x48/Makefile
-share/icons/application/256x256/Makefile
-share/keys/Makefile
-share/markers/Makefile
-share/palettes/Makefile
-share/patterns/Makefile
-share/screens/Makefile
-share/symbols/Makefile
-share/templates/Makefile
-share/tutorials/Makefile
-share/ui/Makefile
-packaging/autopackage/default.apspec
-inkscape.spec
-Info.plist
-inkview.1
-])
-
-AH_BOTTOM([
-
-
-])
-
-AC_OUTPUT
-
-echo "
-Configuration:
-
-        Source code location:     ${srcdir}
-        Destination path prefix:  ${prefix}
-        Compiler:                 ${CXX}
-        CPPFLAGS:                 ${CPPFLAGS}
-        CXXFLAGS:                 ${CXXFLAGS}
-        CFLAGS:                   ${CFLAGS}
-        LDFLAGS:                  ${LDFLAGS}
-
-        Use gnome-vfs:            ${gnome_vfs}
-        Use openoffice files:     ${ij}
-        Use relocation support:   ${enable_binreloc}
-        Enable LittleCms:         ${enable_lcms}
-        Enable DBUS:              ${with_dbus} 
-        Enable Poppler-Cairo:     ${enable_poppler_cairo}
-	Enable Potrace:           ${potrace_ok}
-        ImageMagick Magick++:     ${magick_ok}
-        Libwpg:                   ${with_libwpg}
-        Libvisio:                 ${with_libvisio}
-        Libcdr:                   ${with_libcdr}
-        Doing Local Install:      ${with_localinstall}
-"
diff --git a/delautogen.sh b/delautogen.sh
deleted file mode 100755
index bc955a913..000000000
--- a/delautogen.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /bin/sh
-# delautogen.sh: Remove files created by autogen.sh, and files created by make
-# if compiling in the source directory.
-#
-# Requires gnu find, gnu xargs.
-
-set -e
-mydir=`dirname "$0"`
-cd "$mydir"
-rm -rf autom4te.cache
-rm -rf src/.libs
-for d in `find -name .cvsignore -printf '%h '`; do
-	(cd "$d" && rm -f *~ && rm -rf .deps && rm -f $(grep '^[][a-zA-Z0-9_.*?-]*$' .cvsignore) )
-done
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644
index dd22e7710..000000000
--- a/doc/Makefile.am
+++ /dev/null
@@ -1,20 +0,0 @@
-EXTRA_DIST = README.document \
-	architecture.svg \
-	architecture.txt \
-	class-hierarchy.dia \
-	coordinates.txt \
-	HACKING.de.txt \
-	HACKING.fr.txt \
-	HACKING.it.txt \
-	HACKING.pt_BR.txt \
-	HACKING.txt \
-	keys.css \
-	keys.README \
-	keys.be.html\
-	keys.de.html \
-	keys.el.html \
-	keys.en.html \
-	keys.fr.html \
-	keys.ja.html \
-	keys.zh_TW.html \
-	refcounting.txt
diff --git a/m4/Makefile.am b/m4/Makefile.am
deleted file mode 100644
index e1b0207fe..000000000
--- a/m4/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-EXTRA_DIST = \
-	ac_define_dir.m4 \
-	codeset.m4 \
-	gettext.m4 \
-	glibc21.m4 \
-	iconv.m4 \
-	isc-posix.m4 \
-	lcmessage.m4 \
-	progtest.m4 \
-	relaytool.m4
-
diff --git a/m4/ac_define_dir.m4 b/m4/ac_define_dir.m4
deleted file mode 100644
index db42d3eb0..000000000
--- a/m4/ac_define_dir.m4
+++ /dev/null
@@ -1,49 +0,0 @@
-# ===========================================================================
-#             http://autoconf-archive.cryp.to/ac_define_dir.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
-#
-# DESCRIPTION
-#
-#   This macro sets VARNAME to the expansion of the DIR variable, taking
-#   care of fixing up ${prefix} and such.
-#
-#   VARNAME is then offered as both an output variable and a C preprocessor
-#   symbol.
-#
-#   Example:
-#
-#      AC_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
-#
-# LAST MODIFICATION
-#
-#   2008-04-12
-#
-# COPYLEFT
-#
-#   Copyright (c) 2008 Stepan Kasal 
-#   Copyright (c) 2008 Andreas Schwab 
-#   Copyright (c) 2008 Guido U. Draheim 
-#   Copyright (c) 2008 Alexandre Oliva
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.
-
-AC_DEFUN([AC_DEFINE_DIR], [
-  prefix_NONE=
-  exec_prefix_NONE=
-  test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
-  test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
-dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn
-dnl refers to ${prefix}.  Thus we have to use `eval' twice.
-  eval ac_define_dir="\"[$]$2\""
-  eval ac_define_dir="\"$ac_define_dir\""
-  AC_SUBST($1, "$ac_define_dir")
-  AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3])
-  test "$prefix_NONE" && prefix=NONE
-  test "$exec_prefix_NONE" && exec_prefix=NONE
-])
diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
deleted file mode 100644
index 2c18e49c5..000000000
--- a/m4/ax_cxx_compile_stdcxx.m4
+++ /dev/null
@@ -1,562 +0,0 @@
-# ===========================================================================
-#   http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the specified
-#   version of the C++ standard.  If necessary, add switches to CXX and
-#   CXXCPP to enable support.  VERSION may be '11' (for the C++11 standard)
-#   or '14' (for the C++14 standard).
-#
-#   The second argument, if specified, indicates whether you insist on an
-#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-#   -std=c++11).  If neither is specified, you get whatever works, with
-#   preference for an extended mode.
-#
-#   The third argument, if specified 'mandatory' or if left unspecified,
-#   indicates that baseline support for the specified C++ standard is
-#   required and that the macro should error out if no mode with that
-#   support is found.  If specified 'optional', then configuration proceeds
-#   regardless, after defining HAVE_CXX${VERSION} if and only if a
-#   supporting mode is found.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik 
-#   Copyright (c) 2012 Zack Weinberg 
-#   Copyright (c) 2013 Roy Stogner 
-#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 
-#   Copyright (c) 2015 Paul Norman 
-#   Copyright (c) 2015 Moritz Klammler 
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.  This file is offered as-is, without any
-#   warranty.
-
-#serial 4
-
-dnl  This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
-dnl  (serial version number 13).
-
-AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
-  m4_if([$1], [11], [],
-        [$1], [14], [],
-        [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
-        [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$2], [], [],
-        [$2], [ext], [],
-        [$2], [noext], [],
-        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
-  m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
-        [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
-        [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
-  AC_LANG_PUSH([C++])dnl
-  ac_success=no
-  AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
-  ax_cv_cxx_compile_cxx$1,
-  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-    [ax_cv_cxx_compile_cxx$1=yes],
-    [ax_cv_cxx_compile_cxx$1=no])])
-  if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
-    ac_success=yes
-  fi
-
-  m4_if([$2], [noext], [], [dnl
-  if test x$ac_success = xno; then
-    for switch in -std=gnu++$1 -std=gnu++0x; do
-      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                     $cachevar,
-        [ac_save_CXX="$CXX"
-         CXX="$CXX $switch"
-         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-          [eval $cachevar=yes],
-          [eval $cachevar=no])
-         CXX="$ac_save_CXX"])
-      if eval test x\$$cachevar = xyes; then
-        CXX="$CXX $switch"
-        if test -n "$CXXCPP" ; then
-          CXXCPP="$CXXCPP $switch"
-        fi
-        ac_success=yes
-        break
-      fi
-    done
-  fi])
-
-  m4_if([$2], [ext], [], [dnl
-  if test x$ac_success = xno; then
-    dnl HP's aCC needs +std=c++11 according to:
-    dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
-    dnl Cray's crayCC needs "-h std=c++11"
-    for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
-      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-      AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-                     $cachevar,
-        [ac_save_CXX="$CXX"
-         CXX="$CXX $switch"
-         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-          [eval $cachevar=yes],
-          [eval $cachevar=no])
-         CXX="$ac_save_CXX"])
-      if eval test x\$$cachevar = xyes; then
-        CXX="$CXX $switch"
-        if test -n "$CXXCPP" ; then
-          CXXCPP="$CXXCPP $switch"
-        fi
-        ac_success=yes
-        break
-      fi
-    done
-  fi])
-  AC_LANG_POP([C++])
-  if test x$ax_cxx_compile_cxx$1_required = xtrue; then
-    if test x$ac_success = xno; then
-      AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
-    fi
-  fi
-  if test x$ac_success = xno; then
-    HAVE_CXX$1=0
-    AC_MSG_NOTICE([No compiler with C++$1 support was found])
-  else
-    HAVE_CXX$1=1
-    AC_DEFINE(HAVE_CXX$1,1,
-              [define if the compiler supports basic C++$1 syntax])
-  fi
-  AC_SUBST(HAVE_CXX$1)
-])
-
-
-dnl  Test body for checking C++11 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-)
-
-
-dnl  Test body for checking C++14 support
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-  _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-)
-
-
-dnl  Tests for new features in C++11
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
-
-// If the compiler admits that it is not ready for C++11, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201103L
-
-#error "This is not a C++11 compiler"
-
-#else
-
-namespace cxx11
-{
-
-  namespace test_static_assert
-  {
-
-    template 
-    struct check
-    {
-      static_assert(sizeof(int) <= sizeof(T), "not big enough");
-    };
-
-  }
-
-  namespace test_final_override
-  {
-
-    struct Base
-    {
-      virtual void f() {}
-    };
-
-    struct Derived : public Base
-    {
-      virtual void f() override {}
-    };
-
-  }
-
-  namespace test_double_right_angle_brackets
-  {
-
-    template < typename T >
-    struct check {};
-
-    typedef check single_type;
-    typedef check> double_type;
-    typedef check>> triple_type;
-    typedef check>>> quadruple_type;
-
-  }
-
-  namespace test_decltype
-  {
-
-    int
-    f()
-    {
-      int a = 1;
-      decltype(a) b = 2;
-      return a + b;
-    }
-
-  }
-
-  namespace test_type_deduction
-  {
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static const bool value = false;
-    };
-
-    template < typename T >
-    struct is_same
-    {
-      static const bool value = true;
-    };
-
-    template < typename T1, typename T2 >
-    auto
-    add(T1 a1, T2 a2) -> decltype(a1 + a2)
-    {
-      return a1 + a2;
-    }
-
-    int
-    test(const int c, volatile int v)
-    {
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == false, "");
-      static_assert(is_same::value == false, "");
-      auto ac = c;
-      auto av = v;
-      auto sumi = ac + av + 'x';
-      auto sumf = ac + av + 1.0;
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == true, "");
-      static_assert(is_same::value == false, "");
-      static_assert(is_same::value == true, "");
-      return (sumf > 0.0) ? sumi : add(c, v);
-    }
-
-  }
-
-  namespace test_noexcept
-  {
-
-    int f() { return 0; }
-    int g() noexcept { return 0; }
-
-    static_assert(noexcept(f()) == false, "");
-    static_assert(noexcept(g()) == true, "");
-
-  }
-
-  namespace test_constexpr
-  {
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
-    {
-      return *s ? strlen_c_r(s + 1, acc + 1) : acc;
-    }
-
-    template < typename CharT >
-    unsigned long constexpr
-    strlen_c(const CharT *const s) noexcept
-    {
-      return strlen_c_r(s, 0UL);
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("1") == 1UL, "");
-    static_assert(strlen_c("example") == 7UL, "");
-    static_assert(strlen_c("another\0example") == 7UL, "");
-
-  }
-
-  namespace test_rvalue_references
-  {
-
-    template < int N >
-    struct answer
-    {
-      static constexpr int value = N;
-    };
-
-    answer<1> f(int&)       { return answer<1>(); }
-    answer<2> f(const int&) { return answer<2>(); }
-    answer<3> f(int&&)      { return answer<3>(); }
-
-    void
-    test()
-    {
-      int i = 0;
-      const int c = 0;
-      static_assert(decltype(f(i))::value == 1, "");
-      static_assert(decltype(f(c))::value == 2, "");
-      static_assert(decltype(f(0))::value == 3, "");
-    }
-
-  }
-
-  namespace test_uniform_initialization
-  {
-
-    struct test
-    {
-      static const int zero {};
-      static const int one {1};
-    };
-
-    static_assert(test::zero == 0, "");
-    static_assert(test::one == 1, "");
-
-  }
-
-  namespace test_lambdas
-  {
-
-    void
-    test1()
-    {
-      auto lambda1 = [](){};
-      auto lambda2 = lambda1;
-      lambda1();
-      lambda2();
-    }
-
-    int
-    test2()
-    {
-      auto a = [](int i, int j){ return i + j; }(1, 2);
-      auto b = []() -> int { return '0'; }();
-      auto c = [=](){ return a + b; }();
-      auto d = [&](){ return c; }();
-      auto e = [a, &b](int x) mutable {
-        const auto identity = [](int y){ return y; };
-        for (auto i = 0; i < a; ++i)
-          a += b--;
-        return x + identity(a + b);
-      }(0);
-      return a + b + c + d + e;
-    }
-
-    int
-    test3()
-    {
-      const auto nullary = [](){ return 0; };
-      const auto unary = [](int x){ return x; };
-      using nullary_t = decltype(nullary);
-      using unary_t = decltype(unary);
-      const auto higher1st = [](nullary_t f){ return f(); };
-      const auto higher2nd = [unary](nullary_t f1){
-        return [unary, f1](unary_t f2){ return f2(unary(f1())); };
-      };
-      return higher1st(nullary) + higher2nd(nullary)(unary);
-    }
-
-  }
-
-  namespace test_variadic_templates
-  {
-
-    template 
-    struct sum;
-
-    template 
-    struct sum
-    {
-      static constexpr auto value = N0 + sum::value;
-    };
-
-    template <>
-    struct sum<>
-    {
-      static constexpr auto value = 0;
-    };
-
-    static_assert(sum<>::value == 0, "");
-    static_assert(sum<1>::value == 1, "");
-    static_assert(sum<23>::value == 23, "");
-    static_assert(sum<1, 2>::value == 3, "");
-    static_assert(sum<5, 5, 11>::value == 21, "");
-    static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-
-  }
-
-  // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
-  // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
-  // because of this.
-  namespace test_template_alias_sfinae
-  {
-
-    struct foo {};
-
-    template
-    using member = typename T::member_type;
-
-    template
-    void func(...) {}
-
-    template
-    void func(member*) {}
-
-    void test();
-
-    void test() { func(0); }
-
-  }
-
-}  // namespace cxx11
-
-#endif  // __cplusplus >= 201103L
-
-]])
-
-
-dnl  Tests for new features in C++14
-
-m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
-
-// If the compiler admits that it is not ready for C++14, why torture it?
-// Hopefully, this will speed up the test.
-
-#ifndef __cplusplus
-
-#error "This is not a C++ compiler"
-
-#elif __cplusplus < 201402L
-
-#error "This is not a C++14 compiler"
-
-#else
-
-namespace cxx14
-{
-
-  namespace test_polymorphic_lambdas
-  {
-
-    int
-    test()
-    {
-      const auto lambda = [](auto&&... args){
-        const auto istiny = [](auto x){
-          return (sizeof(x) == 1UL) ? 1 : 0;
-        };
-        const int aretiny[] = { istiny(args)... };
-        return aretiny[0];
-      };
-      return lambda(1, 1L, 1.0f, '1');
-    }
-
-  }
-
-  namespace test_binary_literals
-  {
-
-    constexpr auto ivii = 0b0000000000101010;
-    static_assert(ivii == 42, "wrong value");
-
-  }
-
-  namespace test_generalized_constexpr
-  {
-
-    template < typename CharT >
-    constexpr unsigned long
-    strlen_c(const CharT *const s) noexcept
-    {
-      auto length = 0UL;
-      for (auto p = s; *p; ++p)
-        ++length;
-      return length;
-    }
-
-    static_assert(strlen_c("") == 0UL, "");
-    static_assert(strlen_c("x") == 1UL, "");
-    static_assert(strlen_c("test") == 4UL, "");
-    static_assert(strlen_c("another\0test") == 7UL, "");
-
-  }
-
-  namespace test_lambda_init_capture
-  {
-
-    int
-    test()
-    {
-      auto x = 0;
-      const auto lambda1 = [a = x](int b){ return a + b; };
-      const auto lambda2 = [a = lambda1(x)](){ return a; };
-      return lambda2();
-    }
-
-  }
-
-  namespace test_digit_seperators
-  {
-
-    constexpr auto ten_million = 100'000'000;
-    static_assert(ten_million == 100000000, "");
-
-  }
-
-  namespace test_return_type_deduction
-  {
-
-    auto f(int& x) { return x; }
-    decltype(auto) g(int& x) { return x; }
-
-    template < typename T1, typename T2 >
-    struct is_same
-    {
-      static constexpr auto value = false;
-    };
-
-    template < typename T >
-    struct is_same
-    {
-      static constexpr auto value = true;
-    };
-
-    int
-    test()
-    {
-      auto x = 0;
-      static_assert(is_same::value, "");
-      static_assert(is_same::value, "");
-      return x;
-    }
-
-  }
-
-}  // namespace cxx14
-
-#endif  // __cplusplus >= 201402L
-
-]])
diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
deleted file mode 100644
index 0aadeafe7..000000000
--- a/m4/ax_cxx_compile_stdcxx_11.m4
+++ /dev/null
@@ -1,39 +0,0 @@
-# ============================================================================
-#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-# ============================================================================
-#
-# SYNOPSIS
-#
-#   AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional])
-#
-# DESCRIPTION
-#
-#   Check for baseline language coverage in the compiler for the C++11
-#   standard; if necessary, add switches to CXX and CXXCPP to enable
-#   support.
-#
-#   This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
-#   macro with the version set to C++11.  The two optional arguments are
-#   forwarded literally as the second and third argument respectively.
-#   Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
-#   more information.  If you want to use this macro, you also need to
-#   download the ax_cxx_compile_stdcxx.m4 file.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Benjamin Kosnik 
-#   Copyright (c) 2012 Zack Weinberg 
-#   Copyright (c) 2013 Roy Stogner 
-#   Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov 
-#   Copyright (c) 2015 Paul Norman 
-#   Copyright (c) 2015 Moritz Klammler 
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 17
-
-AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX])
-AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])])
diff --git a/m4/ink_bzr_snapshot_build.m4 b/m4/ink_bzr_snapshot_build.m4
deleted file mode 100644
index 4dc2df54f..000000000
--- a/m4/ink_bzr_snapshot_build.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-# Check for BZR snapshot build
-# (c) 2009 Krzysztof Kosiński
-# Released under GNU GPL; see the file COPYING for more information
-
-AC_DEFUN([INK_BZR_SNAPSHOT_BUILD],
-[
-  AC_CACHE_CHECK([for BZR snapshot build], ink_cv_bzr_snapshot_build,
-                 [ink_cv_bzr_snapshot_build=no
-                  if which bzr > /dev/null && test -e $srcdir/.bzr/branch/last-revision; then
-                    ink_cv_bzr_snapshot_build=yes
-                  fi
-  ])
-  AM_CONDITIONAL([USE_BZR_VERSION], [test "x$ink_cv_bzr_snapshot_build" = "xyes"])
-])
diff --git a/m4/relaytool.m4 b/m4/relaytool.m4
deleted file mode 100644
index 5cd65aea0..000000000
--- a/m4/relaytool.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-dnl  Usage: RELAYTOOL(LIBRARY_NAME, LIBS, CFLAGS, ACTION-IF-WEAK-LINK-IS-POSSIBLE)
-
-dnl  Example:
-dnl  RELAYTOOL("gtkspell", GTKSPELL_LIBS, GTKSPELL_CFLAGS, gtkspell_weak=yes)
-dnl  Will modify GTKSPELL_LIBS to include a call to relaytool if available
-dnl  or if not, will modify GTKSPELL_CFLAGS to include -D switches to define
-dnl  libgtkspell_is_present=1 and libgtkspell_symbol_is_present=1
-
-AC_DEFUN([RELAYTOOL], [
-    if test -z "$RELAYTOOL_PROG"; then
-        AC_PATH_PROG(RELAYTOOL_PROG, relaytool, no)
-    fi
-
-    AC_MSG_CHECKING(whether we can weak link $1)
-
-    _RELAYTOOL_PROCESSED_NAME=`echo "$1" | sed 's/-/_/g;s/\./_/g;'`
-    _RELAYTOOL_UPPER_NAME=`echo $_RELAYTOOL_PROCESSED_NAME | tr '[[:lower:]]' '[[:upper:]]'`
-
-    if test "$RELAYTOOL_PROG" = "no"; then
-        AC_MSG_RESULT(no)
-        $3="-DRELAYTOOL_${_RELAYTOOL_UPPER_NAME}='static const int lib${_RELAYTOOL_PROCESSED_NAME}_is_present = 1; static int __attribute__((unused)) lib${_RELAYTOOL_PROCESSED_NAME}_symbol_is_present(char *m) { return 1; }' $$3"
-    else
-        AC_MSG_RESULT(yes)
-        $2=`echo $$2|sed 's/\`/\\\\\`/g;'`
-        $2="-Wl,--gc-sections \`relaytool --relay $1 $$2\`"
-	$3="-DRELAYTOOL_${_RELAYTOOL_UPPER_NAME}='extern int lib${_RELAYTOOL_PROCESSED_NAME}_is_present; extern int lib${_RELAYTOOL_PROCESSED_NAME}_symbol_is_present(char *s);' $$3"
-        $4
-    fi
-])
-
diff --git a/share/Makefile.am b/share/Makefile.am
deleted file mode 100644
index fa778b031..000000000
--- a/share/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-SUBDIRS = attributes \
-          branding \
-          examples \
-          extensions \
-          filters \
-          fonts \
-          gradients \
-          icons \
-          keys \
-          markers \
-          palettes \
-          patterns \
-          screens \
-          symbols \
-          templates \
-          tutorials \
-          ui
-
-## COPY THE REST OF THE FOLDERS TO THE PROPER LOCATION
-
-## dist-hook:
-##	mkdir $(distdir)/samples
-##	cp $(datadir)/samples/*svg $(distdir)/samples
-##	cp $(datadir)/samples/*png $(distdir)/samples
-
diff --git a/share/attributes/Makefile.am b/share/attributes/Makefile.am
deleted file mode 100644
index 9834c5b14..000000000
--- a/share/attributes/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-
-attributesdir = $(datadir)/inkscape/attributes
-
-attributes_DATA = \
-	svgprops \
-	cssprops \
-	css_defaults \
-	README
-
-EXTRA_DIST = $(attributes_DATA)
diff --git a/share/branding/Makefile.am b/share/branding/Makefile.am
deleted file mode 100644
index 1561dbf2c..000000000
--- a/share/branding/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-
-brandingdir = $(datadir)/inkscape/branding
-iconsdir = $(datadir)/inkscape/icons
-
-branding_DATA =  \
-	README \
-	inkscape.svg \
-	inkscape-flat.svg \
-	inkscape-text.svg \
-	sodipodi.svg \
-	LinLibertine_DR.otf \
-	EuphoriaScript-Regular.otf \
-	tux.svg 
-
-icons_DATA = \
-	inkscape.svg
-
-EXTRA_DIST = $(branding_DATA) $(icons_DATA)
diff --git a/share/examples/Makefile.am b/share/examples/Makefile.am
deleted file mode 100644
index a89246048..000000000
--- a/share/examples/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
-
-exampledir = $(datadir)/inkscape/examples
-
-example_DATA = \
-	README \
-	istest.pov \
-	gradient.svg \
-	tiger.svgz \
-	markers.svg \
-	i18n.svg \
-	stars.svgz \
-	text-on-path.svg \
-	flowsample.svg \
-	data_uri.svg \
-	tesselation-P3.svg \
-	art-nouveau-P3.svg \
-	eastern-motive-P4G.svg \
-	l-systems.svgz \
-	glass.svg \
-	car.svgz \
-	gallardo.svgz \
-	gradient-mesh-experimental.svgz \
-	rope-3D.svg \
-	animated-clock.svg \
-	blend_modes.svg \
-	flow-go.svg \
-	lighting_filters.svg \
-	turbulence_filters.svg \
-	live-path-effects-curvestitch.svg \
-	live-path-effects-gears.svg \
-	live-path-effects-pathalongpath.svg \
-	filters.svg \
-	svgfont.svg \
-	tref.svg \
-	replace-hue.svg
-
-EXTRA_DIST = $(example_DATA)
diff --git a/share/extensions/Barcode/Makefile.am b/share/extensions/Barcode/Makefile.am
deleted file mode 100644
index 08e2f58b4..000000000
--- a/share/extensions/Barcode/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-
-barcodedir = $(datadir)/inkscape/extensions/Barcode
-
-barcode_DATA = \
-	Base.py \
-    BaseEan.py \
-	Code128.py \
-	Code39Ext.py \
-	Code39.py \
-    Code25i.py \
-	Code93.py \
-	Ean13.py \
-	Ean8.py \
-	Ean5.py \
-	Ean2.py \
-	__init__.py \
-	Rm4scc.py \
-	Upca.py \
-	Upce.py
-
-EXTRA_DIST = \
-	$(barcode_DATA)
-
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am
deleted file mode 100644
index f247cd8bb..000000000
--- a/share/extensions/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
-
-SUBDIRS = \
-	alphabet_soup \
-	Barcode \
-	ink2canvas \
-	Poly3DObjects \
-	test \
-	xaml2svg
-
-extensiondir = $(datadir)/inkscape/extensions
-
-otherstuffdir = $(datadir)/inkscape/extensions
-
-moduledir = $(datadir)/inkscape/extensions
-
-extension_SCRIPTS = \
-	$(wildcard $(srcdir)/*.py) \
-	$(wildcard $(srcdir)/*.pl) \
-	$(wildcard $(srcdir)/*.sh) \
-	$(wildcard $(srcdir)/*.rb)
-
-otherstuff_DATA = \
-	fontfix.conf \
-	inkweb.js \
-	jessyInk.js \
-	jessyInk_core_mouseHandler_noclick.js \
-	jessyInk_core_mouseHandler_zoomControl.js \
-	aisvg.xslt \
-	colors.xml \
-	jessyInk_video.svg \
-	seamless_pattern.svg \
-	svg2fxg.xsl \
-	svg2xaml.xsl \
-	xaml2svg.xsl \
-	inkscape.extension.rng
-
-module_DATA = $(wildcard $(srcdir)/*.inx)
-
-EXTRA_DIST = \
-	$(extension_SCRIPTS) $(otherstuff_DATA) $(module_DATA)
-
-
diff --git a/share/extensions/Poly3DObjects/Makefile.am b/share/extensions/Poly3DObjects/Makefile.am
deleted file mode 100644
index 82a81af42..000000000
--- a/share/extensions/Poly3DObjects/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-
-Poly3DObjectsdir = $(datadir)/inkscape/extensions/Poly3DObjects
-
-Poly3DObjects_DATA = \
-	cube.obj \
-	cuboct.obj \
-	dodec.obj \
-	great_dodec.obj \
-	great_rhombicosidodec.obj \
-	great_rhombicuboct.obj \
-	great_stel_dodec.obj \
-	icos.obj \
-	icosidodec.obj \
-	jessens_orthog_icos.obj \
-	methane.obj \
-	oct.obj \
-	rhomb_dodec.obj \
-	rhomb_triacont.obj \
-	rh_axes.obj \
-	small_rhombicosidodec.obj \
-	small_rhombicuboct.obj \
-	small_triam_icos.obj \
-	snub_cube.obj \
-	snub_dodec.obj \
-	szilassi.obj \
-	tet.obj \
-	trunc_cube.obj \
-	trunc_dodec.obj \
-	trunc_icos.obj \
-	trunc_oct.obj \
-	trunc_tet.obj
-
-EXTRA_DIST = $(Poly3DObjects_DATA)
diff --git a/share/extensions/alphabet_soup/Makefile.am b/share/extensions/alphabet_soup/Makefile.am
deleted file mode 100644
index 004da4e8c..000000000
--- a/share/extensions/alphabet_soup/Makefile.am
+++ /dev/null
@@ -1,78 +0,0 @@
-
-alphabet_soupdir = $(datadir)/inkscape/extensions/alphabet_soup
-
-alphabet_soup_DATA = \
-	2.svg \
-	3.svg \
-	6.svg \
-	7.svg \
-	abase.svg \
-	a.svg \
-	acap.svg \
-	bar2.svg \
-	barcap.svg \
-	bar.svg \
-	b.svg \
-	Cblob.svg \
-	Chook.svg \
-	cross.svg \
-	cserif.svg \
-	c.svg \
-	Ctail.svg \
-	Delta.svg \
-	Eb.svg \
-	epsilon.svg \
-	Eserif.svg \
-	e.svg \
-	Et.svg \
-	f.svg \
-	gamma.svg \
-	G.svg \
-	h2.svg \
-	hcap.svg \
-	h.svg \
-	IBSerif.svg \
-	idot.svg \
-	ITSerif.svg \
-	j.svg \
-	k.svg \
-	Lb.svg \
-	lserif.svg \
-	l.svg \
-	Lt.svg \
-	mcap.svg \
-	m.svg \
-	n.svg \
-	ocap.svg \
-	Ocross.svg \
-	o.svg \
-	Oterm.svg \
-	P.svg \
-	Q.svg \
-	question.svg \
-	Rblock.svg \
-	rcap.svg \
-	r.svg \
-	serif.svg \
-	s.svg \
-	Tb.svg \
-	tserif.svg \
-	t.svg \
-	Tt.svg \
-	U.svg \
-	vcap.svg \
-	vserl.svg \
-	vserr.svg \
-	Vser.svg \
-	v.svg \
-	Xh.svg \
-	Xne.svg \
-	Xnw.svg \
-	x.svg \
-	Xvb.svg \
-	Xvt.svg \
-	yogh.svg \
-	y.svg \
-	z.svg
-
-EXTRA_DIST = $(alphabet_soup_DATA)	
diff --git a/share/extensions/ink2canvas/Makefile.am b/share/extensions/ink2canvas/Makefile.am
deleted file mode 100644
index ab6e7661d..000000000
--- a/share/extensions/ink2canvas/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-
-ink2canvasdir = $(datadir)/inkscape/extensions/ink2canvas
-
-ink2canvas_DATA = \
-  __init__.py \
-	canvas.py \
-  svg.py
-
-EXTRA_DIST = $(ink2canvas_DATA)
diff --git a/share/extensions/test/Makefile.am b/share/extensions/test/Makefile.am
deleted file mode 100644
index cd1929a7f..000000000
--- a/share/extensions/test/Makefile.am
+++ /dev/null
@@ -1,60 +0,0 @@
-
-# List of all tests to be run.
-#TESTS = svgcalendar.test.py
-# that is not working :-/
-
-EXTRA_DIST = \
-		addnodes.test.py \
-		chardataeffect.test.py \
-		color_randomize_test.py \
-		coloreffect.test.py \
-		create_test_from_template.sh \
-		dots.test.py \
-		draw_from_triangle.test.py \
-		dxf_outlines.test.py \
-		edge3d.test.py \
-		embedimage.test.py \
-		eqtexsvg.test.py \
-		extractimage.test.py \
-		extrude.test.py \
-		flatten.test.py \
-		foldablebox.test.py \
-		fractalize.test.py \
-		funcplot.test.py \
-		gimp_xcf.test.py \
-		grid_cartesian.test.py \
-		grid_polar.test.py \
-		guides_creator.test.py \
-		handles.test.py \
-		hpgl_output.test.py \
-		inkweb-debug.js \
-		inkwebeffect.test.py \
-		inkwebjs-move.test.svg \
-		interp_att_g.test.py \
-		interp.test.py \
-		lindenmayer.test.py \
-		lorem_ipsum.test.py \
-		markers_strokepaint.test.py \
-		measure.test.py \
-		minimal-blank.svg \
-		motion.test.py \
-		pathmodifier.test.py \
-		perfectboundcover.test.py \
-		perspective.test.py \
-		polyhedron_3d.test.py \
-		radiusrand.test.py \
-		render_alphabetsoup.test.py \
-		render_barcode.test.py \
-		render_barcode.data \
-		render_gears.test.py \
-		restack.test.py \
-		rtree.test.py \
-		run-all-extension-tests \
-		spirograph.test.py \
-		straightseg.test.py \
-		summersnight.test.py \
-		svg_and_media_zip_output.test.py \
-		svgcalendar.test.py \
-		test_template.py.txt \
-		triangle.test.py \
-		whirl.test.py
diff --git a/share/extensions/xaml2svg/Makefile.am b/share/extensions/xaml2svg/Makefile.am
deleted file mode 100644
index 89a901fde..000000000
--- a/share/extensions/xaml2svg/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-
-xaml2svg_otherstuffdir = $(datadir)/inkscape/extensions/xaml2svg
-
-xaml2svg_otherstuff = \
-	animation.xsl \
-	brushes.xsl \
-	canvas.xsl \
-	geometry.xsl \
-	Makefile.am \
-	properties.xsl \
-	shapes.xsl \
-	transform.xsl
-
-xaml2svg_otherstuff_DATA = \
-	$(xaml2svg_otherstuff)
-
-EXTRA_DIST = \
-	$(xaml2svg_otherstuff_DATA)
-
diff --git a/share/filters/Makefile.am b/share/filters/Makefile.am
deleted file mode 100644
index 1a871a992..000000000
--- a/share/filters/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-
-filtersdir = $(datadir)/inkscape/filters
-
-filters_DATA =  \
-	README \
-	filters.svg \
-	filters.svg.h
-
-filters.svg.h: filters.svg i18n.py
-	$(srcdir)/i18n.py $(srcdir)/filters.svg > $(srcdir)/filters.svg.h
-
-EXTRA_DIST = $(filters_DATA) \
-             i18n.py
diff --git a/share/fonts/Makefile.am b/share/fonts/Makefile.am
deleted file mode 100644
index 30a2f6997..000000000
--- a/share/fonts/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-fontsdir = $(datadir)/inkscape/fonts
-
-fonts_DATA = \
-	README
-
-EXTRA_DIST = $(fonts_DATA)
diff --git a/share/gradients/Makefile.am b/share/gradients/Makefile.am
deleted file mode 100644
index 9eadc5e57..000000000
--- a/share/gradients/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-gradientsdir = $(datadir)/inkscape/gradients
-
-gradients_DATA = \
-	README
-
-EXTRA_DIST = $(gradients_DATA)
diff --git a/share/icons/Makefile.am b/share/icons/Makefile.am
deleted file mode 100644
index 5830f1254..000000000
--- a/share/icons/Makefile.am
+++ /dev/null
@@ -1,58 +0,0 @@
-SUBDIRS = application
-
-iconsdir = $(datadir)/inkscape/icons
-
-pixmaps = \
-	too-much-ink-icon.png \
-	too-much-ink-icon.svg \
-	out-of-gamut-icon.png \
-	out-of-gamut-icon.svg \
-	color-management-icon.png \
-	remove-color.png \
-	remove-color.svg \
-    ticotico.jpg \
-	feBlend-icon.png \
-    feBlend-icon.svg \
-	feColorMatrix-icon.png \
-    feColorMatrix-icon.svg \
-	feComposite-icon.png \
-    feComposite-icon.svg \
-	feConvolveMatrix-icon.png \
-    feConvolveMatrix-icon.svg \
-	feDiffuseLighting-icon.png \
-    feDiffuseLighting-icon.svg \
-	feDisplacementMap-icon.png \
-    feDisplacementMap-icon.svg \
-	feFlood-icon.png \
-    feFlood-icon.svg \
-	feGaussianBlur-icon.png \
-    feGaussianBlur-icon.svg \
-    feImage-icon.png \
-    feImage-icon.svg \
-	feMerge-icon.png \
-    feMerge-icon.svg \
-	feMorphology-icon.png \
-    feMorphology-icon.svg \
-	feOffset-icon.png \
-    feOffset-icon.svg \
-	feSpecularLighting-icon.png \
-    feSpecularLighting-icon.svg \
-	feTurbulence-icon.png \
-    feTurbulence-icon.svg \
-	OCAL.png
-
-icons_DATA = \
-	$(pixmaps) \
-	\
-	icons.svg \
-	tango_icons.svg \
-	symbolic_icons.svg \
-	\
-	inkscape.file.svg \
-	inkscape.file.png \
-	README
-
-EXTRA_DIST = \
-	$(icons_DATA) \
-	hicolor/index.theme
-
diff --git a/share/icons/application/16x16/Makefile.am b/share/icons/application/16x16/Makefile.am
deleted file mode 100644
index a87c2cbfa..000000000
--- a/share/icons/application/16x16/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/16x16/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/22x22/Makefile.am b/share/icons/application/22x22/Makefile.am
deleted file mode 100644
index 8beeed331..000000000
--- a/share/icons/application/22x22/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/22x22/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/24x24/Makefile.am b/share/icons/application/24x24/Makefile.am
deleted file mode 100644
index 8fc9b59aa..000000000
--- a/share/icons/application/24x24/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/24x24/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/256x256/Makefile.am b/share/icons/application/256x256/Makefile.am
deleted file mode 100644
index 34969a4a9..000000000
--- a/share/icons/application/256x256/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/256x256/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/32x32/Makefile.am b/share/icons/application/32x32/Makefile.am
deleted file mode 100644
index cdccebd02..000000000
--- a/share/icons/application/32x32/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/32x32/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/48x48/Makefile.am b/share/icons/application/48x48/Makefile.am
deleted file mode 100644
index ffa5c1a55..000000000
--- a/share/icons/application/48x48/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-icondir = $(datadir)/icons/hicolor/48x48/apps
-icon_DATA = inkscape.png
-
-EXTRA_DIST = $(icon_DATA)
-
diff --git a/share/icons/application/Makefile.am b/share/icons/application/Makefile.am
deleted file mode 100644
index 0e9bb7d7d..000000000
--- a/share/icons/application/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-SUBDIRS = 16x16 22x22 24x24 32x32 48x48 256x256
-
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
-
-install-data-hook: update-icon-cache
-uninstall-hook: update-icon-cache
-
-update-icon-cache:
-	@-if test -z "$(DESTDIR)"; then \
-	echo "Updating Gtk icon cache."; \
-	$(gtk_update_icon_cache); \
-	else \
-	echo "*** Icon cache not updated. After (un)install, run this:"; \
-	echo "*** $(gtk_update_icon_cache)"; \
-	fi 
diff --git a/share/keys/Makefile.am b/share/keys/Makefile.am
deleted file mode 100644
index 98b720c2b..000000000
--- a/share/keys/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-
-keysdir = $(datadir)/inkscape/keys
-
-keys_DATA = \
-	default.xml \
-	inkscape.xml \
-	xara.xml \
-	macromedia-freehand-mx.xml \
-	adobe-illustrator-cs2.xml \
-	right-handed-illustration.xml \
-	corel-draw-x4.xml \
-	corel-draw-x8.xml \
-	zoner-draw.xml \
-	acd-canvas.xml
-
-EXTRA_DIST = $(keys_DATA)
-
diff --git a/share/markers/Makefile.am b/share/markers/Makefile.am
deleted file mode 100644
index 5db048146..000000000
--- a/share/markers/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-
-markersdir = $(datadir)/inkscape/markers
-
-markers_DATA = \
-	markers.svg
-
-
-EXTRA_DIST = $(markers_DATA)
-
diff --git a/share/palettes/Makefile.am b/share/palettes/Makefile.am
deleted file mode 100644
index b25b35a06..000000000
--- a/share/palettes/Makefile.am
+++ /dev/null
@@ -1,38 +0,0 @@
-
-palettesdir = $(datadir)/inkscape/palettes
-
-palettes_DATA = \
-    README \
-    Android-icon-palette.gpl \
-    Blues.gpl \
-    echo-palette.gpl \
-    Gold.gpl \
-    Greens.gpl \
-    Gray.gpl \
-    Hilite.gpl \
-    inkscape.gpl \
-    LaTeX-Beamer.gpl \
-    Khaki.gpl \
-    MATLAB-Jet-72.gpl \
-    Reds.gpl \
-    Royal.gpl \
-    svg.gpl \
-    Tango-Palette.gpl \
-    Topographic.gpl \
-    Ubuntu.gpl \
-    webhex.gpl \
-    websafe22.gpl \
-    windowsXP.gpl \
-    palettes.h
-
-palettes_i18n = \
-    inkscape.gpl \
-    svg.gpl \
-    Tango-Palette.gpl
-
-palettes.h: i18n.py $(palettes_i18n)
-	$(srcdir)/i18n.py $(foreach i,$(palettes_i18n),$(srcdir)/$(i)) > $(srcdir)/palettes.h
-
-EXTRA_DIST = $(palettes_DATA) \
-             i18n.py
-             
diff --git a/share/patterns/Makefile.am b/share/patterns/Makefile.am
deleted file mode 100644
index 8a0f02ba8..000000000
--- a/share/patterns/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-
-patternsdir = $(datadir)/inkscape/patterns
-
-patterns_DATA = \
-	README \
-	patterns.svg \
-	patterns.svg.h
-
-patterns.svg.h: patterns.svg i18n.py
-	$(srcdir)/i18n.py $(srcdir)/patterns.svg > $(srcdir)/patterns.svg.h
-
-EXTRA_DIST = $(patterns_DATA) i18n.py
diff --git a/share/screens/Makefile.am b/share/screens/Makefile.am
deleted file mode 100644
index f18982221..000000000
--- a/share/screens/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-
-screensdir = $(datadir)/inkscape/screens
-
-screens_DATA = \
-	about.svg
-
-EXTRA_DIST = $(screens_DATA)
-
diff --git a/share/symbols/Makefile.am b/share/symbols/Makefile.am
deleted file mode 100644
index a7d21d2a8..000000000
--- a/share/symbols/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-
-symbolsdir = $(datadir)/inkscape/symbols
-
-# Adding srcdir allows out-of-src builds to work
-symbols_DATA = \
-    README \
-    $(wildcard $(srcdir)/*.svg) \
-    symbols.h
-
-symbols_i18n = $(wildcard $(srcdir)/*.svg)
-
-symbols.h: i18n.py $(symbols_i18n)
-	$(srcdir)/i18n.py $(symbols_i18n) > $(srcdir)/symbols.h
-
-EXTRA_DIST = $(symbols_DATA) \
-             i18n.py
-
diff --git a/share/templates/Makefile.am b/share/templates/Makefile.am
deleted file mode 100644
index 9bd6a0ddc..000000000
--- a/share/templates/Makefile.am
+++ /dev/null
@@ -1,67 +0,0 @@
-
-templatesdir = $(datadir)/inkscape/templates
-
-templates_DATA = \
-	README \
-	CD_label_120x120.svg \
-	default.svg \
-	default.be.svg \
-	default.ca.svg \
-	default.cs.svg \
-	default.de.svg \
-	default.en_US.svg \
-	default.eo.svg \
-	default.eu.svg \
-	default.es.svg \
-	default.fi.svg \
-	default.fr.svg \
-	default.hu.svg \
-	default.is.svg \
-	default.it.svg \
-	default.ja.svg \
-	default.lt.svg \
-	default.nl.svg \
-	default.pl.svg \
-	default.pt_BR.svg \
-	default.sk.svg \
-	default_pt.svg \
-	default_px.svg \
-	no_layers.svg \
-	LaTeX_Beamer.svg \
-	Typography_Canvas.svg \
-	templates.h
-
-templates_i18n = \
-	CD_label_120x120.svg \
-	default.svg \
-	default.be.svg \
-	default.ca.svg \
-	default.cs.svg \
-	default.de.svg \
-	default.en_US.svg \
-	default.eo.svg \
-	default.eu.svg \
-	default.es.svg \
-	default.fi.svg \
-	default.fr.svg \
-	default.hu.svg \
-	default.is.svg \
-	default.it.svg \
-	default.ja.svg \
-	default.lt.svg \
-	default.nl.svg \
-	default.pl.svg \
-	default.pt_BR.svg \
-	default.sk.svg \
-	default_pt.svg \
-	default_px.svg \
-	no_layers.svg \
-	LaTeX_Beamer.svg \
-	Typography_Canvas.svg
-
-templates.h: i18n.py $(templates_i18n)
-	$(srcdir)/i18n.py $(foreach i,$(templates_i18n),$(srcdir)/$(i)) > $(srcdir)/templates.h
-
-EXTRA_DIST = $(templates_DATA) \
-			 i18n.py
-			 
diff --git a/share/tutorials/Makefile.am b/share/tutorials/Makefile.am
deleted file mode 100644
index d625826cb..000000000
--- a/share/tutorials/Makefile.am
+++ /dev/null
@@ -1,214 +0,0 @@
-
-tutorialdir = $(datadir)/inkscape/tutorials
-
-tutorial_DATA = \
-    README \
-    edge3d.svg \
-    gpl-2.svg \
-    making_markers.svg \
-    oldguitar.jpg \
-    potrace-be.png \
-    potrace-ca.png \
-    potrace-de.png \
-    potrace-el.png \
-    potrace-en.png \
-    potrace-es.png \
-    potrace-eu.png \
-    potrace-fr.png \
-    potrace-gl.png \
-    potrace-hu.png \
-    potrace-id.png \
-    potrace-ja.png \
-    potrace-nl.png \
-    potrace.png \
-    potrace-pl.png \
-    potrace-pt_BR.png \
-    potrace-ru.png \
-    potrace-sk.png \
-    potrace-sl.png \
-    potrace-vi.png \
-    potrace-zh_CN.png \
-    potrace-zh_TW.png \
-    tutorial-advanced.svg \
-    tutorial-advanced.be.svg \
-    tutorial-advanced.ca.svg \
-    tutorial-advanced.cs.svg \
-    tutorial-advanced.de.svg \
-    tutorial-advanced.el.svg \
-    tutorial-advanced.es.svg \
-    tutorial-advanced.eu.svg \
-    tutorial-advanced.fa.svg \
-    tutorial-advanced.fr.svg \
-    tutorial-advanced.hu.svg \
-    tutorial-advanced.id.svg \
-    tutorial-advanced.it.svg \
-    tutorial-advanced.ja.svg \
-    tutorial-advanced.nl.svg \
-    tutorial-advanced.pl.svg \
-    tutorial-advanced.pt_BR.svg \
-    tutorial-advanced.ru.svg \
-    tutorial-advanced.sk.svg \
-    tutorial-advanced.sl.svg \
-    tutorial-advanced.vi.svg \
-    tutorial-advanced.zh_CN.svg \
-    tutorial-advanced.zh_TW.svg \
-    tutorial-basic.svg \
-    tutorial-basic.be.svg \
-    tutorial-basic.bg.svg \
-    tutorial-basic.ca.svg \
-    tutorial-basic.cs.svg \
-    tutorial-basic.da.svg \
-    tutorial-basic.de.svg \
-    tutorial-basic.el.svg \
-    tutorial-basic.eo.svg \
-    tutorial-basic.es.svg \
-    tutorial-basic.eu.svg \
-    tutorial-basic.fa.svg \
-    tutorial-basic.fr.svg \
-    tutorial-basic.gl.svg \
-    tutorial-basic.hu.svg \
-    tutorial-basic.id.svg \
-    tutorial-basic.it.svg \
-    tutorial-basic.ja.svg \
-    tutorial-basic.nl.svg \
-    tutorial-basic.nn.svg \
-    tutorial-basic.pl.svg \
-    tutorial-basic.pt_BR.svg \
-    tutorial-basic.ru.svg \
-    tutorial-basic.sk.svg \
-    tutorial-basic.sl.svg \
-    tutorial-basic.tr.svg \
-    tutorial-basic.vi.svg \
-    tutorial-basic.zh_CN.svg \
-    tutorial-basic.zh_TW.svg \
-    tutorial-calligraphy.svg \
-    tutorial-calligraphy.be.svg \
-    tutorial-calligraphy.ca.svg \
-    tutorial-calligraphy.cs.svg \
-    tutorial-calligraphy.de.svg \
-    tutorial-calligraphy.el.svg \
-    tutorial-calligraphy.es.svg \
-    tutorial-calligraphy.eu.svg \
-    tutorial-calligraphy.fa.svg \
-    tutorial-calligraphy.fr.svg \
-    tutorial-calligraphy.hu.svg \
-    tutorial-calligraphy.id.svg \
-    tutorial-calligraphy.ja.svg \
-    tutorial-calligraphy.nl.svg \
-    tutorial-calligraphy.pl.svg \
-    tutorial-calligraphy.pt_BR.svg \
-    tutorial-calligraphy.ru.svg \
-    tutorial-calligraphy.sk.svg \
-    tutorial-calligraphy.sl.svg \
-    tutorial-calligraphy.vi.svg \
-    tutorial-calligraphy.zh_TW.svg \
-    tutorial-elements.svg \
-    tutorial-elements.be.svg \
-    tutorial-elements.ca.svg \
-    tutorial-elements.de.svg \
-    tutorial-elements.el.svg \
-    tutorial-elements.es.svg \
-    tutorial-elements.eu.svg \
-    tutorial-elements.fa.svg \
-    tutorial-elements.fr.svg \
-    tutorial-elements.hu.svg \
-    tutorial-elements.id.svg \
-    tutorial-elements.ja.svg \
-    tutorial-elements.nl.svg \
-    tutorial-elements.pl.svg \
-    tutorial-elements.pt_BR.svg \
-    tutorial-elements.ru.svg \
-    tutorial-elements.sk.svg \
-    tutorial-elements.sl.svg \
-    tutorial-elements.zh_TW.svg \
-    tutorial-interpolate.svg \
-    tutorial-interpolate.be.svg \
-    tutorial-interpolate.de.svg \
-    tutorial-interpolate.el.svg \
-    tutorial-interpolate.fr.svg \
-    tutorial-interpolate.hu.svg \
-    tutorial-interpolate.ja.svg \
-    tutorial-interpolate.nl.svg \
-    tutorial-interpolate.pl.svg \
-    tutorial-interpolate.pt_BR.svg \
-    tutorial-interpolate.ru.svg \
-    tutorial-interpolate.sk.svg \
-    tutorial-interpolate.sl.svg \
-    tutorial-interpolate.vi.svg \
-    tutorial-interpolate.zh_TW.svg \
-    tutorial-shapes.svg \
-    tutorial-shapes.be.svg \
-    tutorial-shapes.ca.svg \
-    tutorial-shapes.cs.svg \
-    tutorial-shapes.de.svg \
-    tutorial-shapes.el.svg \
-    tutorial-shapes.es.svg \
-    tutorial-shapes.eu.svg \
-    tutorial-shapes.fa.svg \
-    tutorial-shapes.fr.svg \
-    tutorial-shapes.hu.svg \
-    tutorial-shapes.id.svg \
-    tutorial-shapes.it.svg \
-    tutorial-shapes.ja.svg \
-    tutorial-shapes.nl.svg \
-    tutorial-shapes.pl.svg \
-    tutorial-shapes.pt_BR.svg \
-    tutorial-shapes.ru.svg \
-    tutorial-shapes.sk.svg \
-    tutorial-shapes.sl.svg \
-    tutorial-shapes.vi.svg \
-    tutorial-shapes.zh_CN.svg \
-    tutorial-shapes.zh_TW.svg \
-    tutorial-tips.svg \
-    tutorial-tips.be.svg \
-    tutorial-tips.ca.svg \
-    tutorial-tips.de.svg \
-    tutorial-tips.el.svg \
-    tutorial-tips.es.svg \
-    tutorial-tips.eu.svg \
-    tutorial-tips.fa.svg \
-    tutorial-tips.fr.svg \
-    tutorial-shapes.gl.svg \
-    tutorial-tips.hu.svg \
-    tutorial-tips.ja.svg \
-    tutorial-tips.id.svg \
-    tutorial-tips.it.svg \
-    tutorial-tips.nl.svg \
-    tutorial-tips.pl.svg \
-    tutorial-tips.pt_BR.svg \
-    tutorial-tips.ru.svg \
-    tutorial-tips.sk.svg \
-    tutorial-tips.sl.svg \
-    tutorial-tips.vi.svg \
-    tutorial-tips.zh_TW.svg \
-    tutorial-tracing.svg \
-    tutorial-tracing.be.svg \
-    tutorial-tracing.ca.svg \
-    tutorial-tracing.de.svg \
-    tutorial-tracing.el.svg \
-    tutorial-tracing.es.svg \
-    tutorial-tracing.eu.svg \
-    tutorial-tracing.fa.svg \
-    tutorial-tracing.fr.svg \
-    tutorial-tracing.gl.svg \
-    tutorial-tracing.hu.svg \
-    tutorial-tracing.id.svg \
-    tutorial-tracing.ja.svg \
-    tutorial-tracing.nl.svg \
-    tutorial-tracing.pl.svg \
-    tutorial-tracing.pt_BR.svg \
-    tutorial-tracing.ru.svg \
-    tutorial-tracing.sk.svg \
-    tutorial-tracing.sl.svg \
-    tutorial-tracing.vi.svg \
-    tutorial-tracing.zh_TW.svg \
-    tutorial-tracing-pixelart.svg \
-    tutorial-tracing-pixelart.el.svg \
-    tutorial-tracing-pixelart.fr.svg \
-    tutorial-tracing-pixelart.nl.svg \
-    tutorial-tracing-pixelart.zh_TW.svg \
-    tux.png
-
-
-EXTRA_DIST = $(tutorial_DATA)
-
diff --git a/share/ui/Makefile.am b/share/ui/Makefile.am
deleted file mode 100644
index 1e55ea58f..000000000
--- a/share/ui/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-
-uidir = $(datadir)/inkscape/ui
-
-ui_DATA =  \
-    keybindings.rc \
-    menus-bars.xml \
-    style.css \
-    toolbox.xml \
-    units.xml
-
-EXTRA_DIST = $(ui_DATA)
diff --git a/src/2geom/Makefile_insert b/src/2geom/Makefile_insert
deleted file mode 100644
index 4d41de297..000000000
--- a/src/2geom/Makefile_insert
+++ /dev/null
@@ -1,131 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-2geom/all: 2geom/lib2geom.a
-
-2geom/clean:
-	rm -f 2geom/lib2geom.a $(2geom_lib2geom_a_OBJECTS)
-
-2geom_lib2geom_a_SOURCES = \
-	2geom/2geom.h \
-	2geom/affine.cpp \
-	2geom/affine.h \
-	2geom/angle.h \
-	2geom/basic-intersection.cpp \
-	2geom/basic-intersection.h \
-	2geom/bezier-clipping.cpp \
-	2geom/bezier-curve.cpp \
-	2geom/bezier-curve.h \
-	2geom/bezier.cpp \
-	2geom/bezier.h \
-	2geom/bezier-to-sbasis.h \
-	2geom/bezier-utils.cpp \
-	2geom/bezier-utils.h \
-	2geom/cairo-path-sink.cpp \
-	2geom/cairo-path-sink.h \
-	2geom/choose.h \
-	2geom/circle.cpp \
-	2geom/circle.h \
-	2geom/circulator.h \
-	2geom/CMakeLists.txt \
-	2geom/concepts.h \
-	2geom/conicsec.cpp \
-	2geom/conicsec.h \
-	2geom/conic_section_clipper_cr.h \
-	2geom/conic_section_clipper.h \
-	2geom/conic_section_clipper_impl.cpp \
-	2geom/conic_section_clipper_impl.h \
-	2geom/convex-hull.cpp \
-	2geom/convex-hull.h \
-	2geom/coord.cpp \
-	2geom/coord.h \
-	2geom/crossing.cpp \
-	2geom/crossing.h \
-	2geom/curve.cpp \
-	2geom/curve.h \
-	2geom/curves.h \
-	2geom/d2.h \
-	2geom/d2-sbasis.cpp \
-	2geom/ellipse.cpp \
-	2geom/ellipse.h \
-	2geom/elliptical-arc.cpp \
-	2geom/elliptical-arc.h \
-	2geom/elliptical-arc-from-sbasis.cpp \
-	2geom/exception.h \
-	2geom/forward.h \
-	2geom/generic-interval.h \
-	2geom/generic-rect.h \
-	2geom/geom.cpp \
-	2geom/geom.h \
-	2geom/intersection.h \
-	2geom/intersection-graph.cpp \
-	2geom/intersection-graph.h \
-	2geom/interval.h \
-	2geom/int-interval.h \
-	2geom/int-point.h \
-	2geom/int-rect.h \
-	2geom/linear.h \
-	2geom/line.cpp \
-	2geom/line.h \
-	2geom/math-utils.h \
-	2geom/nearest-time.cpp \
-	2geom/nearest-time.h \
-	2geom/ord.h \
-	2geom/path.cpp \
-	2geom/path.h \
-	2geom/path-intersection.cpp \
-	2geom/path-intersection.h \
-	2geom/path-sink.cpp \
-	2geom/path-sink.h \
-	2geom/pathvector.cpp \
-	2geom/pathvector.h \
-	2geom/piecewise.cpp \
-	2geom/piecewise.h \
-	2geom/point.cpp \
-	2geom/point.h \
-	2geom/polynomial.cpp \
-	2geom/polynomial.h \
-	2geom/ray.h \
-	2geom/rect.cpp \
-	2geom/rect.h \
-	2geom/recursive-bezier-intersection.cpp \
-	2geom/sbasis-2d.cpp \
-	2geom/sbasis-2d.h \
-	2geom/sbasis.cpp \
-	2geom/sbasis-curve.h \
-	2geom/sbasis-geometric.cpp \
-	2geom/sbasis-geometric.h \
-	2geom/sbasis.h \
-	2geom/sbasis-math.cpp \
-	2geom/sbasis-math.h \
-	2geom/sbasis-poly.cpp \
-	2geom/sbasis-poly.h \
-	2geom/sbasis-roots.cpp \
-	2geom/sbasis-to-bezier.cpp \
-	2geom/sbasis-to-bezier.h \
-	2geom/solve-bezier.cpp \
-	2geom/solve-bezier-one-d.cpp \
-	2geom/solve-bezier-parametric.cpp \
-	2geom/solver.h \
-	2geom/svg-path-parser.cpp \
-	2geom/svg-path-parser.h \
-	2geom/svg-path-writer.cpp \
-	2geom/svg-path-writer.h \
-	2geom/sweep-bounds.cpp \
-	2geom/sweep-bounds.h \
-	2geom/sweeper.h \
-	2geom/toposweep.cpp \
-	2geom/toposweep.h \
-	2geom/transforms.cpp \
-	2geom/transforms.h \
-	2geom/utils.cpp \
-	2geom/utils.h \
-	2geom/numeric/fitting-model.h \
-	2geom/numeric/fitting-tool.h \
-	2geom/numeric/linear_system.h \
-	2geom/numeric/matrix.cpp \
-	2geom/numeric/matrix.h \
-	2geom/numeric/symmetric-matrix-fs.h \
-	2geom/numeric/symmetric-matrix-fs-operation.h \
-	2geom/numeric/symmetric-matrix-fs-trace.h \
-	2geom/numeric/vector.h
-
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 9076aaac3..000000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,278 +0,0 @@
-## 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
-
-# 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.
-noinst_LIBRARIES =	\
-	libcroco/libcroco.a		\
-	libavoid/libavoid.a		\
-	libuemf/libuemf.a   		\
-	libcola/libcola.a		\
-        inkgc/libinkgc.a		\
-	libvpsc/libvpsc.a		\
-	livarot/libvarot.a		\
-	2geom/lib2geom.a		\
-	libdepixelize/libdepixelize.a	\
-	util/libutil.a			\
-	libinkversion.a
-#       libinkscape.a
-
-all_libs =			\
-	$(noinst_LIBRARIES)	\
-	$(INKSCAPE_LIBS)	\
-	$(INKSCAPE_CXX_DEPS_LIBS) \
-	$(EXIF_LIBS)            \
-	$(GNOME_VFS_LIBS)	\
-	$(XFT_LIBS)		\
-	$(FREETYPE_LIBS)	\
-	$(kdeldadd)		\
-	$(win32ldflags)		\
-	$(LIBWPG_LIBS)		\
-	$(LIBVISIO_LIBS)	\
-	$(LIBCDR_LIBS)		\
-	$(DBUS_LIBS)		\
-	$(IMAGEMAGICK_LIBS)     \
-	$(X11_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 =
-
-# C++-specific flags defined here
-AM_CXXFLAGS = \
-	$(INKSCAPE_CXX_DEPS_CFLAGS)
-
-AM_CPPFLAGS =	\
-	-I$(top_srcdir)/cxxtest \
-	-I$(builddir)/extension/dbus   \
-	$(EXIF_CFLAGS) \
-	$(FREETYPE_CFLAGS)	\
-	$(GNOME_PRINT_CFLAGS)	\
-	$(GNOME_VFS_CFLAGS)	\
-	$(IMAGEMAGICK_CFLAGS) \
-	$(LIBWPG_CFLAGS) \
-	$(LIBVISIO_CFLAGS) \
-	$(LIBCDR_CFLAGS) \
-	$(DBUS_CFLAGS) \
-	$(XFT_CFLAGS)	\
-	$(LCMS_CFLAGS)	\
-	$(POPPLER_CFLAGS)	\
-	$(POPPLER_GLIB_CFLAGS)	\
-	-DPOTRACE=\"potrace\"	\
-	$(INKSCAPE_CFLAGS) \
-	$(WIN32_CFLAGS) \
-	$(X11_CFLAGS)
-
-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 
-
-# Include all partial makefiles from subdirectories
-include Makefile_insert
-include display/Makefile_insert
-include extension/Makefile_insert
-include extension/dbus/Makefile_insert
-include extension/implementation/Makefile_insert
-include extension/internal/Makefile_insert
-include filters/Makefile_insert
-include helper/Makefile_insert
-include io/Makefile_insert
-include libcroco/Makefile_insert
-include inkgc/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 libuemf/Makefile_insert
-include svg/Makefile_insert
-include widgets/Makefile_insert
-include debug/Makefile_insert
-include xml/Makefile_insert
-include ui/Makefile_insert
-include ui/cache/Makefile_insert
-include ui/dialog/Makefile_insert
-include ui/tool/Makefile_insert
-include ui/tools/Makefile_insert
-include ui/view/Makefile_insert
-include ui/widget/Makefile_insert
-include util/Makefile_insert
-include trace/Makefile_insert
-include 2geom/Makefile_insert
-include libdepixelize/Makefile_insert
-
-# Extra files not mentioned as sources to include in the source tarball
-EXTRA_DIST +=	\
-	2geom/makefile.in	\
-	debug/makefile.in	\
-	display/makefile.in	\
-	extension/implementation/makefile.in	\
-	extension/internal/makefile.in	\
-	extension/makefile.in	\
-	filters/makefile.in \
-	helper/makefile.in	\
-	io/makefile.in	\
-	libavoid/makefile.in	\
-	libcroco/makefile.in	\
-	libnrtype/makefile.in	\
-	libuemf/makefile.in \
-	livarot/makefile.in	\
-	live_effects/makefile.in	\
-	live_effects/parameter/makefile.in	\
-	svg/makefile.in		\
-	trace/makefile.in	\
-	ui/cache/makefile.in	\
-	ui/dialog/makefile.in	\
-	ui/makefile.in		\
-	ui/view/makefile.in	\
-	ui/widget/makefile.in	\
-	util/makefile.in	\
-	util/makefile.in	\
-	widgets/makefile.in	\
-	xml/makefile.in		\
-	\
-	$(top_srcdir)/Doxyfile \
-	extension/internal/emf-inout.cpp  \
-	extension/internal/emf-inout.h    \
-	extension/internal/emf-print.cpp  \
-	extension/internal/emf-print.h    \
-	helper/sp-marshal.list	\
-	io/crystalegg.xml	\
-	io/doc2html.xsl 	\
-	show-preview.bmp \
-	winconsole.cpp \
-	libdepixelize/makefile.in	\
-	$(CXXTEST_TEMPLATE)
-
-# 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 $(ink_common_sources) $(win32_sources)
-inkscape_LDADD = $(all_libs)
-inkscape_LDFLAGS = $(kdeldflags) $(mwindows)
-
-inkview_SOURCES += inkview.cpp $(ink_common_sources) $(win32_sources)
-inkview_LDADD = $(all_libs)
-inkview_LDFLAGS = $(mwindows)
-
-# ################################################
-#  VERSION REPORTING
-# ################################################
-
-libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h
-
-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 --tree $(top_srcdir)`"; \
-	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 = cxxtests
-
-# streamtest is unfinished and can't handle the relocations done during
-# "make distcheck".
-
-# List of all tests to be run.
-TESTS = $(check_PROGRAMS)
-check-local:
-	$(top_srcdir)/share/extensions/test/run-all-extension-tests
-
-# FIXME: Currently, a number of cxxtest tests fail.  These should be fixed and
-#        the XFAIL_TESTS build target should be removed.
-#        See the following Launchpad bugs:
-#
-#          LP #1208013 
-#          LP #1208005 
-#          LP #1207502 
-
-XFAIL_TESTS = $(check_PROGRAMS)
-
-# including the testsuites here ensures that they get distributed
-cxxtests_SOURCES = cxxtests.cpp $(CXXTEST_TESTSUITES) $(ink_common_sources) $(win32_sources)
-cxxtests_LDADD = $(all_libs)
-
-cxxtests.cpp: $(CXXTEST_TESTSUITES) $(CXXTEST_TEMPLATE)
-	$(CXXTESTGEN) -o cxxtests.cpp $(CXXTEST_TESTSUITES)
-
-# ################################################
-#  D I S T
-# ################################################
-
-dist-hook:
-	mkdir $(distdir)/pixmaps
-	cp $(srcdir)/pixmaps/*xpm $(distdir)/pixmaps
-
-distclean-local:
-	rm -f cxxtests.xml cxxtests.log
diff --git a/src/Makefile_insert b/src/Makefile_insert
deleted file mode 100644
index 55fde4dd2..000000000
--- a/src/Makefile_insert
+++ /dev/null
@@ -1,251 +0,0 @@
-## Makefile.am fragment, included by src/Makefile.am.
-
-ink_common_sources +=	\
-	util/find-last-if.h					\
-	util/longest-common-suffix.h				\
-	remove-last.h					\
-	attributes.cpp attributes.h					\
-	attribute-rel-svg.cpp attribute-rel-svg.h			\
-	attribute-rel-css.cpp attribute-rel-css.h			\
-	attribute-rel-util.cpp attribute-rel-util.h			\
-	attribute-sort-util.cpp attribute-sort-util.h			\
-	axis-manip.cpp axis-manip.h					\
-	bad-uri-exception.h						\
-	box3d.cpp box3d.h						\
-	box3d-side.cpp box3d-side.h					\
-	brokenimage.xpm							\
-	cms-color-types.h						\
-	cms-system.h							\
-	color.cpp color.h						\
-	color-profile.cpp color-profile.h				\
-	color-profile-cms-fns.h						\
-	color-rgba.h							\
-	colorspace.h							\
-	composite-undo-stack-observer.cpp				\
-	composite-undo-stack-observer.h					\
-	conditions.cpp conditions.h					\
-	conn-avoid-ref.cpp conn-avoid-ref.h				\
-	console-output-undo-observer.h console-output-undo-observer.cpp \
-	context-fns.cpp context-fns.h					\
-	decimal-round.h							\
-	desktop.cpp desktop.h						\
-	desktop-events.cpp desktop-events.h				\
-	desktop-style.cpp desktop-style.h				\
-	device-manager.cpp device-manager.h				\
-	dir-util.cpp dir-util.h						\
-	document.cpp document.h document-private.h			\
-	document-subset.cpp document-subset.h				\
-	document-undo.cpp document-undo.h \
-	ege-color-prof-tracker.cpp ege-color-prof-tracker.h		\
-	enums.h								\
-	event-log.cpp event-log.h event.h				\
-	extract-uri.cpp extract-uri.h					\
-	file.cpp file.h							\
-	fill-or-stroke.h						\
-	filter-chemistry.cpp filter-chemistry.h				\
-	filter-enums.cpp filter-enums.h					\
-	gc-anchored.cpp	gc-anchored.h                                   \
-	gc-finalized.cpp gc-finalized.h                                 \
-	gradient-chemistry.cpp gradient-chemistry.h			\
-	gradient-drag.cpp gradient-drag.h				\
-	graphlayout.cpp graphlayout.h					\
-	guide-snapper.cpp guide-snapper.h				\
-	help.cpp help.h							\
-	helper-fns.h							\
-	helper/pixbuf-ops.cpp						\
-	helper/pixbuf-ops.h						\
-	icon-size.h							\
-	id-clash.cpp id-clash.h						\
-	inkscape.cpp inkscape.h						\
-	isinf.h								\
-	knot.cpp knot.h							\
-	knot-enums.h							\
-	knotholder.cpp knotholder.h					\
-	knot-holder-entity.h knot-holder-entity.cpp			\
-	knot-ptr.h knot-ptr.cpp						\
-	layer-fns.cpp layer-fns.h					\
-	layer-manager.cpp layer-manager.h				\
-  layer-model.cpp layer-model.h         \
-	line-geometry.cpp line-geometry.h				\
-	line-snapper.cpp line-snapper.h					\
-	macros.h							\
-	main-cmdlineact.cpp main-cmdlineact.h				\
-	media.cpp media.h						\
-	menus-skeleton.h						\
-	message-context.cpp message-context.h				\
-	message.h							\
-	message-stack.cpp message-stack.h				\
-	mod360.cpp mod360.h						\
-	object-hierarchy.cpp object-hierarchy.h				\
-	object-snapper.cpp object-snapper.h				\
-	path-chemistry.cpp path-chemistry.h				\
-	path-prefix.h							\
-	persp3d.cpp persp3d.h						\
-	persp3d-reference.cpp persp3d-reference.h			\
-	perspective-line.cpp perspective-line.h				\
-	preferences.cpp preferences.h					\
-	preferences-skeleton.h						\
-	prefix.cpp prefix.h						\
-	print.cpp print.h						\
-	profile-manager.cpp profile-manager.h				\
-	proj_pt.cpp proj_pt.h						\
-	pure-transform.cpp pure-transform.h				\
-	removeoverlap.cpp removeoverlap.h				\
-	rdf.cpp rdf.h							\
-	resource-manager.cpp resource-manager.h				\
-	require-config.h						\
-	round.h								\
-	rubberband.cpp rubberband.h					\
-	satisfied-guide-cns.cpp satisfied-guide-cns.h			\
-	selcue.cpp selcue.h						\
-	selection-chemistry.cpp selection-chemistry.h			\
-	selection.cpp selection.h					\
-	selection-describer.cpp selection-describer.h			\
-	seltrans.cpp seltrans.h						\
-	seltrans-handles.cpp seltrans-handles.h				\
-	shortcuts.cpp shortcuts.h					\
-	snap.cpp snap.h							\
-	snap-enums.h snap-candidate.h					\
-	snapped-curve.cpp snapped-curve.h				\
-	snapped-line.cpp snapped-line.h					\
-	snapped-point.cpp snapped-point.h				\
-	snapper.cpp snapper.h						\
-	snap-preferences.cpp snap-preferences.h				\
-	sp-anchor.cpp sp-anchor.h					\
-	sp-clippath.cpp sp-clippath.h					\
-	sp-conn-end.cpp sp-conn-end.h					\
-	sp-conn-end-pair.cpp sp-conn-end-pair.h				\
-	sp-cursor.cpp sp-cursor.h					\
-	sp-defs.cpp sp-defs.h						\
-	sp-desc.cpp sp-desc.h						\
-	sp-ellipse.cpp sp-ellipse.h					\
-	sp-factory.h sp-factory.cpp					\
-	sp-filter.cpp sp-filter.h number-opt-number.h			\
-	sp-filter-primitive.cpp	sp-filter-primitive.h			\
-	sp-filter-reference.cpp	sp-filter-reference.h			\
-	sp-filter-units.h						\
-	sp-flowdiv.h sp-flowdiv.cpp					\
-	sp-flowregion.h sp-flowregion.cpp				\
-	sp-flowtext.h sp-flowtext.cpp					\
-        sp-font.cpp sp-font.h						\
-        sp-font-face.cpp sp-font-face.h					\
-        sp-glyph.cpp sp-glyph.h						\
-        sp-glyph-kerning.cpp sp-glyph-kerning.h				\
-	sp-gradient.cpp sp-gradient.h					\
-	sp-gradient-reference.cpp sp-gradient-reference.h		\
-	sp-gradient-spread.h						\
-	sp-gradient-units.h						\
-	sp-gradient-vector.h						\
-	sp-guide-attachment.h						\
-	sp-guide-constraint.h						\
-	sp-guide.cpp sp-guide.h						\
-	sp-hatch.cpp sp-hatch.h                     \
-	sp-hatch-path.cpp sp-hatch-path.h           \
-	sp-image.cpp sp-image.h						\
-	sp-item.cpp sp-item.h						\
-	sp-item-group.cpp sp-item-group.h				\
-	sp-item-notify-moveto.cpp sp-item-notify-moveto.h		\
-	sp-item-rm-unsatisfied-cns.cpp sp-item-rm-unsatisfied-cns.h	\
-	sp-item-transform.cpp sp-item-transform.h			\
-	sp-item-update-cns.cpp sp-item-update-cns.h			\
-	sp-linear-gradient.cpp sp-linear-gradient.h			\
-	sp-line.cpp sp-line.h						\
-	splivarot.cpp splivarot.h					\
-	sp-lpe-item.cpp sp-lpe-item.h					\
-	sp-marker.cpp sp-marker.h					\
-	sp-marker-loc.h							\
-	sp-mask.cpp sp-mask.h						\
-	sp-metadata.cpp sp-metadata.h					\
-	sp-mesh.cpp sp-mesh.h						\
-	sp-mesh-array.cpp sp-mesh-array.h				\
-	sp-mesh-patch.cpp sp-mesh-patch.h				\
-	sp-mesh-row.cpp sp-mesh-row.h					\
-        sp-missing-glyph.cpp sp-missing-glyph.h \
-	sp-namedview.cpp sp-namedview.h		\
-	sp-object.cpp sp-object.h		\
-	sp-object-group.cpp sp-object-group.h	\
-	sp-offset.cpp sp-offset.h		\
-	sp-paint-server.cpp sp-paint-server.h	\
-	sp-paint-server-reference.h		\
-	sp-path.cpp sp-path.h			\
-	sp-pattern.cpp sp-pattern.h		\
-	sp-polygon.cpp sp-polygon.h		\
-	sp-polyline.cpp sp-polyline.h		\
-	sp-radial-gradient.cpp sp-radial-gradient.h			\
-	sp-rect.cpp sp-rect.h			\
-	sp-root.cpp sp-root.h			\
-	sp-script.cpp sp-script.h		\
-	sp-shape.cpp sp-shape.h			\
-	sp-solid-color.cpp sp-solid-color.h	\
-	sp-spiral.cpp sp-spiral.h		\
-	sp-star.cpp sp-star.h			\
-	sp-stop.cpp sp-stop.h			\
-	sp-string.cpp sp-string.h		\
-	sp-style-elem.cpp sp-style-elem.h	\
-	sp-switch.cpp sp-switch.h		\
-	sp-symbol.cpp sp-symbol.h		\
-	sp-tag.cpp sp-tag.h			\
-	sp-tag-use.cpp sp-tag-use.h		\
-	sp-tag-use-reference.cpp sp-tag-use-reference.h			\
-	sp-text.cpp sp-text.h			\
-	sp-textpath.h				\
-	sp-title.cpp sp-title.h			\
-	sp-tref.cpp sp-tref.h			\
-	sp-tref-reference.cpp sp-tref-reference.h			\
-	sp-tspan.cpp sp-tspan.h			\
-	sp-use.cpp sp-use.h			\
-	sp-use-reference.cpp sp-use-reference.h	\
-	streq.h					\
-	strneq.h				\
-	style.cpp style.h			\
-	style-enums.h				\
-	style-internal.cpp style-internal.h	\
-	svg-profile.h				\
-	svg-view.cpp svg-view.h			\
-	svg-view-widget.cpp svg-view-widget.h	\
-	syseq.h					\
-	text-chemistry.cpp text-chemistry.h	\
-	text-editing.cpp text-editing.h		\
-	text-tag-attributes.h			\
-	transf_mat_3x4.cpp transf_mat_3x4.h	\
-	unclump.cpp unclump.h			\
-	undo-stack-observer.h			\
-	unicoderange.cpp unicoderange.h		\
-	uri.cpp uri.h				\
-	uri-references.cpp uri-references.h	\
-	vanishing-point.cpp vanishing-point.h	\
-	verbs.cpp verbs.h			\
-	version.cpp version.h			\
-	viewbox.cpp viewbox.h
-
-# Additional dependencies
-
-desktop.$(OBJEXT): helper/sp-marshal.h
-document.$(OBJEXT): helper/sp-marshal.h
-inkscape.$(OBJEXT): helper/sp-marshal.h
-knot.$(OBJEXT): helper/sp-marshal.h
-selection.$(OBJEXT): helper/sp-marshal.h
-sp-object.$(OBJEXT): helper/sp-marshal.h
-view.$(OBJEXT): helper/sp-marshal.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES +=			\
-	$(srcdir)/MultiPrinter.h	\
-	$(srcdir)/TRPIFormatter.h	\
-	$(srcdir)/PylogFormatter.h	\
-	$(srcdir)/attributes-test.h	\
-	$(srcdir)/color-profile-test.h	\
-	$(srcdir)/dir-util-test.h	\
-	$(srcdir)/extract-uri-test.h	\
-	$(srcdir)/marker-test.h		\
-	$(srcdir)/mod360-test.h		\
-	$(srcdir)/object-test.h         \
-	$(srcdir)/preferences-test.h    \
-	$(srcdir)/round-test.h		\
-	$(srcdir)/sp-gradient-test.h	\
-	$(srcdir)/sp-style-elem-test.h	\
-	$(srcdir)/style-test.h		\
-	$(srcdir)/test-helpers.h	\
-	$(srcdir)/verbs-test.h
diff --git a/src/debug/Makefile_insert b/src/debug/Makefile_insert
deleted file mode 100644
index 47cc2b704..000000000
--- a/src/debug/Makefile_insert
+++ /dev/null
@@ -1,15 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	debug/demangle.cpp debug/demangle.h \
-	debug/event.h \
-	debug/event-tracker.h \
-	debug/heap.cpp debug/heap.h \
-	debug/gc-heap.h \
-	debug/logger.cpp debug/logger.h \
-	debug/log-display-config.cpp debug/log-display-config.h \
-	debug/simple-event.h \
-	debug/sysv-heap.cpp debug/sysv-heap.h \
-	debug/gdk-event-latency-tracker.cpp debug/gdk-event-latency-tracker.h \
-        debug/timestamp.cpp debug/timestamp.h
-
diff --git a/src/display/Makefile_insert b/src/display/Makefile_insert
deleted file mode 100644
index 419852f7d..000000000
--- a/src/display/Makefile_insert
+++ /dev/null
@@ -1,125 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-display/canvas-arena.$(OBJEXT): helper/sp-marshal.h
-display/sp-canvas.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources += \
-	display/cairo-templates.h	\
-	display/cairo-utils.cpp	\
-	display/cairo-utils.h	\
-	display/canvas-arena.cpp	\
-	display/canvas-arena.h	\
-	display/canvas-axonomgrid.cpp	\
-	display/canvas-axonomgrid.h	\
-	display/canvas-bpath.cpp	\
-	display/canvas-bpath.h	\
-	display/canvas-grid.cpp	\
-	display/canvas-grid.h	\
-	display/canvas-temporary-item.cpp	\
-	display/canvas-temporary-item.h	\
-	display/canvas-temporary-item-list.cpp	\
-	display/canvas-temporary-item-list.h	\
-	display/canvas-text.cpp	\
-	display/canvas-text.h	\
-	display/curve.cpp	\
-	display/curve.h	\
-	display/drawing.cpp \
-	display/drawing.h \
-	display/drawing-context.cpp \
-	display/drawing-context.h \
-	display/drawing-group.cpp \
-	display/drawing-group.h \
-	display/drawing-image.cpp \
-	display/drawing-image.h \
-	display/drawing-item.cpp \
-	display/drawing-item.h \
-	display/drawing-pattern.cpp \
-	display/drawing-pattern.h \
-	display/drawing-shape.cpp \
-	display/drawing-shape.h \
-	display/drawing-surface.cpp \
-	display/drawing-surface.h \
-	display/drawing-text.cpp \
-	display/drawing-text.h \
-	display/gnome-canvas-acetate.cpp	\
-	display/gnome-canvas-acetate.h	\
-	display/grayscale.cpp	\
-	display/grayscale.h	\
-	display/guideline.cpp	\
-	display/guideline.h	\
-	display/nr-3dutils.cpp \
-	display/nr-3dutils.h \
-	display/nr-filter-blend.cpp     \
-	display/nr-filter-blend.h       \
-	display/nr-filter-colormatrix.cpp	\
-	display/nr-filter-colormatrix.h	\
-	display/nr-filter-component-transfer.cpp	\
-	display/nr-filter-component-transfer.h	\
-	display/nr-filter-composite.cpp	\
-	display/nr-filter-composite.h	\
-	display/nr-filter-convolve-matrix.cpp	\
-	display/nr-filter-convolve-matrix.h	\
-	display/nr-filter.cpp           \
-	display/nr-filter-diffuselighting.cpp     \
-	display/nr-filter-diffuselighting.h       \
-	display/nr-filter-displacement-map.cpp      \
-	display/nr-filter-displacement-map.h        \
-	display/nr-filter-flood.cpp  \
-	display/nr-filter-flood.h    \
-	display/nr-filter-gaussian.cpp  \
-	display/nr-filter-gaussian.h    \
-	display/nr-filter.h             \
-	display/nr-filter-image.cpp	\
-	display/nr-filter-image.h	\
-	display/nr-filter-merge.cpp	\
-	display/nr-filter-merge.h	\
-	display/nr-filter-morphology.cpp	\
-	display/nr-filter-morphology.h	\
-	display/nr-filter-offset.cpp	\
-	display/nr-filter-offset.h	\
-	display/nr-filter-primitive.cpp \
-	display/nr-filter-primitive.h   \
-	display/nr-filter-slot.cpp      \
-	display/nr-filter-slot.h        \
-	display/nr-filter-specularlighting.cpp     \
-	display/nr-filter-specularlighting.h       \
-	display/nr-filter-tile.cpp	\
-	display/nr-filter-tile.h	\
-	display/nr-filter-turbulence.cpp      \
-	display/nr-filter-turbulence.h        \
-	display/nr-filter-types.h       \
-	display/nr-filter-units.cpp	\
-	display/nr-filter-units.h	\
-	display/nr-filter-utils.h       \
-	display/nr-light.cpp			\
-	display/nr-light.h				\
-	display/nr-light-types.h	\
-	display/nr-style.cpp	\
-	display/nr-style.h	\
-	display/nr-svgfonts.cpp		\
-	display/nr-svgfonts.h		\
-	display/rendermode.h		\
-	display/snap-indicator.cpp	\
-	display/snap-indicator.h	\
-	display/sodipodi-ctrl.cpp	\
-	display/sodipodi-ctrl.h	\
-	display/sodipodi-ctrlrect.cpp	\
-	display/sodipodi-ctrlrect.h	\
-	display/sp-canvas.cpp	\
-	display/sp-canvas.h	\
-	display/sp-canvas-item.h \
-	display/sp-canvas-group.h \
-	display/sp-canvas-util.cpp	\
-	display/sp-canvas-util.h	\
-	display/sp-ctrlcurve.cpp	\
-	display/sp-ctrlcurve.h \
-	display/sp-ctrlline.cpp	\
-	display/sp-ctrlline.h \
-	display/sp-ctrlquadr.cpp \
-	display/sp-ctrlquadr.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/display/curve-test.h
diff --git a/src/extension/Makefile_insert b/src/extension/Makefile_insert
deleted file mode 100644
index fb9713904..000000000
--- a/src/extension/Makefile_insert
+++ /dev/null
@@ -1,54 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-    extension/extension.cpp	\
-    extension/extension.h	\
-    extension/db.cpp	\
-    extension/db.h	\
-    extension/dependency.cpp \
-    extension/dependency.h \
-    extension/error-file.cpp \
-    extension/error-file.h \
-    extension/execution-env.cpp \
-    extension/execution-env.h \
-    extension/init.cpp	\
-    extension/init.h	\
-	extension/loader.h \
-	extension/loader.cpp \
-    extension/param/parameter.h \
-    extension/param/parameter.cpp \
-    extension/param/notebook.h \
-    extension/param/notebook.cpp \
-    extension/param/bool.h \
-    extension/param/bool.cpp \
-    extension/param/color.h \
-    extension/param/color.cpp \
-    extension/param/description.h \
-    extension/param/description.cpp \
-    extension/param/enum.h \
-    extension/param/enum.cpp \
-    extension/param/float.h \
-    extension/param/float.cpp \
-    extension/param/int.h \
-    extension/param/int.cpp \
-    extension/param/radiobutton.h \
-    extension/param/radiobutton.cpp \
-    extension/param/string.h \
-    extension/param/string.cpp \
-    extension/prefdialog.cpp \
-    extension/prefdialog.h \
-    extension/system.cpp	\
-    extension/system.h \
-    extension/timer.cpp \
-    extension/timer.h \
-    extension/input.h \
-    extension/input.cpp \
-    extension/output.h \
-    extension/output.cpp \
-    extension/effect.h \
-    extension/effect.cpp \
-    extension/patheffect.h \
-    extension/patheffect.cpp \
-    extension/print.h \
-    extension/print.cpp
-
diff --git a/src/extension/dbus/Makefile_insert b/src/extension/dbus/Makefile_insert
deleted file mode 100644
index 192651d87..000000000
--- a/src/extension/dbus/Makefile_insert
+++ /dev/null
@@ -1,111 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_DBUS
-
-#############################
-# Sources for DBus interface
-#############################
-
-ink_common_sources +=	\
-	extension/dbus/dbus-init.cpp  \
-	extension/dbus/dbus-init.h  \
-	extension/dbus/application-interface.cpp  \
-	extension/dbus/application-interface.h  \
-	extension/dbus/document-interface.cpp  \
-	extension/dbus/document-interface.h  \
-	extension/dbus/org.inkscape.service.in
-
-###########################
-# Build DBus wrapper files
-###########################
-
-extension/dbus/application-server-glue.h: extension/dbus/application-interface.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=application_interface $^
-
-extension/dbus/document-server-glue.h: extension/dbus/document-interface.xml
-	dbus-binding-tool --mode=glib-server --output=$@ --prefix=document_interface $^
-
-extension/dbus/document-client-glue.h: extension/dbus/document-interface.xml
-	dbus-binding-tool --mode=glib-client --output=$@ --prefix=document_interface $^
-
-BUILT_SOURCES += \
-	extension/dbus/application-server-glue.h   \
-	extension/dbus/document-server-glue.h   \
-	extension/dbus/document-client-glue.h
-
-###########################
-# Distribut DBus interface
-###########################
-
-EXTRA_DIST += \
-	extension/dbus/application-interface.xml \
-	extension/dbus/document-interface.xml
-
-###########################
-# DBus Activation Service
-###########################
-
-# Dbus service file
-servicedir = $(DBUSSERVICEDIR)
-service_in_files = extension/dbus/org.inkscape.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-# Rule to make the service file with bindir expanded
-$(service_DATA): $(service_in_files) Makefile
-	@sed -e "s|bindir|$(prefix)|" $<> $@
-
-############################
-# DBus Interface Helper Lib
-############################
-
-lib_LTLIBRARIES = \
-	libinkdbus.la
-
-libinkdbusincludedir = $(includedir)/libinkdbus-0.48/libinkdbus
-libinkdbusinclude_HEADERS = \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h
-
-libinkdbus_la_SOURCES = \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.c
-
-libinkdbus_la_LDFLAGS = \
-	-version-info 0:0:0 \
-	-no-undefined \
-	-export-symbols-regex "^[^_d].*"
-
-libinkdbus_la_CFLAGS = \
-	$(DBUS_CFLAGS) \
-	$(INKSCAPE_CFLAGS) \
-	-I$(builddir)/extension/dbus \
-	-Wall
-
-libinkdbus_la_LIBADD = \
-	$(DBUS_LIBS) \
-	$(INKSCAPE_LIBS)
-
-############################
-# DBus Pkgconfig file
-############################
-
-pkgconfig_DATA = extension/dbus/wrapper/inkdbus.pc
-pkgconfigdir = $(libdir)/pkgconfig
-
-else # WITH_DBUS
-
-EXTRA_DIST += \
-	extension/dbus/dbus-init.cpp  \
-	extension/dbus/dbus-init.h  \
-	extension/dbus/application-interface.cpp  \
-	extension/dbus/application-interface.h  \
-	extension/dbus/document-interface.cpp  \
-	extension/dbus/document-interface.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.h \
-	extension/dbus/wrapper/inkscape-dbus-wrapper.c \
-	extension/dbus/wrapper/inkdbus.pc \
-	extension/dbus/org.inkscape.service.in \
-	extension/dbus/application-interface.xml \
-	extension/dbus/document-interface.xml
-
-endif
-
diff --git a/src/extension/implementation/Makefile_insert b/src/extension/implementation/Makefile_insert
deleted file mode 100644
index 1b9080f1a..000000000
--- a/src/extension/implementation/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	extension/implementation/implementation.cpp	\
-	extension/implementation/implementation.h \
-	extension/implementation/script.cpp	\
-	extension/implementation/script.h \
-	extension/implementation/xslt.cpp \
-	extension/implementation/xslt.h
diff --git a/src/extension/internal/Makefile_insert b/src/extension/internal/Makefile_insert
deleted file mode 100644
index 125776d41..000000000
--- a/src/extension/internal/Makefile_insert
+++ /dev/null
@@ -1,173 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if WITH_LIBWPG
-ink_common_sources += \
-	extension/internal/wpg-input.cpp	\
-	extension/internal/wpg-input.h
-endif
-
-if WITH_LIBVISIO
-ink_common_sources += \
-	extension/internal/vsd-input.cpp	\
-	extension/internal/vsd-input.h
-endif
-
-if WITH_LIBCDR
-ink_common_sources += \
-	extension/internal/cdr-input.cpp	\
-	extension/internal/cdr-input.h
-endif
-
-if USE_IMAGE_MAGICK
-ink_common_sources +=			\
-	extension/internal/bitmap/imagemagick.cpp		\
-	extension/internal/bitmap/imagemagick.h			\
-	extension/internal/bitmap/adaptiveThreshold.cpp		\
-	extension/internal/bitmap/adaptiveThreshold.h		\
-	extension/internal/bitmap/addNoise.cpp			\
-	extension/internal/bitmap/addNoise.h			\
-	extension/internal/bitmap/blur.cpp			\
-	extension/internal/bitmap/blur.h			\
-	extension/internal/bitmap/channel.cpp			\
-	extension/internal/bitmap/channel.h			\
-	extension/internal/bitmap/charcoal.cpp			\
-	extension/internal/bitmap/charcoal.h			\
-	extension/internal/bitmap/colorize.cpp			\
-	extension/internal/bitmap/colorize.h			\
-	extension/internal/bitmap/contrast.cpp			\
-	extension/internal/bitmap/contrast.h			\
-	extension/internal/bitmap/crop.cpp			\
-	extension/internal/bitmap/crop.h			\
-	extension/internal/bitmap/cycleColormap.cpp		\
-	extension/internal/bitmap/cycleColormap.h		\
-	extension/internal/bitmap/despeckle.cpp			\
-	extension/internal/bitmap/despeckle.h			\
-	extension/internal/bitmap/edge.cpp			\
-	extension/internal/bitmap/edge.h			\
-	extension/internal/bitmap/emboss.cpp			\
-	extension/internal/bitmap/emboss.h			\
-	extension/internal/bitmap/enhance.cpp			\
-	extension/internal/bitmap/enhance.h			\
-	extension/internal/bitmap/equalize.cpp			\
-	extension/internal/bitmap/equalize.h			\
-	extension/internal/bitmap/gaussianBlur.cpp		\
-	extension/internal/bitmap/gaussianBlur.h		\
-	extension/internal/bitmap/implode.cpp			\
-	extension/internal/bitmap/implode.h			\
-	extension/internal/bitmap/level.cpp			\
-	extension/internal/bitmap/level.h			\
-	extension/internal/bitmap/levelChannel.cpp		\
-	extension/internal/bitmap/levelChannel.h		\
-	extension/internal/bitmap/medianFilter.cpp		\
-	extension/internal/bitmap/medianFilter.h		\
-	extension/internal/bitmap/modulate.cpp			\
-	extension/internal/bitmap/modulate.h			\
-	extension/internal/bitmap/negate.cpp			\
-	extension/internal/bitmap/negate.h			\
-	extension/internal/bitmap/normalize.cpp			\
-	extension/internal/bitmap/normalize.h			\
-	extension/internal/bitmap/oilPaint.cpp			\
-	extension/internal/bitmap/oilPaint.h			\
-	extension/internal/bitmap/opacity.cpp			\
-	extension/internal/bitmap/opacity.h			\
-	extension/internal/bitmap/raise.cpp			\
-	extension/internal/bitmap/raise.h			\
-	extension/internal/bitmap/reduceNoise.cpp		\
-	extension/internal/bitmap/reduceNoise.h			\
-	extension/internal/bitmap/sample.cpp			\
-	extension/internal/bitmap/sample.h			\
-	extension/internal/bitmap/shade.cpp			\
-	extension/internal/bitmap/shade.h			\
-	extension/internal/bitmap/sharpen.cpp			\
-	extension/internal/bitmap/sharpen.h			\
-	extension/internal/bitmap/solarize.cpp			\
-	extension/internal/bitmap/solarize.h			\
-	extension/internal/bitmap/spread.cpp			\
-	extension/internal/bitmap/spread.h			\
-	extension/internal/bitmap/swirl.cpp			\
-	extension/internal/bitmap/swirl.h			\
-	extension/internal/bitmap/threshold.cpp			\
-	extension/internal/bitmap/threshold.h			\
-	extension/internal/bitmap/unsharpmask.cpp		\
-	extension/internal/bitmap/unsharpmask.h			\
-	extension/internal/bitmap/wave.cpp			\
-	extension/internal/bitmap/wave.h
-endif
-
-ink_common_sources +=	\
-	extension/internal/bluredge.h	\
-	extension/internal/bluredge.cpp	\
-	extension/internal/clear-n_.h   \
-	extension/internal/grid.h	\
-	extension/internal/grid.cpp	\
-	extension/internal/gimpgrad.h	\
-	extension/internal/gimpgrad.cpp	\
-	extension/internal/svg.h	\
-	extension/internal/svg.cpp	\
-	extension/internal/svgz.h	\
-	extension/internal/svgz.cpp	\
-	extension/internal/cairo-ps-out.h	\
-	extension/internal/cairo-ps-out.cpp	\
-	extension/internal/cairo-render-context.h	\
-	extension/internal/cairo-render-context.cpp	\
-	extension/internal/cairo-renderer.h \
-	extension/internal/cairo-renderer.cpp \
-	extension/internal/cairo-renderer-pdf-out.h	\
-	extension/internal/cairo-renderer-pdf-out.cpp	\
-	extension/internal/cairo-png-out.h \
-	extension/internal/cairo-png-out.cpp \
-	extension/internal/javafx-out.cpp	\
-	extension/internal/javafx-out.h	\
-	extension/internal/gdkpixbuf-input.h	\
-	extension/internal/gdkpixbuf-input.cpp	\
-	extension/internal/latex-text-renderer.h \
-	extension/internal/latex-text-renderer.cpp \
-	extension/internal/pdfinput/svg-builder.h \
-	extension/internal/pdfinput/svg-builder.cpp \
-	extension/internal/pdfinput/pdf-parser.h \
-	extension/internal/pdfinput/pdf-parser.cpp \
-	extension/internal/pdfinput/pdf-input.h	\
-	extension/internal/pdfinput/pdf-input.cpp	\
-	extension/internal/pov-out.cpp	\
-	extension/internal/pov-out.h	\
-	extension/internal/odf.cpp	\
-	extension/internal/odf.h	\
-	extension/internal/latex-pstricks.cpp	\
-	extension/internal/latex-pstricks.h	\
-	extension/internal/latex-pstricks-out.cpp	\
-	extension/internal/latex-pstricks-out.h	\
-	extension/internal/filter/bevels.h	\
-	extension/internal/filter/blurs.h \
-	extension/internal/filter/bumps.h \
-	extension/internal/filter/color.h \
-	extension/internal/filter/distort.h \
-	extension/internal/filter/filter.h \
-	extension/internal/filter/image.h \
-	extension/internal/filter/morphology.h \
-	extension/internal/filter/overlays.h \
-	extension/internal/filter/paint.h \
-	extension/internal/filter/protrusions.h \
-	extension/internal/filter/shadows.h \
-	extension/internal/filter/textures.h \
-	extension/internal/filter/transparency.h \
-	extension/internal/filter/filter-all.cpp \
-	extension/internal/filter/filter-file.cpp \
-	extension/internal/filter/filter.cpp \
-	extension/internal/filter/filter.h \
-	extension/internal/text_reassemble.c \
-	extension/internal/text_reassemble.h \
-	extension/internal/emf-print.h \
-	extension/internal/emf-print.cpp \
-	extension/internal/emf-inout.h \
-	extension/internal/emf-inout.cpp \
-	extension/internal/metafile-inout.h \
-	extension/internal/metafile-inout.cpp \
-	extension/internal/metafile-print.h \
-	extension/internal/metafile-print.cpp \
-	extension/internal/wmf-print.h \
-	extension/internal/wmf-print.cpp \
-	extension/internal/wmf-inout.h \
-	extension/internal/wmf-inout.cpp \
-	extension/internal/image-resolution.h \
-	extension/internal/image-resolution.cpp
-	
diff --git a/src/filters/Makefile_insert b/src/filters/Makefile_insert
deleted file mode 100644
index ea9ff4b56..000000000
--- a/src/filters/Makefile_insert
+++ /dev/null
@@ -1,46 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	filters/blend.cpp				\
-	filters/blend.h					\
-	filters/colormatrix.cpp				\
-	filters/colormatrix.h				\
-	filters/componenttransfer.cpp			\
-	filters/componenttransfer-funcnode.cpp		\
-	filters/componenttransfer-funcnode.h		\
-	filters/componenttransfer.h			\
-	filters/composite.cpp				\
-	filters/composite.h				\
-	filters/convolvematrix.cpp			\
-	filters/convolvematrix.h			\
-	filters/diffuselighting.cpp			\
-	filters/diffuselighting.h			\
-	filters/displacementmap.cpp			\
-	filters/displacementmap.h			\
-	filters/distantlight.cpp			\
-	filters/distantlight.h				\
-	filters/flood.cpp				\
-	filters/flood.h					\
-	filters/gaussian-blur.cpp			\
-	filters/gaussian-blur.h				\
-	filters/image.cpp				\
-	filters/image.h					\
-	filters/merge.cpp				\
-	filters/merge.h					\
-	filters/mergenode.cpp				\
-	filters/mergenode.h				\
-	filters/morphology.cpp				\
-	filters/morphology.h				\
-	filters/offset.cpp				\
-	filters/offset.h				\
-	filters/pointlight.cpp				\
-	filters/pointlight.h				\
-	filters/specularlighting.cpp			\
-	filters/specularlighting.h			\
-	filters/spotlight.cpp				\
-	filters/spotlight.h				\
-	filters/tile.cpp				\
-	filters/tile.h					\
-	filters/turbulence.cpp				\
-	filters/turbulence.h
-
diff --git a/src/helper/Makefile_insert b/src/helper/Makefile_insert
deleted file mode 100644
index e59fcfb70..000000000
--- a/src/helper/Makefile_insert
+++ /dev/null
@@ -1,45 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-helper/unit-menu.$(OBJEXT): helper/sp-marshal.h
-
-ink_common_sources +=	\
-	helper/action.cpp	\
-	helper/action.h	\
-	helper/action-context.cpp	\
-	helper/action-context.h	\
-	helper/geom.cpp	\
-	helper/geom.h	\
-	helper/geom-curves.h	\
-	helper/geom-nodetype.cpp	\
-	helper/geom-nodetype.h	\
-	helper/geom-pathstroke.cpp      \
-	helper/geom-pathstroke.h        \
-	helper/gnome-utils.cpp	\
-	helper/gnome-utils.h	\
-	helper/mathfns.h \
-	helper/png-write.cpp	\
-	helper/png-write.h	\
-	helper/sp-marshal.cpp	\
-	helper/sp-marshal.h	\
-	helper/window.cpp	\
-	helper/window.h		\
-	helper/stock-items.cpp	\
-	helper/stock-items.h	
-
-# cmp exits with status 0 when there are no differences. "if" executes the commands
-# after "then" when the exit status of the if command is 0 (this is crazy).
-helper/sp-marshal.h: helper/sp-marshal.list
-	glib-genmarshal --prefix=sp_marshal --header $(srcdir)/helper/sp-marshal.list > helper/tmp.sp-marshal.h
-	if cmp -s helper/sp-marshal.h helper/tmp.sp-marshal.h; \
-	then rm helper/tmp.sp-marshal.h; \
-	else mv helper/tmp.sp-marshal.h helper/sp-marshal.h; fi
-
-helper/sp-marshal.cpp: helper/sp-marshal.list helper/sp-marshal.h
-	( echo '#include "helper/sp-marshal.h"' &&	\
-	  glib-genmarshal --prefix=sp_marshal --body $(srcdir)/helper/sp-marshal.list )	\
-	 > helper/tmp.sp-marshal.cpp; \
-	if cmp -s helper/sp-marshal.cpp helper/tmp.sp-marshal.cpp; \
-	then rm helper/tmp.sp-marshal.cpp; \
-	else mv helper/tmp.sp-marshal.cpp helper/sp-marshal.cpp; fi
-
-helper/sp-marshal.cpp helper/sp-marshal.h: helper/sp-marshal.list
diff --git a/src/inkgc/Makefile_insert b/src/inkgc/Makefile_insert
deleted file mode 100644
index 58aa39bb9..000000000
--- a/src/inkgc/Makefile_insert
+++ /dev/null
@@ -1,13 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-inkgc/all: inkgc/libinkgc.a
-
-inkgc/clean:
-	rm -f inkgc/libinkgc.a $(inkgc_libinkgc_a_OBJECTS)
-
-inkgc_libinkgc_a_SOURCES =         \
-	inkgc/gc.cpp		\
-	inkgc/gc-alloc.h	\
-	inkgc/gc-core.h		\
-	inkgc/gc-managed.h	\
-	inkgc/gc-soft-ptr.h
diff --git a/src/io/Makefile_insert b/src/io/Makefile_insert
deleted file mode 100644
index 35119ec7b..000000000
--- a/src/io/Makefile_insert
+++ /dev/null
@@ -1,26 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	io/base64stream.h \
-	io/base64stream.cpp \
-	io/bufferstream.cpp  \
-	io/bufferstream.h    \
-	io/gzipstream.cpp \
-	io/gzipstream.h \
-	io/inkjar.cpp \
-	io/inkjar.h \
-	io/inkscapestream.cpp \
-	io/inkscapestream.h \
-	io/resource.cpp \
-	io/resource.h \
-	io/stringstream.cpp \
-	io/stringstream.h \
-	io/sys.h \
-	io/sys.cpp \
-	io/uristream.cpp \
-	io/uristream.h \
-	io/xsltstream.cpp \
-	io/xsltstream.h
-
-#io_streamtest_SOURCES = io/streamtest.cpp
-#io_streamtest_LDADD =   $(all_libs)
diff --git a/src/libavoid/Makefile_insert b/src/libavoid/Makefile_insert
deleted file mode 100644
index 3a9b97cef..000000000
--- a/src/libavoid/Makefile_insert
+++ /dev/null
@@ -1,37 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libavoid/all: libavoid/libavoid.a
-
-libavoid/clean:
-	rm -f libavoid/libavoid.a $(libavoid_libavoid_a_OBJECTS)
-
-libavoid_libavoid_a_SOURCES =	\
-	libavoid/assertions.h	\
-	libavoid/connector.cpp	\
-	libavoid/connector.h	\
-	libavoid/debug.h	\
-	libavoid/geometry.cpp	\
-	libavoid/geometry.h	\
-	libavoid/geomtypes.cpp	\
-	libavoid/geomtypes.h	\
-	libavoid/graph.cpp	\
-	libavoid/graph.h	\
-	libavoid/makepath.cpp	\
-	libavoid/makepath.h	\
-	libavoid/orthogonal.cpp	\
-	libavoid/orthogonal.h	\
-	libavoid/vpsc.cpp	\
-	libavoid/vpsc.h		\
-	libavoid/router.cpp	\
-	libavoid/router.h	\
-	libavoid/shape.cpp	\
-	libavoid/shape.h	\
-	libavoid/timer.cpp	\
-	libavoid/timer.h	\
-	libavoid/vertices.cpp	\
-	libavoid/vertices.h	\
-	libavoid/visibility.cpp	\
-	libavoid/visibility.h	\
-	libavoid/viscluster.cpp \
-	libavoid/viscluster.h   \
-	libavoid/libavoid.h
diff --git a/src/libcola/Makefile_insert b/src/libcola/Makefile_insert
deleted file mode 100644
index dc032a289..000000000
--- a/src/libcola/Makefile_insert
+++ /dev/null
@@ -1,18 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcola/all: libcola.a
-
-libcola/clean:
-	rm -f libcola/libcola.a $(libcola_libcola_a_OBJECTS)
-
-libcola_libcola_a_SOURCES = libcola/cola.h\
-	libcola/cola.cpp\
-	libcola/conjugate_gradient.cpp\
-	libcola/conjugate_gradient.h\
-	libcola/gradient_projection.cpp\
-	libcola/gradient_projection.h\
-	libcola/shortest_paths.cpp\
-	libcola/shortest_paths.h\
-	libcola/straightener.h\
-	libcola/straightener.cpp\
-	libcola/connected_components.cpp
diff --git a/src/libcroco/Makefile_insert b/src/libcroco/Makefile_insert
deleted file mode 100644
index 97ed49ee8..000000000
--- a/src/libcroco/Makefile_insert
+++ /dev/null
@@ -1,64 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libcroco/all: libcroco/libcroco.a
-
-libcroco/clean:
-	rm -f libcroco/libcroco.a $(libcroco_libcroco_a_OBJECTS)
-
-libcroco_libcroco_a_SOURCES =	\
-	libcroco/cr-utils.c	\
-	libcroco/cr-utils.h	\
-	libcroco/cr-input.c	\
-	libcroco/cr-input.h	\
-	libcroco/cr-enc-handler.c	\
-	libcroco/cr-enc-handler.h	\
-	libcroco/cr-num.c	\
-	libcroco/cr-num.h	\
-	libcroco/cr-rgb.c	\
-	libcroco/cr-rgb.h	\
-	libcroco/cr-token.c	\
-	libcroco/cr-token.h	\
-	libcroco/cr-tknzr.c	\
-	libcroco/cr-tknzr.h	\
-	libcroco/cr-term.c	\
-	libcroco/cr-term.h	\
-	libcroco/cr-attr-sel.c	\
-	libcroco/cr-attr-sel.h	\
-	libcroco/cr-pseudo.c	\
-	libcroco/cr-pseudo.h	\
-	libcroco/cr-additional-sel.c	\
-	libcroco/cr-additional-sel.h	\
-	libcroco/cr-simple-sel.c	\
-	libcroco/cr-simple-sel.h	\
-	libcroco/cr-selector.c	\
-	libcroco/cr-selector.h	\
-	libcroco/cr-doc-handler.c	\
-	libcroco/cr-doc-handler.h	\
-	libcroco/cr-parser.c	\
-	libcroco/cr-parser.h	\
-	libcroco/cr-declaration.c	\
-	libcroco/cr-declaration.h	\
-	libcroco/cr-statement.c	\
-	libcroco/cr-statement.h	\
-	libcroco/cr-stylesheet.c	\
-	libcroco/cr-stylesheet.h	\
-	libcroco/cr-cascade.c	\
-	libcroco/cr-cascade.h	\
-	libcroco/cr-om-parser.c	\
-	libcroco/cr-om-parser.h	\
-	libcroco/cr-style.c	\
-	libcroco/cr-style.h	\
-	libcroco/cr-libxml-node-iface.c	\
-	libcroco/cr-libxml-node-iface.h	\
-	libcroco/cr-node-iface.h	\
-	libcroco/cr-sel-eng.c	\
-	libcroco/cr-sel-eng.h	\
-	libcroco/cr-fonts.c	\
-	libcroco/cr-fonts.h	\
-	libcroco/cr-prop-list.c	\
-	libcroco/cr-prop-list.h	\
-	libcroco/cr-parsing-location.c	\
-	libcroco/cr-parsing-location.h	\
-	libcroco/cr-string.c	\
-	libcroco/cr-string.h	\
-	libcroco/libcroco.h
diff --git a/src/libdepixelize/Makefile_insert b/src/libdepixelize/Makefile_insert
deleted file mode 100644
index 8aed7244f..000000000
--- a/src/libdepixelize/Makefile_insert
+++ /dev/null
@@ -1,22 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libdepixelize/all: libdepixelize/libdepixelize.a
-
-libdepixelize/clean:
-	rm -f libdepixelize/libdepixelize.a $(libdepixelize_libdepixelize_a_OBJECTS)
-
-libdepixelize_libdepixelize_a_SOURCES =            \
-	libdepixelize/kopftracer2011.cpp           \
-	libdepixelize/kopftracer2011.h             \
-	libdepixelize/splines.h                    \
-	libdepixelize/priv/branchless.h            \
-	libdepixelize/priv/colorspace.h            \
-	libdepixelize/priv/curvature.h             \
-	libdepixelize/priv/homogeneoussplines.h    \
-	libdepixelize/priv/integral.h              \
-	libdepixelize/priv/iterator.h              \
-	libdepixelize/priv/optimization-kopf2011.h \
-	libdepixelize/priv/pixelgraph.h            \
-	libdepixelize/priv/point.h                 \
-	libdepixelize/priv/simplifiedvoronoi.h     \
-	libdepixelize/priv/splines-kopf2011.h
diff --git a/src/libnrtype/Makefile_insert b/src/libnrtype/Makefile_insert
deleted file mode 100644
index ab9465daa..000000000
--- a/src/libnrtype/Makefile_insert
+++ /dev/null
@@ -1,28 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	libnrtype/boundary-type.h	\
-	libnrtype/font-glyph.h	\
-	libnrtype/font-instance.h	\
-	libnrtype/font-style.h	\
-	libnrtype/nr-type-primitives.cpp	\
-	libnrtype/nr-type-primitives.h	\
-	libnrtype/FontFactory.cpp \
-	libnrtype/FontFactory.h \
-	libnrtype/FontInstance.cpp \
-	libnrtype/font-lister.h \
-	libnrtype/font-lister.cpp \
-	libnrtype/one-box.h	\
-	libnrtype/one-glyph.h	\
-	libnrtype/one-para.h	\
-	libnrtype/text-boundary.h	\
-	libnrtype/TextWrapper.cpp \
-	libnrtype/TextWrapper.h \
-	libnrtype/Layout-TNG-Compute.cpp \
-	libnrtype/Layout-TNG-Input.cpp \
-	libnrtype/Layout-TNG-OutIter.cpp \
-	libnrtype/Layout-TNG-Output.cpp \
-	libnrtype/Layout-TNG-Scanline-Maker.h \
-	libnrtype/Layout-TNG-Scanline-Makers.cpp \
-	libnrtype/Layout-TNG.cpp \
-	libnrtype/Layout-TNG.h
diff --git a/src/libuemf/Makefile_insert b/src/libuemf/Makefile_insert
deleted file mode 100644
index 427a0e80e..000000000
--- a/src/libuemf/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-libuemf/all: libuemf.a
-
-libuemf/clean:
-	rm -f libuemf/libuemf.a $(libuemf_libuemf_a_OBJECTS)
-
-libuemf_libuemf_a_SOURCES = \
-	libuemf/uemf.c \
-	libuemf/uemf.h \
-	libuemf/uemf_endian.c \
-	libuemf/uemf_endian.h \
-	libuemf/uemf_print.c \
-	libuemf/uemf_print.h \
-	libuemf/uemf_safe.c \
-	libuemf/uemf_safe.h \
-	libuemf/uemf_utf.c \
-	libuemf/uemf_utf.h \
-	libuemf/uwmf.c \
-	libuemf/uwmf.h \
-	libuemf/uwmf_endian.c \
-	libuemf/uwmf_endian.h \
-	libuemf/uwmf_print.c \
-	libuemf/uwmf_print.h \
-	libuemf/upmf.c \
-	libuemf/upmf.h \
-	libuemf/upmf_print.c \
-	libuemf/upmf_print.h \
-	libuemf/symbol_convert.c \
-	libuemf/symbol_convert.h
diff --git a/src/libvpsc/Makefile_insert b/src/libvpsc/Makefile_insert
deleted file mode 100644
index cb05be6c0..000000000
--- a/src/libvpsc/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-libvpsc/all: libvpsc/libvpsc.a
-
-libvpsc/clean:
-	rm -f libvpsc/libvpsc.a $(libvpsc_libvpsc_a_OBJECTS)
-
-libvpsc_libvpsc_a_SOURCES = libvpsc/block.cpp\
-	libvpsc/blocks.cpp\
-	libvpsc/constraint.cpp\
-	libvpsc/generate-constraints.cpp\
-	libvpsc/pairingheap/PairingHeap.cpp\
-	libvpsc/remove_rectangle_overlap.cpp\
-	libvpsc/solve_VPSC.cpp\
-	libvpsc/variable.cpp\
-	libvpsc/block.h\
-	libvpsc/blocks.h\
-	libvpsc/constraint.h\
-	libvpsc/generate-constraints.h\
-	libvpsc/pairingheap/PairingHeap.h\
-	libvpsc/pairingheap/dsexceptions.h\
-	libvpsc/remove_rectangle_overlap.h\
-	libvpsc/solve_VPSC.h\
-	libvpsc/variable.h
diff --git a/src/livarot/Makefile_insert b/src/livarot/Makefile_insert
deleted file mode 100644
index 69078d073..000000000
--- a/src/livarot/Makefile_insert
+++ /dev/null
@@ -1,41 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-livarot/all: livarot/libvarot.a
-
-livarot/clean:
-	rm -f livarot/libvarot.a $(livarot_libvarot_a_OBJECTS)
-
-livarot_libvarot_a_SOURCES =	\
-	livarot/AVL.cpp	\
-	livarot/AVL.h	\
-	livarot/AlphaLigne.cpp	\
-	livarot/AlphaLigne.h	\
-	livarot/BitLigne.cpp	\
-	livarot/BitLigne.h	\
-	livarot/float-line.cpp	\
-	livarot/float-line.h	\
-	livarot/int-line.cpp	\
-	livarot/int-line.h	\
-	livarot/LivarotDefs.h	\
-	livarot/Path.cpp	\
-	livarot/Path.h	\
-	livarot/PathConversion.cpp	\
-	livarot/PathCutting.cpp	\
-	livarot/PathOutline.cpp	\
-	livarot/PathSimplify.cpp	\
-	livarot/PathStroke.cpp	\
-	livarot/Shape.cpp	\
-	livarot/Shape.h	\
-	livarot/ShapeDraw.cpp	\
-	livarot/ShapeMisc.cpp	\
-	livarot/ShapeRaster.cpp	\
-	livarot/ShapeSweep.cpp	\
-	livarot/sweep-tree-list.cpp	\
-	livarot/sweep-tree-list.h	\
-	livarot/sweep-tree.cpp \
-	livarot/sweep-tree.h \
-	livarot/sweep-event.cpp \
-	livarot/sweep-event.h	\
-	livarot/sweep-event-queue.h	\
-	livarot/path-description.h \
-	livarot/path-description.cpp
diff --git a/src/live_effects/Makefile_insert b/src/live_effects/Makefile_insert
deleted file mode 100644
index b5bee55c8..000000000
--- a/src/live_effects/Makefile_insert
+++ /dev/null
@@ -1,115 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	live_effects/effect.cpp	\
-	live_effects/effect.h	\
-	live_effects/effect-enum.h	\
-	live_effects/lpeobject.cpp	\
-	live_effects/lpeobject.h	\
-	live_effects/lpegroupbbox.cpp	\
-	live_effects/lpegroupbbox.h	\
-	live_effects/lpeobject-reference.cpp	\
-	live_effects/lpeobject-reference.h	\
-	live_effects/lpe-patternalongpath.cpp	\
-	live_effects/lpe-patternalongpath.h	\
-	live_effects/lpe-bendpath.cpp	\
-	live_effects/lpe-bendpath.h	\
-	live_effects/lpe-dynastroke.cpp	\
-	live_effects/lpe-dynastroke.h	\
-	live_effects/lpe-extrude.cpp	\
-	live_effects/lpe-extrude.h	\
-	live_effects/lpe-sketch.cpp	\
-	live_effects/lpe-sketch.h	\
-	live_effects/lpe-knot.cpp	\
-	live_effects/lpe-knot.h	\
-	live_effects/lpe-vonkoch.cpp	\
-	live_effects/lpe-vonkoch.h	\
-	live_effects/lpe-rough-hatches.cpp	\
-	live_effects/lpe-rough-hatches.h	\
-	live_effects/lpe-curvestitch.cpp	\
-	live_effects/lpe-curvestitch.h	\
-	live_effects/lpe-constructgrid.cpp	\
-	live_effects/lpe-constructgrid.h	\
-	live_effects/lpe-fillet-chamfer.cpp	\
-	live_effects/lpe-fillet-chamfer.h	\
-	live_effects/lpe-gears.cpp	\
-	live_effects/lpe-gears.h	\
-	live_effects/lpe-interpolate.cpp	\
-	live_effects/lpe-interpolate.h	\
-	live_effects/lpe-interpolate_points.cpp	\
-	live_effects/lpe-interpolate_points.h	\
-	live_effects/lpe-test-doEffect-stack.cpp	\
-	live_effects/lpe-test-doEffect-stack.h	\
-	live_effects/lpe-bspline.cpp	\
-	live_effects/lpe-bspline.h	\
-	live_effects/lpe-lattice.cpp	\
-	live_effects/lpe-lattice.h	\
-	live_effects/lpe-lattice2.cpp	\
-	live_effects/lpe-lattice2.h	\
-	live_effects/lpe-roughen.cpp	\
-	live_effects/lpe-roughen.h	\
-	live_effects/lpe-show_handles.cpp	\
-	live_effects/lpe-show_handles.h	\
-	live_effects/lpe-simplify.cpp	\
-	live_effects/lpe-simplify.h	\
-	live_effects/lpe-envelope.cpp	\
-	live_effects/lpe-envelope.h	\
-	live_effects/lpe-spiro.cpp	\
-	live_effects/lpe-spiro.h	\
-	live_effects/lpe-tangent_to_curve.cpp	\
-	live_effects/lpe-tangent_to_curve.h	\
-	live_effects/lpe-perp_bisector.cpp	\
-	live_effects/lpe-perp_bisector.h	\
-	live_effects/spiro.h	\
-	live_effects/spiro.cpp	\
-	live_effects/spiro-converters.h	\
-	live_effects/spiro-converters.cpp	\
-	live_effects/lpe-circle_with_radius.cpp	\
-	live_effects/lpe-circle_with_radius.h	\
-	live_effects/lpe-perspective_path.cpp	\
-	live_effects/lpe-perspective_path.h		\
-	live_effects/lpe-perspective-envelope.cpp	\
-	live_effects/lpe-perspective-envelope.h		\
-	live_effects/lpe-mirror_symmetry.cpp	\
-	live_effects/lpe-mirror_symmetry.h	\
-	live_effects/lpe-circle_3pts.cpp	\
-	live_effects/lpe-circle_3pts.h	\
-	live_effects/lpe-transform_2pts.cpp	\
-	live_effects/lpe-transform_2pts.h	\
-	live_effects/lpe-angle_bisector.cpp	\
-	live_effects/lpe-angle_bisector.h	\
-	live_effects/lpe-parallel.cpp	\
-	live_effects/lpe-parallel.h	\
-	live_effects/lpe-copy_rotate.cpp	\
-	live_effects/lpe-copy_rotate.h	\
-	live_effects/lpe-powerstroke.cpp	\
-	live_effects/lpe-powerstroke.h	\
-	live_effects/lpe-powerstroke-interpolators.h	\
-	live_effects/lpe-offset.cpp	\
-	live_effects/lpe-offset.h	\
-	live_effects/lpe-clone-original.cpp	\
-	live_effects/lpe-clone-original.h	\
-	live_effects/lpe-ruler.cpp	\
-	live_effects/lpe-ruler.h	\
-	live_effects/lpe-recursiveskeleton.cpp	\
-	live_effects/lpe-recursiveskeleton.h	\
-	live_effects/lpe-text_label.cpp	\
-	live_effects/lpe-text_label.h	\
-	live_effects/lpe-path_length.cpp	\
-	live_effects/lpe-path_length.h	\
-	live_effects/lpe-line_segment.cpp	\
-	live_effects/lpe-line_segment.h	\
-	live_effects/lpe-bounding-box.cpp	\
-	live_effects/lpe-bounding-box.h	\
-	live_effects/lpe-attach-path.cpp	\
-	live_effects/lpe-attach-path.h	\
-	live_effects/lpe-fill-between-strokes.cpp	\
-	live_effects/lpe-fill-between-strokes.h	\
-	live_effects/lpe-fill-between-many.cpp	\
-	live_effects/lpe-fill-between-many.h	\
-	live_effects/lpe-ellipse_5pts.cpp	\
-	live_effects/lpe-ellipse_5pts.h	\
-	live_effects/lpe-jointype.cpp	\
-	live_effects/lpe-jointype.h	\
-	live_effects/lpe-taperstroke.cpp	\
-	live_effects/lpe-taperstroke.h 	
diff --git a/src/live_effects/parameter/Makefile_insert b/src/live_effects/parameter/Makefile_insert
deleted file mode 100644
index bd1c5b600..000000000
--- a/src/live_effects/parameter/Makefile_insert
+++ /dev/null
@@ -1,36 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	live_effects/parameter/parameter.cpp	\
-	live_effects/parameter/parameter.h	\
-	live_effects/parameter/array.cpp	\
-	live_effects/parameter/array.h	\
-	live_effects/parameter/bool.cpp	\
-	live_effects/parameter/bool.h	\
-	live_effects/parameter/random.cpp	\
-	live_effects/parameter/random.h	\
-	live_effects/parameter/point.cpp	\
-	live_effects/parameter/point.h	\
-	live_effects/parameter/enum.h	\
-	live_effects/parameter/path-reference.cpp	\
-	live_effects/parameter/path-reference.h	\
-	live_effects/parameter/path.cpp	\
-	live_effects/parameter/path.h	\
-	live_effects/parameter/originalpath.cpp	\
-	live_effects/parameter/originalpath.h	\
-	live_effects/parameter/originalpatharray.cpp	\
-	live_effects/parameter/originalpatharray.h	\
-	live_effects/parameter/powerstrokepointarray.cpp	\
-	live_effects/parameter/powerstrokepointarray.h	\
-	live_effects/parameter/filletchamferpointarray.cpp	\
-	live_effects/parameter/filletchamferpointarray.h	\
-	live_effects/parameter/text.cpp	\
-	live_effects/parameter/text.h	\
-	live_effects/parameter/transformedpoint.cpp	\
-	live_effects/parameter/transformedpoint.h	\
-	live_effects/parameter/togglebutton.cpp	\
-	live_effects/parameter/togglebutton.h	\
-	live_effects/parameter/unit.cpp	\
-	live_effects/parameter/unit.h	\
-	live_effects/parameter/vector.cpp	\
-	live_effects/parameter/vector.h
diff --git a/src/svg/Makefile_insert b/src/svg/Makefile_insert
deleted file mode 100644
index 4f82bdd76..000000000
--- a/src/svg/Makefile_insert
+++ /dev/null
@@ -1,32 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	svg/css-ostringstream.h	\
-	svg/css-ostringstream.cpp	\
-	svg/path-string.h	\
-	svg/path-string.cpp \
-	svg/stringstream.h	\
-	svg/stringstream.cpp	\
-	svg/strip-trailing-zeros.h	\
-	svg/strip-trailing-zeros.cpp	\
-	svg/svg-affine.cpp	\
-	svg/svg-color.cpp	\
-	svg/svg-color.h 	\
-	svg/svg-icc-color.h \
-	svg/svg-angle.cpp   \
-	svg/svg-angle.h     \
-	svg/svg-length.cpp	\
-	svg/svg-length.h	\
-	svg/svg-path.cpp	\
-	svg/svg.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/svg/css-ostringstream-test.h	\
-	$(srcdir)/svg/stringstream-test.h	\
-	$(srcdir)/svg/svg-affine-test.h		\
-	$(srcdir)/svg/svg-color-test.h		\
-	$(srcdir)/svg/svg-length-test.h		\
-	$(srcdir)/svg/svg-path-geom-test.h
diff --git a/src/trace/Makefile_insert b/src/trace/Makefile_insert
deleted file mode 100644
index 27353df15..000000000
--- a/src/trace/Makefile_insert
+++ /dev/null
@@ -1,23 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-if HAVE_POTRACE
-
-ink_common_sources +=	            \
-	trace/pool.h                        \
-	trace/trace.h                       \
-	trace/trace.cpp                     \
-	trace/imagemap-gdk.cpp	            \
-	trace/imagemap-gdk.h	            \
-	trace/imagemap.cpp	            \
-	trace/imagemap.h	            \
-	trace/quantize.h	            \
-	trace/quantize.cpp	            \
-	trace/filterset.h	            \
-	trace/filterset.cpp	            \
-	trace/siox.h			    \
-	trace/siox.cpp			    \
-	trace/potrace/bitmap.h              \
-	trace/potrace/inkscape-potrace.cpp  \
-	trace/potrace/inkscape-potrace.h
-
-endif
diff --git a/src/ui/Makefile_insert b/src/ui/Makefile_insert
deleted file mode 100644
index bbfdb532c..000000000
--- a/src/ui/Makefile_insert
+++ /dev/null
@@ -1,31 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/clipboard.cpp	\
-	ui/clipboard.h		\
-	ui/control-manager.cpp	\
-	ui/control-manager.h	\
-	ui/control-types.h	\
-	ui/dialog-events.cpp    \
-	ui/dialog-events.h      \
-	ui/draw-anchor.cpp	\
-	ui/draw-anchor.h	\
-	ui/icon-names.h		\
-	ui/interface.cpp	\
-	ui/interface.h		\
-	ui/object-edit.cpp	\
-	ui/object-edit.h	\
-	ui/previewable.h	\
-	ui/previewfillable.h	\
-	ui/previewholder.cpp	\
-	ui/previewholder.h	\
-	ui/selected-color.h     \
-	ui/selected-color.cpp   \
-	ui/shape-editor.cpp	\
-	ui/shape-editor.h	\
-	ui/tool-factory.cpp	\
-	ui/tool-factory.h	\
-	ui/tools-switch.cpp	\
-	ui/tools-switch.h	\
-	ui/uxmanager.cpp	\
-	ui/uxmanager.h
diff --git a/src/ui/cache/Makefile_insert b/src/ui/cache/Makefile_insert
deleted file mode 100644
index c648777f8..000000000
--- a/src/ui/cache/Makefile_insert
+++ /dev/null
@@ -1,6 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	ui/cache/svg_preview_cache.h	\
-	ui/cache/svg_preview_cache.cpp
-
diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert
deleted file mode 100644
index 71628973e..000000000
--- a/src/ui/dialog/Makefile_insert
+++ /dev/null
@@ -1,133 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/dialog/aboutbox.cpp			\
-	ui/dialog/aboutbox.h			\
-	ui/dialog/align-and-distribute.cpp	\
-	ui/dialog/align-and-distribute.h	\
-	ui/dialog/arrange-tab.h			\
-	ui/dialog/behavior.h			\
-	ui/dialog/calligraphic-profile-rename.h	\
-	ui/dialog/calligraphic-profile-rename.cpp	\
-	ui/dialog/clonetiler.cpp		\
-	ui/dialog/clonetiler.h		\
-	ui/dialog/color-item.cpp		\
-	ui/dialog/color-item.h			\
-	ui/dialog/debug.cpp			\
-	ui/dialog/debug.h			\
-	ui/dialog/desktop-tracker.cpp		\
-	ui/dialog/desktop-tracker.h		\
-	ui/dialog/dialog.cpp			\
-	ui/dialog/dialog.h			\
-	ui/dialog/dialog-manager.cpp		\
-	ui/dialog/dialog-manager.h		\
-	ui/dialog/dock-behavior.cpp		\
-	ui/dialog/dock-behavior.h		\
-	ui/dialog/document-metadata.cpp  	\
-	ui/dialog/document-metadata.h    	\
-	ui/dialog/document-properties.cpp	\
-	ui/dialog/document-properties.h		\
-	ui/dialog/export.cpp		\
-	ui/dialog/export.h		\
-	ui/dialog/extension-editor.cpp		\
-	ui/dialog/extension-editor.h		\
-	ui/dialog/extensions.cpp		\
-	ui/dialog/extensions.h			\
-	ui/dialog/filedialog.cpp		\
-	ui/dialog/filedialog.h			\
-	ui/dialog/filedialogimpl-gtkmm.cpp      \
-	ui/dialog/filedialogimpl-gtkmm.h        \
-	ui/dialog/filedialogimpl-win32.cpp	\
-	ui/dialog/filedialogimpl-win32.h	\
-	ui/dialog/fill-and-stroke.cpp		\
-	ui/dialog/fill-and-stroke.h		\
-	ui/dialog/filter-effects-dialog.cpp	\
-	ui/dialog/filter-effects-dialog.h	\
-	ui/dialog/find.cpp			\
-	ui/dialog/find.h			\
-	ui/dialog/font-substitution.cpp			\
-	ui/dialog/font-substitution.h			\
-	ui/dialog/floating-behavior.cpp		\
-	ui/dialog/floating-behavior.h		\
-	ui/dialog/glyphs.cpp			\
-	ui/dialog/glyphs.h			\
-	ui/dialog/grid-arrange-tab.h		\
-	ui/dialog/grid-arrange-tab.cpp		\
-	ui/dialog/guides.cpp			\
-	ui/dialog/guides.h			\
-	ui/dialog/icon-preview.cpp		\
-	ui/dialog/icon-preview.h		\
-	ui/dialog/inkscape-preferences.cpp	\
-	ui/dialog/inkscape-preferences.h	\
-	ui/dialog/input.cpp			\
-	ui/dialog/input.h			\
-	ui/dialog/knot-properties.cpp		\
-	ui/dialog/knot-properties.h		\
-	ui/dialog/layer-properties.cpp		\
-	ui/dialog/layer-properties.h		\
-	ui/dialog/layers.cpp			\
-	ui/dialog/layers.h			\
-	ui/dialog/livepatheffect-add.cpp	\
-	ui/dialog/livepatheffect-add.h	\
-	ui/dialog/livepatheffect-editor.cpp	\
-	ui/dialog/livepatheffect-editor.h	\
-	ui/dialog/memory.cpp			\
-	ui/dialog/memory.h			\
-	ui/dialog/messages.cpp			\
-	ui/dialog/messages.h			\
-	ui/dialog/new-from-template.cpp		\
-	ui/dialog/new-from-template.h		\
-	ui/dialog/ocaldialogs.cpp		\
-	ui/dialog/ocaldialogs.h			\
-	ui/dialog/object-attributes.cpp \
-	ui/dialog/object-attributes.h	\
-	ui/dialog/object-properties.cpp \
-	ui/dialog/object-properties.h	\
-	ui/dialog/panel-dialog.h		\
-	ui/dialog/polar-arrange-tab.cpp		\
-	ui/dialog/polar-arrange-tab.h		\
-	ui/dialog/print.cpp			\
-	ui/dialog/print.h			\
-	ui/dialog/print-colors-preview-dialog.cpp		\
-	ui/dialog/print-colors-preview-dialog.h		\
-	ui/dialog/spellcheck.cpp		\
-	ui/dialog/spellcheck.h		\
-	ui/dialog/svg-fonts-dialog.cpp		\
-	ui/dialog/svg-fonts-dialog.h		\
-	ui/dialog/swatches.cpp			\
-	ui/dialog/swatches.h			\
-	ui/dialog/symbols.cpp			\
-	ui/dialog/symbols.h			\
-	ui/dialog/template-load-tab.cpp		\
-	ui/dialog/template-load-tab.h		\
-	ui/dialog/template-widget.cpp		\
-	ui/dialog/template-widget.h		\
-	ui/dialog/tags.cpp			\
-	ui/dialog/tags.h			\
-	ui/dialog/text-edit.cpp			\
-	ui/dialog/text-edit.h			\
-	ui/dialog/tile.cpp			\
-	ui/dialog/tile.h			\
-	ui/dialog/pixelartdialog.cpp		\
-	ui/dialog/pixelartdialog.h		\
-	ui/dialog/transformation.cpp		\
-	ui/dialog/transformation.h		\
-	ui/dialog/undo-history.cpp		\
-	ui/dialog/undo-history.h		\
-	ui/dialog/xml-tree.cpp		\
-	ui/dialog/xml-tree.h		\
-	ui/dialog/lpe-powerstroke-properties.cpp	\
-	ui/dialog/lpe-powerstroke-properties.h	\
-	ui/dialog/objects.cpp	\
-	ui/dialog/objects.h	\
-	ui/dialog/lpe-fillet-chamfer-properties.cpp		\
-	ui/dialog/lpe-fillet-chamfer-properties.h		\
-	$(inkboard_dialogs)
-
-if HAVE_POTRACE
-
-ink_common_sources +=		\
-	ui/dialog/tracedialog.cpp		\
-	ui/dialog/tracedialog.h
-
-endif
diff --git a/src/ui/tool/Makefile_insert b/src/ui/tool/Makefile_insert
deleted file mode 100644
index f46f48b72..000000000
--- a/src/ui/tool/Makefile_insert
+++ /dev/null
@@ -1,30 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	ui/tool/control-point.cpp		\
-	ui/tool/control-point.h			\
-	ui/tool/control-point-selection.cpp	\
-	ui/tool/control-point-selection.h	\
-	ui/tool/commit-events.h			\
-	ui/tool/curve-drag-point.cpp		\
-	ui/tool/curve-drag-point.h		\
-	ui/tool/event-utils.cpp			\
-	ui/tool/event-utils.h			\
-	ui/tool/manipulator.cpp			\
-	ui/tool/manipulator.h			\
-	ui/tool/modifier-tracker.cpp			\
-	ui/tool/modifier-tracker.h			\
-	ui/tool/multi-path-manipulator.cpp	\
-	ui/tool/multi-path-manipulator.h	\
-	ui/tool/node.cpp			\
-	ui/tool/node.h				\
-	ui/tool/node-types.h			\
-	ui/tool/path-manipulator.cpp		\
-	ui/tool/path-manipulator.h		\
-	ui/tool/selectable-control-point.cpp	\
-	ui/tool/selectable-control-point.h	\
-	ui/tool/selector.cpp			\
-	ui/tool/selector.h			\
-	ui/tool/shape-record.h			\
-	ui/tool/transform-handle-set.cpp	\
-	ui/tool/transform-handle-set.h
diff --git a/src/ui/tools/Makefile_insert b/src/ui/tools/Makefile_insert
deleted file mode 100644
index 686dfedd8..000000000
--- a/src/ui/tools/Makefile_insert
+++ /dev/null
@@ -1,34 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources += \
-	ui/tools/arc-tool.cpp ui/tools/arc-tool.h						\
-	ui/tools/box3d-tool.cpp ui/tools/box3d-tool.h					\
-	ui/tools/calligraphic-tool.cpp ui/tools/calligraphic-tool.h		\
-	ui/tools/connector-tool.cpp ui/tools/connector-tool.h			\
-	ui/tools/dropper-tool.cpp ui/tools/dropper-tool.h				\
-	ui/tools/dynamic-base.cpp ui/tools/dynamic-base.h				\
-	ui/tools/eraser-tool.cpp ui/tools/eraser-tool.h					\
-	ui/tools/freehand-base.cpp ui/tools/freehand-base.h				\
-	ui/tools/gradient-tool.cpp ui/tools/gradient-tool.h				\
-	ui/tools/lpe-tool.cpp ui/tools/lpe-tool.h						\
-	ui/tools/measure-tool.cpp ui/tools/measure-tool.h				\
-	ui/tools/mesh-tool.cpp ui/tools/mesh-tool.h						\
-	ui/tools/node-tool.cpp ui/tools/node-tool.h						\
-	ui/tools/pen-tool.cpp	ui/tools/pen-tool.h						\
-	ui/tools/pencil-tool.cpp ui/tools/pencil-tool.h					\
-	ui/tools/rect-tool.cpp ui/tools/rect-tool.h						\
-	ui/tools/select-tool.cpp ui/tools/select-tool.h					\
-	ui/tools/spiral-tool.cpp ui/tools/spiral-tool.h					\
-	ui/tools/spray-tool.cpp ui/tools/spray-tool.h					\
-	ui/tools/star-tool.cpp ui/tools/star-tool.h						\
-	ui/tools/text-tool.cpp ui/tools/text-tool.h						\
-	ui/tools/tool-base.cpp ui/tools/tool-base.h						\
-	ui/tools/tweak-tool.cpp ui/tools/tweak-tool.h					\
-	ui/tools/zoom-tool.cpp ui/tools/zoom-tool.h
-
-if HAVE_POTRACE
-
-ink_common_sources += \
-	ui/tools/flood-tool.cpp ui/tools/flood-tool.h
-
-endif
diff --git a/src/ui/view/Makefile_insert b/src/ui/view/Makefile_insert
deleted file mode 100644
index b3ab598d4..000000000
--- a/src/ui/view/Makefile_insert
+++ /dev/null
@@ -1,9 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=		\
-	ui/view/edit-widget-interface.h \
-	ui/view/view.h			\
-	ui/view/view.cpp		\
-	ui/view/view-widget.cpp \
-	ui/view/view-widget.h
-
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
deleted file mode 100644
index b22e4bd74..000000000
--- a/src/ui/widget/Makefile_insert
+++ /dev/null
@@ -1,106 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	ui/widget/anchor-selector.h	\
-	ui/widget/anchor-selector.cpp	\
-	ui/widget/attr-widget.h	\
-	ui/widget/button.h	\
-	ui/widget/button.cpp	\
-	ui/widget/color-entry.cpp    \
-	ui/widget/color-entry.h     \
-	ui/widget/color-icc-selector.cpp	\
-	ui/widget/color-icc-selector.h	\
-	ui/widget/color-notebook.cpp   \
-	ui/widget/color-notebook.h  \
-	ui/widget/color-wheel-selector.cpp    \
-	ui/widget/color-wheel-selector.h    \
-	ui/widget/color-picker.cpp     \
-	ui/widget/color-picker.h        \
-	ui/widget/color-preview.cpp     \
-	ui/widget/color-preview.h       \
-	ui/widget/color-slider.cpp      \
-	ui/widget/color-slider.h       \
-	ui/widget/color-scales.cpp   \
-	ui/widget/color-scales.h    \
-	ui/widget/combo-enums.h \
-	ui/widget/dock.h		\
-	ui/widget/dock.cpp		\
-	ui/widget/dock-item.h		\
-	ui/widget/dock-item.cpp		\
-	ui/widget/entity-entry.cpp      \
-	ui/widget/entity-entry.h        \
-	ui/widget/entry.cpp      \
-	ui/widget/entry.h        \
-	ui/widget/filter-effect-chooser.h \
-	ui/widget/filter-effect-chooser.cpp \
-	ui/widget/font-variants.h      	\
-	ui/widget/font-variants.cpp     \
-	ui/widget/frame.cpp      \
-	ui/widget/frame.h        \
-	ui/widget/imageicon.cpp		\
-	ui/widget/imageicon.h		\
-	ui/widget/imagetoggler.cpp		\
-	ui/widget/imagetoggler.h		\
-	ui/widget/labelled.cpp		\
-	ui/widget/labelled.h		\
-	ui/widget/layer-selector.cpp	\
-	ui/widget/layer-selector.h	\
-	ui/widget/licensor.cpp          \
-	ui/widget/licensor.h		\
-	ui/widget/notebook-page.cpp	\
-	ui/widget/notebook-page.h	\
-	ui/widget/object-composite-settings.cpp	\
-	ui/widget/object-composite-settings.h	\
-	ui/widget/page-sizer.cpp        \
-	ui/widget/page-sizer.h          \
-	ui/widget/panel.cpp		\
-	ui/widget/panel.h		\
-	ui/widget/point.cpp		\
-	ui/widget/point.h		\
-	ui/widget/preferences-widget.cpp \
-	ui/widget/preferences-widget.h   \
-	ui/widget/random.cpp \
-	ui/widget/random.h   \
-	ui/widget/registered-widget.cpp \
-	ui/widget/registered-widget.h   \
-	ui/widget/registered-enums.h   \
-	ui/widget/registry.cpp          \
-	ui/widget/registry.h            \
-	ui/widget/rendering-options.cpp          \
-	ui/widget/rendering-options.h            \
-	ui/widget/rotateable.h            \
-	ui/widget/rotateable.cpp            \
-	ui/widget/scalar-unit.cpp	\
-	ui/widget/scalar-unit.h		\
-	ui/widget/scalar.cpp		\
-	ui/widget/scalar.h		\
-	ui/widget/selected-style.h	\
-	ui/widget/selected-style.cpp	\
-	ui/widget/spinbutton.h	\
-	ui/widget/spinbutton.cpp	\
-	ui/widget/spin-scale.h		\
-	ui/widget/spin-scale.cpp	\
-	ui/widget/spin-slider.h		\
-	ui/widget/spin-slider.cpp	\
-	ui/widget/style-subject.h	\
-	ui/widget/style-subject.cpp	\
-	ui/widget/style-swatch.h        \
-	ui/widget/style-swatch.cpp      \
-	ui/widget/text.cpp		\
-	ui/widget/text.h		\
-	ui/widget/tolerance-slider.cpp  \
-	ui/widget/tolerance-slider.h    \
-	ui/widget/unit-menu.cpp		\
-	ui/widget/unit-menu.h \
-	ui/widget/unit-tracker.h \
-	ui/widget/unit-tracker.cpp	\
-	ui/widget/clipmaskicon.cpp	\
-	ui/widget/clipmaskicon.h	\
-	ui/widget/highlight-picker.cpp	\
-	ui/widget/highlight-picker.h	\
-	ui/widget/layertypeicon.cpp	\
-	ui/widget/layertypeicon.h	\
-	ui/widget/insertordericon.cpp	\
-	ui/widget/insertordericon.h	\
-	ui/widget/addtoicon.cpp	\
-	ui/widget/addtoicon.h
diff --git a/src/util/Makefile_insert b/src/util/Makefile_insert
deleted file mode 100644
index 2a778e660..000000000
--- a/src/util/Makefile_insert
+++ /dev/null
@@ -1,49 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-util/all: util/libutil.a
-
-util/clean:
-	rm -f util/libutil.a $(util_libutil_a_OBJECTS)
-
-util_libutil_a_SOURCES = \
-	util/ziptool.h \
-	util/ziptool.cpp	\
-	util/accumulators.h	\
-	util/compose.hpp	\
-	util/copy.h \
-	util/enums.h \
-	util/ege-appear-time-tracker.cpp	\
-	util/ege-appear-time-tracker.h	\
-	util/ege-tags.h \
-	util/ege-tags.cpp \
-	util/expression-evaluator.h \
-	util/expression-evaluator.cpp \
-	util/filter-list.h \
-	util/find-if-before.h \
-	util/find-last-if.h \
-	util/fixed_point.h \
-	util/format.h	\
-	util/forward-pointer-iterator.h \
-	util/function.h \
-	util/list.h \
-	util/list-container.h \
-	util/list-copy.h \
-	util/longest-common-suffix.h \
-	util/map-list.h \
-	util/reference.h \
-	util/reverse-list.h \
-	util/share.h \
-	util/share.cpp \
-	util/signal-blocker.h \
-	util/tuple.h \
-	util/ucompose.hpp \
-	util/units.cpp \
-	util/units.h \
-	util/unordered-containers.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-
-CXXTEST_TESTSUITES += \
-	$(srcdir)/util/list-container-test.h
diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert
deleted file mode 100644
index 99a85c5b6..000000000
--- a/src/widgets/Makefile_insert
+++ /dev/null
@@ -1,129 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	widgets/arc-toolbar.cpp		\
-	widgets/arc-toolbar.h		\
-	widgets/box3d-toolbar.cpp		\
-	widgets/box3d-toolbar.h		\
-	widgets/button.cpp		\
-	widgets/button.h		\
-	widgets/calligraphy-toolbar.cpp		\
-	widgets/calligraphy-toolbar.h		\
-	widgets/connector-toolbar.cpp		\
-	widgets/connector-toolbar.h		\
-	widgets/dash-selector.cpp	\
-	widgets/dash-selector.h		\
-	widgets/desktop-widget.cpp	\
-	widgets/desktop-widget.h	\
-	widgets/dropper-toolbar.cpp		\
-	widgets/dropper-toolbar.h		\
-	widgets/eek-preview.cpp		\
-	widgets/eek-preview.h		\
-	widgets/ege-adjustment-action.cpp	\
-	widgets/ege-adjustment-action.h		\
-	widgets/ege-paint-def.cpp	\
-	widgets/ege-paint-def.h		\
-	widgets/ege-output-action.cpp	\
-	widgets/ege-output-action.h	\
-	widgets/ege-select-one-action.cpp	\
-	widgets/ege-select-one-action.h		\
-	widgets/eraser-toolbar.cpp		\
-	widgets/eraser-toolbar.h		\
-	widgets/fill-style.cpp		\
-	widgets/fill-style.h		\
-	widgets/fill-n-stroke-factory.h	\
-	widgets/font-selector.cpp	\
-	widgets/font-selector.h		\
-	widgets/gradient-image.cpp	\
-	widgets/gradient-image.h	\
-	widgets/gradient-selector.cpp	\
-	widgets/gradient-selector.h	\
-	widgets/gradient-toolbar.cpp	\
-	widgets/gradient-toolbar.h	\
-	widgets/gradient-vector.cpp	\
-	widgets/gradient-vector.h	\
-	widgets/icon.cpp		\
-	widgets/icon.h			\
-        widgets/image-menu-item.c       \
-        widgets/image-menu-item.h       \
-	widgets/ink-action.cpp		\
-	widgets/ink-action.h		\
-	widgets/ink-comboboxentry-action.cpp	\
-	widgets/ink-comboboxentry-action.h	\
-	widgets/ink-radio-action.cpp       \
-	widgets/ink-radio-action.h         \
-	widgets/ink-toggle-action.cpp      \
-	widgets/ink-toggle-action.h        \
-	widgets/ink-tool-menu-action.cpp   \
-	widgets/ink-tool-menu-action.h     \
-	widgets/lpe-toolbar.cpp	\
-	widgets/lpe-toolbar.h	   \
-	widgets/measure-toolbar.cpp	\
-	widgets/measure-toolbar.h	\
-	widgets/mesh-toolbar.cpp	\
-	widgets/mesh-toolbar.h		\
-	widgets/node-toolbar.cpp	\
-	widgets/node-toolbar.h	\
-	widgets/paint-selector.cpp	\
-	widgets/paint-selector.h	\
-	widgets/pencil-toolbar.cpp	\
-	widgets/pencil-toolbar.h	   \
-	widgets/rect-toolbar.cpp	\
-	widgets/rect-toolbar.h	   \
-	widgets/gimp/gimpspinscale.c	\
-	widgets/gimp/gimpspinscale.h       \
-	widgets/gimp/gimpcolorwheel.c \
-	widgets/gimp/gimpcolorwheel.h \
-	widgets/gimp/ruler.cpp		\
-	widgets/gimp/ruler.h			\
-	widgets/select-toolbar.cpp	\
-	widgets/select-toolbar.h	\
-	widgets/spray-toolbar.cpp		\
-	widgets/spray-toolbar.h		\
-	widgets/spiral-toolbar.cpp		\
-	widgets/spiral-toolbar.h		\
-	widgets/sp-attribute-widget.cpp	\
-	widgets/sp-attribute-widget.h	\
-	widgets/sp-color-selector.cpp	\
-	widgets/sp-color-selector.h	\
-	widgets/spinbutton-events.cpp	\
-	widgets/spinbutton-events.h	\
-	widgets/sp-widget.cpp		\
-	widgets/sp-widget.h		\
-	widgets/spw-utilities.cpp	\
-	widgets/spw-utilities.h		\
-	widgets/sp-xmlview-attr-list.cpp	\
-	widgets/sp-xmlview-attr-list.h	\
-	widgets/sp-xmlview-content.cpp	\
-	widgets/sp-xmlview-content.h	\
-	widgets/sp-xmlview-tree.cpp	\
-	widgets/sp-xmlview-tree.h	\
-	widgets/star-toolbar.cpp		\
-	widgets/star-toolbar.h		\
-	widgets/stroke-marker-selector.cpp	\
-	widgets/stroke-marker-selector.h		\
-	widgets/stroke-style.cpp	\
-	widgets/stroke-style.h		\
-	widgets/swatch-selector.cpp	\
-	widgets/swatch-selector.h	\
-	widgets/text-toolbar.cpp		\
-	widgets/text-toolbar.h		\
-	widgets/toolbox.cpp		\
-	widgets/toolbox.h		\
-	widgets/tweak-toolbar.cpp		\
-	widgets/tweak-toolbar.h		\
-	widgets/widget-sizes.h		\
-	widgets/zoom-toolbar.cpp		\
-	widgets/zoom-toolbar.h \
-	widgets/widget-sizes.h
-
-if HAVE_POTRACE
-
-ink_common_sources +=	\
-	widgets/paintbucket-toolbar.cpp	\
-	widgets/paintbucket-toolbar.h
-
-endif
-
-widgets/button.$(OBJEXT): helper/sp-marshal.h
-widgets/menu.$(OBJEXT): helper/sp-marshal.h
diff --git a/src/xml/Makefile_insert b/src/xml/Makefile_insert
deleted file mode 100644
index da55d7f7e..000000000
--- a/src/xml/Makefile_insert
+++ /dev/null
@@ -1,51 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-ink_common_sources +=	\
-	xml/comment-node.h \
-	xml/composite-node-observer.cpp xml/composite-node-observer.h \
-	xml/element-node.h \
-	xml/helper-observer.cpp	\
-	xml/helper-observer.h	\
-	xml/node-observer.h \
-	xml/quote.cpp	\
-	xml/quote.h	\
-	xml/repr-css.cpp	\
-	xml/log-builder.cpp	\
-	xml/log-builder.h	\
-	xml/node-fns.cpp	\
-	xml/node-fns.h	\
-	xml/pi-node.h	\
-	xml/rebase-hrefs.cpp	\
-	xml/rebase-hrefs.h	\
-	xml/repr-io.cpp	\
-	xml/repr-sorting.cpp    \
-	xml/repr-sorting.h      \
-	xml/repr-util.cpp	\
-	xml/repr.cpp	\
-	xml/repr.h	\
-	xml/simple-document.h \
-	xml/simple-document.cpp \
-	xml/simple-node.h \
-	xml/simple-node.cpp \
-	xml/node.h \
-	xml/croco-node-iface.cpp	\
-	xml/croco-node-iface.h	\
-	xml/attribute-record.h \
-	xml/sp-css-attr.h \
-	xml/event.cpp xml/event.h xml/event-fns.h	\
-	xml/document.h \
-	xml/node-event-vector.h \
-	xml/node-iterators.h	\
-	xml/sp-css-attr.h \
-	xml/subtree.cpp	\
-	xml/subtree.h	\
-	xml/text-node.h \
-	xml/invalid-operation-exception.h
-
-# ######################
-# ### CxxTest stuff ####
-# ######################
-CXXTEST_TESTSUITES += \
-	$(srcdir)/xml/rebase-hrefs-test.h	\
-	$(srcdir)/xml/repr-action-test.h	\
-	$(srcdir)/xml/quote-test.h
-- 
cgit v1.2.3