summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2016-08-08 12:56:40 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2016-08-08 12:56:40 +0000
commite471a664f923f517b68071f2e33fbb6ce070f8b7 (patch)
treec44eec282bc1c6380c9d92da10c7d1870961ae7f
parentFix autotools build (diff)
downloadinkscape-e471a664f923f517b68071f2e33fbb6ce070f8b7.tar.gz
inkscape-e471a664f923f517b68071f2e33fbb6ce070f8b7.zip
Remove deprecated Autotools and btool files. Please use CMake instead
(bzr r15046)
-rw-r--r--.bzrignore64
-rw-r--r--Makefile.am650
-rw-r--r--README8
-rw-r--r--acinclude.m43
-rwxr-xr-xautogen.sh51
-rw-r--r--build-lx.xml590
-rw-r--r--build-x64.xml950
-rw-r--r--build.xml920
-rw-r--r--buildtool.cpp10334
-rw-r--r--configure.ac1057
-rwxr-xr-xdelautogen.sh14
-rw-r--r--doc/Makefile.am20
-rw-r--r--m4/Makefile.am11
-rw-r--r--m4/ac_define_dir.m449
-rw-r--r--m4/ax_cxx_compile_stdcxx.m4562
-rw-r--r--m4/ax_cxx_compile_stdcxx_11.m439
-rw-r--r--m4/ink_bzr_snapshot_build.m414
-rw-r--r--m4/relaytool.m430
-rw-r--r--share/Makefile.am25
-rw-r--r--share/attributes/Makefile.am10
-rw-r--r--share/branding/Makefile.am18
-rw-r--r--share/examples/Makefile.am37
-rw-r--r--share/extensions/Barcode/Makefile.am23
-rw-r--r--share/extensions/Makefile.am42
-rw-r--r--share/extensions/Poly3DObjects/Makefile.am33
-rw-r--r--share/extensions/alphabet_soup/Makefile.am78
-rw-r--r--share/extensions/ink2canvas/Makefile.am9
-rw-r--r--share/extensions/test/Makefile.am60
-rw-r--r--share/extensions/xaml2svg/Makefile.am19
-rw-r--r--share/filters/Makefile.am13
-rw-r--r--share/fonts/Makefile.am7
-rw-r--r--share/gradients/Makefile.am7
-rw-r--r--share/icons/Makefile.am58
-rw-r--r--share/icons/application/16x16/Makefile.am5
-rw-r--r--share/icons/application/22x22/Makefile.am5
-rw-r--r--share/icons/application/24x24/Makefile.am5
-rw-r--r--share/icons/application/256x256/Makefile.am5
-rw-r--r--share/icons/application/32x32/Makefile.am5
-rw-r--r--share/icons/application/48x48/Makefile.am5
-rw-r--r--share/icons/application/Makefile.am15
-rw-r--r--share/keys/Makefile.am17
-rw-r--r--share/markers/Makefile.am9
-rw-r--r--share/palettes/Makefile.am38
-rw-r--r--share/patterns/Makefile.am12
-rw-r--r--share/screens/Makefile.am8
-rw-r--r--share/symbols/Makefile.am17
-rw-r--r--share/templates/Makefile.am67
-rw-r--r--share/tutorials/Makefile.am214
-rw-r--r--share/ui/Makefile.am11
-rw-r--r--src/2geom/Makefile_insert131
-rw-r--r--src/Makefile.am278
-rw-r--r--src/Makefile_insert251
-rw-r--r--src/debug/Makefile_insert15
-rw-r--r--src/display/Makefile_insert125
-rw-r--r--src/extension/Makefile_insert54
-rw-r--r--src/extension/dbus/Makefile_insert111
-rw-r--r--src/extension/implementation/Makefile_insert9
-rw-r--r--src/extension/internal/Makefile_insert173
-rw-r--r--src/filters/Makefile_insert46
-rw-r--r--src/helper/Makefile_insert45
-rw-r--r--src/inkgc/Makefile_insert13
-rw-r--r--src/io/Makefile_insert26
-rw-r--r--src/libavoid/Makefile_insert37
-rw-r--r--src/libcola/Makefile_insert18
-rw-r--r--src/libcroco/Makefile_insert64
-rw-r--r--src/libdepixelize/Makefile_insert22
-rw-r--r--src/libnrtype/Makefile_insert28
-rw-r--r--src/libuemf/Makefile_insert30
-rw-r--r--src/libvpsc/Makefile_insert23
-rw-r--r--src/livarot/Makefile_insert41
-rw-r--r--src/live_effects/Makefile_insert115
-rw-r--r--src/live_effects/parameter/Makefile_insert36
-rw-r--r--src/svg/Makefile_insert32
-rw-r--r--src/trace/Makefile_insert23
-rw-r--r--src/ui/Makefile_insert31
-rw-r--r--src/ui/cache/Makefile_insert6
-rw-r--r--src/ui/dialog/Makefile_insert133
-rw-r--r--src/ui/tool/Makefile_insert30
-rw-r--r--src/ui/tools/Makefile_insert34
-rw-r--r--src/ui/view/Makefile_insert9
-rw-r--r--src/ui/widget/Makefile_insert106
-rw-r--r--src/util/Makefile_insert49
-rw-r--r--src/widgets/Makefile_insert129
-rw-r--r--src/xml/Makefile_insert51
84 files changed, 0 insertions, 18567 deletions
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; $$_ } <FOO>) . "\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 @@
-<!--
- * Inkscape build file.
- *
- * See buildtool.cpp for use.
- *
- * Authors:
- * Bob Jamison
- * Others
- *
- * Copyright (C) 2006-2008 Inkscape.org
- *
- * 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
--->
-
-
-
-<!--
-########################################################################
-## P R O J E C T : I N K S C A P E
-########################################################################
--->
-<project name="Inkscape" default="dist" basedir=".">
- <description>
- Build file for the Inkscape SVG editor. This version
- is configured for Unix/Linux, but hopefully we can merge
- in the future.
- </description>
-
- <!-- set global properties for this build -->
- <property name="version" value="0.92pre1"/>
- <property name="src" location="src"/>
- <property name="lib" location="lib"/>
- <property name="build" location="build"/>
- <property name="dist" location="inkscape"/>
-
- <!-- Use these settings for Unix -->
- <!-- -->
- <property name="arch" value=""/>
- <property name="archutil" value=""/>
- <property name="devlibs" location="/usr"/>
- <property name="datadir" location="${dist}/share"/>
-
- <!-- -->
-
- <!-- Use these settings for the MinGW native compiler -->
- <!--
- <property name="arch" value="mingw32-"/>
- <property name="archutil" value=""/>
- <property name="devlibs" location="c:/devlibs"/>
- -->
-
- <!-- Use these settings for the MinGW cross compiler -->
- <!--
- <property name="arch" value="i686-pc-mingw32-"/>
- <property name="archutil" value="${arch}"/>
- <property name="gtk" location="/target"/>
- -->
-
- <!-- Extra properties -->
- <property name="refresh" value="false"/>
-
- <!--
- This is for package-config. With these two settings, pkg-config
- queries can be as simple as ${pcc.packageName} for cflags, and
- ${pcl.packageName} for libs. Dependencies are calculated automatically.
- -->
- <property name="pkg-config-path" location="${devlibs}/lib/pkgconfig"/>
- <property name="pkg-config-prefix" location="${devlibs}"/>
-
-
- <!--
- ########################################################################
- ## T A R G E T : I N I T
- ########################################################################
- -->
- <target name="init"
- description=
- "Do all preparatory tasks, like make directories and copy files">
-
-
- <mkdir dir="${build}"/>
- <mkdir dir="${build}/java"/>
- <mkdir dir="${build}/java/classes"/>
- <mkdir dir="${build}/java/lib"/>
-
- <mkdir dir="${build}"/>
- <mkdir dir="${dist}"/>
- <copy file="${src}/helper/sp-marshal.h.mingw"
- tofile="${src}/helper/sp-marshal.h"/>
- <copy file="${src}/helper/sp-marshal.cpp.mingw"
- tofile="${src}/helper/sp-marshal.cpp"/>
- <makefile file="inkscape_version.h">
- #define INKSCAPE_VERSION "${version}, revision ${svn.revision}"
- </makefile>
- <makefile file="config.h">
- #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_ */
- </makefile>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : T O U C H A B O U T
- ########################################################################
- -->
- <target name="touchabout"
- description="update the modification time of aboutbox.cpp">
- <!-- not good <touch file="${src}/ui/dialog/aboutbox.cpp"/> -->
- <!-- better -->
- <delete file="${build}/obj/ui/dialog/aboutbox.o"/>
- <delete file="inkscape_version.h"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : C O M P I L E
- ########################################################################
- -->
- <target name="compile" depends="init"
- description="compile the source to .o" >
-
- <!-- Compile from source to build -->
- <cc cc="${arch}gcc" cxx="${arch}g++"
- destdir="${build}/obj"
- continueOnError="false"
- refreshCache="${refresh}">
- <fileset dir="${src}">
- <!-- THINGS TO EXCLUDE -->
- <exclude name="2geom/chebyshev.cpp"/>
- <exclude name="ast/.*"/>
- <exclude name="bonobo/.*"/>
- <exclude name="deptool.cpp"/>
- <exclude name="test-all.cpp"/>
- <exclude name="display/testnr.cpp"/>
- <exclude name="display/bezier-utils-test.cpp"/>
- <exclude name="extension/api.cpp"/>
- <exclude name="extension/dxf2svg/.*"/>
- <exclude name="extension/implementation/plugin.cpp"/>
- <exclude name="extension/script/bindtest.cpp"/>
- <exclude name="extension/script/cpptest.cpp"/>
- <exclude name="extension/plugin/.*"/>
- <exclude name="extract-uri-test.cpp"/>
- <exclude name="helper/units-test.cpp"/>
- <!-- exclude name="inkview.cpp"/-->
- <exclude name="libnr/test-nr.cpp"/>
- <exclude name="libnr/test-nr-main.cpp"/>
- <exclude name="libnr/testnr.cpp"/>
- <exclude name="libnr/in-svg-plane-test.cpp"/>
- <exclude name="libnr/nr-compose-reference.cpp"/>
- <exclude name="libnr/nr-compose-test.cpp"/>
- <exclude name="libnr/nr-matrix-test.cpp"/>
- <exclude name="libnr/nr-point-fns-test.cpp"/>
- <exclude name="libnr/nr-rotate-fns-test.cpp"/>
- <exclude name="libnr/nr-rotate-test.cpp"/>
- <exclude name="libnr/nr-scale-test.cpp"/>
- <exclude name="libnr/nr-translate-test.cpp"/>
- <exclude name="libnr/nr-types-test.cpp"/>
- <exclude name="livarot/Path-test.cpp"/>
- <exclude name="mod360-test.cpp"/>
- <exclude name="trace/potrace/potest.cpp"/>
- <exclude name="round-test.cpp"/>
- <exclude name="sp-gradient-test.cpp"/>
- <exclude name="svg/ftos.cpp"/>
- <exclude name="svg/test-svg.cpp"/>
- <exclude name="svg/test-svg-main.cpp"/>
- <exclude name="widgets/test-widgets.cpp"/>
- <exclude name="xml/quote-test.cpp"/>
- <exclude name="xml/repr-action-test.cpp"/>
- <exclude name="xml/test-xml.cpp"/>
- <exclude name="xml/test-xml-main.cpp"/>
- <exclude name="io/streamtest.cpp"/>
- <!--OVERLAP-->
- <exclude name="removeoverlap/placement_SolveVPSC.cpp"/>
- <exclude name="removeoverlap/placement_SolveVPSC.h"/>
- <exclude name="removeoverlap/test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.h"/>
- <!--WIN32 -->
- <exclude name="registrytool.cpp"/>
- <exclude name="extension/internal/win32.cpp"/>
- <exclude name="libgdl/gdl-win32.c"/>
- </fileset>
- <excludeinc dir="${src}">
- <file name="extension/param"/>
- </excludeinc>
- <flags>
- -Wall -Wformat -Werror=format-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch
- -O2
- </flags>
- <defines>
- -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; }" <!-- inkboard -->
- </defines>
- <includes>
- -I${devlibs}/include
- <!-- GTK / GTKMM -->
- ${pcc.gtkmm-2.4}
- <!-- OTHER -->
- ${pcc.libxslt}
- ${pcc.freetype2}
- ${pcc.cairo}
- ${pcc.poppler}
- -I${devlibs}/include/gc
- ${pcc.libwpg-0.1} ${pcc.libwpg-stream-0.1}
- <!-- PYTHON -->
- -I${devlibs}/python/include
- <!-- JAVA -->
- -I${src}/bind/javainc -I${src}/bind/javainc/linux
- </includes>
- </cc>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I B
- ########################################################################
- -->
- <target name="lib" depends="compile"
- description="create a static library">
- <staticlib command="${archutil}ar crsv"
- file="${build}/libinkscape.a">
- <fileset dir="${build}/obj">
- <exclude name="main.o"/>
- <exclude name="winmain.o"/>
- <exclude name="inkview.o"/>
- </fileset>
- </staticlib>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : I 1 8 N
- ########################################################################
- -->
- <target name="i18n" depends="compile"
- description="compile gettext .po files to .mo">
-
- <msgfmt todir="${build}/locale" owndir="true"
- out="LC_MESSAGES/inkscape.mo">
- <fileset dir="po">
- </fileset>
- </msgfmt>
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K
- ########################################################################
- -->
- <target name="link" depends="lib"
- description="link objects and library to create executable">
-
- <link command="${arch}g++" out="${build}/inkscape"
- strip="true" symfile="${build}/inkscape.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- </flags>
- <fileset dir="${build}">
- <include name="obj/main.o"/>
- <include name="libinkscape.a"/>
- </fileset>
- <libs>
- -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
- </libs>
- </link>
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K I N K V I E W
- ########################################################################
- -->
- <target name="linkinkview" depends="lib"
- description="link objects and library to create Inkview executable">
-
- <link command="${arch}g++" out="${build}/inkview"
- strip="true" symfile="${build}/inkview.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- </flags>
- <fileset dir="${build}">
- <include name="obj/inkview.o"/>
- <include name="libinkscape.a"/>
- </fileset>
- <libs>
- -L${devlibs}/lib
- ${pcl.poppler}
- ${pcl.gtkmm-2.4}
- ${pcl.cairo} ${pcl.cairomm-1.0}
- <!-- PERL -->
- -L${devlibs}/perl/lib/CORE -lperl58
- <!-- PYTHON -->
- -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
- </libs>
- </link>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T
- ########################################################################
- -->
- <target name="dist" depends="link,i18n"
- description="generate the distribution directory with all needed files">
-
- <!-- Create the distribution directory -->
- <mkdir dir="${dist}/bin"/>
- <mkdir dir="${dist}/lib"/>
-
- <!-- Copy Inkscape files -->
- <copy file="${build}/inkscape" todir="${dist}/bin"/>
- <copy file="${build}/inkscape.dbg" todir="${dist}/bin"/>
- <copy file="AUTHORS" todir="${dist}"/>
- <copy file="COPYING" todir="${dist}"/>
- <copy file="GPL2.txt" todir="${dist}"/>
- <copy file="GPL3.txt" todir="${dist}"/>
- <copy file="LGPL2.1.txt" todir="${dist}"/>
- <copy file="NEWS" todir="${dist}"/>
- <copy file="README" todir="${dist}"/>
- <copy file="TRANSLATORS" todir="${dist}"/>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/attributes"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/clipart"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/examples"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/extensions"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/fonts"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/gradients"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/icons"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/keys"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/markers"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/palettes"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/patterns"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/screens"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/symbols"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/templates"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/tutorials"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}/inkscape">
- <fileset dir="share/ui"> <exclude name=".*\.am"/> </fileset>
- </copy>
- <copy todir="${datadir}">
- <fileset dir="${build}/locale"> <exclude name=".*\.am"/> </fileset>
- </copy>
-
- <!-- Copy devlibs files -->
-
-
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : JAVAC
- ########################################################################
- -->
- <target name="javac" depends="init"
- description="compile java binding classes">
- <javac srcdir="${src}/bind/java" destdir="${build}/java/classes"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : JAR
- ########################################################################
- -->
- <target name="jar" depends="javac"
- description="pack java classes and resources into a jar file">
- <copy todir="${build}/java/classes"> <fileset dir="bind/data"/></copy>
- <jar basedir="${build}/java/classes" destfile="${build}/java/lib/inkscape.jar"/>
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : BINDDIST
- ########################################################################
- -->
- <target name="binddist" depends="jar"
- description="pack java classes and resources into a jar file">
- <copy todir="${datadir}/inkscape/bind"> <fileset dir="bind/java"/> </copy>
- <copy todir="${datadir}/inkscape/bind/java"> <fileset dir="${build}/java/lib"/> </copy>
-
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : BINDCLEAN
- ########################################################################
- -->
- <target name="bindclean" depends=""
- description="clean up java binding classes">
- <delete dir="${build}/java"/>
- </target>
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - A L L
- ########################################################################
- -->
- <target name="dist-all" depends="dist"
- description="generate the distribution, along with inkview" >
-
- <copy file="${build}/inkview" todir="${dist}/bin"/>
- <copy file="${build}/inkview.dbg" todir="${dist}/bin"/>
-
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : C L E A N
- ########################################################################
- -->
- <target name="clean" depends="bindclean"
- description="clean up. deleting build and distro dirs" >
-
- <delete dir="${build}"/>
- <delete dir="${dist}"/>
- <delete file="build.dep"/>
- <delete file="config.h"/>
- <delete file="inkscape_version.h"/>
-
- </target>
-
-
-
-</project>
-<!--
-########################################################################
-## E N D
-########################################################################
--->
-
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 @@
-<!--
- * Inkscape build file.
- *
- * See buildtool.cpp for use.
- *
- * Authors:
- * Bob Jamison
- * Others
- *
- * Copyright (C) 2006-2008 Inkscape.org
- *
- * 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
--->
-
-
-
-<!--
-########################################################################
-## P R O J E C T : I N K S C A P E
-########################################################################
--->
-<project name="Inkscape" default="dist-all" basedir=".">
- <description>
- 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.
- </description>
-
- <!-- set global properties for this build -->
- <property name="version" value="0.91+devel_64bit"/>
- <property name="src" location="src"/>
- <property name="lib" location="lib"/>
- <property name="build" location="build"/>
- <property name="dist" location="inkscape"/>
-
- <!-- Use these settings for the native compiler -->
- <!-- -->
- <property name="arch" value="x86_64-w64-mingw32-"/>
- <property name="arch_cc" value="${arch}gcc"/>
- <property name="arch_cxx" value="${arch}g++"/>
- <property name="arch_link" value="${arch}g++"/>
- <property name="archutil" value=""/>
- <property name="devlibs" location="${env.DEVLIBS_PATH}"/>
- <property name="mingw" location="${env.MINGW_PATH}"/>
- <property name="mingw_bin" location="${env.MINGW_PATH}/bin"/>
- <property name="cxxtest" location="cxxtest"/>
- <property name="python" location="${devlibs}/python/python.exe"/>
- <!-- -->
-
- <!-- Use these settings for the cross compiler -->
- <!--
- <property name="arch" value="i686-pc-mingw32-"/>
- <property name="arch_cc" value="${arch}gcc"/>
- <property name="arch_cxx" value="${arch}g++"/>
- <property name="arch_link" value="${arch}g++"/>
- <property name="archutil" value="${arch}"/>
- <property name="devlibs" location="/target"/>
- <property name="mingw_bin" location="${env.MINGW_BIN}"/>
- <property name="cxxtest" location="cxxtest"/>
- <property name="python" location="python"/>
- -->
-
- <!-- Extra properties -->
- <property name="refresh" value="false"/>
-
- <!--
- This is for package-config. With these two settings, pkg-config
- queries can be as simple as ${pcc.packageName} for cflags, and
- ${pcl.packageName} for libs. Dependencies are calculated automatically.
- -->
- <property name="pkg-config-path" location="${devlibs}/lib/pkgconfig"/>
- <property name="pkg-config-prefix" location="${devlibs}"/>
-
-
- <!--
- ########################################################################
- ## T A R G E T : I N I T
- ########################################################################
- -->
- <target name="init"
- description=
- "Do all preparatory tasks, like make directories and copy files">
-
-
- <mkdir dir="${build}"/>
- <mkdir dir="${dist}"/>
-
- <copy file="${src}/helper/sp-marshal.h.mingw"
- tofile="${src}/helper/sp-marshal.h"/>
- <copy file="${src}/helper/sp-marshal.cpp.mingw"
- tofile="${src}/helper/sp-marshal.cpp"/>
-
- <!--makefile file="${src}/inkscape-version.cpp">
- namespace Inkscape {
- char const *version_string = "${version}";
- }
- </makefile-->
- <makefile file="${src}/inkscape-version.cpp" force="true">
- namespace Inkscape {
- char const *version_string = "${version} ${bzr.revision}";
- }
- </makefile>
- <makefile file="config.h">
- #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_ */
- </makefile>
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : C X X T E S T
- ########################################################################
- -->
- <target name="cxxtest" depends="init"
- description="generate test files" >
-
- <!-- Generate CxxTest files -->
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/test-src.cpp">
- <fileset dir="${src}">
- <include name="attributes-test.h"/>
- <include name="color-profile-test.h"/>
- <include name="dir-util-test.h"/>
- <include name="extract-uri-test.h"/>
- <include name="marker-test.h"/>
- <include name="mod360-test.h"/>
- <include name="object-test.h"/>
- <include name="preferences-test.h"/>
- <include name="round-test.h"/>
- <include name="sp-gradient-test.h"/>
- <include name="sp-style-elem-test.h"/>
- <include name="syle-test.h"/>
- <include name="test-helpers.h"/>
- <include name="verbs-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/display/test-display.cpp">
- <fileset dir="${src}/display">
- <include name="curve-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/helper/test-helper.cpp">
- <fileset dir="${src}/helper">
- <include name="units-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/svg/test-svg.cpp">
- <fileset dir="${src}/svg">
- <!--<include name="css-ostringstream-test.h"/>-->
- <include name="stringstream-test.h"/>
- <include name="svg-affine-test.h"/>
- <include name="svg-color-test.h"/>
- <include name="svg-length-test.h"/>
- <include name="svg-path-geom-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/util/test-util.cpp">
- <fileset dir="${src}/util">
- <include name="list-container-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/xml/test-xml.cpp">
- <fileset dir="${src}/xml">
- <include name="repr-action-test.h"/>
- <include name="quote-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestroot command="${python} ${cxxtest}/cxxtestgen.py"
- out="${src}/test-main.cpp"
- template="${src}/cxxtest-template.tpl">
- <fileset dir="${src}">
- <include name="MultiPrinter.h"/>
- <include name="PylogFormatter.h"/>
- <include name="TRPIFormatter.h"/>
- </fileset>
- </cxxtestroot>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : C O M P I L E
- ########################################################################
- -->
- <target name="compile" depends="cxxtest"
- description="compile the source to .o" >
-
- <!-- Compile from source to build -->
- <cc cc="${arch_cc}" cxx="${arch_cxx}"
- destdir="${build}/obj"
- continueOnError="true"
- refreshCache="${refresh}">
- <fileset dir="${src}">
- <!-- THINGS TO EXCLUDE -->
- <exclude name="ast/.*"/>
- <exclude name="bonobo/.*"/>
- <exclude name="libgdl/.*"/>
- <exclude name="deptool.cpp"/>
- <exclude name="cxxtests.cpp"/>
- <!--<exclude name="test-main.cpp"/>-->
- <!--<exclude name="test-src.cpp"/>-->
- <exclude name="display/test-display.cpp"/>
- <exclude name="display/testnr.cpp"/>
- <exclude name="extension/api.cpp"/>
- <exclude name="extension/dbus/.*"/>
- <exclude name="extension/dxf2svg/.*"/>
- <exclude name="extension/implementation/plugin.cpp"/>
- <exclude name="extension/plugin/.*"/>
- <exclude name="extract-uri-test.cpp"/>
- <exclude name="helper/units-test.cpp"/>
- <!-- exclude name="inkview.cpp"/-->
- <exclude name="livarot/Path-test.cpp"/>
- <exclude name="mod360-test.cpp"/>
- <exclude name="trace/potrace/potest.cpp"/>
- <exclude name="round-test.cpp"/>
- <exclude name="sp-gradient-test.cpp"/>
- <exclude name="style-test.cpp"/>
- <exclude name="svg/ftos.cpp"/>
- <!--<exclude name="svg/test-svg.cpp"/>-->
- <exclude name="svg/test-svg-main.cpp"/>
- <exclude name="util/list-container-test.cpp"/>
- <exclude name="widgets/test-widgets.cpp"/>
- <exclude name="xml/quote-test.cpp"/>
- <exclude name="xml/repr-action-test.cpp"/>
- <exclude name="xml/test-xml.cpp"/>
- <!--<exclude name="xml/test-xml-main.cpp"/>-->
- <exclude name="io/streamtest.cpp"/>
- <!--OVERLAP-->
- <exclude name="removeoverlap/placement_SolveVPSC.cpp"/>
- <exclude name="removeoverlap/placement_SolveVPSC.h"/>
- <exclude name="removeoverlap/test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.h"/>
- </fileset>
- <excludeinc dir="${src}">
- <file name="extension/param"/>
- </excludeinc>
- <flags>
- -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch
- -Werror=return-type
- <!-- -Werror -->
- <!-- A list of warnings that should not error *yet*, any help is welcome in fixing the code generating these warnings! -->
- <!-- libcroco is using guchar where it should use gchar, so we need: --> -Wno-error=pointer-sign
- -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings
- <!-- Format warnings are obviously bad errors, but with the current old compiler on Windows (gcc 4.6.) we run into a problem with long long ints...
- The errors can be restored by removing these flags after updating to a newer compiler (soon after 0.91 release hopefully) -->
- -Wno-error=format -Wno-error=format-extra-args
- -Wno-unused-local-typedefs <!-- triggers ton of warnings in (too old?) Boost with newer gcc -->
- -O2
- -mms-bitfields
- -fopenmp
- </flags>
- <cxxflags>
- -std=gnu++11 -DCPP11
- -Woverloaded-virtual
- <!-- -Wno-unused-local-typedefs -->
- -Wno-deprecated-declarations <!-- silcence warnings about usage of auto_ptr -->
- </cxxflags>
- <defines>
- -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; }" <!-- inkboard -->
- -DPOPPLER_NEW_GFXFONT <!-- poppler changed the api for 0.8.3 -->
- -DPOPPLER_NEW_GFXPATCH <!-- GfxPatch no longer uses GfxColor in >= 0.15.1 -->
- -DPOPPLER_NEW_ERRORAPI <!-- poppler changed the error api for 0.20.0 -->
- -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API <!-- poppler changed the colorspace api for 0.26.0 -->
- -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API <!-- poppler changed the colorspace api for 0.29.0 -->
- <!-- GTK+3 migration -->
- -DGLIBMM_DISABLE_DEPRECATED
- -DG_DISABLE_DEPRECATED
- -DGTK_DISABLE_SINGLE_INCLUDES
- <!-- -DGTKMM_DISABLE_DEPRECATED -->
- <!-- -DGTK_DISABLE_DEPRECATED -->
- -DGDKMM_DISABLE_DEPRECATED
- -DGSEAL_ENABLE
- </defines>
- <includes>
- -I${devlibs}/include
- <!-- GTK / GTKMM -->
- ${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}
- <!-- OTHER -->
- ${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}
- <!-- PERL -->
- <!-- -Wno-comment -I${devlibs}/perl/lib/CORE -->
- <!-- PYTHON -->
- -I${devlibs}/python/include
- </includes>
- </cc>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : I 1 8 N
- ########################################################################
- -->
- <target name="i18n" depends="compile"
- description="compile gettext .po files to .mo">
-
- <msgfmt todir="${build}/locale" owndir="true"
- out="LC_MESSAGES/inkscape.mo">
- <fileset dir="po">
- </fileset>
- </msgfmt>
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K
- ########################################################################
- -->
- <target name="link" depends="compile"
- description="link objects and library to create executable">
-
- <rc command="${archutil}windres"
- file="${src}/inkscape-x64.rc"
- out="${build}/obj/inkres.o">
- <flags>
- --include-dir=${src}
- </flags>
- </rc>
- <link command="${arch_link}" out="${build}/inkscape.exe"
- strip="true" symfile="${build}/inkscape.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mwindows -m64
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <exclude name="winconsole.o"/>
- <exclude name="inkview.o"/>
- <exclude name="inkviewres.o"/>
- <!-- CxxTest -->
- <exclude name="test-main.o"/>
- <exclude name="test-src.o"/>
- <exclude name="display/test-display.o"/>
- <exclude name="helper/test-helper.o"/>
- <exclude name="svg/test-svg.o"/>
- <exclude name="util/test-util.o"/>
- <exclude name="xml/test-xml.o"/>
- </fileset>
- <!-- WARNING: If you change these libraries, don't forget to change them for inkview and cxxtests below as well! -->
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-<!--
- ########################################################################
- ## T A R G E T : L I N K C O N S O L E
- ########################################################################
- -->
- <target name="linkconsole" depends="compile"
- description="link console helper">
-
- <link command="${arch_link}" out="${build}/inkscape-console.exe"
- strip="true" stripcommand="${archutil}strip">
- <flags>
- -mconsole
- -mthreads
- </flags>
- <fileset dir="${build}">
- <include name="obj/winconsole.o"/>
- </fileset>
- <libs></libs>
- </link>
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K I N K V I E W
- ########################################################################
- -->
- <target name="linkinkview" depends="compile"
- description="link objects and library to create Inkview executable">
-
- <rc command="${archutil}windres"
- file="${src}/inkview-x64.rc"
- out="${build}/obj/inkviewres.o">
- <flags>
- --include-dir=${src}
- </flags>
- </rc>
- <link command="${arch_link}" out="${build}/inkview.exe"
- strip="true" symfile="${build}/inkview.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mwindows -m64
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <!-- exclude the other programs -->
- <exclude name="main.o"/>
- <exclude name="winmain.o"/>
- <exclude name="winconsole.o"/>
- <exclude name="inkres.o"/>
- <!-- CxxTest -->
- <exclude name="test-main.o"/>
- <exclude name="test-src.o"/>
- <exclude name="display/test-display.o"/>
- <exclude name="helper/test-helper.o"/>
- <exclude name="svg/test-svg.o"/>
- <exclude name="util/test-util.o"/>
- <exclude name="xml/test-xml.o"/>
- </fileset>
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K C X X T E S T S
- ########################################################################
- -->
- <target name="linkcxxtests" depends="compile"
- description="link objects and library to create executable">
-
- <link command="${arch_link}" out="${build}/cxxtests.exe"
- strip="true" symfile="${build}/cxxtests.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mconsole
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <!-- exclude the other programs -->
- <exclude name="main.o"/>
- <exclude name="winmain.o"/>
- <exclude name="winconsole.o"/>
- <exclude name="inkres.o"/>
- <exclude name="inkviewres.o"/>
- <exclude name="inkview.o"/>
- </fileset>
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T B A S E
- ########################################################################
- -->
- <target name="distbase" depends="i18n"
- description="generate the distribution directory with all needed files">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="AUTHORS"/>
- <copy todir="${dist}" file="COPYING"/>
- <copy todir="${dist}" file="GPL2.txt"/>
- <copy todir="${dist}" file="GPL3.txt"/>
- <copy todir="${dist}" file="LGPL2.1.txt"/>
- <copy todir="${dist}" file="NEWS"/>
- <copy todir="${dist}" file="README"/>
- <copy todir="${dist}" file="TRANSLATORS"/>
- <copy todir="${dist}" file="${devlibs}/bin/libatkmm-1.6-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libglibmm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgiomm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgtkmm-3.0-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdkmm-3.0-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdl-3-5.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangomm-1.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcairomm-1.0-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcairo-gobject-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libsigc-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libfreetype-6.dll"/>
-
- <copy todir="${dist}" file="${devlibs}/bin/libffi-6.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgc-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgsl-19.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgslcblas-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libharfbuzz-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/liblzma-5.dll"/>
-
- <copy todir="${dist}" file="${devlibs}/bin/libaspell-15.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libatk-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdk-3-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdk_pixbuf-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libglib-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgmodule-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgobject-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgtk-3-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgthread-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgio-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcairo-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpixman-1-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpoppler-58.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpoppler-glib-8.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangocairo-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpango-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangoft2-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangowin32-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libfontconfig-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libxml2-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libxslt-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexslt-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexpat-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libepoxy-0.dll"/>
-
- <copy todir="${dist}" file="${devlibs}/bin/librevenge-0.0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/librevenge-stream-0.0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libwpg-0.3.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libwpd-0.10.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libvisio-0.1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcdr-0.1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icuin56.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icudt56.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icuuc56.dll"/>
-
- <copy todir="${dist}" file="${devlibs}/bin/libjpeg-9.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpng16-16.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libtiff-5.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexif-12.dll"/>
-<!--
- <copy todir="${dist}" file="${devlibs}/bin/libopenjpeg-2.dll"/>
- -->
- <!-- <copy todir="${dist}" file="${devlibs}/bin/msvcr70.dll"/> -->
- <!-- <copy todir="${dist}" file="${devlibs}/bin/msvcr71.dll"/> -->
- <copy todir="${dist}" file="${devlibs}/bin/libcurl-4.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/zlib1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/bz2-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libiconv-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpopt-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/liblcms2-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagick++-6.Q16-6.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagickCore-6.Q16-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagickWand-6.Q16-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libintl-8.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpotrace-0.dll"/>
- <!-- MINGW support DLLs -->
- <copy todir="${dist}" file="${mingw_bin}/libstdc++-6.dll"/>
- <copy todir="${dist}" file="${mingw_bin}/libwinpthread-1.dll"/>
- <copy todir="${dist}" file="${mingw_bin}/libgcc_s_seh-1.dll"/>
- <!-- MINGW support DLLs needed for openmp support -->
- <copy todir="${dist}" file="${mingw_bin}/libgomp-1.dll"/>
-
- <!-- MSGFMT files -->
- <copy todir="${dist}">
- <fileset dir="${build}/locale">
- <exclude name=".*\.am"/>
- </fileset>
- </copy>
-
- <mkdir dir="${dist}/data"/>
- <mkdir dir="${dist}/locale"/>
- <mkdir dir="${dist}/modules"/>
- <mkdir dir="${dist}/plugins"/>
- <mkdir dir="${dist}/share/glib-2.0"/>
-
- <!-- GTK -->
- <copy todir="${dist}">
- <fileset dir="${devlibs}/etc">
- <exclude name="gtk-2.0/.*"/>
- </fileset>
- </copy>
- <copy todir="${dist}/share/icons"> <fileset dir="${devlibs}/share/icons/Adwaita" /> </copy>
-
- <copy todir="${dist}">
- <fileset dir="share">
- <exclude name="\.am$"/>
- <exclude name="\.in$"/>
- <exclude name="\.sh$"/>
- <exclude name="CMakeLists.txt"/>
- <exclude name="i18n.py"/>
- <exclude name="icons/hicolor/index.theme"/>
- </fileset>
- </copy>
- <delete dir="${dist}/share/icons/hicolor"/> <!-- Quick fix for the following problem: having the hicolor folder there with empty index file bugs booting inkscape... -->
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/themes"/> </copy>
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/icons"/> </copy>
- <copy todir="${dist}/share/glib-2.0"> <fileset dir="${devlibs}/share/glib-2.0/schemas"/> </copy>
- <copy todir="${dist}/lib">
- <fileset dir="${devlibs}/lib/gdk-pixbuf-2.0">
- <exclude name="\.la$"/>
- <exclude name="\.a$"/>
- </fileset>
- </copy>
-
- <!-- Poppler data files -->
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/poppler"/> </copy>
-
- <!-- Locales for libraries (few should be needed) -->
- <copy todir="${dist}/share">
- <fileset dir="${devlibs}/share/locale">
- <include name="gtk30.mo"/>
- </fileset>
- </copy>
-
- <!-- Aspell dictionaries -->
- <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/aspell-0.60"/> </copy>
-
- <!-- Necessary to run extensions on windows if it is not in the path -->
- <copy todir="${dist}" file="${devlibs}/bin/gspawn-win64-helper.exe"/>
- <copy todir="${dist}" file="${devlibs}/bin/gspawn-win64-helper-console.exe"/>
-
- <!-- PERL -->
- <copy todir="${dist}" file="${devlibs}/perl/bin/perl58.dll"/>
-
- <!-- PYTHON -->
- <copy todir="${dist}/python" file="${devlibs}/python/python.exe" />
- <copy todir="${dist}/python" file="${devlibs}/python/pythonw.exe"/>
- <copy todir="${dist}/python" file="${devlibs}/python/python27.dll"/>
- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Lib"/> </copy>
- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/DLLs"/> </copy>
- <!-- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Scripts"/> </copy> -->
-
- <!--<copy file="${devlibs}/share/themes/MS-Windows/gtk-2.0/gtkrc" todir="${dist}/etc/gtk-2.0"/>-->
- <makefile file="${dist}/etc/gtk-3.0/settings.ini">
-[Settings]
-#gtk-font-name = Tahoma 8
-#gtk-theme-name = Adwaita
-gtk-menu-images = true
- </makefile>
-
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - I N K S C A P E
- ########################################################################
- -->
- <target name="dist-inkscape" depends="link,linkconsole,distbase"
- description="copy inkscape to the distribution directory">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="${build}/inkscape.exe"/>
- <copy todir="${dist}" file="${build}/inkscape.dbg"/>
- <copy file="${build}/inkscape-console.exe" tofile="${dist}/inkscape.com"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - I N K V I E W
- ########################################################################
- -->
- <target name="dist-inkview" depends="linkinkview,distbase"
- description="copy inkview to the distribution directory">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="${build}/inkview.exe"/>
- <copy todir="${dist}" file="${build}/inkview.dbg"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : C H E C K
- ########################################################################
- -->
- <target name="check" depends="linkcxxtests,distbase"
- description="perform unit tests">
-
- <cxxtestrun command="${build}/cxxtests" workingdir="${dist}" />
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - A L L
- ########################################################################
- -->
- <target name="dist-all" depends="dist-inkscape,dist-inkview"
- description="generate the distribution, along with inkview" >
- </target>
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - A L L - C H E C K
- ########################################################################
- -->
- <target name="dist-all-check" depends="dist-all,check"
- description="generate the distribution, along with inkview and run cxxtests" >
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : C L E A N
- ########################################################################
- -->
- <target name="clean"
- description="clean up. deleting build and distro dirs" >
-
- <delete dir="${build}"/>
- <delete dir="${dist}"/>
- <delete file="build.dep"/>
- <delete file="config.h"/>
- <delete file="${src}/inkscape-version.cpp"/>
- <delete file="${src}/test-main.cpp"/>
- <delete file="${src}/test-src.cpp"/>
- <delete file="${src}/display/test-display.cpp"/>
- <delete file="${src}/helper/test-helper.cpp"/>
- <delete file="${src}/svg/test-svg.cpp"/>
- <delete file="${src}/util/test-util.cpp"/>
- <delete file="${src}/xml/test-xml.cpp"/>
-
- </target>
-
-
-
-</project>
-<!--
-########################################################################
-## E N D
-########################################################################
--->
-
diff --git a/build.xml b/build.xml
deleted file mode 100644
index b782183ae..000000000
--- a/build.xml
+++ /dev/null
@@ -1,920 +0,0 @@
-<!--
- * Inkscape build file.
- *
- * See buildtool.cpp for use.
- *
- * Authors:
- * Bob Jamison
- * Others
- *
- * Copyright (C) 2006-2008 Inkscape.org
- *
- * 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
--->
-
-
-
-<!--
-########################################################################
-## P R O J E C T : I N K S C A P E
-########################################################################
--->
-<project name="Inkscape" default="dist-all" basedir=".">
- <description>
- 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.
- </description>
-
- <!-- set global properties for this build -->
- <property name="version" value="0.92pre1"/>
- <property name="src" location="src"/>
- <property name="lib" location="lib"/>
- <property name="build" location="build"/>
- <property name="dist" location="inkscape"/>
-
- <!-- Use these settings for the native compiler -->
- <!-- -->
- <property name="arch" value="mingw32-"/>
- <property name="arch_cc" value="${arch}gcc"/>
- <property name="arch_cxx" value="${arch}g++"/>
- <property name="arch_link" value="${arch}g++"/>
- <property name="archutil" value=""/>
- <property name="devlibs" location="${env.DEVLIBS_PATH}"/>
- <property name="mingw" location="${env.MINGW_PATH}"/>
- <property name="mingw_bin" location="${env.MINGW_PATH}/bin"/>
- <property name="cxxtest" location="cxxtest"/>
- <property name="python" location="${devlibs}/python/python.exe"/>
- <!-- -->
-
- <!-- Use these settings for the cross compiler -->
- <!--
- <property name="arch" value="i686-pc-mingw32-"/>
- <property name="arch_cc" value="${arch}gcc"/>
- <property name="arch_cxx" value="${arch}g++"/>
- <property name="arch_link" value="${arch}g++"/>
- <property name="archutil" value="${arch}"/>
- <property name="devlibs" location="/target"/>
- <property name="mingw_bin" location="${env.MINGW_BIN}"/>
- <property name="cxxtest" location="cxxtest"/>
- <property name="python" location="python"/>
- -->
-
- <!-- Extra properties -->
- <property name="refresh" value="false"/>
-
- <!--
- This is for package-config. With these two settings, pkg-config
- queries can be as simple as ${pcc.packageName} for cflags, and
- ${pcl.packageName} for libs. Dependencies are calculated automatically.
- -->
- <property name="pkg-config-path" location="${devlibs}/lib/pkgconfig"/>
- <property name="pkg-config-prefix" location="${devlibs}"/>
-
-
- <!--
- ########################################################################
- ## T A R G E T : I N I T
- ########################################################################
- -->
- <target name="init"
- description=
- "Do all preparatory tasks, like make directories and copy files">
-
-
- <mkdir dir="${build}"/>
- <mkdir dir="${dist}"/>
-
- <copy file="${src}/helper/sp-marshal.h.mingw"
- tofile="${src}/helper/sp-marshal.h"/>
- <copy file="${src}/helper/sp-marshal.cpp.mingw"
- tofile="${src}/helper/sp-marshal.cpp"/>
-
- <!--makefile file="${src}/inkscape-version.cpp">
- namespace Inkscape {
- char const *version_string = "${version}";
- }
- </makefile-->
- <makefile file="${src}/inkscape-version.cpp">
- namespace Inkscape {
- char const *version_string = "${version} ${bzr.revision}";
- }
- </makefile>
- <makefile file="config.h">
- #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_ */
- </makefile>
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : C X X T E S T
- ########################################################################
- -->
- <target name="cxxtest" depends="init"
- description="generate test files" >
-
- <!-- Generate CxxTest files -->
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/test-src.cpp">
- <fileset dir="${src}">
- <include name="attributes-test.h"/>
- <include name="color-profile-test.h"/>
- <include name="dir-util-test.h"/>
- <include name="extract-uri-test.h"/>
- <include name="marker-test.h"/>
- <include name="mod360-test.h"/>
- <include name="object-test.h"/>
- <include name="preferences-test.h"/>
- <include name="round-test.h"/>
- <include name="sp-gradient-test.h"/>
- <include name="sp-style-elem-test.h"/>
- <include name="syle-test.h"/>
- <include name="test-helpers.h"/>
- <include name="verbs-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/display/test-display.cpp">
- <fileset dir="${src}/display">
- <include name="curve-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/helper/test-helper.cpp">
- <fileset dir="${src}/helper">
- <include name="units-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/svg/test-svg.cpp">
- <fileset dir="${src}/svg">
- <!--<include name="css-ostringstream-test.h"/>-->
- <include name="stringstream-test.h"/>
- <include name="svg-affine-test.h"/>
- <include name="svg-color-test.h"/>
- <include name="svg-length-test.h"/>
- <include name="svg-path-geom-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/util/test-util.cpp">
- <fileset dir="${src}/util">
- <include name="list-container-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestpart command="${python} ${cxxtest}/cxxtestgen.py --have-eh"
- out="${src}/xml/test-xml.cpp">
- <fileset dir="${src}/xml">
- <include name="repr-action-test.h"/>
- <include name="quote-test.h"/>
- </fileset>
- </cxxtestpart>
- <cxxtestroot command="${python} ${cxxtest}/cxxtestgen.py"
- out="${src}/test-main.cpp"
- template="${src}/cxxtest-template.tpl">
- <fileset dir="${src}">
- <include name="MultiPrinter.h"/>
- <include name="PylogFormatter.h"/>
- <include name="TRPIFormatter.h"/>
- </fileset>
- </cxxtestroot>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : C O M P I L E
- ########################################################################
- -->
- <target name="compile" depends="cxxtest"
- description="compile the source to .o" >
-
- <!-- Compile from source to build -->
- <cc cc="${arch_cc}" cxx="${arch_cxx}"
- destdir="${build}/obj"
- continueOnError="true"
- refreshCache="${refresh}">
- <fileset dir="${src}">
- <!-- THINGS TO EXCLUDE -->
- <exclude name="ast/.*"/>
- <exclude name="bonobo/.*"/>
- <exclude name="deptool.cpp"/>
- <exclude name="cxxtests.cpp"/>
- <!--<exclude name="test-main.cpp"/>-->
- <!--<exclude name="test-src.cpp"/>-->
- <exclude name="display/test-display.cpp"/>
- <exclude name="display/testnr.cpp"/>
- <exclude name="extension/api.cpp"/>
- <exclude name="extension/dbus/.*"/>
- <exclude name="extension/dxf2svg/.*"/>
- <exclude name="extension/implementation/plugin.cpp"/>
- <exclude name="extension/plugins/.*"/>
- <exclude name="extract-uri-test.cpp"/>
- <exclude name="helper/units-test.cpp"/>
- <!-- exclude name="inkview.cpp"/-->
- <exclude name="livarot/Path-test.cpp"/>
- <exclude name="mod360-test.cpp"/>
- <exclude name="trace/potrace/potest.cpp"/>
- <exclude name="round-test.cpp"/>
- <exclude name="sp-gradient-test.cpp"/>
- <exclude name="style-test.cpp"/>
- <exclude name="svg/ftos.cpp"/>
- <!--<exclude name="svg/test-svg.cpp"/>-->
- <exclude name="svg/test-svg-main.cpp"/>
- <exclude name="util/list-container-test.cpp"/>
- <exclude name="widgets/test-widgets.cpp"/>
- <exclude name="widgets/image-menu-item.c"/>
- <exclude name="xml/quote-test.cpp"/>
- <exclude name="xml/repr-action-test.cpp"/>
- <exclude name="xml/test-xml.cpp"/>
- <!--<exclude name="xml/test-xml-main.cpp"/>-->
- <exclude name="io/streamtest.cpp"/>
- <!--OVERLAP-->
- <exclude name="removeoverlap/placement_SolveVPSC.cpp"/>
- <exclude name="removeoverlap/placement_SolveVPSC.h"/>
- <exclude name="removeoverlap/test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.cpp"/>
- <exclude name="removeoverlap/remove_rectangle_overlap-test.h"/>
- </fileset>
- <excludeinc dir="${src}">
- <file name="extension/param"/>
- </excludeinc>
- <flags>
- -Wall -Wformat -Werror=format-security -Wextra -Wpointer-arith -Wcast-align -Wsign-compare -Wswitch
- -Werror=return-type
- <!-- -Werror -->
- <!-- A list of warnings that should not error *yet*, any help is welcome in fixing the code generating these warnings! -->
- <!-- libcroco is using guchar where it should use gchar, so we need: --> -Wno-error=pointer-sign
- -Wno-error=unused-parameter -Wno-error=unused-but-set-variable -Wno-error=strict-overflow -Wno-error=write-strings
- <!-- Format warnings are obviously bad errors, but with the current old compiler on Windows (gcc 4.6.) we run into a problem with long long ints...
- The errors can be restored by removing these flags after updating to a newer compiler (soon after 0.91 release hopefully) -->
- -Wno-error=format -Wno-error=format-extra-args
- -O2
- -mms-bitfields
- -fopenmp
- </flags>
- <cxxflags>
- <!-- -std=gnu++0x -DCPP11 -Wno-unused-local-typedefs -->
- -Woverloaded-virtual
- </cxxflags>
- <defines>
- -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; }" <!-- inkboard -->
- -DPOPPLER_NEW_GFXFONT <!-- poppler changed the api for 0.8.3 -->
- -DPOPPLER_NEW_GFXPATCH <!-- GfxPatch no longer uses GfxColor in >= 0.15.1 -->
- -DPOPPLER_NEW_ERRORAPI <!-- poppler changed the error api for 0.20.0 -->
- -DPOPPLER_EVEN_NEWER_COLOR_SPACE_API <!-- poppler changed the colorspace api for 0.26.0 -->
- -DPOPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API <!-- poppler changed the colorspace api for 0.29.0 -->
- <!-- GTK+3 migration -->
- -DGLIBMM_DISABLE_DEPRECATED
- -DG_DISABLE_DEPRECATED
- -DGTK_DISABLE_SINGLE_INCLUDES
- <!-- -DGTKMM_DISABLE_DEPRECATED -->
- <!-- -DGTK_DISABLE_DEPRECATED -->
- -DGDKMM_DISABLE_DEPRECATED
- -DGSEAL_ENABLE
- </defines>
- <includes>
- -I${devlibs}/include
- <!-- GTK / GTKMM -->
- ${pcc.gtkmm-2.4}
- ${pcc.gmodule-2.0}
- <!-- OTHER -->
- ${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}
- <!-- PERL -->
- <!-- -Wno-comment -I${devlibs}/perl/lib/CORE -->
- <!-- PYTHON -->
- -I${devlibs}/python/include
- </includes>
- </cc>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : I 1 8 N
- ########################################################################
- -->
- <target name="i18n" depends="compile"
- description="compile gettext .po files to .mo">
-
- <msgfmt todir="${build}/locale" owndir="true"
- out="LC_MESSAGES/inkscape.mo">
- <fileset dir="po">
- </fileset>
- </msgfmt>
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K
- ########################################################################
- -->
- <target name="link" depends="compile"
- description="link objects and library to create executable">
-
- <rc command="${archutil}windres"
- file="${src}/inkscape.rc"
- out="${build}/obj/inkres.o">
- <flags>
- --include-dir=${src}
- </flags>
- </rc>
- <link command="${arch_link}" out="${build}/inkscape.exe"
- strip="true" symfile="${build}/inkscape.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mwindows
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <exclude name="winconsole.o"/>
- <exclude name="inkview.o"/>
- <exclude name="inkviewres.o"/>
- <!-- CxxTest -->
- <exclude name="test-main.o"/>
- <exclude name="test-src.o"/>
- <exclude name="display/test-display.o"/>
- <exclude name="helper/test-helper.o"/>
- <exclude name="svg/test-svg.o"/>
- <exclude name="util/test-util.o"/>
- <exclude name="xml/test-xml.o"/>
- </fileset>
- <!-- WARNING: If you change these libraries, don't forget to change them for inkview and cxxtests below as well! -->
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-<!--
- ########################################################################
- ## T A R G E T : L I N K C O N S O L E
- ########################################################################
- -->
- <target name="linkconsole" depends="compile"
- description="link console helper">
-
- <link command="${arch_link}" out="${build}/inkscape-console.exe"
- strip="true" stripcommand="${archutil}strip">
- <flags>
- -mconsole
- -mthreads
- </flags>
- <fileset dir="${build}">
- <include name="obj/winconsole.o"/>
- </fileset>
- <libs></libs>
- </link>
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K I N K V I E W
- ########################################################################
- -->
- <target name="linkinkview" depends="compile"
- description="link objects and library to create Inkview executable">
-
- <rc command="${archutil}windres"
- file="${src}/inkview.rc"
- out="${build}/obj/inkviewres.o">
- <flags>
- --include-dir=${src}
- </flags>
- </rc>
- <link command="${arch_link}" out="${build}/inkview.exe"
- strip="true" symfile="${build}/inkview.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mwindows
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <!-- exclude the other programs -->
- <exclude name="main.o"/>
- <exclude name="winmain.o"/>
- <exclude name="winconsole.o"/>
- <exclude name="inkres.o"/>
- <!-- CxxTest -->
- <exclude name="test-main.o"/>
- <exclude name="test-src.o"/>
- <exclude name="display/test-display.o"/>
- <exclude name="helper/test-helper.o"/>
- <exclude name="svg/test-svg.o"/>
- <exclude name="util/test-util.o"/>
- <exclude name="xml/test-xml.o"/>
- </fileset>
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : L I N K C X X T E S T S
- ########################################################################
- -->
- <target name="linkcxxtests" depends="compile"
- description="link objects and library to create executable">
-
- <link command="${arch_link}" out="${build}/cxxtests.exe"
- strip="true" symfile="${build}/cxxtests.dbg"
- stripcommand="${archutil}strip"
- objcopycommand="${archutil}objcopy">
- <flags>
- -mconsole
- -mthreads
- </flags>
- <fileset dir="${build}/obj">
- <!-- exclude the other programs -->
- <exclude name="main.o"/>
- <exclude name="winmain.o"/>
- <exclude name="winconsole.o"/>
- <exclude name="inkres.o"/>
- <exclude name="inkviewres.o"/>
- <exclude name="inkview.o"/>
- </fileset>
- <libs>
- -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 <!-- required for color profiles -->
- </libs>
- </link>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T B A S E
- ########################################################################
- -->
- <target name="distbase" depends="i18n"
- description="generate the distribution directory with all needed files">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="AUTHORS"/>
- <copy todir="${dist}" file="COPYING"/>
- <copy todir="${dist}" file="GPL2.txt"/>
- <copy todir="${dist}" file="GPL3.txt"/>
- <copy todir="${dist}" file="LGPL2.1.txt"/>
- <copy todir="${dist}" file="NEWS"/>
- <copy todir="${dist}" file="README"/>
- <copy todir="${dist}" file="TRANSLATORS"/>
- <copy todir="${dist}" file="${devlibs}/bin/libatkmm-1.6-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libglibmm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgiomm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgtkmm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdkmm-2.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangomm-1.4-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcairomm-1.0-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libsigc-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/freetype6.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libatk-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgcc_s_sjlj-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdk-win32-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgdk_pixbuf-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libglib-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgmodule-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgobject-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgtk-win32-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgthread-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libgio-2.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcairo-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpixman-1-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpoppler-58.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpoppler-glib-8.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangocairo-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpango-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangoft2-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpangowin32-1.0-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libfontconfig-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libxml2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libxslt.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexslt.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexpat-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/librevenge-0.0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/librevenge-stream-0.0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libwpg-0.2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libwpd-0.9.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libwpd-stream-0.9.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libvisio-0.1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libcdr-0.1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icui18n50.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icudata50.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/icuuc50.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libjpeg-7.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpng12-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpng14-14.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libtiff-3.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libexif-12.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libopenjpeg-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/msvcr70.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/msvcr71.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/zlib1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/bzip2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/iconv.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libpopt-0.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/liblcms-1.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/liblcms2-2.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagick++-3.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagickCore-3.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libMagickWand-3.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/intl.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/libintl-8.dll"/>
- <copy todir="${dist}" file="${devlibs}/bin/pthreadGC2.dll"/>
- <!-- MINGW support DLLs needed for openmp support -->
- <copy todir="${dist}" file="${mingw_bin}/mingwm10.dll"/>
- <copy todir="${dist}" file="${mingw_bin}/libgomp-1.dll"/>
-
- <!-- MSGFMT files -->
- <copy todir="${dist}">
- <fileset dir="${build}/locale">
- <exclude name="\.am$"/>
- </fileset>
- </copy>
-
- <mkdir dir="${dist}/data"/>
- <mkdir dir="${dist}/locale"/>
- <mkdir dir="${dist}/modules"/>
- <mkdir dir="${dist}/plugins"/>
-
- <!-- GTK -->
- <copy todir="${dist}"> <fileset dir="${devlibs}/etc"/> </copy>
- <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/gtk-2.0"/> </copy>
- <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/glib-2.0"/> </copy>
- <copy todir="${dist}">
- <fileset dir="share">
- <exclude name="\.am$"/>
- <exclude name="\.in$"/>
- <exclude name="\.sh$"/>
- </fileset>
- </copy>
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/locale"/> </copy>
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/themes"/> </copy>
- <copy todir="${dist}/share"> <fileset dir="${devlibs}/share/poppler"/> </copy>
- <copy todir="${dist}" file="${devlibs}/bin/gdb.exe"/>
-
- <!-- Aspell dictionaries -->
- <copy todir="${dist}/lib"> <fileset dir="${devlibs}/lib/aspell-0.60"/> </copy>
-
- <!-- Necessary to run extensions on windows if it is not in the path -->
- <copy todir="${dist}" file="${devlibs}/bin/gspawn-win32-helper.exe"/>
- <copy todir="${dist}" file="${devlibs}/bin/gspawn-win32-helper-console.exe"/>
-
- <!-- PERL -->
- <copy todir="${dist}" file="${devlibs}/perl/bin/perl58.dll"/>
-
- <!-- PYTHON -->
- <copy todir="${dist}" file="${devlibs}/python/python27.dll"/>
- <copy todir="${dist}/python" file="${devlibs}/python/python.exe" />
- <copy todir="${dist}/python" file="${devlibs}/python/pythonw.exe"/>
- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Lib"/> </copy>
- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/DLLs"/> </copy>
- <copy todir="${dist}/python"> <fileset dir="${devlibs}/python/Scripts"/> </copy>
-
- <!--<copy file="${devlibs}/share/themes/MS-Windows/gtk-2.0/gtkrc" todir="${dist}/etc/gtk-2.0"/>-->
- <makefile file="${dist}/etc/gtk-2.0/gtkrc">
- 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"
- </makefile>
-
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - I N K S C A P E
- ########################################################################
- -->
- <target name="dist-inkscape" depends="link,linkconsole,distbase"
- description="copy inkscape to the distribution directory">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="${build}/inkscape.exe"/>
- <copy todir="${dist}" file="${build}/inkscape.dbg"/>
- <copy file="${build}/inkscape-console.exe" tofile="${dist}/inkscape.com"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - I N K V I E W
- ########################################################################
- -->
- <target name="dist-inkview" depends="linkinkview,distbase"
- description="copy inkview to the distribution directory">
-
- <!-- Create the distribution directory -->
- <copy todir="${dist}" file="${build}/inkview.exe"/>
- <copy todir="${dist}" file="${build}/inkview.dbg"/>
- </target>
-
-
- <!--
- ########################################################################
- ## T A R G E T : C H E C K
- ########################################################################
- -->
- <target name="check" depends="linkcxxtests,distbase"
- description="perform unit tests">
- <copy todir="${dist}" file="${build}/cxxtests.exe"/>
- <cxxtestrun command="${dist}/cxxtests" workingdir="${dist}" />
- </target>
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - A L L
- ########################################################################
- -->
- <target name="dist-all" depends="dist-inkscape,dist-inkview"
- description="generate the distribution, along with inkview" >
- </target>
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : D I S T - A L L - C H E C K
- ########################################################################
- -->
- <target name="dist-all-check" depends="dist-all,check"
- description="generate the distribution, along with inkview and run cxxtests" >
- </target>
-
-
-
-
-
- <!--
- ########################################################################
- ## T A R G E T : C L E A N
- ########################################################################
- -->
- <target name="clean"
- description="clean up. deleting build and distro dirs" >
-
- <delete dir="${build}"/>
- <delete dir="${dist}"/>
- <delete file="build.dep"/>
- <delete file="config.h"/>
- <delete file="${src}/inkscape-version.cpp"/>
- <delete file="${src}/test-main.cpp"/>
- <delete file="${src}/test-src.cpp"/>
- <delete file="${src}/display/test-display.cpp"/>
- <delete file="${src}/helper/test-helper.cpp"/>
- <delete file="${src}/svg/test-svg.cpp"/>
- <delete file="${src}/util/test-util.cpp"/>
- <delete file="${src}/xml/test-xml.cpp"/>
-
- </target>
-
-
-
-</project>
-<!--
-########################################################################
-## E N D
-########################################################################
--->
-
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:
- * <pre>
- * 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 <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdarg.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <sys/time.h>
-#include <utime.h>
-#include <dirent.h>
-
-#include <iostream>
-#include <list>
-#include <string>
-#include <map>
-#include <set>
-#include <vector>
-#include <algorithm>
-
-
-#ifdef __WIN32__
-#define WIN32_LEAN_AND_MEAN
-#define NOGDI
-#include <windows.h>
-#endif
-
-#include <errno.h>
-
-
-//########################################################################
-//# Definition of gettimeofday() for those who don't have it
-//########################################################################
-#ifdef NEED_GETTIMEOFDAY
-#include <sys/timeb.h>
-
-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 <valenok@gmail.com>
- * 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 <http://www.gnu.org/licenses/>.
- *
- * 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 <http://cesanta.com/products.html>.
- */
-
-/*
- * 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 <valenok@gmail.com>
- * 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 <http://www.gnu.org/licenses/>.
- *
- * 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 <http://cesanta.com/products.html>.
- */
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-
-//#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<children.size() ; i++)
- delete children[i];
- }
-
- virtual String getName()
- { return name; }
-
- virtual String getValue()
- { return value; }
-
- Element *getParent()
- { return parent; }
-
- std::vector<Element *> getChildren()
- { return children; }
-
- std::vector<Element *> findElements(const String &name);
-
- String getAttribute(const String &name);
-
- std::vector<Attribute> &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<Element *>&res, const String &name);
-
- void writeIndentedRecursive(FILE *f, int indent);
-
- Element *parent;
-
- std::vector<Element *>children;
-
- std::vector<Attribute> attributes;
- std::vector<Namespace> 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<Element *>::iterator iter;
- for (iter = children.begin(); iter != children.end() ; iter++)
- {
- elem->addChild((*iter)->clone());
- }
- return elem;
-}
-
-
-void Element::findElementsRecursive(std::vector<Element *>&res, const String &name)
-{
- if (getName() == name)
- {
- res.push_back(this);
- }
- for (std::size_t i=0; i<children.size() ; i++)
- children[i]->findElementsRecursive(res, name);
-}
-
-std::vector<Element *> Element::findElements(const String &name)
-{
- std::vector<Element *> res;
- findElementsRecursive(res, name);
- return res;
-}
-
-String Element::getAttribute(const String &name)
-{
- for (std::size_t i=0 ; i<attributes.size() ; i++)
- if (attributes[i].getName() ==name)
- return attributes[i].getValue();
- return "";
-}
-
-String Element::getTagAttribute(const String &tagName, const String &attrName)
-{
- std::vector<Element *>elems = findElements(tagName);
- if (elems.size() <1)
- return "";
- String res = elems[0]->getAttribute(attrName);
- return res;
-}
-
-String Element::getTagValue(const String &tagName)
-{
- std::vector<Element *>elems = 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<indent;i++)
- fputc(' ',f);
- fprintf(f,"<%s",name.c_str());
- for (std::size_t i=0 ; i<attributes.size() ; i++)
- {
- fprintf(f," %s=\"%s\"",
- attributes[i].getName().c_str(),
- attributes[i].getValue().c_str());
- }
- for (std::size_t i=0 ; i<namespaces.size() ; i++)
- {
- fprintf(f," xmlns:%s=\"%s\"",
- namespaces[i].getPrefix().c_str(),
- namespaces[i].getNamespaceURI().c_str());
- }
- fprintf(f,">\n");
-
- //Between the tags
- if (value.size() > 0)
- {
- for (int i=0;i<indent;i++)
- fputc(' ', f);
- fprintf(f," %s\n", value.c_str());
- }
-
- for (std::size_t i=0 ; i<children.size() ; i++)
- children[i]->writeIndentedRecursive(f, indent+2);
-
- //Closing tag
- for (int i=0; i<indent; i++)
- fputc(' ',f);
- fprintf(f,"</%s>\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[] =
-{
- { "&amp;" , '&' },
- { "&lt;" , '<' },
- { "&gt;" , '>' },
- { "&apos;", '\'' },
- { "&quot;", '"' },
- { 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<end ; i++)
- {
- XMLCh ch = parsebuf[i];
- if (ch == '\n' || ch == '\r')
- count++;
- }
- return count;
-}
-
-
-void Parser::getLineAndColumn(int pos, int *lineNr, int *colNr)
-{
- int line = 1;
- int col = 1;
- for (long i=0 ; i<pos ; i++)
- {
- XMLCh ch = parsebuf[i];
- if (ch == '\n' || ch == '\r')
- {
- col = 0;
- line ++;
- }
- else
- col++;
- }
- *lineNr = line;
- *colNr = col;
-
-}
-
-
-void Parser::error(const char *fmt, ...)
-{
- int lineNr;
- int colNr;
- getLineAndColumn(currentPosition, &lineNr, &colNr);
- va_list args;
- fprintf(stderr, "xml error at line %d, column %d:", lineNr, colNr);
- va_start(args,fmt);
- vfprintf(stderr,fmt,args);
- va_end(args) ;
- fprintf(stderr, "\n");
-}
-
-
-
-int Parser::peek(int pos)
-{
- if (pos >= 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<str.size() ; i++)
- {
- XMLCh ch = (XMLCh)str[i];
- if (ch == '&')
- ret.append("&amp;");
- else if (ch == '<')
- ret.append("&lt;");
- else if (ch == '>')
- ret.append("&gt;");
- else if (ch == '\'')
- ret.append("&apos;");
- else if (ch == '"')
- ret.append("&quot;");
- 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<parselen)
- {
- int p2 = match(p, "<!--");
- if (p2 > p)
- {
- p = p2;
- while (p<parselen)
- {
- p2 = match(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<parselen)
- {
- XMLCh b = peek(p);
- if (b<=' ' || b=='/' || b=='>' || 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 ( p<parselen )
- {
- XMLCh b = peek(p);
- if (b=='"' || b=='\'')
- break;
- if (b=='&' && do_i_parse)
- {
- bool found = false;
- for (EntityEntry *ee = entities ; ee->value ; 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)
- {
- XMLCh ch = peek(p);
- if (ch=='?')
- {
- p++;
- break;
- }
- buf.push_back(ch);
- p++;
- }
-
- if (peek(p) != '>')
- return p0;
- p++;
-
- //printf("Got version:%s\n",buf.c_str());
- return p;
-}
-
-int Parser::parseDoctype(int p0)
-{
- //printf("### parseDoctype: %d\n", p0);
-
- int p = p0;
- p = skipwhite(p);
-
- if (p>=parselen || peek(p)!='<')
- return p0;
-
- p++;
-
- if (peek(p)!='!' || peek(p+1)=='-')
- return p0;
- p++;
-
- String buf;
- while (p<parselen)
- {
- XMLCh ch = peek(p);
- if (ch=='>')
- {
- 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<parselen)
- {
- p = skipwhite(p);
- ch = peek(p);
- //printf("ch:%c\n",ch);
- if (ch=='>')
- break;
- else if (ch=='/' && p<parselen+1)
- {
- p++;
- p = skipwhite(p);
- ch = peek(p);
- if (ch=='>')
- {
- 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 (p<parselen)
- {
- //# COMMENT
- p2 = match(p, "<!--");
- if (!cdata && p2>p)
- {
- p = p2;
- while (p<parselen)
- {
- p2 = match(p, "-->");
- if (p2 > p)
- {
- p = p2;
- break;
- }
- p++;
- }
- }
-
- ch = peek(p);
- //# END TAG
- if (ch=='<' && !cdata && peek(p+1)=='/')
- {
- break;
- }
- //# CDATA
- p2 = match(p, "<![CDATA[");
- if (p2 > 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 </%S>. 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<path.size() ; i++)
- {
- XMLCh ch = (XMLCh) path[i];
- if (ch == '/')
- npath.push_back((XMLCh)'\\');
- else
- npath.push_back(ch);
- }
-#else
- npath = path;
-#endif
- return npath;
-}
-
-
-bool URI::isAbsolute() const
-{
- return absolute;
-}
-
-bool URI::isOpaque() const
-{
- return opaque;
-}
-
-
-String URI::getQuery() const
-{
- return query;
-}
-
-
-String URI::getFragment() const
-{
- return fragment;
-}
-
-
-URI URI::resolve(const URI &other) const
-{
- //### According to w3c, this is handled in 3 cases
-
- //## 1
- if (opaque || other.isAbsolute())
- return other;
-
- //## 2
- if (other.fragment.size() > 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<String> 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<String>::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<String>::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<str.size() ; i++)
- {
- XMLCh ch = (XMLCh) str[i];
- if (ch == '\\')
- tmp.push_back((XMLCh)'/');
- else
- tmp.push_back(ch);
- }
- parsebuf = (char *) tmp.c_str();
-
-
- int p = parse(0);
- normalize();
-
- if (p < 0)
- {
- error("Syntax error");
- return false;
- }
-
- //printf("uri:%s\n", toString().c_str());
- //printf("path:%s\n", path.c_str());
-
- return true;
-
-}
-
-
-
-
-
-
-
-
-//########################################################################
-//########################################################################
-//## M A K E
-//########################################################################
-//########################################################################
-
-//########################################################################
-//# Stat cache to speed up stat requests
-//########################################################################
-struct StatResult {
- int result;
- struct stat statInfo;
-};
-typedef std::map<String, StatResult> statCacheType;
-static statCacheType statCache;
-static int cachedStat(const String &f, struct stat *s) {
- //printf("Stat path: %s\n", f.c_str());
- std::pair<statCacheType::iterator, bool> 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<String> files;
- std::vector<String> dirs;
-};
-typedef std::map<String, DirListing > dirCacheType;
-static dirCacheType dirCache;
-static const DirListing &cachedDir(String fullDir)
-{
- String dirNative = getNativePath(fullDir);
- std::pair<dirCacheType::iterator,bool> 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 <fileset> 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<String> &val)
- { files = val; }
-
- /**
- *
- */
- std::vector<String> getFiles() const
- { return files; }
-
- /**
- *
- */
- void setIncludes(const std::vector<String> &val)
- { includes = val; }
-
- /**
- *
- */
- std::vector<String> getIncludes() const
- { return includes; }
-
- /**
- *
- */
- void setExcludes(const std::vector<String> &val)
- { excludes = val; }
-
- /**
- *
- */
- std::vector<String> 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<String> files;
- std::vector<String> includes;
- std::vector<String> 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<String> &val)
- { files = val; }
-
- /**
- *
- */
- std::vector<String> 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<String> 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<String, String>::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<String, String>::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: <property environment="env"/>
- * ${env.JAVA_HOME}
- */
- String envPrefix;
-
- /**
- * If this prefix is seen in a substitution, use as a
- * pkg-config 'all' query
- * example: <property pkg-config="pc"/>
- * ${pc.gtkmm}
- */
- String pcPrefix;
-
- /**
- * If this prefix is seen in a substitution, use as a
- * pkg-config 'cflags' query
- * example: <property pkg-config="pcc"/>
- * ${pcc.gtkmm}
- */
- String pccPrefix;
-
- /**
- * If this prefix is seen in a substitution, use as a
- * pkg-config 'libs' query
- * example: <property pkg-config-libs="pcl"/>
- * ${pcl.gtkmm}
- */
- String pclPrefix;
-
- /**
- * If this prefix is seen in a substitution, use as a
- * Bazaar "bzr revno" query
- * example: <property subversion="svn"/> ???
- * ${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<String> 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<String> &res);
-
- /**
- * Find all files in the named directory
- */
- bool listFiles(const String &baseName,
- const String &dirname,
- std::vector<String> &result);
-
- /**
- * Perform a listing for a fileset
- */
- bool listFiles(MakeBase &propRef, FileSet &fileSet);
-
- /**
- * Parse a <patternset>
- */
- bool parsePatternSet(Element *elem,
- MakeBase &propRef,
- std::vector<String> &includes,
- std::vector<String> &excludes);
-
- /**
- * Parse a <fileset> entry, and determine which files
- * should be included
- */
- bool parseFileSet(Element *elem,
- MakeBase &propRef,
- FileSet &fileSet);
- /**
- * Parse a <filelist> entry
- */
- bool parseFileList(Element *elem,
- MakeBase &propRef,
- FileList &fileList);
-
- /**
- * Return this object's property list
- */
- virtual std::map<String, String> &getProperties()
- { return properties; }
-
-
- std::map<String, String> 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<String> &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<String, String> &getAttributes()
- { return attrs; }
-
- /**
- *
- */
- virtual std::vector<String> &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<String, String> attrs;
-
- std::vector<String> 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<String, String> 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<String> MakeBase::tokenize(const String &str,
- const String &delimiters)
-{
-
- std::vector<String> res;
- char *del = (char *)delimiters.c_str();
- String dmp;
- for (std::size_t i=0 ; i<str.size() ; i++)
- {
- char ch = str[i];
- char *p = (char *)0;
- for (p=del ; *p ; p++)
- if (*p == ch)
- break;
- if (*p)
- {
- if (dmp.size() > 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<len ; i++)
- {
- char ch = s[i];
- if (isspace(ch))
- {
- stripped.push_back(' ');
- for ( ; i<len ; i++)
- {
- ch = s[i];
- if (!isspace(ch))
- {
- stripped.push_back(ch);
- break;
- }
- }
- }
- else
- {
- stripped.push_back(ch);
- }
- }
- return stripped;
-}
-
-/**
- * remove leading whitespace from each line
- */
-String MakeBase::leftJustify(const String &s)
-{
- String out;
- int len = s.size();
- for (int i = 0 ; i<len ; )
- {
- char ch;
- //Skip to first visible character
- while (i<len)
- {
- ch = s[i];
- if (ch == '\n' || ch == '\r'
- || !isspace(ch))
- break;
- i++;
- }
- //Copy the rest of the line
- while (i<len)
- {
- ch = s[i];
- if (ch == '\n' || ch == '\r')
- {
- if (ch != '\r')
- out.push_back('\n');
- i++;
- break;
- }
- else
- {
- out.push_back(ch);
- }
- i++;
- }
- }
- return out;
-}
-
-
-/**
- * Removes whitespace from beginning and end of a string
- */
-String MakeBase::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;
-}
-
-
-/**
- * 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<s.size() ; i++)
- {
- ret.push_back(tolower(s[i]));
- }
- return ret;
-}
-
-
-/**
- * Return the native format of the canonical
- * path which we store
- */
-String MakeBase::getNativePath(const String &path)
-{
-#ifdef __WIN32__
- String npath;
- std::size_t firstChar = 0;
- if (path.size() >= 3)
- {
- if (path[0] == '/' &&
- isalpha(path[1]) &&
- path[2] == ':')
- firstChar++;
- }
- for (std::size_t i=firstChar ; i<path.size() ; i++)
- {
- char ch = path[i];
- if (ch == '/')
- npath.push_back('\\');
- else
- npath.push_back(ch);
- }
- return npath;
-#else
- return path;
-#endif
-}
-
-
-#ifdef __WIN32__
-#include <tchar.h>
-
-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<bytesRead ; i++)
- errbuf.push_back(readBuf[i]);
- }
- }
-
- //trace("## stdout");
- PeekNamedPipe(stdoutRead, NULL, 0, NULL, &avail, NULL);
- if (avail > 0)
- {
- bytesRead = 0;
- if (avail>4096) avail = 4096;
- ReadFile(stdoutRead, readBuf, avail, &bytesRead, NULL);
- if (bytesRead > 0)
- {
- for (unsigned int i=0 ; i<bytesRead ; i++)
- outbuf.push_back(readBuf[i]);
- }
- }
-
- //Was this the final check after program done?
- if (lastLoop)
- break;
-
- DWORD exitCode;
- GetExitCodeProcess(piProcessInfo.hProcess, &exitCode);
- if (exitCode != STILL_ACTIVE)
- lastLoop = true;
-
- Sleep(10);
- }
- //trace("outbuf:%s", outbuf.c_str());
- if (!CloseHandle(stdoutRead))
- {
- error("executeCommand: could not close read pipe");
- return false;
- }
- if (stdoutRead != stderrRead && !CloseHandle(stderrRead))
- {
- error("executeCommand: could not close read pipe");
- return false;
- }
-
- DWORD exitCode;
- GetExitCodeProcess(piProcessInfo.hProcess, &exitCode);
- //trace("exit code:%d", exitCode);
- if (exitCode != 0)
- {
- ret = false;
- }
-
- CloseHandle(piProcessInfo.hProcess);
- CloseHandle(piProcessInfo.hThread);
-
- return ret;
-
-}
-
-#else /*do it unix style*/
-
-#include <sys/wait.h>
-
-
-
-/**
- * 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<String> &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<String> &res)
-{
- String fullDir = baseDir;
- if (dirName.size()>0)
- {
- fullDir.append("/");
- fullDir.append(dirName);
- }
- String dirNative = getNativePath(fullDir);
-
- std::vector<String> 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<String> fileList;
- if (!listFiles(baseDir, "", fileList))
- return false;
-
- std::vector<String> includes = fileSet.getIncludes();
- std::vector<String> excludes = fileSet.getExcludes();
-
- std::vector<String> incs;
- std::vector<String>::iterator iter;
-
- std::sort(fileList.begin(), fileList.end());
-
- //If there are <includes>, 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<String>::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 <excludes>
- std::vector<String> res;
- for (iter = incs.begin() ; iter != incs.end() ; iter++)
- {
- String s = *iter;
- bool skipme = false;
- std::vector<String>::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<String> &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<String> list = pkgConfig.getRequireList();
- for (std::size_t i = 0 ; i<list.size() ; i++)
- {
- String depPkgName = list[i];
- if (deplist.find(depPkgName) != deplist.end())
- continue;
- String val;
- if (!pkgConfigRecursive(depPkgName, path, prefix, query, val, deplist))
- {
- error("Based on 'requires' attribute of package '%s'", packageName.c_str());
- return false;
- }
- result.append(" ");
- result.append(val);
- }
-
- return true;
-}
-
-bool MakeBase::pkgConfigQuery(const String &packageName, int query, String &result)
-{
- std::set<String> 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<String, String>::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 ; i<len ; i++)
- {
- char ch = s[i];
- if (ch == '$' && s[i+1] == '{')
- {
- String varname;
- int j = i+2;
- for ( ; j<len ; j++)
- {
- ch = s[j];
- if (ch == '$' && s[j+1] == '{')
- {
- error("attribute %s cannot have nested variable references",
- s.c_str());
- return false;
- }
- else if (ch == '}')
- {
- varname = trim(varname);
- String varval;
- if (!lookupProperty(varname, varval))
- return false;
- String varval2;
- //Now see if the answer has ${} in it, too
- if (!getSubstitutionsRecursive(varval, varval2, depth + 1))
- return false;
- val.append(varval2);
- break;
- }
- else
- {
- varname.push_back(ch);
- }
- }
- i = j;
- }
- else
- {
- val.push_back(ch);
- }
- }
- result = val;
- return true;
-}
-
-/**
- * Analyse a string, looking for any substitutions or other
- * things that need resilution
- */
-bool MakeBase::getSubstitutions(const String &str, String &result)
-{
- return getSubstitutionsRecursive(str, result, 0);
-}
-
-
-
-/**
- * replace variable refs like ${a} with their values
- * Assume that the string has already been syntax validated
- */
-String MakeBase::eval(const String &s, const String &defaultVal)
-{
- if (s.size()==0)
- return defaultVal;
- String ret;
- if (getSubstitutions(s, ret))
- return ret;
- else
- return defaultVal;
-}
-
-
-/**
- * replace variable refs like ${a} with their values
- * return true or false
- * Assume that the string has already been syntax validated
- */
-bool MakeBase::evalBool(const String &s, bool defaultVal)
-{
- if (s.size()==0)
- return defaultVal;
- String val = eval(s, "false");
- if (val.size()==0)
- return defaultVal;
- if (val == "true" || val == "TRUE")
- return true;
- else
- return false;
-}
-
-int MakeBase::evalInt(const String &s, int defaultVal)
-{
- if (s.size()==0) {
- return defaultVal;
- }
- int val = atoi(s.c_str());
- // perhaps some error checking, but... bah! waste of time
- return val;
-}
-
-/**
- * Get a string attribute, testing it for proper syntax and
- * property names.
- */
-bool MakeBase::getAttribute(Element *elem, const String &name,
- String &result)
-{
- String s = elem->getAttribute(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 <patternset> entry
- */
-bool MakeBase::parsePatternSet(Element *elem,
- MakeBase &propRef,
- std::vector<String> &includes,
- std::vector<String> &excludes
- )
-{
- std::vector<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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 <fileset> 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 <fileset>");
- return false;
- }
-
-
- std::vector<String> includes;
- std::vector<String> excludes;
-
- //A fileset has one implied patternset
- if (!parsePatternSet(elem, propRef, includes, excludes))
- {
- return false;
- }
- //Look for child tags, including more patternsets
- std::vector<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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<String> 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<result.size() ; i++)
- {
- trace("RES:%s", result[i].c_str());
- }
- */
-
-
- return true;
-}
-
-/**
- * Parse a <filelist> 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<String> fnames;
- //Look for child tags, namely "file"
- std::vector<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- if (tagName == "file")
- {
- String fname = child->getAttribute("name");
- if (fname.size()==0)
- {
- error("<file> element requires name="" attribute");
- return false;
- }
- fnames.push_back(fname);
- }
- else
- {
- error("tag <%s> not allowed in <fileset>", 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 ; p<buf.size() ; p++)
- {
- int ch = buf[p];
- if (ch == '\n' || ch == '\r')
- {
- if (!parseLine(line))
- return false;
- line.clear();
- lineNr++;
- }
- else
- {
- line.push_back(ch);
- }
- }
- if (line.size()>0)
- {
- if (!parseLine(line))
- return false;
- }
-
- parseRequires();
- parseVersion();
-
- return true;
-}
-
-
-
-
-void PkgConfig::dumpAttrs()
-{
- //trace("### PkgConfig attributes for %s", fileName.c_str());
- std::map<String, String>::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<String, FileRec *> 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<String> 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<String> &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<DepRec> loadDepFile(const String &fileName);
-
- /**
- * Load a dependency file, generating one if necessary
- */
- std::vector<DepRec> 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<String> fileList;
-
- /**
- *
- */
- std::vector<String> directories;
-
- /**
- * A list of all files which will be processed for
- * dependencies.
- */
- std::map<String, FileRec *> allFiles;
-
- /**
- * The list of .o files, and the
- * dependencies upon them.
- */
- std::map<String, FileRec *> 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<String, FileRec *>::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 && pos<fullname.size()-1)
- {
- path = fullname.substr(0, pos);
- pos++;
- basename = fullname.substr(pos, fullname.size()-pos);
- }
- else
- {
- path = "";
- basename = fullname;
- }
-
- pos = basename.find_last_of('.');
- if (pos != basename.npos && pos<basename.size()-1)
- {
- suffix = basename.substr(pos+1, basename.size()-pos-1);
- basename = basename.substr(0, pos);
- }
-
- //trace("parsename:%s %s %s", path.c_str(),
- // basename.c_str(), suffix.c_str());
-}
-
-
-
-/**
- * Generate our internal file list.
- */
-bool DepTool::createFileList()
-{
-
- for (std::size_t i=0 ; i<fileList.size() ; i++)
- {
- String fileName = fileList[i];
- //trace("## FileName:%s", fileName.c_str());
- String path;
- String basename;
- String sfx;
- parseName(fileName, path, basename, sfx);
- if (sfx == "cpp" || sfx == "c" || sfx == "cxx" ||
- sfx == "cc" || sfx == "CC")
- {
- FileRec *fe = new FileRec(FileRec::CFILE);
- fe->path = 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<String, FileRec *>::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<String>::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<String, FileRec *>::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<String, FileRec *>::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, "<?xml version='1.0'?>\n");
- fprintf(f, "<!--\n");
- fprintf(f, "########################################################\n");
- fprintf(f, "## File: build.dep\n");
- fprintf(f, "## Generated by BuildTool at :%s", ctime(&tim));
- fprintf(f, "########################################################\n");
- fprintf(f, "-->\n");
-
- fprintf(f, "<dependencies source='%s'>\n\n", sourceDir.c_str());
- std::map<String, FileRec *>::iterator iter;
- for (iter=oFiles.begin() ; iter!=oFiles.end() ; iter++)
- {
- FileRec *frec = iter->second;
- if (frec->type == FileRec::OFILE)
- {
- fprintf(f, "<object path='%s' name='%s' suffix='%s'>\n",
- frec->path.c_str(), frec->baseName.c_str(), frec->suffix.c_str());
- std::map<String, FileRec *>::iterator citer;
- for (citer=frec->files.begin() ; citer!=frec->files.end() ; citer++)
- {
- String cfname = citer->first;
- fprintf(f, " <dep name='%s'/>\n", cfname.c_str());
- }
- fprintf(f, "</object>\n\n");
- }
- }
-
- fprintf(f, "</dependencies>\n");
- fprintf(f, "\n");
- fprintf(f, "<!--\n");
- fprintf(f, "########################################################\n");
- fprintf(f, "## E N D\n");
- fprintf(f, "########################################################\n");
- fprintf(f, "-->\n");
-
- fclose(f);
-
- return true;
-}
-
-
-
-
-/**
- * This loads the dependency cache.
- */
-std::vector<DepRec> DepTool::loadDepFile(const String &depFile)
-{
- std::vector<DepRec> 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 <dependencies>");
- delete root;
- return result;
- }
-
- //########## Start parsing
- Element *depList = root->getChildren()[0];
-
- std::vector<Element *> objects = depList->getChildren();
- for (std::size_t i=0 ; i<objects.size() ; i++)
- {
- Element *objectElem = objects[i];
- String tagName = objectElem->getName();
- if (tagName != "object")
- {
- error("loadDepFile: <dependencies> should have only <object> 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<Element *> depElems = objectElem->getChildren();
- for (std::size_t i=0 ; i<depElems.size() ; i++)
- {
- Element *depElem = depElems[i];
- tagName = depElem->getName();
- if (tagName != "dep")
- {
- error("loadDepFile: <object> should have only <dep> 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<DepRec>::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<DepRec> DepTool::getDepFile(const String &depFile,
- bool forceRefresh)
-{
- std::vector<DepRec> 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<excludeInc.size() ; i++)
- {
- String fname = excludeInc[i];
- if (fname == dirname)
- return true;
- }
- return false;
- }
-
- virtual bool execute()
- {
- //evaluate our parameters
- String command = parent.eval(commandOpt, "gcc");
- String ccCommand = parent.eval(ccCommandOpt, "gcc");
- String cxxCommand = parent.eval(cxxCommandOpt, "g++");
- String source = parent.eval(sourceOpt, ".");
- String dest = parent.eval(destOpt, ".");
- String ccflags = parent.eval(flagsOpt, "");
- String cxxflags = parent.eval(cxxflagsOpt, "");
- String defines = parent.eval(definesOpt, "");
- String includes = parent.eval(includesOpt, "");
- bool continueOnError = parent.evalBool(continueOnErrorOpt, true);
- bool refreshCache = parent.evalBool(refreshCacheOpt, false);
-
- if (!listFiles(parent, fileSet))
- return false;
-
- FILE *f = NULL;
- f = fopen("compile.lst", "w");
-
- //refreshCache is probably false here, unless specified otherwise
- String fullName = parent.resolve("build.dep");
- if (refreshCache || isNewerThan(parent.getURI().getPath(), fullName))
- {
- taskstatus("regenerating C/C++ dependency cache");
- refreshCache = true;
- }
-
- DepTool depTool;
- depTool.setSourceDirectory(source);
- depTool.setFileList(fileSet.getFiles());
- std::vector<DepRec> 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<String> paths;
- std::vector<DepRec>::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<String>::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 ; i<dep.files.size() ; i++)
- {
- String depName;
- if (source.size()>0)
- {
- 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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 ; i<fileSet.size() ; i++)
- {
- String fileName = fileSet[i];
-
- String sourcePath;
- if (fileSetDir.size()>0)
- {
- 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 && pos<baseName.size()-1)
- baseName = baseName.substr(pos+1, baseName.size());
- String fullSource = parent.resolve(fileName);
- String destPath;
- if (toDirName.size()>0)
- {
- 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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("<copy> can only have one of : file= and <fileset>");
- return false;
- }
- if (toFileNameOpt.size()>0 && toDirNameOpt.size()>0)
- {
- error("<copy> can only have one of : tofile= or todir=");
- return false;
- }
- if (haveFileSet && toDirNameOpt.size()==0)
- {
- error("a <copy> task with a <fileset> must have : todir=");
- return false;
- }
- if (cptype == CP_TOFILE && fileNameOpt.size()==0)
- {
- error("<copy> tofile= must be associated with : file=");
- return false;
- }
- if (cptype == CP_TODIR && fileNameOpt.size()==0 && !haveFileSet)
- {
- error("<copy> todir= must be associated with : file= or <fileset>");
- 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 ; i<fileSet.size() ; i++)
- {
- String fileName = fileSet[i];
- if (getSuffix(fileName) != "h")
- continue;
- String sourcePath;
- if (fileSetDir.size()>0)
- {
- 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("<cxxtestpart> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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 ; i<fileSet.size() ; i++)
- {
- String fileName = fileSet[i];
- if (getSuffix(fileName) != "h")
- continue;
- String sourcePath;
- if (fileSetDir.size()>0)
- {
- 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("<cxxtestroot> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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("<cxxtestrun> 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; i<workingDir.size(); i++) {
- // This assumes no . and .. parts
- if (wasSlash && workingDir[i]!='/') workingDirDepth++;
- wasSlash = workingDir[i] == '/';
- }
- for(size_t i=0; i<workingDirDepth; i++) {
- cmd = "../" + cmd;
- }
-
- if (newFiles>0) {
- 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("<cxxtestrun> 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("<delete> can have one attribute of file= or dir=");
- return false;
- }
- if (fileNameOpt.size()==0 && dirNameOpt.size()==0)
- {
- error("<delete> 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("<jar> 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("<jar> 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<String> 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<fileList.size() ; i++)
- {
- String fname = fileList[i];
- String srcName = fname;
- if (fname.size()<6) //x.java
- continue;
- if (fname.compare(fname.size()-5, 5, ".java") != 0)
- continue;
- String baseName = fname.substr(0, fname.size()-5);
- String destName = baseName;
- destName.append(".class");
-
- String fullSrc = srcdir;
- fullSrc.append("/");
- fullSrc.append(fname);
- String fullDest = destdir;
- fullDest.append("/");
- fullDest.append(destName);
- //trace("fullsrc:%s fulldest:%s", fullSrc.c_str(), fullDest.c_str());
- if (!isNewerThan(fullSrc, fullDest))
- continue;
-
- count++;
- fprintf(f, "%s\n", fullSrc.c_str());
- }
- fclose(f);
- if (!count)
- {
- taskstatus("nothing to do");
- return true;
- }
-
- taskstatus("compiling %d files", count);
-
- String execCmd = cmd;
- execCmd.append("@");
- execCmd.append(fname);
-
- String outString, errString;
- bool ret = executeCommand(execCmd.c_str(), "", outString, errString);
- if (!ret)
- {
- error("<javac> 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("<javac> 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<std::string> thelist;
- std::list<std::string>::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 ; i<fileSet.size() ; i++)
- {
- cmd.append(" ");
- String obj;
- if (fileSetDir.size()>0)
- {
- 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("<strip> 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("<strip> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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("<makefile> could not open %s for writing : %s",
- fullName.c_str(), strerror(errno));
- return false;
- }
- for (std::size_t i=0 ; i<text.size() ; i++)
- fputc(text[i], f);
- fputc('\n', f);
- fclose(f);
- removeFromStatCache(fullNative);
- return true;
- }
-
- virtual bool parse(Element *elem)
- {
- if (!parent.getAttribute(elem, "file", fileNameOpt))
- return false;
- if (!parent.getAttribute(elem, "force", forceOpt))
- return false;
- if (fileNameOpt.size() == 0)
- {
- error("<makefile> 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("<mkdir> 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 ; i<fileSet.size() ; i++)
- {
- String fileName = fileSet[i];
- if (getSuffix(fileName) != "po")
- continue;
- String sourcePath;
- if (fileSetDir.size()>0)
- {
- 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("<msgfmt> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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("<pkg-config> 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("<pkg-config> 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("<pkg-config> requires 'name=\"package\"' attribute");
- return false;
- }
-
- //# PROPERTY
- if (!parent.getAttribute(elem, "property", propNameOpt))
- return false;
- if (propNameOpt.size()==0)
- {
- error("<pkg-config> 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("<ranlib> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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 ; i<fileSet.size() ; i++)
- {
- String fname;
- if (fileSetDir.size()>0)
- {
- 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 ; i<fileSet.size() ; i++)
- {
- String fname;
- if (fileSetDir.size()>0)
- {
- 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("<sharedlib> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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 ; i<fileSet.size() ; i++)
- {
- String fname;
- if (fileSetDir.size()>0)
- {
- 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 ; i<fileSet.size() ; i++)
- {
- String fname;
- if (fileSetDir.size()>0)
- {
- 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("<staticlib> 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<Element *> children = elem->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *child = children[i];
- String tagName = child->getName();
- 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("<strip> symbol file failed : %s", errbuf.c_str());
- return false;
- }
- }
-
- cmd = command;
- cmd.append(getNativePath(fullName));
- if (!executeCommand(cmd, "", outbuf, errbuf))
- {
- error("<strip> 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("<strip> 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("<touch> 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("<touch> 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("<touch> 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<String> &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<Task *> &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<String> deps;
-
- std::vector<Task *> 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<String, Target> &getTargets()
- { return targets; }
-
-
- /**
- *
- */
- virtual String version()
- { return BUILDTOOL_VERSION; }
-
- /**
- * Overload a <property>
- */
- 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<String> &targetsCompleted);
-
-
- /**
- *
- */
- bool execute();
-
- /**
- *
- */
- bool checkTargetDependencies(Target &prop,
- std::vector<String> &depList);
-
- /**
- *
- */
- bool parsePropertyFile(const String &fileName,
- const String &prefix);
-
- /**
- *
- */
- bool parseProperty(Element *elem);
-
- /**
- *
- */
- bool parseFile();
-
- /**
- *
- */
- std::vector<String> glob(const String &pattern);
-
-
- //###############
- //# Fields
- //###############
-
- String projectName;
-
- String currentTarget;
-
- String defaultTarget;
-
- String specifiedTarget;
-
- String baseDir;
-
- String description;
-
- //std::vector<Property> properties;
-
- std::map<String, Target> targets;
-
- std::vector<Task *> allTasks;
-
- std::map<String, String> 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<String> Make::glob(const String &pattern)
-{
- std::vector<String> res;
- return res;
-}
-
-
-//########################################################################
-//# P U B L I C A P I
-//########################################################################
-
-
-
-/**
- *
- */
-bool Make::executeTarget(Target &target,
- std::set<String> &targetsCompleted)
-{
-
- String name = target.getName();
-
- //First get any dependencies for this target
- std::vector<String> deps = target.getDependencies();
- for (std::size_t i=0 ; i<deps.size() ; i++)
- {
- String dep = deps[i];
- //Did we do it already? Skip
- if (targetsCompleted.find(dep)!=targetsCompleted.end())
- continue;
-
- std::map<String, Target> &tgts =
- target.getParent().getTargets();
- std::map<String, Target>::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<Task *> &tasks = target.getTasks();
- for (std::size_t i=0 ; i<tasks.size() ; i++)
- {
- Task *task = tasks[i];
- status("--- %s / %s", name.c_str(), task->getName().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<String, Target>::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<String> targetsCompleted;
- if (!executeTarget(target, targetsCompleted))
- {
- return false;
- }
-
- status("######## EXECUTE COMPLETE");
- return true;
-}
-
-
-
-
-/**
- *
- */
-bool Make::checkTargetDependencies(Target &target,
- std::vector<String> &depList)
-{
- String tgtName = target.getName().c_str();
- depList.push_back(tgtName);
-
- std::vector<String> deps = target.getDependencies();
- for (std::size_t i=0 ; i<deps.size() ; i++)
- {
- String dep = deps[i];
- //First thing entered was the starting Target
- if (dep == depList[0])
- {
- error("Circular dependency '%s' found at '%s'",
- dep.c_str(), tgtName.c_str());
- std::vector<String>::iterator diter;
- for (diter=depList.begin() ; diter!=depList.end() ; diter++)
- {
- error(" %s", diter->c_str());
- }
- return false;
- }
-
- std::map<String, Target> &tgts =
- target.getParent().getTargets();
- std::map<String, Target>::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 ; p++)
- if (!isspace(s[p]))
- break;
-
- if (p>=len || s[p]!='=')
- {
- error("property file %s, line %d: expected '='",
- fileName.c_str(), linenr);
- return false;
- }
- p++;
-
- //skip whitespace
- for ( ; p<len ; p++)
- if (!isspace(s[p]))
- break;
-
- /* This way expects a word after the =
- p2 = getword(p, s, val);
- if (p2 <= p)
- {
- error("property file %s, line %d: expected value",
- fileName.c_str(), linenr);
- return false;
- }
- */
- // This way gets the rest of the line after the =
- if (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<String, String>::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<Attribute> &attrs = elem->getAttributes();
- for (std::size_t i=0 ; i<attrs.size() ; i++)
- {
- String attrName = attrs[i].getName();
- String attrVal = attrs[i].getValue();
-
- if (attrName == "name")
- {
- String val;
- if (!getAttribute(elem, "value", val))
- return false;
- if (val.size() > 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<String, String>::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 <project>");
- 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<Element *> children = project->getChildren();
- for (std::size_t i=0 ; i<children.size() ; i++)
- {
- Element *elem = children[i];
- setLine(elem->getLine());
- 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<Element *> telems = elem->getChildren();
- for (std::size_t i=0 ; i<telems.size() ; i++)
- {
- Element *telem = telems[i];
- Task breeder(*this);
- Task *task = breeder.createTask(telem, telem->getLine());
- 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<String, Target>::iterator iter;
- for (iter = targets.begin() ; iter!= targets.end() ; iter++)
- {
- Target tgt = iter->second;
- std::vector<String> depList;
- if (!checkTargetDependencies(tgt, depList))
- {
- return false;
- }
- }
-
-
- delete root;
- status("######## PARSE COMPLETE");
- return true;
-}
-
-
-/**
- * Overload a <property>
- */
-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<len ; i++)
- {
- char ch = s[i];
- if (ch == '=')
- break;
- name.push_back(ch);
- }
- if (i>=len || s[i]!='=')
- {
- error("property requires -Dname=value");
- return false;
- }
- i++;
- for ( ; i<len ; i++)
- {
- char ch = s[i];
- val.push_back(ch);
- }
- return true;
-}
-
-
-/**
- * Compare a buffer with a key, for the length of the key
- */
-static bool sequ(const String &buf, const char *key)
-{
- int len = buf.size();
- for (int i=0 ; key[i] && i<len ; i++)
- {
- if (key[i] != buf[i])
- return false;
- }
- return true;
-}
-
-static void usage(int argc, char **argv)
-{
- printf("usage:\n");
- printf(" %s [options] [target]\n", argv[0]);
- printf("Options:\n");
- printf(" -help, -h print this message\n");
- printf(" -version print the version information and exit\n");
- printf(" -file <file> use given buildfile\n");
- printf(" -f <file> ''\n");
- printf(" -D<property>=<value> 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 ; i<argc ; i++)
- {
- String arg = argv[i];
- if (arg.size()>1 && 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<buildtool::FileRec> 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.hpp>
-boost::optional<int> 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 <malloc.h>])
-])
-
-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 <h.lai@chello.nl>
-
-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 <kasal@ucw.cz>
-# Copyright (c) 2008 Andreas Schwab <schwab@suse.de>
-# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-# 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 <bkoz@redhat.com>
-# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-#
-# 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 <typename T>
- 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<void> single_type;
- typedef check<check<void>> double_type;
- typedef check<check<check<void>>> triple_type;
- typedef check<check<check<check<void>>>> 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<T, T>
- {
- 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<int, decltype(0)>::value == true, "");
- static_assert(is_same<int, decltype(c)>::value == false, "");
- static_assert(is_same<int, decltype(v)>::value == false, "");
- auto ac = c;
- auto av = v;
- auto sumi = ac + av + 'x';
- auto sumf = ac + av + 1.0;
- static_assert(is_same<int, decltype(ac)>::value == true, "");
- static_assert(is_same<int, decltype(av)>::value == true, "");
- static_assert(is_same<int, decltype(sumi)>::value == true, "");
- static_assert(is_same<int, decltype(sumf)>::value == false, "");
- static_assert(is_same<int, decltype(add(c, v))>::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 <int...>
- struct sum;
-
- template <int N0, int... N1toN>
- struct sum<N0, N1toN...>
- {
- static constexpr auto value = N0 + sum<N1toN...>::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<typename T>
- using member = typename T::member_type;
-
- template<typename T>
- void func(...) {}
-
- template<typename T>
- void func(member<T>*) {}
-
- void test();
-
- void test() { func<foo>(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<T, T>
- {
- static constexpr auto value = true;
- };
-
- int
- test()
- {
- auto x = 0;
- static_assert(is_same<int, decltype(f(x))>::value, "");
- static_assert(is_same<int&, decltype(g(x))>::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 <bkoz@redhat.com>
-# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-#
-# 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 <cxxtest: curve-test.h fails>
-# LP #1208005 <cxxtest: svg-path-geom-test.h fails>
-# LP #1207502 <cxxtest: svg-affine-test.h fails>
-
-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