summaryrefslogtreecommitdiff
path: root/Build/source/libs
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-08-31 23:11:41 +0000
committerKarl Berry <karl@freefriends.org>2018-08-31 23:11:41 +0000
commit8ba2cf02688200d56e4fe0839a451ef832ce15b6 (patch)
treefcec1a50903a6e5b939859a1f92e15342636f290 /Build/source/libs
parent5d0960aa5419651a9c9b6503e44be2f098831ef1 (diff)
dvisvgm 2.5, including potrace now bundled with dvisvgm instead of under libs/
git-svn-id: svn://tug.org/texlive/trunk@48527 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs')
-rw-r--r--Build/source/libs/ChangeLog4
-rw-r--r--Build/source/libs/Makefile.in2
-rw-r--r--Build/source/libs/README3
-rw-r--r--Build/source/libs/aclocal.m41
-rwxr-xr-xBuild/source/libs/configure42
-rw-r--r--Build/source/libs/potrace/ChangeLog54
-rw-r--r--Build/source/libs/potrace/Makefile.am62
-rw-r--r--Build/source/libs/potrace/Makefile.in1357
-rw-r--r--Build/source/libs/potrace/TLpatches/ChangeLog24
-rw-r--r--Build/source/libs/potrace/TLpatches/TL-Changes22
-rw-r--r--Build/source/libs/potrace/ac/potrace.ac11
-rw-r--r--Build/source/libs/potrace/ac/withenable.ac7
-rw-r--r--Build/source/libs/potrace/aclocal.m41173
-rw-r--r--Build/source/libs/potrace/config.h.in70
-rwxr-xr-xBuild/source/libs/potrace/configure6664
-rw-r--r--Build/source/libs/potrace/configure.ac42
-rw-r--r--Build/source/libs/potrace/include/Makefile.am15
-rw-r--r--Build/source/libs/potrace/include/Makefile.in424
-rw-r--r--Build/source/libs/potrace/potrace-src/AUTHORS11
-rw-r--r--Build/source/libs/potrace/potrace-src/ChangeLog422
-rw-r--r--Build/source/libs/potrace/potrace-src/Makefile.am11
-rw-r--r--Build/source/libs/potrace/potrace-src/NEWS148
-rw-r--r--Build/source/libs/potrace/potrace-src/README215
-rw-r--r--Build/source/libs/potrace/potrace-src/README-WIN49
-rw-r--r--Build/source/libs/potrace/potrace-src/config.h.in109
-rw-r--r--Build/source/libs/potrace/potrace-src/configure.ac285
-rw-r--r--Build/source/libs/potrace/potrace-src/src/Makefile.am59
-rw-r--r--Build/source/libs/potrace/potrace-src/src/auxiliary.h80
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_dxf.c278
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_dxf.h15
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_eps.c863
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_eps.h19
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_geojson.c223
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_geojson.h15
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_pdf.c441
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_pdf.h20
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_pgm.c106
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_pgm.h16
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_svg.c342
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_svg.h16
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_xfig.c252
-rw-r--r--Build/source/libs/potrace/potrace-src/src/backend_xfig.h15
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bbox.c154
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bbox.h18
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bitmap.h228
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bitmap_io.c880
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bitmap_io.h23
-rw-r--r--Build/source/libs/potrace/potrace-src/src/bitops.h83
-rw-r--r--Build/source/libs/potrace/potrace-src/src/curve.c112
-rw-r--r--Build/source/libs/potrace/potrace-src/src/curve.h77
-rw-r--r--Build/source/libs/potrace/potrace-src/src/decompose.c521
-rw-r--r--Build/source/libs/potrace/potrace-src/src/decompose.h16
-rw-r--r--Build/source/libs/potrace/potrace-src/src/flate.c380
-rw-r--r--Build/source/libs/potrace/potrace-src/src/flate.h15
-rw-r--r--Build/source/libs/potrace/potrace-src/src/getopt.c1041
-rw-r--r--Build/source/libs/potrace/potrace-src/src/getopt1.c168
-rw-r--r--Build/source/libs/potrace/potrace-src/src/greymap.c1084
-rw-r--r--Build/source/libs/potrace/potrace-src/src/greymap.h65
-rw-r--r--Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h180
-rw-r--r--Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym5
-rw-r--r--Build/source/libs/potrace/potrace-src/src/lists.h285
-rw-r--r--Build/source/libs/potrace/potrace-src/src/lzw.c415
-rw-r--r--Build/source/libs/potrace/potrace-src/src/lzw.h50
-rw-r--r--Build/source/libs/potrace/potrace-src/src/main.c1274
-rw-r--r--Build/source/libs/potrace/potrace-src/src/main.h109
-rw-r--r--Build/source/libs/potrace/potrace-src/src/mkbitmap.c802
-rw-r--r--Build/source/libs/potrace/potrace-src/src/platform.h38
-rw-r--r--Build/source/libs/potrace/potrace-src/src/potracelib.c114
-rw-r--r--Build/source/libs/potrace/potrace-src/src/potracelib.h139
-rw-r--r--Build/source/libs/potrace/potrace-src/src/potracelib_demo.c148
-rw-r--r--Build/source/libs/potrace/potrace-src/src/progress.h79
-rw-r--r--Build/source/libs/potrace/potrace-src/src/progress_bar.c207
-rw-r--r--Build/source/libs/potrace/potrace-src/src/progress_bar.h26
-rw-r--r--Build/source/libs/potrace/potrace-src/src/render.c245
-rw-r--r--Build/source/libs/potrace/potrace-src/src/render.h27
-rw-r--r--Build/source/libs/potrace/potrace-src/src/trace.c1249
-rw-r--r--Build/source/libs/potrace/potrace-src/src/trace.h15
-rw-r--r--Build/source/libs/potrace/potrace-src/src/trans.c127
-rw-r--r--Build/source/libs/potrace/potrace-src/src/trans.h36
-rwxr-xr-xBuild/source/libs/potrace/potrace.test8
-rw-r--r--Build/source/libs/potrace/potracetst.c14
-rw-r--r--Build/source/libs/potrace/version.ac11
82 files changed, 4 insertions, 24451 deletions
diff --git a/Build/source/libs/ChangeLog b/Build/source/libs/ChangeLog
index d49a9e359d9..9ab1dc8a95d 100644
--- a/Build/source/libs/ChangeLog
+++ b/Build/source/libs/ChangeLog
@@ -1,3 +1,7 @@
+2018-08-30 Karl Berry <karl@freefriends.org>
+
+ * potrace: remove, now bundled with dvisvgm (its only user).
+
2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
* Makefile.am: Use the fragment ../am/dist_hook.am.
diff --git a/Build/source/libs/Makefile.in b/Build/source/libs/Makefile.in
index 28896e7c4d9..d40513cd212 100644
--- a/Build/source/libs/Makefile.in
+++ b/Build/source/libs/Makefile.in
@@ -108,7 +108,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \
$(top_srcdir)/../m4/kpse-pixman-flags.m4 \
$(top_srcdir)/../m4/kpse-pkgs.m4 \
$(top_srcdir)/../m4/kpse-poppler-flags.m4 \
- $(top_srcdir)/../m4/kpse-potrace-flags.m4 \
$(top_srcdir)/../m4/kpse-ptexenc-flags.m4 \
$(top_srcdir)/../m4/kpse-setup.m4 \
$(top_srcdir)/../m4/kpse-teckit-flags.m4 \
@@ -182,7 +181,6 @@ am__aclocal_m4_deps = $(top_srcdir)/../m4/kpse-cairo-flags.m4 \
$(top_srcdir)/../libs/gmp/ac/withenable.ac \
$(top_srcdir)/../libs/cairo/ac/withenable.ac \
$(top_srcdir)/../libs/pixman/ac/withenable.ac \
- $(top_srcdir)/../libs/potrace/ac/withenable.ac \
$(top_srcdir)/../libs/gd/ac/withenable.ac \
$(top_srcdir)/../libs/freetype2/ac/withenable.ac \
$(top_srcdir)/../libs/libpng/ac/withenable.ac \
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 24ae054bda6..8abfd4a15dd 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -53,9 +53,6 @@ poppler 0.68.0 - checked 20aug18
http://poppler.freedesktop.org/ - used by luatex and xetex
(requires C++11)
-potrace 1.15 - checked 07aug17
- http://potrace.sourceforge.net
-
teckit 2.5.8 - checked 24jul18
https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz
diff --git a/Build/source/libs/aclocal.m4 b/Build/source/libs/aclocal.m4
index 2386b91a58b..dae4686cafd 100644
--- a/Build/source/libs/aclocal.m4
+++ b/Build/source/libs/aclocal.m4
@@ -1188,7 +1188,6 @@ m4_include([../m4/kpse-options.m4])
m4_include([../m4/kpse-pixman-flags.m4])
m4_include([../m4/kpse-pkgs.m4])
m4_include([../m4/kpse-poppler-flags.m4])
-m4_include([../m4/kpse-potrace-flags.m4])
m4_include([../m4/kpse-ptexenc-flags.m4])
m4_include([../m4/kpse-setup.m4])
m4_include([../m4/kpse-teckit-flags.m4])
diff --git a/Build/source/libs/configure b/Build/source/libs/configure
index 1b52af91567..10051f841a5 100755
--- a/Build/source/libs/configure
+++ b/Build/source/libs/configure
@@ -820,9 +820,6 @@ with_gmp_includes
with_gmp_libdir
with_system_cairo
with_system_pixman
-with_system_potrace
-with_potrace_includes
-with_potrace_libdir
with_system_gd
with_gd_includes
with_gd_libdir
@@ -1656,11 +1653,6 @@ Optional Packages:
pkg-config)
--with-system-pixman use installed pixman headers and library (requires
pkg-config)
- --with-system-potrace use installed potrace headers and library
- --with-potrace-includes=DIR
- potrace headers installed in DIR
- --with-potrace-libdir=DIR
- potrace library installed in DIR
--with-system-gd use installed gd headers and library
--with-gd-includes=DIR gd headers installed in DIR
--with-gd-libdir=DIR gd library installed in DIR
@@ -5234,36 +5226,6 @@ $as_echo "$as_me: Assuming installed \`pixman' headers and library" >&6;}
ac_configure_args="$ac_configure_args '--with-system-pixman=$with_system_pixman'"
fi
-## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/
-## configure options and TL libraries required for potrace
-
-# Check whether --with-system-potrace was given.
-if test "${with_system_potrace+set}" = set; then :
- withval=$with_system_potrace;
-fi
-
-# Check whether --with-potrace-includes was given.
-if test "${with_potrace_includes+set}" = set; then :
- withval=$with_potrace_includes;
-fi
-
-# Check whether --with-potrace-libdir was given.
-if test "${with_potrace_libdir+set}" = set; then :
- withval=$with_potrace_libdir;
-fi
-if test "x$with_system_potrace" = x; then
- if test -f $srcdir/../libs/potrace/configure; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5
-$as_echo "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;}
- with_system_potrace=no
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5
-$as_echo "$as_me: Assuming installed \`potrace' headers and library" >&6;}
- with_system_potrace=yes
- fi
- ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'"
-fi
-
## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/
## configure options and TL libraries required for gd
@@ -6486,10 +6448,6 @@ if test -x $srcdir/pixman/configure; then
test "x$with_system_pixman" != xyes && test "x$need_pixman" = xyes && MAKE_SUBDIRS="pixman $MAKE_SUBDIRS"
CONF_SUBDIRS="pixman $CONF_SUBDIRS"
fi
-if test -x $srcdir/potrace/configure; then
- test "x$with_system_potrace" != xyes && test "x$need_potrace" = xyes && MAKE_SUBDIRS="potrace $MAKE_SUBDIRS"
- CONF_SUBDIRS="potrace $CONF_SUBDIRS"
-fi
if test -x $srcdir/gd/configure; then
test "x$with_system_gd" != xyes && test "x$need_gd" = xyes && MAKE_SUBDIRS="gd $MAKE_SUBDIRS"
CONF_SUBDIRS="gd $CONF_SUBDIRS"
diff --git a/Build/source/libs/potrace/ChangeLog b/Build/source/libs/potrace/ChangeLog
deleted file mode 100644
index 91ca4d6e6f5..00000000000
--- a/Build/source/libs/potrace/ChangeLog
+++ /dev/null
@@ -1,54 +0,0 @@
-2017-08-08 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * configure.ac: check uint64_t.
-
-2017-08-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.15.
- * version.ac: Adjust.
-
-2017-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.14.
- * version.ac: Adjust.
-
-2016-02-15 Karl Berry <karl@tug.org>
-
- * potrace-PATCHES: rename from potrace-src-PATCHES.
- * Makefile.am (EXTRA_DIST): likewise.
-
-2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.13.
- * configure.ac: New source-tree-naming convention per Karl.
- * version.ac: Adjust.
-
-2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Better dependencies for 'make check'.
-
-2015-03-27 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import potrace-1.12.
- * version.ac: Adjust.
-
-2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Use the fragment ../../am/dist_hook.am.
-
-2014-06-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Drop the obsolete ACLOCAL_AMFLAGS.
-
-2013-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Use ../../am/rebuild.am.
-
-2013-07-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * include/Makefile.am: Moved Makefile fragments to ../../am/.
-
-2013-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import potrace-1.11.
-
diff --git a/Build/source/libs/potrace/Makefile.am b/Build/source/libs/potrace/Makefile.am
deleted file mode 100644
index 12298c669b8..00000000000
--- a/Build/source/libs/potrace/Makefile.am
+++ /dev/null
@@ -1,62 +0,0 @@
-## $Id$
-## Proxy Makefile.am to build potrace for TeX Live.
-##
-## Copyright 2016-2017 Karl Berry <tex-live@tug.org>
-## Copyright 2013-2015 Peter Breitenlohner <tex-live@tug.org>
-##
-## This file is free software; the copyright holder
-## gives unlimited permission to copy and/or distribute it,
-## with or without modifications, as long as this notice is preserved.
-##
-## We want to re-distribute the whole original potrace source tree.
-##
-EXTRA_DIST = $(POTRACE_TREE)
-
-## Changes applied to the original source tree
-##
-EXTRA_DIST += TLpatches
-
-# Files not to be distributed
-include $(srcdir)/../../am/dist_hook.am
-NEVER_NAMES += $(NEVER_NAMES_SUB)
-
-SUBDIRS = . include
-
-AM_CPPFLAGS = -I$(top_srcdir)/$(POTRACE_TREE)/src
-
-noinst_LIBRARIES = libpotrace.a
-
-libpotrace_a_SOURCES = \
- @POTRACE_TREE@/src/auxiliary.h \
- @POTRACE_TREE@/src/bitmap.h \
- @POTRACE_TREE@/src/curve.c \
- @POTRACE_TREE@/src/curve.h \
- @POTRACE_TREE@/src/decompose.c \
- @POTRACE_TREE@/src/decompose.h \
- @POTRACE_TREE@/src/lists.h \
- @POTRACE_TREE@/src/potracelib.c \
- @POTRACE_TREE@/src/potracelib.h \
- @POTRACE_TREE@/src/progress.h \
- @POTRACE_TREE@/src/trace.c \
- @POTRACE_TREE@/src/trace.h
-
-if build
-check_PROGRAMS = potracetst
-dist_check_SCRIPTS = potrace.test
-TESTS = potrace.test
-endif build
-potrace.log: potracetst$(EXEEXT)
-
-potracetst_SOURCES = potracetst.c
-
-potracetst_CPPFLAGS = -Iinclude
-
-LDADD = libpotrace.a
-
-# Rebuild
-rebuild_prereq =
-rebuild_target = all
-CLEANFILES =
-
-include $(srcdir)/../../am/rebuild.am
-
diff --git a/Build/source/libs/potrace/Makefile.in b/Build/source/libs/potrace/Makefile.in
deleted file mode 100644
index 9e3031d86cb..00000000000
--- a/Build/source/libs/potrace/Makefile.in
+++ /dev/null
@@ -1,1357 +0,0 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-@build_TRUE@check_PROGRAMS = potracetst$(EXEEXT)
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(am__dist_check_SCRIPTS_DIST) \
- $(am__DIST_COMMON)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-libpotrace_a_AR = $(AR) $(ARFLAGS)
-libpotrace_a_LIBADD =
-am__dirstamp = $(am__leading_dot)dirstamp
-am_libpotrace_a_OBJECTS = @POTRACE_TREE@/src/curve.$(OBJEXT) \
- @POTRACE_TREE@/src/decompose.$(OBJEXT) \
- @POTRACE_TREE@/src/potracelib.$(OBJEXT) \
- @POTRACE_TREE@/src/trace.$(OBJEXT)
-libpotrace_a_OBJECTS = $(am_libpotrace_a_OBJECTS)
-am_potracetst_OBJECTS = potracetst-potracetst.$(OBJEXT)
-potracetst_OBJECTS = $(am_potracetst_OBJECTS)
-potracetst_LDADD = $(LDADD)
-potracetst_DEPENDENCIES = libpotrace.a
-am__dist_check_SCRIPTS_DIST = potrace.test
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/potracetst-potracetst.Po \
- @POTRACE_TREE@/src/$(DEPDIR)/curve.Po \
- @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po \
- @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po \
- @POTRACE_TREE@/src/$(DEPDIR)/trace.Po
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libpotrace_a_SOURCES) $(potracetst_SOURCES)
-DIST_SOURCES = $(libpotrace_a_SOURCES) $(potracetst_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope check recheck distdir distdir-am dist dist-all \
- distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
- $(LISP)config.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
- $(TEST_LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
- $(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \
- $(srcdir)/config.h.in $(top_srcdir)/../../build-aux/compile \
- $(top_srcdir)/../../build-aux/depcomp \
- $(top_srcdir)/../../build-aux/install-sh \
- $(top_srcdir)/../../build-aux/missing \
- $(top_srcdir)/../../build-aux/test-driver \
- ../../build-aux/ar-lib ../../build-aux/compile \
- ../../build-aux/config.guess ../../build-aux/config.sub \
- ../../build-aux/depcomp ../../build-aux/install-sh \
- ../../build-aux/ltmain.sh ../../build-aux/missing \
- ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POTRACE_TREE = @POTRACE_TREE@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = $(POTRACE_TREE) TLpatches
-NEVER_DIST = `find . $(NEVER_NAMES)`
-
-# Files not to be distributed
-NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB)
-NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
-NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
-SUBDIRS = . include
-AM_CPPFLAGS = -I$(top_srcdir)/$(POTRACE_TREE)/src
-noinst_LIBRARIES = libpotrace.a
-libpotrace_a_SOURCES = \
- @POTRACE_TREE@/src/auxiliary.h \
- @POTRACE_TREE@/src/bitmap.h \
- @POTRACE_TREE@/src/curve.c \
- @POTRACE_TREE@/src/curve.h \
- @POTRACE_TREE@/src/decompose.c \
- @POTRACE_TREE@/src/decompose.h \
- @POTRACE_TREE@/src/lists.h \
- @POTRACE_TREE@/src/potracelib.c \
- @POTRACE_TREE@/src/potracelib.h \
- @POTRACE_TREE@/src/progress.h \
- @POTRACE_TREE@/src/trace.c \
- @POTRACE_TREE@/src/trace.h
-
-@build_TRUE@dist_check_SCRIPTS = potrace.test
-@build_TRUE@TESTS = potrace.test
-potracetst_SOURCES = potracetst.c
-potracetst_CPPFLAGS = -Iinclude
-LDADD = libpotrace.a
-
-# Rebuild
-rebuild_prereq =
-rebuild_target = all
-CLEANFILES = rebuild.stamp
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
- esac;
-$(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/rebuild.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-config.h: stamp-h1
- @test -f $@ || rm -f stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-
-clean-checkPROGRAMS:
- -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-@POTRACE_TREE@/src/$(am__dirstamp):
- @$(MKDIR_P) @POTRACE_TREE@/src
- @: > @POTRACE_TREE@/src/$(am__dirstamp)
-@POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) @POTRACE_TREE@/src/$(DEPDIR)
- @: > @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@POTRACE_TREE@/src/curve.$(OBJEXT): \
- @POTRACE_TREE@/src/$(am__dirstamp) \
- @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@POTRACE_TREE@/src/decompose.$(OBJEXT): \
- @POTRACE_TREE@/src/$(am__dirstamp) \
- @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@POTRACE_TREE@/src/potracelib.$(OBJEXT): \
- @POTRACE_TREE@/src/$(am__dirstamp) \
- @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-@POTRACE_TREE@/src/trace.$(OBJEXT): \
- @POTRACE_TREE@/src/$(am__dirstamp) \
- @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
-
-libpotrace.a: $(libpotrace_a_OBJECTS) $(libpotrace_a_DEPENDENCIES) $(EXTRA_libpotrace_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libpotrace.a
- $(AM_V_AR)$(libpotrace_a_AR) libpotrace.a $(libpotrace_a_OBJECTS) $(libpotrace_a_LIBADD)
- $(AM_V_at)$(RANLIB) libpotrace.a
-
-potracetst$(EXEEXT): $(potracetst_OBJECTS) $(potracetst_DEPENDENCIES) $(EXTRA_potracetst_DEPENDENCIES)
- @rm -f potracetst$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(potracetst_OBJECTS) $(potracetst_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f @POTRACE_TREE@/src/*.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/potracetst-potracetst.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/curve.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/decompose.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@@POTRACE_TREE@/src/$(DEPDIR)/trace.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-potracetst-potracetst.o: potracetst.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT potracetst-potracetst.o -MD -MP -MF $(DEPDIR)/potracetst-potracetst.Tpo -c -o potracetst-potracetst.o `test -f 'potracetst.c' || echo '$(srcdir)/'`potracetst.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/potracetst-potracetst.Tpo $(DEPDIR)/potracetst-potracetst.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='potracetst.c' object='potracetst-potracetst.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o potracetst-potracetst.o `test -f 'potracetst.c' || echo '$(srcdir)/'`potracetst.c
-
-potracetst-potracetst.obj: potracetst.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT potracetst-potracetst.obj -MD -MP -MF $(DEPDIR)/potracetst-potracetst.Tpo -c -o potracetst-potracetst.obj `if test -f 'potracetst.c'; then $(CYGPATH_W) 'potracetst.c'; else $(CYGPATH_W) '$(srcdir)/potracetst.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/potracetst-potracetst.Tpo $(DEPDIR)/potracetst-potracetst.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='potracetst.c' object='potracetst-potracetst.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(potracetst_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o potracetst-potracetst.obj `if test -f 'potracetst.c'; then $(CYGPATH_W) 'potracetst.c'; else $(CYGPATH_W) '$(srcdir)/potracetst.c'; fi`
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- elif test -n "$$redo_logs"; then \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS)
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS)
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-.test.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build/sub \
- && ../../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=../.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \
- $(dist_check_SCRIPTS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-recursive
-all-am: Makefile $(LIBRARIES) config.h
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/$(am__dirstamp)
- -rm -f @POTRACE_TREE@/src/$(am__dirstamp)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f ./$(DEPDIR)/potracetst-potracetst.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/curve.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/trace.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-hdr distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f ./$(DEPDIR)/potracetst-potracetst.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/curve.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/decompose.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/potracelib.Po
- -rm -f @POTRACE_TREE@/src/$(DEPDIR)/trace.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) all check-am install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--depfiles am--refresh check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-cscope clean-generic \
- clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
- dist-tarZ dist-xz dist-zip distcheck distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
- recheck tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-dist-hook:
- cd "$(distdir)" && rm -rf $(NEVER_DIST)
-potrace.log: potracetst$(EXEEXT)
-rebuild.stamp: $(rebuild_target)
- echo timestamp >$@
-
-.PHONY: rebuild
-rebuild: $(rebuild_prereq)
- @dry=; for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=*|--*);; \
- *n*) dry=:;; \
- esac; \
- done; \
- if test -f rebuild.stamp; then :; else \
- $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \
- if $$dry mkdir rebuild.lock 2>/dev/null; then \
- $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \
- $$dry rmdir rebuild.lock; \
- else \
- while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \
- fi; \
- $$dry test -f rebuild.stamp; exit $$?; \
- fi
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/libs/potrace/TLpatches/ChangeLog b/Build/source/libs/potrace/TLpatches/ChangeLog
deleted file mode 100644
index a508be55f5b..00000000000
--- a/Build/source/libs/potrace/TLpatches/ChangeLog
+++ /dev/null
@@ -1,24 +0,0 @@
-2017-08-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.15 source tree from:
- http://potrace.sourceforge.net
-
-2017-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.14 source tree from:
- http://potrace.sourceforge.net
-
-2015-12-28 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import potrace-1.13 source tree from:
- http://potrace.sourceforge.net
-
-2015-03-27 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import potrace-1.12 source tree from:
- http://potrace.sourceforge.net
-
-2012-02-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import potrace-1.11 source tree from:
- http://potrace.sourceforge.net
diff --git a/Build/source/libs/potrace/TLpatches/TL-Changes b/Build/source/libs/potrace/TLpatches/TL-Changes
deleted file mode 100644
index a7876bed3a3..00000000000
--- a/Build/source/libs/potrace/TLpatches/TL-Changes
+++ /dev/null
@@ -1,22 +0,0 @@
-Changes applied to the potrace-1.15/ tree as obtained from:
- http://potrace.sourceforge.net
-
-Removed:
- COPYING
- INSTALL
- Makefile.in
- aclocal.m4
- check/
- compile
- config.guess
- config.sub
- configure
- depcomp
- doc/
- install-sh
- ltmain.sh
- m4/
- missing
- mkinstalldirs
- src/Makefile.in
- test-driver
diff --git a/Build/source/libs/potrace/ac/potrace.ac b/Build/source/libs/potrace/ac/potrace.ac
deleted file mode 100644
index d40257d1168..00000000000
--- a/Build/source/libs/potrace/ac/potrace.ac
+++ /dev/null
@@ -1,11 +0,0 @@
-## libs/potrace/ac/potrace.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/
-dnl
-dnl Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org>
-dnl You may freely use, modify and/or distribute this file.
-dnl
-## basic check of system potrace
-KPSE_TRY_LIB([potrace],
- [#include <potracelib.h>],
- [potrace_state_t st;
-const char *version = potrace_version();
-potrace_state_free(&st);])
diff --git a/Build/source/libs/potrace/ac/withenable.ac b/Build/source/libs/potrace/ac/withenable.ac
deleted file mode 100644
index 0870c670f10..00000000000
--- a/Build/source/libs/potrace/ac/withenable.ac
+++ /dev/null
@@ -1,7 +0,0 @@
-## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/
-dnl
-dnl Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org>
-dnl You may freely use, modify and/or distribute this file.
-dnl
-## configure options and TL libraries required for potrace
-KPSE_WITH_LIB([potrace])
diff --git a/Build/source/libs/potrace/aclocal.m4 b/Build/source/libs/potrace/aclocal.m4
deleted file mode 100644
index b0545142048..00000000000
--- a/Build/source/libs/potrace/aclocal.m4
+++ /dev/null
@@ -1,1173 +0,0 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.16'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- AS_CASE([$CONFIG_FILES],
- [*\'*], [eval set x "$CONFIG_FILES"],
- [*], [set x $CONFIG_FILES])
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`AS_DIRNAME(["$am_mf"])`
- am_filepart=`AS_BASENAME(["$am_mf"])`
- AM_RUN_LOG([cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles]) || am_rc=$?
- done
- if test $am_rc -ne 0; then
- AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).])
- fi
- AS_UNSET([am_dirpart])
- AS_UNSET([am_filepart])
- AS_UNSET([am_mf])
- AS_UNSET([am_rc])
- rm -f conftest-deps.mk
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking is enabled.
-# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
-# order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi
-dnl The trailing newline in this macro's definition is deliberate, for
-dnl backward compatibility and to allow trailing 'dnl'-style comments
-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
-])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check whether make has an 'include' directive that can support all
-# the idioms we need for our automatic dependency tracking code.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
- AS_CASE([$?:`cat confinc.out 2>/dev/null`],
- ['0:this is the am__doit target'],
- [AS_CASE([$s],
- [BSD], [am__include='.include' am__quote='"'],
- [am__include='include' am__quote=''])])
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-AC_MSG_RESULT([${_am_result}])
-AC_SUBST([am__include])])
-AC_SUBST([am__quote])])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([../../m4/kpse-common.m4])
-m4_include([../../m4/kpse-warnings.m4])
diff --git a/Build/source/libs/potrace/config.h.in b/Build/source/libs/potrace/config.h.in
deleted file mode 100644
index 3eb6a6bb26d..00000000000
--- a/Build/source/libs/potrace/config.h.in
+++ /dev/null
@@ -1,70 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT64_T
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to the type of an unsigned integer type of width exactly 64 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint64_t
diff --git a/Build/source/libs/potrace/configure b/Build/source/libs/potrace/configure
deleted file mode 100755
index 835fa97ea85..00000000000
--- a/Build/source/libs/potrace/configure
+++ /dev/null
@@ -1,6664 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for potrace (TeX Live) 1.15.
-#
-# Report bugs to <tex-k@tug.org>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='potrace (TeX Live)'
-PACKAGE_TARNAME='potrace--tex-live-'
-PACKAGE_VERSION='1.15'
-PACKAGE_STRING='potrace (TeX Live) 1.15'
-PACKAGE_BUGREPORT='tex-k@tug.org'
-PACKAGE_URL=''
-
-ac_unique_file="potrace-src/src/trace.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-POTRACE_TREE
-EGREP
-GREP
-CPP
-build_FALSE
-build_TRUE
-LN_S
-RANLIB
-WARNING_CFLAGS
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL
-am__quote'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_compiler_warnings
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures potrace (TeX Live) 1.15 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root
- [DATAROOTDIR/doc/potrace--tex-live-]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of potrace (TeX Live) 1.15:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --enable-compiler-warnings=[no|min|yes|max|all]
- Turn on compiler warnings [default: yes if
- maintainer-mode, min otherwise]
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <tex-k@tug.org>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-potrace (TeX Live) configure 1.15
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_find_uintX_t LINENO BITS VAR
-# ------------------------------------
-# Finds an unsigned integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_uintX_t ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
-$as_echo_n "checking for uint$2_t... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- # Order is important - never check a type that is potentially smaller
- # than half of the expected target width.
- for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- case $ac_type in #(
- uint$2_t) :
- eval "$3=yes" ;; #(
- *) :
- eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if eval test \"x\$"$3"\" = x"no"; then :
-
-else
- break
-fi
- done
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_find_uintX_t
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by potrace (TeX Live) $as_me 1.15, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-
-
-am__api_version='1.16'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
-$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
- (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- case $?:`cat confinc.out 2>/dev/null` in #(
- '0:this is the am__doit target') :
- case $s in #(
- BSD) :
- am__include='.include' am__quote='"' ;; #(
- *) :
- am__include='include' am__quote='' ;;
-esac ;; #(
- *) :
- ;;
-esac
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
-$as_echo "${_am_result}" >&6; }
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-# Check whether --enable-compiler-warnings was given.
-if test "${enable_compiler_warnings+set}" = set; then :
- enableval=$enable_compiler_warnings;
-fi
-case $enable_compiler_warnings in #(
- no | min | yes | max | all) :
- ;; #(
- *) :
- if test "x$enable_maintainer_mode" = xyes; then :
- enable_compiler_warnings=yes
-else
- enable_compiler_warnings=min
-fi ;;
-esac
-
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='potrace--tex-live-'
- VERSION='1.15'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
-$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
-if ${kb_cv_c_prototypes+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-int
-main ()
-{
-extern void foo(int i,...);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- kb_cv_c_prototypes=yes
-else
- kb_cv_c_prototypes=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
-$as_echo "$kb_cv_c_prototypes" >&6; }
-if test "x$kb_cv_c_prototypes" = xno; then
- as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
-$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
-if ${kpse_cv_warning_cflags+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$GCC" = xyes; then
- kpse_cv_warning_cflags=
-if test "x$enable_compiler_warnings" != xno; then
- kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
- *) :
- ;;
-esac
- case `$CC -dumpversion` in #(
- 3.[234].* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmin; then
- kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
- if test "x$enable_compiler_warnings" != xyes; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmax; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
- fi
- fi
- fi
-fi
-elif test "x$enable_compiler_warnings" = xno; then
- kpse_cv_warning_cflags=
-else
- kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
-$as_echo "$kpse_cv_warning_cflags" >&6; }
-WARNING_CFLAGS=$kpse_cv_warning_cflags
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-
-ac_config_headers="$ac_config_headers config.h"
-
-
- if test "x$enable_build" != xno; then
- build_TRUE=
- build_FALSE='#'
-else
- build_TRUE='#'
- build_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-if test "x$ac_cv_header_stdc" != xyes; then
- as_fn_error $? "Sorry, can't do anything for you" "$LINENO" 5
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrt" >&5
-$as_echo_n "checking for library containing sqrt... " >&6; }
-if ${ac_cv_search_sqrt+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sqrt ();
-int
-main ()
-{
-return sqrt ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' m; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_sqrt=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_sqrt+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_sqrt+:} false; then :
-
-else
- ac_cv_search_sqrt=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sqrt" >&5
-$as_echo "$ac_cv_search_sqrt" >&6; }
-ac_res=$ac_cv_search_sqrt
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
-case $ac_cv_c_uint64_t in #(
- no|yes) ;; #(
- *)
-
-$as_echo "#define _UINT64_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint64_t $ac_cv_c_uint64_t
-_ACEOF
-;;
- esac
-
-
-POTRACE_TREE=potrace-src
-
-
-ac_config_files="$ac_config_files Makefile include/Makefile"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then
- as_fn_error $? "conditional \"build\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by potrace (TeX Live) $as_me 1.15, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <tex-k@tug.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-potrace (TeX Live) config.status 1.15
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- case $CONFIG_FILES in #(
- *\'*) :
- eval set x "$CONFIG_FILES" ;; #(
- *) :
- set x $CONFIG_FILES ;; #(
- *) :
- ;;
-esac
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`$as_dirname -- "$am_mf" ||
-$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$am_mf" : 'X\(//\)[^/]' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$am_mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- am_filepart=`$as_basename -- "$am_mf" ||
-$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$am_mf" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { echo "$as_me:$LINENO: cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles" >&5
- (cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } || am_rc=$?
- done
- if test $am_rc -ne 0; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- { am_dirpart=; unset am_dirpart;}
- { am_filepart=; unset am_filepart;}
- { am_mf=; unset am_mf;}
- { am_rc=; unset am_rc;}
- rm -f conftest-deps.mk
-}
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/Build/source/libs/potrace/configure.ac b/Build/source/libs/potrace/configure.ac
deleted file mode 100644
index 1ec9532745e..00000000000
--- a/Build/source/libs/potrace/configure.ac
+++ /dev/null
@@ -1,42 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-m4_include([version.ac])[] dnl define potrace_version
-AC_INIT([potrace (TeX Live)], potrace_version, [tex-k@tug.org])
-AC_PREREQ([2.65])
-AC_CONFIG_SRCDIR([potrace-src/src/trace.c])
-AC_CONFIG_AUX_DIR([../../build-aux])
-AC_CONFIG_MACRO_DIR([../../m4])
-
-KPSE_BASIC([potrace])
-
-AC_PROG_CC
-AC_PROG_RANLIB
-AC_PROG_LN_S
-AC_C_INLINE
-
-AC_CONFIG_HEADERS([config.h])
-
-AM_CONDITIONAL([build], [test "x$enable_build" != xno])
-
-AC_HEADER_STDC
-if test "x$ac_cv_header_stdc" != xyes; then
- AC_MSG_ERROR([Sorry, can't do anything for you])
-fi
-
-AC_SEARCH_LIBS([sqrt], [m])
-
-dnl Check for types
-
-AC_TYPE_UINT64_T
-
-AC_SUBST([POTRACE_TREE], [potrace-src])
-
-AC_CONFIG_FILES([Makefile include/Makefile])
-
-AC_OUTPUT
diff --git a/Build/source/libs/potrace/include/Makefile.am b/Build/source/libs/potrace/include/Makefile.am
deleted file mode 100644
index 63dd9b588d4..00000000000
--- a/Build/source/libs/potrace/include/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Proxy Makefile.am to install potrace headers for TeX Live.
-##
-## Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org>
-##
-## This file is free software; the copyright holder
-## gives unlimited permission to copy and/or distribute it,
-## with or without modifications, as long as this notice is preserved.
-##
-POTRACE_SRC = $(top_srcdir)/$(POTRACE_TREE)/src
-
-hdr_links = \
- $(POTRACE_SRC)/potracelib.h
-
-include $(top_srcdir)/../../am/hdr_links.am
-
diff --git a/Build/source/libs/potrace/include/Makefile.in b/Build/source/libs/potrace/include/Makefile.in
deleted file mode 100644
index c91646d3b91..00000000000
--- a/Build/source/libs/potrace/include/Makefile.in
+++ /dev/null
@@ -1,424 +0,0 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-subdir = include
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/version.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../am/hdr_links.am
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POTRACE_TREE = @POTRACE_TREE@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-POTRACE_SRC = $(top_srcdir)/$(POTRACE_TREE)/src
-hdr_links = \
- $(POTRACE_SRC)/potracelib.h
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../am/hdr_links.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign include/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-$(top_srcdir)/../../am/hdr_links.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile all-local
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-local
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am all-local check check-am clean clean-generic \
- cscopelist-am ctags-am distclean distclean-generic \
- distclean-local distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
- uninstall-am
-
-.PRECIOUS: Makefile
-
-all-local:
- @for file in $(hdr_links); do \
- test -f $$file || continue; \
- inst=`echo $$file | sed -e 's/^.*\///'`; \
- test -f $$inst || { \
- rm -f $$inst; \
- if $(AM_V_P); then echo "$(LN_S) $$file $$inst"; \
- else echo " INST $$inst"; fi; \
- $(LN_S) $$file $$inst; } || exit 1; \
- done
-
-distclean-local:
- rm -f *.h
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/libs/potrace/potrace-src/AUTHORS b/Build/source/libs/potrace/potrace-src/AUTHORS
deleted file mode 100644
index f6b22007218..00000000000
--- a/Build/source/libs/potrace/potrace-src/AUTHORS
+++ /dev/null
@@ -1,11 +0,0 @@
-Known contributors are listed here, in alphabetical order by their
-abbreviations (which are used in Changelog).
-
-Main author:
-
- PS1 Peter Selinger <selinger at users.sourceforge.net>
-
-Contributors:
-
- CH1 Christoph Hormann <chris_hormann at gmx.de> (GeoJSON backend)
- TA1 Tor Andersson <tor at ghostscript.com> (PDF backend)
diff --git a/Build/source/libs/potrace/potrace-src/ChangeLog b/Build/source/libs/potrace/potrace-src/ChangeLog
deleted file mode 100644
index 2402691f326..00000000000
--- a/Build/source/libs/potrace/potrace-src/ChangeLog
+++ /dev/null
@@ -1,422 +0,0 @@
-ChangeLog
-
-v1.15 2017/08/05
- (2017/08/05) PS1 - use round() instead of rint()
- (2017/08/05) PS1 - portability: set both _POSIX_C_SOURCE and
- _NETBSD_SOURCE to enable strdup prototype in string.h, as
- _XOPEN_SOURCE=500 doesn't work on macOS, _XOPEN_SOURCE=600 doesn't
- work on SunOS, and _POSIX_C_SOURCE alone doesn't work on Minix.
- (2017/08/02) PS1 - fixed a potential arithmetic overflow.
- (2017/06/17) PS1 - fixed a bug with very large bitmaps. Reported
- by Michael Voříšek.
- (2017/03/05) PS1 - autoconf: added --enable-local-getopt to avoid
- using the system-wide getopt library (it may still end up being
- used on GNU systems).
- (2017/03/05) PS1 - portability: moved getopt.h to a subdirectory,
- to be included only when needed. Reported by Daniel Macks.
- (2017/03/05) PS1 - portability: use _XOPEN_SOURCE=600 to fix macOS
- warning.
- (2017/02/27) PS1 - fixed more buffer overflows (not security
- critical), including one reported by Agostino Sarubbo. This also
- fixes CVE-2017-12067.
-
-v1.14 2017/02/19
- (2017/02/19) PS1 - speed: use clang as default compiler if
- available, and no longer use -ffloat-store even with gcc.
- (2017/02/18) PS1 - corrected some exit codes, added some missing
- error handlers.
- (2017/02/17) PS1 - mkbitmap: bugfixes and improvements in parsing
- image files.
- (2017/02/15) PS1 - truncate the image size when bitmap data ends
- prematurely. This fixes CVE-2016-8686, where Potrace appeared to
- be "hanging" on a crafted input file.
- (2017/02/14) PS1 - test suite: added tests for plain pnm files.
- (2017/01/08) PS1 - fixed potential compiler issues due to signed
- arithmetic overflow and arithmetic shifting.
- (2017/01/07) PS1 - enable use of negative dy in bitmap data.
- (2017/01/07) PS1 - test suite: moved data files to a subdirectory.
- (2017/01/07) PS1 - test suite: added a check for -i flag.
- (2017/01/07) PS1 - fixed buffer overflow CVE-2016-8685, reported
- by Agostino Sarubbo.
- (2015/10/24) PS1 - portability: use const char * for string
- constants, required by C++11. Reported by Martin Gieseking.
- (2015/10/24) PS1 - portability: extra spaces around string macros,
- required by C++11. Reported by Martin Gieseking.
- (2015/10/24) PS1 - portability: added more potential C compilers
- to autoconf. Suggested by Nelson Beebe.
-
-v1.13 2015/10/22
- (2015/07/18) PS1 - fixed heap overflows, null pointer dereference
- bugs and a memory leak. Reported by Agostino Sarubbo.
- (2015/05/17) PS1 - man page: show which backends are dimension
- based, and state more clearly that svg backend defaults to 72dpi.
- (2015/04/11) PS1 - portability: ssize_t not supported on some
- systems; use ptrdiff_t instead. Reported by Martin Gieseking.
- (2015/03/28) PS1 - portability: added missing #includes for c99,
- reported by Nelson Beebe.
- (2015/03/27) PS1 - include config.h before other header files,
- reported by Peter Breitenlohner.
- (2015/03/26) PS1 - fixed division by zero bug triggered by bitmap
- of dimension 1x0. Reported by Tomasz Buchert.
-
-v1.12 2015/03/24
- (2015/03/20) PS1 - fixed memory overflow bug triggered by very
- large bitmaps. Fixes RedHat bug #955808 reported by Vincent Danen
- and Debian bug #778646 reported by Moritz Muehlenhoff.
- (2014/09/06) PS1 - test suite: added binary-check, to check that
- files are written in binary mode. Mostly relevant on Windows.
- (2014/09/06) PS1 - portability: fixed potential binary file mode
- bug on MinGW64.
- (2014/03/30) PS1 - man pages: fixed leading blank page with
- groff -man -Tps.
- (2013/12/29) PS1 - portability: made regular expressions in test
- suite POSIX compliant, reported by Ben Bullock.
- (2013/05/14) PS1 - distribution: removed libtool from distribution.
-
-v1.11 2013/02/19
- (2013/02/10) PS1 - bitops.c: added "cc" as a clobbered register.
- (2012/09/13) PS1 - GeoJSON backend: -u option affects rounding,
- not scaling.
- (2012/09/12) CH1 - added GeoJSON backend.
- (2012/03/04) PS1 - minor change in behavior of alphamax parameter:
- make a corner if alpha >= alphamax (instead of >). This makes
- little practical difference, except when alphamax = 0, in which
- case we now get a polygon. Fixes bug #3495854, reported by
- scribbleink.
- (2012/02/24) PS1 - added support for BMP format with bitfields.
-
-v1.10 2011/08/19
- (2011/08/07) PS1 - added --tight option
- (2011/08/05) PS1 - backends: simplified dimension calculations
- (2011/08/05) PS1 - eps backend: prevent integer overflow in
- bounding box.
- (2011/08/05) PS1 - disallow resolution of 0 dpi.
- (2011/08/05) PS1 - man page: added BACKEND TYPES section
- (2011/08/05) PS1 - fixed default scaling at 72dpi for
- variable-sized backends
- (2011/08/02) PS1 - new gimppath backend produces SVG output
- suitable for current versions of Gimp.
- (2011/08/02) PS1 - added a --flat option for the SVG backend.
- (2011/07/31) PS1 - test suite: renamed *.out files to prevent
- make's built-in implicit rules from accidentally overwriting them.
- (2011/07/26) PS1 - added DXF backend. Thanks to Jonas Benedett
- Dorr for testing.
- (2011/07/26) PS1 - use high resolution bounding box in EPS, PDF,
- and SVG backends
- (2011/05/13) PS1 - autoconf: CADD can now be given at compile time
-
-v1.9 2010/12/21
- (2010/12/20) PS1 - getopt.h: fixed compiler warnings
- (2010/12/20) PS1 - added --tty option to specify progress bar
- rendering at runtime.
- (2010/12/20) PS1 - added simplified progress bar for Windows or
- other dumb terminals. New --enable-dumb-tty configuration option.
- (2010/12/16) PS1 - test suite: fixed bug where a failed test was
- not reported in backend-check.sh
- (2010/12/15) PS1 - test suite: support for $EXEEXT
- (2010/12/15) PS1 - optimized penalty3 inner loop, 4.6% speedup.
- (2010/12/15) PS1 - autoconf: new CADD variable to add to CFLAGS
- (2010/12/15) PS1 - fixed some compiler warnings, added some error
- handlers, and added some cosmetic top-level free's.
- (2010/11/25) PS1 - added support for some BMP version 4 and 5
- files, and for top-down BMP files. Suggested by Kanwar Sangwan.
- (2010/11/13) PS1 - don't enter filter mode if -- is used
- (2010/11/09) PS1 - greymap.h, bitmap.h: drop unneeded dependencies
- (2010/09/07) PS1 - autoconf: fixed getopt_long test to allow
- cross-compiling, bug #3061403, reported by Igor Filippov.
- (2010/08/31) PS1 - test suite: added environment variables
- CHECK_POTRACE and CHECK_MKBITMAP to allow binaries outside the
- build tree to be tested
- (2010/08/09) PS1 - autoconf: converted to libtool
- (2010/08/05) PS1 - autoconf: renamed configure.in as configure.ac
- (2010/08/05) PS1 - autoconf: added --with-libpotrace to optionally
- install the Potrace library and header files.
- (2009/08/03) PS1 - portability: c++ wrapper in potracelib.h,
- suggested by Peter Jankuliak.
- (2009/05/13) PS1 - added pdfpage backend for fixed pagesize PDF
- output.
- (2009/04/07) PS1 - decompose.c: minor optimization
- (2008/10/08) PS1 - mkbitmap: speed increase by 8% to 26% by
- eliminating unnecessary bounds checks and interpolation.
- (2008/10/05) PS1 - trace.c: separate function for path reversal
- (2008/10/03) PS1 - progress.h: do the right thing if progress ==
- NULL
- (2008/10/03) PS1 - moved detrand() to auxiliary.h
- (2008/08/21) PS1 - mkbitmap: added --blur option.
- (2008/08/12) PS1 - combined the old -V option with -v.
- (2008/08/12) PS1 - test suite: adjusted tolerances to fix bug
- #1745456
- (2007/12/31) PS1 - include curve.h where path_t is used
- (2007/12/28) PS1 - flush stderr when interleaved with stdout
- (2007/12/28) PS1 - portability: don't hardcode size of short int
- (2007/11/09) PS1 - eps backend: use save-restore to avoid
- polluting caller's dictionary and for page independence.
- (2007/05/22) PS1 - xfig backend: added depth to opaque components
- to avoid them floating to the background. Suggested by Rafael
- Laboissiere.
-
-v1.8 2007/04/09
- (2007/04/08) PS1 - portability: use 'test' instead of '[' in shell
- scripts.
- (2007/04/08) PS1 - test suite: run PDF checks as a separate test.
- (2007/04/06) PS1 - fixed logical expressions in flate.c
- (2007/02/19) PS1 - portability: replacements for inline and M_PI
- (2007/01/16) PS1 - test suite: added checks for rotation in
- PostScript, PDF, and PGM backends
- (2007/01/16) PS1 - pdf backend: added rotation
- (2007/01/16) PS1 - pdf backend: renamed shipcom() function
- (2007/01/14) PS1 - autoconf: check if getopt_long reorders its
- arguments.
- (2007/01/13) PS1 - made pseudo-random number generation
- thread-safe and much faster.
- (2006/12/20) PS1 - renamed some structures in lzw.c, main.h
- (2006/12/20) PS1 - portability: fixed some compiler issues for
- Amiga, reported by Andreas Kleinert.
- (2006/12/20) PS1 - main.c: changed some return types to void.
- (2006/08/14) PS1 - made curve.c:privcurve_free_members() static.
- (2005/12/22) PS1 - renamed README.win as README-WIN
- (2005/11/11) PS1 - portability: use binary file i/o in Cygwin.
- Suggested by Henry He.
- (2005/06/24) PS1 - potracelib: fixed allocation bug, reported by
- Jung Shin.
- (2005/06/23) PS1 - potracelib_demo.c: free resources properly.
- (2005/06/23) PS1 - initialize unused private state to 0.
- (2005/06/23) PS1 - decompose.c: improved memory allocation scheme.
- (2005/05/06) PS1 - added "alphacurve" field to private curve
- structure, so that backends that don't use the public interface
- (such as the EPS backend) can be warned of non-conforming curves.
-
-v1.7 2005/03/06
- (2005/03/05) PS1 - fixed progress bar subrange bug.
-
-v1.6 2005/02/27
- (2005/02/22) PS1 - added "epsilon" feature to progress bar.
- (2005/02/22) PS1 - documentation: changed potracelib documentation
- to TeX format.
- (2005/02/07) PS1 - tweaked progress bar
- (2005/01/24) PS1 - added --progress option to potrace frontend.
- (2005/01/24) PS1 - potracelib: added progress bar interface.
- (2005/01/23) PS1 - fixed overflow bug in fast summing code.
- (2005/01/23) PS1 - rewrote trace.c:bestpolygon(). This speeds up
- potrace by 20% on typical data and up to 60% in some bad cases.
- (2004/12/07) PS1 - documentation: added potracelib.txt
- (2004/12/07) PS1 - renamed aux.h as auxiliary.h, since aux is an
- invalid filename in Windows.
- (2004/12/06) PS1 - API: added default parameters
- (2004/12/06) PS1 - API: added potrace_state_t
- (2004/12/06) PS1 - API: added "const" qualifiers
- (2004/12/06) PS1 - removed conv and areac fields from privpath_t.
- (2004/12/06) PS1 - changed bounding box handling in decompose.c
- (2004/12/06) PS1 - split curve_t into public and private parts.
- (2004/12/06) PS1 - moved curve/path allocation to curve.c.
- (2004/12/06) PS1 - renamed a type in lzw.h.
- (2004/12/06) PS1 - renamed source files.
- (2004/12/04) PS1 - split path_t into public and private parts.
- (2004/12/03) PS1 - split core functionality from user interface.
- (2004/12/03) PS1 - moved parts of bitmap.h to potracelib.h. Split
- bitmap.c into bitmap.c and bitmap_io.c. Moved path decomposition
- auxiliary functions from bitmap.c to path.c.
- (2004/12/03) PS1 - converted some stray local functions to static
- (2004/12/01) PS1 - moved basic curve data type definitions to
- potracelib.h
- (2004/12/01) PS1 - collected some repeatedly used macros in aux.h
- (2004/12/01) PS1 - started to create API to potrace core
- functionality in potracelib.c and potracelib.h. Also added new
- libpotrace.a target.
- (2004/12/01) PS1 - made curve.c and path.c reentrant by removing
- global variable "info".
- (2004/11/28) PS1 - made a85* auxiliary functions static in
- flate.c.
- (2004/11/28) PS1 - pdf backend: removed arbitrary page limit.
- (2004/11/24) PS1 - pdf backend: replaced ftell() by explicit byte
- count to work correctly with stdout.
- (2004/11/24) PS1 - portability: use binary file i/o in MinGW.
- (2004/10/08) PS1 - minor cleanup in backend_pdf.c.
- (2004/09/21) PS1 - replace -O3 compilation default by -O2; inlined
- critical functions manually instead.
- (2004/09/18) PS1 - slightly optimized multiplications in
- curve.c:bezier(). Thanks to Thomas M.Ott for suggesting it.
- (2004/09/16) PS1 - list of backends in help message is now
- generated.
- (2004/09/16) PS1 - test suite: added test for pdf backend.
- (2004/09/14) PS1 - removed bits.c, renamed bits.h to bitops.h, and
- use static inline functions instead of macros.
- (2004/09/14) PS1 - test suite: adjusted tolerances.
- (2004/09/12) PS1 - mkbitmap: when reading plain pbm files, use
- colors 0 and 255, not 0 and 1.
- (2004/09/12) PS1 - potrace and mkbitmap: don't complain about
- "junk at the end of file" if the junk is whitespace and
- comments. Treat files which contain only whitespace and comments
- as empty.
- (2004/08/05) TA1 - added pdf backend.
-
-v1.5 2004/07/08
- (2004/07/08) PS1 - removed dependency on external "compress"
- program. Removed ztops.c, added lzw.c, bits.c.
- (2004/03/17) PS1 - don't leave temporary file /tmp/have_compress.*
- lying around.
- (2004/03/06) PS1 - fixed a type error in have_compress.c:28.
-
-v1.4 2004/03/06
- (2004/03/05) PS1 - removed the compile-time check for the
- "compress" program and replaced it by a run-time check.
- (2004/03/03) PS1 - ztops.c: fixed compression bug where garbage
- was added after the end of stream.
- (2004/02/09) PS1 - further optimized the speed of the function
- path.c:pathlist_to_tree, which now takes less than 0.1% of total
- running time.
- (2004/02/09) PS1 - distribution: removed potrace.{ps,pdf} from
- distribution, changed textfiles to DOS mode in Cygwin distribution
- (2004/01/19) PS1 - corrected a bug in 1.2 which caused an enormous
- slowdown in the function path.c:pathlist_to_tree.
- (2004/01/17) PS1 - test suite: better quoting in shell scripts to
- be more robust against spaces in filenames etc.
- (2004/01/17) PS1 - test suite and ztops.c: respect TEMPDIR
- environment variable, if set.
-
-v1.3 2004/01/15
- (2004/01/14) PS1 - test suite: adjusted tolerances.
- (2004/01/13) PS1 - when reading a bitmap of width or height 0,
- pretend the offending dimension is 1. This is not 100% logical
- in all cases, but better than producing garbage.
- (2004/01/13) PS1 - fixed bounding box in xfig backend.
- (2004/01/13) PS1 - added missing gsave/grestore to ps backend.
- (2004/01/07) PS1 - autoconf: search for zlib.h in
- ${prefix}/include and for libz.so in ${prefix}/lib, in case they
- are not found elsewhere.
- (2004/01/07) PS1 - eliminated some unused variables.
- (2004/01/07) PS1 - portability: eliminated typeof() from
- mkbitmap.c
- (2004/01/07) PS1 - test suite: added a test for empty bitmaps.
- (2003/12/25) PS1 - fixed bug #866223: potrace crashes when applied
- to an empty bitmap.
- (2003/12/25) PS1 - when options -2 or -3 are unsupported, ignore
- them rather than failing, for improved compatibility.
- (2003/12/25) PS1 - autoconf: added --disable-zlib configuration
- option and improved error messages for missing zlib.h or libz.so
- (2003/12/25) PS1 - portability: eliminated dynamic arrays in
- mkbitmap.c
- (2003/12/25) PS1 - test suite: added a check for mkbitmap.
- (2003/12/25) PS1 - test suite: more portable filesize checking in
- backend-check.sh
-
-v1.2 2003/12/23
- (2003/12/23) PS1 - added an xfig backend.
- (2003/12/23) PS1 - added --group option to group related shapes
- together in SVG backend.
- (2003/12/23) PS1 - added --opaque option to paint white shapes
- opaquely, instead of leaving them transparent, in PS/EPS and SVG
- backends.
- (2003/12/23) PS1 - rewrote path decomposition algorithm to
- calculate path containment tree, to be used for grouping.
- (2003/12/23) PS1 - test suite: added a check of postscript output
- using ghostscript.
- (2003/09/18) PS1 - autoconf: added tests for -lm and -lz
- libraries, and for zlib.h header file.
- (2003/09/18) PS1 - portability: cleaned up code so that it can be
- compiled with a C++ compiler.
- (2003/09/17) PS1 - code cleanup in main.c:main().
- (2003/09/17) PS1 - added mkbitmap program.
- (2003/09/17) PS1 - added -ffloat-store compiler flag for improved
- floating point predictability.
- (2003/09/12) PS1 - test suite: added test for BMP runlength
- encoding.
- (2003/09/12) PS1 - fixed frontend for BMP runlength encoding.
- (2003/09/11) PS1 - autoconf: added test to work around gcc
- compiler bug 12243, which affected curve.c:adjust_vertices().
- (2003/09/11) PS1 - renamed pbm.c as bitmap.c, pgm.c as greymap.c
- (2003/09/11) PS1 - moved some bitmap details from path.c to pbm.c
- (2003/09/10) PS1 - renamed pbm.h macros to start with BM_
- (2003/09/02) PS1 - portability: added missing fallback value for
- M_PI to backend_pgm.c.
- (2003/08/28) PS1 - specialized matrix solving code for n=2.
- (2003/08/28) PS1 - portability (and scalability): eliminated
- dynamic arrays.
- (2003/08/28) PS1 - portability: replaced vsnprintf by vsprintf.
- (2003/08/28) PS1 - portability: provided fallback value for M_PI
- (2003/08/27) PS1 - autoconf: now checks whether the compress
- program works, not just whether it exists.
- (2003/08/27) PS1 - test suite: wrote three tests for "make check"
- (2003/08/27) PS1 - portability: fixed some floating point errors
- on DEC Alpha: division by zero and log of zero.
- (2003/08/27) PS1 - changed bitmap representation to take advantage
- of 64-bit architectures.
- (2003/08/27) PS1 - changed default scaling in ps and eps modes for
- small page sizes.
- (2003/08/26) PS1 - allow arguments of command line options -b, -z,
- -P to be abbreviated by "unambiguous prefix".
- (2003/08/26) PS1 - added rotation to gimppath backend.
- (2003/08/24) PS1 - portability: removed GNU extensions from printf
- format strings in backend_eps.
- (2003/08/22) PS1 - converted --unit to double value.
- (2003/08/22) PS1 - added experimental gimppath backend.
- (2003/08/20) PS1 - close paths in postscript/eps backend.
- (2003/08/20) PS1 - fixed bug in parsing command line options: long
- options --cleartext, --level2, --level3 did not work properly.
- Thanks to George Williams for reporting this bug.
-
-v1.1 2003/08/18
- (2003/08/17) PS1 - replaced calc_lon algorithm by a faster
- implementation. This results in speedups of up to factor 3.3 for
- certain large input files.
- (2003/08/17) PS1 - added --invert option.
- (2003/08/17) PS1 - improved error messages on wrong file format.
- (2003/08/17) PS1 - code cleanup to build under fussier compilers.
- Thanks to Nelson Beebe for submitting compiler logs for a large
- number of setups.
- (2003/08/17) PS1 - renamed curve.c:quad as quadform to avoid name
- clash on IBM AIX, Compaq/DEC ODF/1.
- (2003/08/17) PS1 - autoconf: let user override CFLAGS at configure
- time, and use -Wall and -O3 only for gcc compiler
- (2003/08/16) PS1 - added --blacklevel option to control
- image-to-bitmap conversion
- (2003/08/16) PS1 - added ability to read BMP files. Changed error
- reporting in case of empty files, or if there is junk at the end
- of a file in multipage mode.
- (2003/08/14) PS1 - as a convenience, now also read files in PGM
- and PPM format and convert to bitmap by simple threshold method.
- This is because many programs, including the Gimp and the *topnm
- tools, produce PNM output which must be further converted to PBM.
- (2003/08/14) PS1 - rearranged order of options in usage message.
- (2003/08/14) PS1 - implemented -d1 option for SVG backend. This
- outputs a jaggy bitmap with no smoothing.
- (2003/08/14) PS1 - autoconf: improved handling of
- --enable-compress
- (2003/08/14) PS1 - added SVG backend.
- (2003/08/14) PS1 - renamed old -s option as -S
- (2003/08/12) PS1 - added README.win
- (2003/08/12) PS1 - autoconf: fixed bug #787182: added non-standard
- compile time options to help message for ./configure script
-
-v1.0 2003/08/10
- (2003/08/10) PS1 - added file i/o code
- (2003/08/08) PS1 - optimized number of times the penalty3 function
- is called. Speedups of factor 2.7 were observed on large files.
- (2003/08/08) PS1 - added --opttolerance and --alphamax options.
- (2003/08/07) PS1 - autoconf: changed configure.in so that test for
- compress is omitted when the user overrides it - this prevents a
- wrong cached value to be read.
- (2003/08/07) PS1 - keep output flushed in postscript mode
- (2003/08/07) PS1 - fixed memory leak in multiple page mode
- (2003/08/06) PS1 - replaced --opticurve by --longcurve option;
- opticurve is now the default
- (2003/08/06) PS1 - added opticurve sensitivity to pgm backend
- (2003/08/06) PS1 - restricted opticurves to be bounded away from
- 180 degrees
- (2003/08/06) PS1 - allow margins and papersize to determine width
- if it is not defined by other means in postscript mode
- (2003/08/06) PS1 - added ability to read multiple bitmaps in
- postscript mode
- (2003/08/05) PS1 - new --longcoding option
- (2003/08/05) PS1 - new optimized eps backend which works with
- opticurve.
- (2003/07/31) PS1 - replaced O(n^3) calc_lon algorithm by a new
- O(n^2) algorithm. Observed speedups of factor 80.
- (2003/07/27) PS1 - added --opticurve option and integrated
- opticurve code in curve.c
- (2003/06/04) PS1 - made bm_to_pathlist a lot more efficient by
- scanning and clearing only bounding box of mask in inner scan.
- (2002/11/17) PS1 - changed bm_to_pathlist prototype to use
- explicit return value.
- (2002/10/09) PS1 - autoconf: added automake/autoconf scripts in
- preparation for public distribution.
diff --git a/Build/source/libs/potrace/potrace-src/Makefile.am b/Build/source/libs/potrace/potrace-src/Makefile.am
deleted file mode 100644
index dc74076c1b7..00000000000
--- a/Build/source/libs/potrace/potrace-src/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-## Copyright (C) 2001-2017 Peter Selinger.
-## This file is part of Potrace. It is free software and it is covered
-## by the GNU General Public License. See the file COPYING for details.
-
-## Process this file with automake to produce Makefile.in
-
-EXTRA_DIST = README-WIN
-
-ACLOCAL_AMFLAGS = -I m4
-
-SUBDIRS = src doc check
diff --git a/Build/source/libs/potrace/potrace-src/NEWS b/Build/source/libs/potrace/potrace-src/NEWS
deleted file mode 100644
index 39c44ddc954..00000000000
--- a/Build/source/libs/potrace/potrace-src/NEWS
+++ /dev/null
@@ -1,148 +0,0 @@
-August 5, 2017: Release 1.15
-
- This release consists of bugfixes and minor portability improvements.
- Some potential buffer overflows and arithmetic overflows were fixed,
- including CVE-2017-12067. A bug triggered by very large bitmaps has
- been fixed. A new configuration option --enable-local-getopt was
- added. Thanks to Agostino Sarubbo, Daniel Macks, and Michael Voříšek
- for reporting bugs and suggesting improvements.
-
-February 19, 2017: Release 1.14
-
- This release consists of bugfixes and minor portability improvements.
- A number of bugs triggered by malformed BMP files have been fixed,
- including CVE-2016-8685 and CVE-2016-8686. Error reporting has been
- improved. The image size is now truncated when the bitmap data ends
- prematurely. It is now possible to use negative dy in bitmap
- data. Portability has been improved to encompass C++11. The default
- compiler is now clang if available. Thanks to Nelson Beebe and Martin
- Gieseking for reporting portability issues, and to Agostino Sarubbo
- for reporting bugs.
-
-October 22, 2015: Release 1.13
-
- Some critical bugs in the processing of BMP files were fixed. These
- bugs allowed the program to be crashed, or potentially to be abused
- in other ways, by feeding it specially crafted BMP files. Thanks to
- Tomasz Buchert and Agostino Sarubbo for reporting these bugs.
- Portability was improved for C99 and for MSVC++. Thanks to Peter
- Breitenlohner, Nelson Beebe, and Martin Gieseking for reporting
- portability issues.
-
-March 24, 2015: Release 1.12
-
- Fixed memory overflow bug triggered by very large bitmaps. Fixed
- binary file mode on 64-bit Windows. Portability improvements.
-
-February 19, 2013: Release 1.11
-
- A GeoJSON backend was added; thanks to Christoph Hormann for
- contributing this. Support for bitfields in the BMP format was
- added. A minor change was made to the behavior of the alphamax
- parameter; a value of 0 now gives a true polygon.
-
-August 19, 2011: Release 1.10
-
- A DXF backend was added. The output is in the drawing interchange
- format used by computer aided design software. Thanks to Jonas
- Benedett Dorr for testing. The Gimppath backend was changed to be
- compatible with current versions of Gimp. The EPS, PDF, and SVG
- backends now use high-resolution bounding boxes. The default scaling
- of the EPS, PDF, and SVG backends is now fixed at 72dpi. A new option
- --flat was added to the SVG backend. A new option --tight was added
- to remove whitespace around the input image before calculating its
- scaling and placement.
-
-December 21, 2010: Release 1.9
-
- The xfig and eps backends were improved, and a fixed pagesize PDF
- backend was added. Support for BMP version 4 and version 5 files, as
- well as top-down BMP files, was added. Minor speed improvements to
- Potrace and major speed improvements to mkbitmap. A Gaussian blur
- option was added to mkbitmap. Libtool is now used to build and
- optionally install the Potrace library. An optional simplified
- progress bar was added for dumb terminals. This release also contains
- some portability improvements, cross-compilation improvements, and
- minor bug fixes.
-
-April 9, 2007: Release 1.8
-
- This release contains minor bugfixes and portability improvements.
- Rotation is now implemented in the PDF backend.
-
-March 6, 2005: Release 1.7
-
- This is a bugfix release. A bug in the progress bar code, which
- caused arithmetic exceptions on some 64-bit architectures, has been
- fixed.
-
-February 27, 2005: Release 1.6
-
- This release contains an algorithm improvement that leads to a
- speedup of 20-60% over previous versions of Potrace. A new PDF
- backend was added, courtesy of Tor Andersson. An option --progress
- was added for displaying a progress bar. The Windows version of
- Potrace now uses MinGW instead of Cygwin, eliminating the need to
- install a special DLL alongside the executable programs, and solving
- some problems with wildcards and executable PostScript files. Some
- spurious "premature end of file" messages were eliminated. The
- core functionality of Potrace was separated into a library with a
- documented API, making it easier for developers to incorporate
- Potrace into other GPL-licensed software.
-
-July 8, 2004: Release 1.5
-
- The LZW patent has finally expired in Canada. Therefore, postscript
- level 2 compression can now be implemented directly within Potrace,
- without having to rely on the external "compress" program. This
- release makes the necessary corrections.
-
-March 6, 2004: Release 1.4
-
- This is a bugfix release. Fixed the bug which sometimes caused
- Potrace to "hang" on large input files. Also fixed some bugs in the
- compression code. The presence of the "compress" program is now
- determined at run-time, rather than compile-time. No new features or
- command line options were added.
-
-January 15, 2004: Release 1.3
-
- This is primarily a bugfix release. Version 1.2 fatally crashed when
- applied to an empty (all white) bitmap. The options -2 and -3 are now
- ignored when unsupported, rather than causing an error. There were
- some improvements to the test suite, autoconfiguration, and
- portability. The bounding box in the xfig backend was fixed, and the
- postscript output now has better page encapsulation. Bitmaps of
- dimension 0 are now tolerated better.
-
-December 23, 2003: Release 1.2
-
- New experimental Gimppath and XFig backends were added. A separate
- program mkbitmap was added, which can be used as a preprocessor to
- Potrace. It turns greyscale or color images into high-quality
- bitmaps with optional scaling and filtering. New options --opaque,
- --group, and --fillcolor were added for greater flexibility in
- generating editable PostScript and SVG output. The bitmap
- decomposition algorithm was improved and can now take advantage of
- 64-bit platforms. Portability and autoconfiguration were vastly
- improved, and a test suite was added. Runlength encoded BMP files can
- now be read. Some bugs in command line options were fixed.
-
-August 18, 2003: Release 1.1
-
- The most important new feature of this release is an SVG (scalable
- vector graphics) backend. This file format can be read by vector
- graphics manipulation programs such as sodipodi, as well as web
- browsers with an SVG plugin. I also added PGM, PPM, and BMP as
- additional input file formats. The new --blacklevel and --invert
- options control how non-black-and-white images are converted to
- bitmaps before being processed by Potrace. The implementation of a
- critical function has been improved to make Potrace even faster on
- large input files; this results in speedups of up to factor 3.3
- relative to Potrace 1.0. Autoconfiguration was improved, and the code
- was polished to compile on more different architectures. The error
- messages for wrong file formats were also improved.
-
-August 10, 2003: Release 1.0
-
- First public release.
diff --git a/Build/source/libs/potrace/potrace-src/README b/Build/source/libs/potrace/potrace-src/README
deleted file mode 100644
index 491c0c3ca4d..00000000000
--- a/Build/source/libs/potrace/potrace-src/README
+++ /dev/null
@@ -1,215 +0,0 @@
-
- POTRACE - transform bitmaps into vector graphics
-
- * * *
-
-DESCRIPTION
-
- Potrace is a tool for tracing a bitmap, which means, transforming a
- bitmap into a smooth, scalable image. The input is a bitmap (PBM,
- PGM, PPM, or BMP), and the output is one of several vector file
- formats. A typical use is to create SVG or PDF files from scanned
- data, such as company or university logos, handwritten notes, etc.
- The resulting image is not "jaggy" like a bitmap, but smooth. It can
- then be rendered at any resolution.
-
- Potrace can currently produce the following output formats: SVG, PDF,
- EPS, PostScript, DXF, GeoJSON, PGM (for easy antialiasing of
- pixel-based images), Gimppath, and XFig. Additional backends might be
- added in the future.
-
- A separate program, mkbitmap, is also provided. This program can act
- as a pre-processor for Potrace, applying scaling and various filters
- to an image before converting it to a bitmap. This is useful for
- potracing greyscale and color images.
-
-DEPENDENCIES
-
- Potrace relies on the zlib library for PostScript level 3
- compression. This library is pre-installed on most modern systems.
- If not present, it can be obtained from http://www.gzip.org/zlib/.
-
-COMPILATION
-
- For generic compilation instructions, see the file INSTALL. In
- addition, the following compile time options (options to ./configure)
- are supported.
-
- --with-libpotrace install Potrace library and headers (default: no)
- --disable-zlib disable PostScript level 3 compression
- --enable-metric use metric units (centimeters) as default
- --enable-a4 use a4 as the default papersize
- --enable-dumb-tty use simplified ASCII-only progress bar
- --enable-local-getopt avoid using the system-wide getopt library
-
- See also ./configure --help.
-
-INSTALLING
-
- If you are installing from sources, just do "make install" as root.
- If you are installing from a binary distribution, just copy the
- "potrace" and "mkbitmap" binaries to a place where the operating
- system expects them, such as /usr/local/bin. Also copy the files
- "potrace.1" and "mkbitmap.1" to a directory where the operating
- system looks for man pages, such as /usr/local/man/man1. For
- instructions on installing Potrace under Windows, see the file
- README-WIN
-
-USAGE
-
- For more detailed usage information, see the man page.
-
- Usage: potrace [options] [filename...]
- General options:
- -h, --help - print this help message and exit
- -v, --version - print version info and exit
- -l, --license - print license info and exit
- File selection:
- <filename> - an input file
- -o, --output <filename> - write all output to this file
- -- - end of options; 0 or more input filenames follow
- Backend selection:
- -b, --backend <name> - select backend by name
- -b svg, -s, --svg - SVG backend (scalable vector graphics)
- -b pdf - PDF backend (portable document format)
- -b pdfpage - fixed page-size PDF backend
- -b eps, -e, --eps - EPS backend (encapsulated PostScript) (default)
- -b ps, -p, --postscript - PostScript backend
- -b pgm, -g, --pgm - PGM backend (portable greymap)
- -b dxf - DXF backend (drawing interchange format)
- -b geojson - GeoJSON backend
- -b gimppath - Gimppath backend (GNU Gimp)
- -b xfig - XFig backend
- Algorithm options:
- -z, --turnpolicy <policy> - how to resolve ambiguities in path decomposition
- -t, --turdsize <n> - suppress speckles of up to this size (default 2)
- -a, --alphamax <n> - corner threshold parameter (default 1)
- -n, --longcurve - turn off curve optimization
- -O, --opttolerance <n> - curve optimization tolerance (default 0.2)
- -u, --unit <n> - quantize output to 1/unit pixels (default 10)
- -d, --debug <n> - produce debugging output of type n (n=1,2,3)
- Scaling and placement options:
- -P, --pagesize <format> - page size (default is letter)
- -W, --width <dim> - width of output image
- -H, --height <dim> - height of output image
- -r, --resolution <n>[x<n>] - resolution (in dpi) (dimension-based backends)
- -x, --scale <n>[x<n>] - scaling factor (pixel-based backends)
- -S, --stretch <n> - yresolution/xresolution
- -A, --rotate <angle> - rotate counterclockwise by angle
- -M, --margin <dim> - margin
- -L, --leftmargin <dim> - left margin
- -R, --rightmargin <dim> - right margin
- -T, --topmargin <dim> - top margin
- -B, --bottommargin <dim> - bottom margin
- --tight - remove whitespace around the input image
- Color options, supported by some backends:
- -C, --color #rrggbb - set foreground color (default black)
- --fillcolor #rrggbb - set fill color (default transparent)
- --opaque - make white shapes opaque
- SVG options:
- --group - group related paths together
- --flat - whole image as a single path
- Postscript/EPS/PDF options:
- -c, --cleartext - do not compress the output
- -2, --level2 - use postscript level 2 compression (default)
- -3, --level3 - use postscript level 3 compression
- -q, --longcoding - do not optimize for file size
- PGM options:
- -G, --gamma <n> - gamma value for anti-aliasing (default 2.2)
- Frontend options:
- -k, --blacklevel <n> - black/white cutoff in input file (default 0.5)
- -i, --invert - invert bitmap
- Progress bar options:
- --progress - show progress bar
- --tty <mode> - progress bar rendering: vt100 or dumb
-
- Dimensions can have optional units, e.g. 6.5in, 15cm, 100pt.
- Default is inches (or pixels for pgm, dxf, and gimppath backends).
- Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
- Backends are: svg, pdf, pdfpage, eps, postscript, ps, dxf, geojson, pgm,
- gimppath, xfig.
-
-POTRACE LIBRARY (FOR DEVELOPERS)
-
- As of Potrace release 1.6, the Potrace core functionality has been
- separated into a library libpotrace.a. This makes it easy to integrate
- tracing functionality into other GPL programs. The API of the library
- is defined in the header file potracelib.h, and is documented in
- doc/potracelib.pdf. It is not by default installed, but can be
- installed with the --with-libpotrace configuration option.
-
-DOCUMENTATION
-
- Usage information is contained in the man page:
- http://potrace.sourceforge.net/potrace.html
-
- Many common questions are answered in the FAQ:
- http://potrace.sourceforge.net/faq.html
-
- Some examples are given on the following web pages:
- http://potrace.sourceforge.net/samples.html
- http://potrace.sourceforge.net/mkbitmap.html
-
- The inner workings of the potrace algorithm are explained here:
- http://potrace.sourceforge.net/potrace.pdf
-
- The potrace library is documented here:
- http://potrace.sourceforge.net/potracelib.pdf
-
-COPYRIGHT
-
- Copyright (C) 2001-2017 Peter Selinger
-
- The use of the name "Potrace" is governed by a separate policy, see
- TRADEMARKS below.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or (at
- your option) any later version.
-
- This program 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
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- See also http://www.gnu.org/.
-
- See the file COPYING for details.
-
-TRADEMARKS
-
- "Potrace" is a trademark of Peter Selinger.
-
- Policy on using the name "Potrace". If you are planning to modify
- Potrace, including making a port of Potrace to another programming
- language, please be aware of the following. While the source code of
- Potrace is licensed under the GNU General Public License, the name
- "Potrace" is my trademark, and may only be used with my permission.
-
- In practice, I will permit the use of the name "Potrace" in
- connection with a port of Potrace to another programming language,
- provided that the port complies with the term of the GNU General
- Public License and produces the same high quality vectorized output
- as the original Potrace. Ports that are buggy or do not produce high
- quality output are not permitted to use the name "Potrace". To ensure
- compliance with this policy, please run your port by me before making
- it public. Also, if you use the "Potrace" name (or any derivative,
- such as "MyPotrace"), you must provide a name and email address where
- I can reach you. Derivatives of Potrace that are posted anonymously
- or where the authors cannot be reached or do not reply to email or
- bug reports are not permitted to use the name "Potrace".
-
- The purpose of this policy is to allow people to port Potrace to as
- many programming languages as possible, while also ensuring that all
- such ports are of the same high quality that has come to be
- associated with the name "Potrace".
-
-GPG KEY
-
- The key fingerprint of Peter Selinger's GPG key is:
- 12A2 4B3C 3790 B688 E484 7A98 A68B CC37 CA31 696A
- This may be useful for authenticating future versions of Potrace.
diff --git a/Build/source/libs/potrace/potrace-src/README-WIN b/Build/source/libs/potrace/potrace-src/README-WIN
deleted file mode 100644
index 416b84f87ee..00000000000
--- a/Build/source/libs/potrace/potrace-src/README-WIN
+++ /dev/null
@@ -1,49 +0,0 @@
-
- POTRACE - transform bitmaps into vector graphics
-
- README for Windows
- _________________________________________________________________
-
-This file contains instructions specific to the pre-compiled Windows
-distribution of Potrace. Please see the general README file and the
-man page for general information on usage, how to compile Potrace,
-etc.
-
-
-INSTALLATION for Windows:
-=========================
-
-Download the file potrace-XXX.win32.zip (or potrace-XXX.win64.zip if
-you want the 64-bit version). Unpack it with your favorite unzipping
-tool, such as unzip, 7-Zip, WinZip, or just right-clicking on the
-file.
-
-If you have "tar" and "gunzip" installed, you may also get the tar.gz
-file instead of the zip file.
-
-The distribution includes the executable programs potrace.exe and
-mkbitmap.exe. You need to move these files to a place where Windows
-looks for programs, for example C:\WINDOWS. Alternatively, you can
-amend your PATH environment variable, by adding something like the
-following line to C:\AUTOEXEC.BAT:
-
- PATH=%PATH%;C:\DIRECTORY\WHERE\FILES\ARE
-
-
-RUNNING:
-========
-
-For non-Windows specific usage information, see the file README.
-
-Potrace on Windows runs in much the same way as under Linux and other
-Unix-like operating systems. You must run Potrace from the command
-line (also known as the MSDOS Prompt). File names can be given in Unix
-style or Windows style, thus the following will both work:
-
- potrace h:/data/file.txt
- potrace h:\data\file.txt
-
-Wildcards can also be used, as in:
-
- potrace h:\data\*.*
- potrace h:/data/*.*
diff --git a/Build/source/libs/potrace/potrace-src/config.h.in b/Build/source/libs/potrace/potrace-src/config.h.in
deleted file mode 100644
index 9375fca7207..00000000000
--- a/Build/source/libs/potrace/potrace-src/config.h.in
+++ /dev/null
@@ -1,109 +0,0 @@
-/* config.h.in. Generated from configure.ac by autoheader. */
-
-/* Use the simplified progress bar? */
-#undef DUMB_TTY
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Does the C compiler have gcc bug 12243? */
-#undef HAVE_GCC_LOOP_BUG
-
-/* Can we use Intel 386 optimizations? */
-#undef HAVE_I386
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Do we have the zlib library? */
-#undef HAVE_ZLIB
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Name of the mkbitmap binary */
-#undef MKBITMAP
-
-/* Define if missing from math.h */
-#undef M_PI
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Name of the potrace binary */
-#undef POTRACE
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Use a4 papersize by default? */
-#undef USE_A4
-
-/* Use metric units by default? */
-#undef USE_METRIC
-
-/* Version number of package */
-#undef VERSION
-
-/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT64_T
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Replacement function for strcasecmp */
-#undef strcasecmp
-
-/* Replacement function for strncasecmp */
-#undef strncasecmp
-
-/* Define to the type of an unsigned integer type of width exactly 64 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint64_t
diff --git a/Build/source/libs/potrace/potrace-src/configure.ac b/Build/source/libs/potrace/potrace-src/configure.ac
deleted file mode 100644
index 354a640d536..00000000000
--- a/Build/source/libs/potrace/potrace-src/configure.ac
+++ /dev/null
@@ -1,285 +0,0 @@
-dnl Copyright (C) 2001-2017 Peter Selinger.
-dnl This file is part of Potrace. It is free software and it is covered
-dnl by the GNU General Public License. See the file COPYING for details.
-
-dnl Process this file with autoconf to produce a configure script.
-
-dnl ----------------------------------------------------------------------
-dnl Package info
-AC_INIT([potrace],[1.15],[selinger at users.sourceforge.net])
-AC_CONFIG_SRCDIR(src/trace.c)
-AM_INIT_AUTOMAKE
-AC_CONFIG_HEADER(config.h)
-AC_CONFIG_MACRO_DIR([m4])
-
-DATE="August 2017"
-
-dnl ----------------------------------------------------------------------
-dnl The names of the installed executables are defined here, but
-dnl should not normally be changed.
-
-POTRACE=potrace
-AC_DEFINE_UNQUOTED(POTRACE,"$POTRACE",Name of the potrace binary)
-
-MKBITMAP=mkbitmap
-AC_DEFINE_UNQUOTED(MKBITMAP,"$MKBITMAP",Name of the mkbitmap binary)
-
-dnl ----------------------------------------------------------------------
-dnl figure out compiler options
-
-dnl Check for compiler
-AC_PROG_CC([clang gcc cc c99 mgcc c89 pcc opencc sunc99 suncc])
-
-dnl Also add CADD to the CFLAGS at configure time or compile time
-AC_SUBST(CADD)
-
-AC_MSG_CHECKING(what compiler options to use)
-AC_MSG_RESULT($CADD $CFLAGS)
-
-dnl ----------------------------------------------------------------------
-dnl check if --with-libpotrace was given - this must be done
-dnl before LT_INIT so that we can avoid building shared libraries
-dnl when they are not going to be installed.
-
-AC_ARG_WITH(libpotrace,
- AS_HELP_STRING([--with-libpotrace],[install Potrace library and headers [default=no]]))
-
-if test "$with_libpotrace" != yes; then
- enable_shared=no
-fi
-
-dnl ----------------------------------------------------------------------
-dnl Figure out how to build libraries
-
-AC_LIBTOOL_WIN32_DLL
-LT_INIT
-
-dnl ----------------------------------------------------------------------
-dnl Figure out whether to install libraries (default: no)
-
-AC_MSG_CHECKING(whether to install the Potrace library)
-if test "$with_libpotrace" = yes; then
- AC_MSG_RESULT(yes)
- INSTLIBS="libpotrace.la"
- INSTHEADERS="potracelib.h"
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST(INSTLIBS)
-AC_SUBST(INSTHEADERS)
-
-dnl ----------------------------------------------------------------------
-dnl check for compiler bugs.
-
-dnl The GCC compiler used to have a loop optimization bug that affected
-dnl potrace. This bug had been present since gcc-2.X and was still
-dnl pending (as of gcc version 3.3.1). Since the presence of this bug
-dnl cannot be reliably tested, and I am not sure in which version it was
-dnl fixed, we simply assume (conservatively) that all gcc compilers may
-dnl have this bug. In future: add a test that checks the compiler
-dnl version.
-
-if test "$GCC" = "yes"; then
- AC_MSG_CHECKING([whether gcc has bug number 12243])
- AC_DEFINE(HAVE_GCC_LOOP_BUG,, [Does the C compiler have gcc bug 12243?])
- AC_MSG_RESULT(maybe)
-fi
-
-dnl ----------------------------------------------------------------------
-dnl check for features
-
-AC_MSG_CHECKING(whether to use zlib)
-AC_ARG_ENABLE(zlib,
- AS_HELP_STRING([--disable-zlib],[disable PostScript level 3 compression]))
-if test "$enable_zlib" != no; then
- AC_DEFINE(HAVE_ZLIB,, Do we have the zlib library?)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl Set optional defaults
-AC_MSG_CHECKING(whether to default to metric units)
-AC_ARG_ENABLE(metric,
- AS_HELP_STRING([--enable-metric],[use metric units (centimeters) as default]))
-if test "$enable_metric" = yes; then
- AC_DEFINE(USE_METRIC,, Use metric units by default?)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(whether to default to a4 paper size)
-AC_ARG_ENABLE(a4,
- AS_HELP_STRING([--enable-a4],[use a4 as the default papersize]))
-if test "$enable_a4" = yes; then
- AC_DEFINE(USE_A4,, Use a4 papersize by default?)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(whether to use the simplified progress bar)
-AC_ARG_ENABLE(dumb-tty,
- AS_HELP_STRING([--enable-dumb-tty], [use simplified ASCII-only progress bar]))
-dumb_tty="$enable_dumb_tty"
-if test -z "$dumb_tty"; then
- AC_CANONICAL_HOST
- if test "$host_os" = "mingw32"; then
- dumb_tty="yes"
- fi
-fi
-if test "$dumb_tty" = "yes"; then
- AC_DEFINE(DUMB_TTY,, Use the simplified progress bar?)
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-dnl ----------------------------------------------------------------------
-dnl Calculate value of "prefix", to aid guessing of include file and
-dnl library locations.
-
-USERPREFIX="$prefix"
-if test "$USERPREFIX" = "NONE"; then
- USERPREFIX="$ac_default_prefix"
-fi
-
-dnl ----------------------------------------------------------------------
-dnl Check for header files
-
-if test "$enable_zlib" != no; then
- AC_CHECK_HEADER(zlib.h, true,
- [AC_MSG_WARN([zlib.h not found in standard location.
-Trying again with -I$USERPREFIX/include])
- CPPFLAGS="$CPPFLAGS -I$USERPREFIX/include"
- dnl need to unset cached value to repeat the test
- unset ac_cv_header_zlib_h
- AC_CHECK_HEADER(zlib.h, true,
- [AC_MSG_ERROR([cannot find zlib.h.
-Rerun ./configure with CPPFLAGS=-I<include dir> if you have the header
-file in a non-standard directory, or with --disable-zlib to disable
-support for PostScript level 3 compression.])
- ])
- ])
-fi
-
-dnl ----------------------------------------------------------------------
-dnl Check for symbols
-AC_CHECK_DECL(M_PI, ,
- AC_DEFINE(M_PI, 3.14159265358979323846, [Define if missing from math.h]),
- [#include <math.h>])
-
-dnl ----------------------------------------------------------------------
-dnl Check for libraries
-
-if test "$enable_zlib" != no; then
- AC_CHECK_LIB(z, deflate, EXTRA_LIBS="$EXTRA_LIBS -lz",
- [AC_MSG_WARN([libz library not found in standard location.
-Trying again with -L$USERPREFIX/lib])
- LDFLAGS="$LDFLAGS -L$USERPREFIX/lib"
- dnl need to unset cached value to repeat the test
- unset ac_cv_lib_z_deflate
- AC_CHECK_LIB(z, deflate, EXTRA_LIBS="$EXTRA_LIBS -lz",
- [AC_MSG_ERROR([cannot find the libz library (-lz).
-Rerun ./configure with LDFLAGS=-L<lib dir> if you have the library in
-a non-standard directory, or with --disable-zlib to disable support
-for PostScript level 3 compression.])
- ])
- ])
-fi
-
-AC_CHECK_LIB(m, floor, true, AC_MSG_ERROR([cannot find the m library (-lm)]))
-
-dnl ----------------------------------------------------------------------
-dnl Check for types
-
-AC_TYPE_UINT64_T
-
-dnl ----------------------------------------------------------------------
-dnl Check for library functions.
-
-dnl Check for getopt_long
-AC_CHECK_FUNC(getopt_long, have_getopt_long=yes, have_getopt_long=no)
-if test "$have_getopt_long" = "yes"; then
- dnl Check whether getopt_long reorders its arguments
- AC_MSG_CHECKING([whether getopt_long reorders its arguments])
- AC_RUN_IFELSE([AC_LANG_PROGRAM(
- [[ #include <getopt.h>
- static struct option longopts[] = {
- {"help", 0, 0, 'h'},
- {0, 0, 0, 0}
- };
- ]],
- [[ int ac = 3;
- char *av[] = { "main", "file", "-h" };
- return 'h' == getopt_long(ac, av, "h", longopts, (int *)0) ? 0 : 1;
- ]])],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- have_getopt_long=no],
- [AC_MSG_RESULT(maybe (cross-compiling))
- have_getopt_long=no])
-fi
-
-AC_ARG_ENABLE(local-getopt,
- AS_HELP_STRING([--enable-local-getopt],[avoid using the system-wide getopt library]))
-
-AC_MSG_CHECKING(whether to use local getopt)
-if test "$have_getopt_long" != "yes" || test "$enable_local_getopt" = yes; then
- EXTRA_OBJS="$EXTRA_OBJS getopt.o getopt1.o"
- EXTRA_INCLUDES="$EXTRA_INCLUDES -I\$(srcdir)/include/getopt"
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_CHECK_FUNC(strcasecmp, ,
- [AC_CHECK_FUNC(stricmp,
- [AC_DEFINE_UNQUOTED(strcasecmp, stricmp, [Replacement function for strcasecmp])],
- [AC_MSG_ERROR([cannot find a replacement for strcasecmp])]
- )]
-)
-AC_CHECK_FUNC(strncasecmp, ,
- [AC_CHECK_FUNC(strnicmp,
- [AC_DEFINE_UNQUOTED(strncasecmp, strnicmp, [Replacement function for strncasecmp])],
- [AC_MSG_ERROR([cannot find a replacement for strncasecmp])]
- )]
-)
-
-dnl ----------------------------------------------------------------------
-dnl Check whether we have i386 features
-AC_MSG_CHECKING([for Intel 386])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int x;
- asm("bsf %1,%0\njnz 0f\nmovl $32,%0\n0:":"=r"(x):"r"(x));
- return x; /* need this so that -O2 does not optimize the asm away */
-]])],[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_I386,, Can we use Intel 386 optimizations?)
-],[AC_MSG_RESULT(no)])
-
-
-dnl ----------------------------------------------------------------------
-dnl Check whether compiler supports inlining
-
-AC_C_INLINE
-
-dnl ----------------------------------------------------------------------
-dnl Set up substitutions of non-standard configuration parameters
-AC_SUBST(DATE)
-AC_SUBST(POTRACE)
-AC_SUBST(MKBITMAP)
-AC_SUBST(EXTRA_OBJS)
-AC_SUBST(EXTRA_INCLUDES)
-AC_SUBST(EXTRA_LIBS)
-AC_SUBST(AM_CPPFLAGS)
-AC_SUBST(POTRACELIB_VERSION)
-
-dnl ----------------------------------------------------------------------
-AC_CONFIG_FILES([Makefile
- src/Makefile
- doc/Makefile
- check/Makefile
- doc/potrace.1
- doc/mkbitmap.1
- ])
-AC_OUTPUT
diff --git a/Build/source/libs/potrace/potrace-src/src/Makefile.am b/Build/source/libs/potrace/potrace-src/src/Makefile.am
deleted file mode 100644
index e83bfc14fe1..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/Makefile.am
+++ /dev/null
@@ -1,59 +0,0 @@
-## Copyright (C) 2001-2017 Peter Selinger.
-## This file is part of Potrace. It is free software and it is covered
-## by the GNU General Public License. See the file COPYING for details.
-
-## Process this file with automake to produce Makefile.in
-
-AM_CFLAGS = $(CADD)
-
-#----------------------------------------------------------------------
-# programs:
-
-bin_PROGRAMS = potrace mkbitmap
-EXTRA_PROGRAMS = potracelib_demo
-
-potrace_SOURCES = main.c main.h bitmap_io.c bitmap_io.h backend_eps.c \
- backend_eps.h flate.c flate.h lists.h greymap.c greymap.h render.c \
- render.h backend_pgm.c backend_pgm.h backend_svg.c backend_svg.h \
- backend_xfig.c backend_xfig.h backend_dxf.c backend_dxf.h \
- backend_pdf.c backend_pdf.h backend_geojson.c backend_geojson.h \
- lzw.c lzw.h bitops.h auxiliary.h potracelib.h bitmap.h curve.h \
- platform.h progress.h progress_bar.c progress_bar.h bbox.c bbox.h \
- trans.c trans.h
-potrace_LDADD = libpotrace.la @EXTRA_OBJS@ -lm @EXTRA_LIBS@
-potrace_DEPENDENCIES = libpotrace.la @EXTRA_OBJS@
-
-mkbitmap_SOURCES = mkbitmap.c bitmap_io.c bitmap_io.h greymap.c \
- greymap.h platform.h bitmap.h potracelib.h bitops.h
-mkbitmap_LDADD = @EXTRA_OBJS@ -lm
-mkbitmap_DEPENDENCIES = @EXTRA_OBJS@
-
-potracelib_demo_SOURCES = potracelib_demo.c
-potracelib_demo_LDADD = libpotrace.la -lm
-potracelib_demo_DEPENDENCIES = libpotrace.la
-
-AM_CPPFLAGS = @EXTRA_INCLUDES@
-
-#----------------------------------------------------------------------
-# Potrace library:
-
-libsources = curve.c curve.h trace.c trace.h decompose.c \
- decompose.h potracelib.c potracelib.h lists.h auxiliary.h bitmap.h \
- progress.h
-
-lib_LTLIBRARIES = $(INSTLIBS)
-EXTRA_LTLIBRARIES = libpotrace.la
-libpotrace_la_SOURCES = $(libsources)
-libpotrace_la_LDFLAGS = -version-info 0:5:0 -rpath '$(libdir)' \
- -export-symbols $(srcdir)/libpotrace-export.sym -no-undefined
-libpotrace_la_LIBADD = -lm
-MOSTLYCLEANFILES = libpotrace.la
-
-# header files to install
-include_HEADERS = $(INSTHEADERS)
-EXTRA_HEADERS = potracelib.h
-
-#----------------------------------------------------------------------
-# other stuff to distribute
-
-EXTRA_DIST = getopt.c getopt1.c include/getopt/getopt.h libpotrace-export.sym
diff --git a/Build/source/libs/potrace/potrace-src/src/auxiliary.h b/Build/source/libs/potrace/potrace-src/src/auxiliary.h
deleted file mode 100644
index bb0c6e03cb9..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/auxiliary.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* This header file collects some general-purpose macros (and static
- inline functions) that are used in various places. */
-
-#ifndef AUXILIARY_H
-#define AUXILIARY_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-
-/* ---------------------------------------------------------------------- */
-/* point arithmetic */
-
-#include "potracelib.h"
-
-struct point_s {
- long x;
- long y;
-};
-typedef struct point_s point_t;
-
-typedef potrace_dpoint_t dpoint_t;
-
-/* convert point_t to dpoint_t */
-static inline dpoint_t dpoint(point_t p) {
- dpoint_t res;
- res.x = p.x;
- res.y = p.y;
- return res;
-}
-
-/* range over the straight line segment [a,b] when lambda ranges over [0,1] */
-static inline dpoint_t interval(double lambda, dpoint_t a, dpoint_t b) {
- dpoint_t res;
-
- res.x = a.x + lambda * (b.x - a.x);
- res.y = a.y + lambda * (b.y - a.y);
- return res;
-}
-
-/* ---------------------------------------------------------------------- */
-/* some useful macros. Note: the "mod" macro works correctly for
- negative a. Also note that the test for a>=n, while redundant,
- speeds up the mod function by 70% in the average case (significant
- since the program spends about 16% of its time here - or 40%
- without the test). The "floordiv" macro returns the largest integer
- <= a/n, and again this works correctly for negative a, as long as
- a,n are integers and n>0. */
-
-/* integer arithmetic */
-
-static inline int mod(int a, int n) {
- return a>=n ? a%n : a>=0 ? a : n-1-(-1-a)%n;
-}
-
-static inline int floordiv(int a, int n) {
- return a>=0 ? a/n : -1-(-1-a)/n;
-}
-
-/* Note: the following work for integers and other numeric types. */
-#undef sign
-#undef abs
-#undef min
-#undef max
-#undef sq
-#undef cu
-#define sign(x) ((x)>0 ? 1 : (x)<0 ? -1 : 0)
-#define abs(a) ((a)>0 ? (a) : -(a))
-#define min(a,b) ((a)<(b) ? (a) : (b))
-#define max(a,b) ((a)>(b) ? (a) : (b))
-#define sq(a) ((a)*(a))
-#define cu(a) ((a)*(a)*(a))
-
-#endif /* AUXILIARY_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_dxf.c b/Build/source/libs/potrace/potrace-src/src/backend_dxf.c
deleted file mode 100644
index 978f6d120a8..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_dxf.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* The DXF backend of Potrace. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-
-#include "main.h"
-#include "backend_dxf.h"
-#include "potracelib.h"
-#include "lists.h"
-#include "auxiliary.h"
-#include "trans.h"
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary linear algebra functions */
-
-/* subtract two vectors */
-static dpoint_t sub(dpoint_t v, dpoint_t w) {
- dpoint_t r;
-
- r.x = v.x - w.x;
- r.y = v.y - w.y;
- return r;
-}
-
-/* inner product */
-static double iprod(dpoint_t v, dpoint_t w) {
- return v.x * w.x + v.y * w.y;
-}
-
-/* cross product */
-static double xprod(dpoint_t v, dpoint_t w) {
- return v.x * w.y - v.y * w.x;
-}
-
-/* calculate the DXF polyline "bulge" value corresponding to the angle
- between two vectors. In case of "infinity" return 0.0. */
-static double bulge(dpoint_t v, dpoint_t w) {
- double v2, w2, vw, vxw, nvw;
-
- v2 = iprod(v, v);
- w2 = iprod(w, w);
- vw = iprod(v, w);
- vxw = xprod(v, w);
- nvw = sqrt(v2 * w2);
-
- if (vxw == 0.0) {
- return 0.0;
- }
-
- return (nvw - vw) / vxw;
-}
-
-/* ---------------------------------------------------------------------- */
-/* DXF output synthesis */
-
-/* print with group code: the low-level DXF file format */
-static int ship(FILE *fout, int gc, const char *fmt, ...) {
- va_list args;
- int r;
- int c;
-
- r = fprintf(fout, "%3d\n", gc);
- if (r < 0) {
- return r;
- }
- c = r;
- va_start(args, fmt);
- r = vfprintf(fout, fmt, args);
- va_end(args);
- if (r < 0) {
- return r;
- }
- c += r;
- r = fprintf(fout, "\n");
- if (r < 0) {
- return r;
- }
- c += r;
- return c;
-}
-
-/* output the start of a polyline */
-static void ship_polyline(FILE *fout, const char *layer, int closed) {
- ship(fout, 0, "POLYLINE");
- ship(fout, 8, "%s", layer);
- ship(fout, 66, "%d", 1);
- ship(fout, 70, "%d", closed ? 1 : 0);
-}
-
-/* output a vertex */
-static void ship_vertex(FILE *fout, const char *layer, dpoint_t v, double bulge) {
- ship(fout, 0, "VERTEX");
- ship(fout, 8, "%s", layer);
- ship(fout, 10, "%f", v.x);
- ship(fout, 20, "%f", v.y);
- ship(fout, 42, "%f", bulge);
-}
-
-/* output the end of a polyline */
-static void ship_seqend(FILE *fout) {
- ship(fout, 0, "SEQEND");
-}
-
-/* output a comment */
-static void ship_comment(FILE *fout, const char *comment) {
- ship(fout, 999, "%s", comment);
-}
-
-/* output the start of a section */
-static void ship_section(FILE *fout, const char *name) {
- ship(fout, 0, "SECTION");
- ship(fout, 2, "%s", name);
-}
-
-static void ship_endsec(FILE *fout) {
- ship(fout, 0, "ENDSEC");
-}
-
-static void ship_eof(FILE *fout) {
- ship(fout, 0, "EOF");
-}
-
-/* ---------------------------------------------------------------------- */
-/* Simulated quadratic and bezier curves */
-
-/* Output vertices (with bulges) corresponding to a smooth pair of
- circular arcs from A to B, tangent to AC at A and to CB at
- B. Segments are meant to be concatenated, so don't output the final
- vertex. */
-static void pseudo_quad(FILE *fout, const char *layer, dpoint_t A, dpoint_t C, dpoint_t B) {
- dpoint_t v, w;
- double v2, w2, vw, vxw, nvw;
- double a, b, c, y;
- dpoint_t G;
- double bulge1, bulge2;
-
- v = sub(A, C);
- w = sub(B, C);
-
- v2 = iprod(v, v);
- w2 = iprod(w, w);
- vw = iprod(v, w);
- vxw = xprod(v, w);
- nvw = sqrt(v2 * w2);
-
- a = v2 + 2*vw + w2;
- b = v2 + 2*nvw + w2;
- c = 4*nvw;
- if (vxw == 0 || a == 0) {
- goto degenerate;
- }
- /* assert: a,b,c >= 0, b*b - a*c >= 0, and 0 <= b - sqrt(b*b - a*c) <= a */
- y = (b - sqrt(b*b - a*c)) / a;
- G = interval(y, C, interval(0.5, A, B));
-
- bulge1 = bulge(sub(A,G), v);
- bulge2 = bulge(w, sub(B,G));
-
- ship_vertex(fout, layer, A, -bulge1);
- ship_vertex(fout, layer, G, -bulge2);
- return;
-
- degenerate:
- ship_vertex(fout, layer, A, 0);
-
- return;
-}
-
-/* produce a smooth from A to D, tangent to AB at A and to CD at D.
- This is similar to a Bezier curve, except that our curve will be
- made up of up to 4 circular arcs. This is particularly intended for
- the case when AD and BC are parallel. Like arcs(), don't output the
- final vertex. */
-static void pseudo_bezier(FILE *fout, const char *layer, dpoint_t A, dpoint_t B, dpoint_t C, dpoint_t D) {
- dpoint_t E = interval(0.75, A, B);
- dpoint_t G = interval(0.75, D, C);
- dpoint_t F = interval(0.5, E, G);
-
- pseudo_quad(fout, layer, A, E, F);
- pseudo_quad(fout, layer, F, G, D);
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for converting a path to a DXF polyline */
-
-/* do one path. */
-static int dxf_path(FILE *fout, const char *layer, potrace_curve_t *curve, trans_t t) {
- int i;
- dpoint_t *c, *c1;
- int n = curve->n;
-
- ship_polyline(fout, layer, 1);
-
- for (i=0; i<n; i++) {
- c = curve->c[i];
- c1 = curve->c[mod(i-1,n)];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- ship_vertex(fout, layer, trans(c1[2], t), 0);
- ship_vertex(fout, layer, trans(c[1], t), 0);
- break;
- case POTRACE_CURVETO:
- pseudo_bezier(fout, layer, trans(c1[2], t), trans(c[0], t), trans(c[1], t), trans(c[2], t));
- break;
- }
- }
- ship_seqend(fout);
- return 0;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Backend. */
-
-/* public interface for DXF */
-int page_dxf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- potrace_path_t *p;
- trans_t t;
- const char *layer = "0";
-
- /* set up the coordinate transform (rotation) */
- t.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar;
- t.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar;
- t.orig[0] = imginfo->trans.orig[0]+imginfo->lmar;
- t.orig[1] = imginfo->trans.orig[1]+imginfo->bmar;
- t.x[0] = imginfo->trans.x[0];
- t.x[1] = imginfo->trans.x[1];
- t.y[0] = imginfo->trans.y[0];
- t.y[1] = imginfo->trans.y[1];
-
- ship_comment(fout, "DXF data, created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017");
-
- /* header section */
- ship_section(fout, "HEADER");
-
- /* variables */
- ship(fout, 9, "$ACADVER");
- ship(fout, 1, "AC1006");
- ship(fout, 9, "$EXTMIN");
- ship(fout, 10, "%f", 0.0);
- ship(fout, 20, "%f", 0.0);
- ship(fout, 30, "%f", 0.0);
- ship(fout, 9, "$EXTMAX");
- ship(fout, 10, "%f", t.bb[0]);
- ship(fout, 20, "%f", t.bb[1]);
- ship(fout, 30, "%f", 0.0);
-
- ship_endsec(fout);
-
- /* entities section */
- ship_section(fout, "ENTITIES");
-
- /* write paths */
- list_forall (p, plist) {
- dxf_path(fout, layer, &p->curve, t);
- }
-
- ship_endsec(fout);
- ship_eof(fout);
-
- fflush(fout);
- return 0;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_dxf.h b/Build/source/libs/potrace/potrace-src/src/backend_dxf.h
deleted file mode 100644
index f7784485915..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_dxf.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_DXF_H
-#define BACKEND_DXF_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int page_dxf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_DXF_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_eps.c b/Build/source/libs/potrace/potrace-src/src/backend_eps.c
deleted file mode 100644
index d1f0cf3bec9..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_eps.c
+++ /dev/null
@@ -1,863 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* The Postscript backend of Potrace. This can produce "ps" or "eps"
- output, and different kinds of graphical debugging
- output. Postscript compression is optionally supplied via the
- functions in flate.c. */
-
-#ifndef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200809L
-#endif
-
-#ifndef _NETBSD_SOURCE
-#define _NETBSD_SOURCE 1
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-#include <stdlib.h>
-
-#include "potracelib.h"
-#include "curve.h"
-#include "main.h"
-#include "backend_eps.h"
-#include "flate.h"
-#include "lists.h"
-#include "auxiliary.h"
-
-#define SAFE_CALLOC(var, n, typ) \
- if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error
-
-typedef int color_t;
-
-#define black 0x000000
-#define red 0xff0000
-#define green 0x008000
-#define blue 0x0000ff
-
-#define TRY(x) if (x) goto try_error
-
-/* ---------------------------------------------------------------------- */
-/* functions for interfacing with compression backend */
-
-/* xship: callback function that must be initialized before calling
- any other functions of the "ship" family. xship_file must be
- initialized too. */
-
-/* print the token to f, but filtered through a compression
- filter in case filter!=0 */
-static int (*xship)(FILE *f, int filter, const char *s, int len);
-static FILE *xship_file;
-
-/* ship postscript code, filtered */
-static int ship(const char *fmt, ...) {
- va_list args;
- static char buf[4096]; /* static string limit is okay here because
- we only use constant format strings - for
- the same reason, it is okay to use
- vsprintf instead of vsnprintf below. */
- va_start(args, fmt);
- vsprintf(buf, fmt, args);
- buf[4095] = 0;
- va_end(args);
-
- xship(xship_file, 1, buf, strlen(buf));
- return 0;
-}
-
-/* ship a postscript comment, unfiltered */
-static int shipcom(const char *fmt, ...) {
- static char buf[4096];
- va_list args;
-
- va_start(args, fmt);
- vsprintf(buf, fmt, args);
- buf[4095] = 0;
- va_end(args);
-
- xship(xship_file, 0, buf, strlen(buf));
- return 0;
-}
-
-/* set all callback functions */
-static void eps_callbacks(FILE *fout) {
- if (info.compress && info.pslevel==2) {
- xship = lzw_xship;
- } else if (info.compress && info.pslevel==3) {
- xship = flate_xship;
- } else {
- xship = dummy_xship;
- }
- xship_file = fout;
-}
-
-/* ---------------------------------------------------------------------- */
-/* postscript path-drawing auxiliary functions */
-
-/* coordinate quantization */
-static inline point_t unit(dpoint_t p) {
- point_t q;
-
- q.x = (long)(floor(p.x*info.unit+.5));
- q.y = (long)(floor(p.y*info.unit+.5));
- return q;
-}
-
-/* current point */
-static point_t cur;
-
-static void eps_coords(dpoint_t p) {
- cur = unit(p);
- ship("%ld %ld ", cur.x, cur.y);
-}
-
-static void eps_rcoords(dpoint_t p) {
- point_t q;
-
- q = unit(p);
- ship("%ld %ld ", q.x-cur.x, q.y-cur.y);
- cur = q;
-}
-
-static void eps_moveto(dpoint_t p) {
- eps_coords(p);
- ship("moveto\n");
-}
-
-/* move to point + offset */
-static void eps_moveto_offs(dpoint_t p, double xoffs, double yoffs) {
- /* note: structs are passed by value, so the following assignment
- does not modify the original struct in the caller */
- p.x += xoffs;
- p.y += yoffs;
- eps_coords(p);
- ship("moveto\n");
-}
-
-static void eps_lineto(dpoint_t p) {
- eps_rcoords(p);
- ship("rlineto\n");
-}
-
-static void eps_curveto(dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- point_t q1, q2, q3;
-
- q1 = unit(p1);
- q2 = unit(p2);
- q3 = unit(p3);
-
- ship("%ld %ld %ld %ld %ld %ld rcurveto\n", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y);
-
- cur = q3;
-}
-
-/* this procedure returns a statically allocated string */
-static const char *eps_colorstring(const color_t col) {
- double r, g, b;
- static char buf[100];
-
- r = (col & 0xff0000) >> 16;
- g = (col & 0x00ff00) >> 8;
- b = (col & 0x0000ff) >> 0;
-
- if (r==0 && g==0 && b==0) {
- return "0 setgray";
- } else if (r==255 && g==255 && b==255) {
- return "1 setgray";
- } else if (r == g && g == b) {
- sprintf(buf, "%.3f setgray", r/255.0);
- return buf;
- } else {
- sprintf(buf, "%.3f %.3f %.3f setrgbcolor", r/255.0, g/255.0, b/255.0);
- return buf;
- }
-}
-
-static color_t eps_color = -1;
-static double eps_width = -1;
-
-static void eps_setcolor(const color_t col) {
- if (col == eps_color) {
- return;
- }
- eps_color = col;
-
- ship("%s\n", eps_colorstring(col));
-}
-
-static void eps_linewidth(double w) {
- if (w == eps_width) {
- return;
- }
- eps_width = w;
- ship("%f setlinewidth\n", w * info.unit);
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for converting a path to postscript code */
-
-/* ---------------------------------------------------------------------- */
-/* ASCII encoding */
-
-/* explicit encoding, does not use special macros */
-static int eps_path_long(privcurve_t *curve) {
- int i;
- dpoint_t *c;
- int m = curve->n;
-
- c = curve->c[m-1];
- eps_moveto(c[2]);
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- eps_lineto(c[1]);
- eps_lineto(c[2]);
- break;
- case POTRACE_CURVETO:
- eps_curveto(c[0], c[1], c[2]);
- break;
- }
- }
- return 0;
-}
-
-/* size-optimized encoding relies on special macros */
-static int eps_path_short(privcurve_t *curve) {
- int i, i1;
- long int *bq = NULL; /* bq[m] */
- long int *aq = NULL; /* aq[m] */
- point_t *v = NULL; /* v[m] */
- dpoint_t *q = NULL; /* q[m] */
- double M;
- int m = curve->n;
-
- SAFE_CALLOC(bq, m, long int);
- SAFE_CALLOC(aq, m, long int);
- SAFE_CALLOC(v, m, point_t);
- SAFE_CALLOC(q, m, dpoint_t);
-
- /* quantize vertices */
- for (i=0; i<m; i++) {
- v[i] = unit(curve->vertex[i]);
- }
-
- /* quantize beta */
- for (i=0; i<m; i++) {
- i1 = mod(i+1,m);
- M = max(10, max(abs(v[i1].x-v[i].x), abs(v[i1].y-v[i].y)));
- bq[i] = (int)(M * curve->beta[i] + 0.5);
- if (curve->beta[i] != 0.5) {
- q[i1] = interval(bq[i]/M, dpoint(v[i]), dpoint(v[i1]));
- } else {
- q[i1] = interval(0.5, dpoint(v[i]), dpoint(v[i1]));
- }
- }
-
- /* quantize alpha */
- for (i=0; i<m; i++) {
- i1 = mod(i+1,m);
- M = max(10, max(max(abs(q[i].x-v[i].x), abs(q[i].y-v[i].y)),
- max(abs(v[i].x-q[i1].x), abs(v[i].y-q[i1].y))));
- if (curve->tag[i] == POTRACE_CURVETO) {
- aq[i] = (int)(M * curve->alpha[i] + 0.5);
- if (aq[i] > M) {
- aq[i]--;
- }
- }
- }
-
- /* generate output */
- ship("%ld %ld ", v[m-1].x, v[m-1].y);
- ship("%ld %ld ", v[0].x - v[m-1].x, v[0].y - v[m-1].y);
- if (curve->beta[m-1] == 0.5) {
- ship("i\n");
- } else {
- ship("%ld I\n", bq[m-1]);
- }
- for (i=0; i<m; i++) {
- if (i<m-1) {
- ship("%ld %ld ", v[i+1].x - v[i].x, v[i+1].y - v[i].y);
- if (curve->beta[i] != 0.5) {
- ship("%ld ", bq[i]);
- }
- }
- if (curve->tag[i] == POTRACE_CURVETO) {
- ship(curve->beta[i] == 0.5 ? "%ld c\n" : "%ld C\n", aq[i]);
- } else {
- ship(curve->beta[i] == 0.5 ? "v\n" : "V\n");
- }
- }
-
- free(bq);
- free(aq);
- free(v);
- free(q);
- return 0;
-
- calloc_error:
- free(bq);
- free(aq);
- free(v);
- free(q);
- return 1;
-}
-
-static int eps_path(privcurve_t *curve) {
- if (info.longcoding==0 && curve->alphacurve) {
- return eps_path_short(curve);
- } else {
- return eps_path_long(curve);
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for rendering various internal data structures, used to
- generate debugging output */
-
-/* output jaggie curve in grey */
-static void eps_jaggy(potrace_path_t *plist) {
- potrace_path_t *p;
- int i;
-
- ship(".9 setgray\n");
- list_forall (p, plist) {
- point_t *pt = p->priv->pt;
- point_t cur, prev;
-
- if (p->sign == '+') {
- cur = prev = pt[p->priv->len-1];
- eps_moveto(dpoint(cur));
- for (i=0; i<p->priv->len; i++) {
- if (pt[i].x != cur.x && pt[i].y != cur.y) {
- cur = prev;
- eps_lineto(dpoint(cur));
- }
- prev = pt[i];
- }
- eps_lineto(dpoint(pt[p->priv->len-1]));
- } else {
- cur = prev = pt[0];
- eps_moveto(dpoint(cur));
- for (i=p->priv->len-1; i>=0; i--) {
- if (pt[i].x != cur.x && pt[i].y != cur.y) {
- cur = prev;
- eps_lineto(dpoint(cur));
- }
- prev = pt[i];
- }
- eps_lineto(dpoint(pt[0]));
- }
- if (p->next == NULL || p->next->sign == '+') {
- ship("fill\n");
- }
- }
-}
-
-/* output polygon */
-static void eps_polygon(privcurve_t *curve, const color_t col) {
- int i;
- int m = curve->n;
-
- eps_linewidth(.02);
- eps_setcolor(col);
- eps_moveto(curve->vertex[m-1]);
- for (i=0; i<m; i++) {
- eps_lineto(curve->vertex[i]);
- }
- ship("stroke\n");
-}
-
-/* output lines L and parameter alpha */
-static void eps_L(privcurve_t *curve, const color_t col) {
- int i, i1;
- double gamma;
- dpoint_t p1, p4, p1l, p4l;
- int m = curve->n;
-
- for (i=0; i<m; i++) {
- i1 = mod(i+1, m);
- gamma = curve->alpha0[i1] * 0.75;
-
- p1 = curve->c[i][2];
- p4 = curve->c[i1][2];
- p1l = interval(gamma, p1, curve->vertex[i1]);
- p4l = interval(gamma, p4, curve->vertex[i1]);
- eps_linewidth(.02);
- eps_setcolor(col);
- eps_moveto(p1l);
- eps_lineto(p4l);
- ship("stroke\n");
- eps_moveto_offs(curve->vertex[i1], -.4, -.4);
- ship("times (%.2f) show\n", curve->alpha0[i1]);
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* postscript macros */
-
-/* special macros for size-optimized rendering of Bezier curves */
-static const char *optimacros =
- "/D{bind def}def\n"
- "/R{roll}D\n"
- "/K{copy}D\n"
- "/P{pop}D\n"
- "/p{3 2 R add 3 1 R add exch}D\n"
- "/t{dup 4 3 R mul 3 1 R mul}D\n"
- "/a{dup 1 sub neg 4 1 R t 5 2 R t p}D\n"
- "/m{2 K le{exch}if P}D\n"
- "/n{abs exch abs m}D\n"
- "/d{-1 t p n}D\n"
- "/s{[4 2 R] cvx def}D\n"
- "/g{7 K P 4 K P P d 5 1 R d 10 m m div 5 K 12 8 R 5 4 R a 9 4 R 3 2 R a 6 4 R curveto}D\n"
- "/e{4 2 R lineto lineto P P}D\n"
- "/q{3 K P n 10 m div}D\n"
- "/f{x y 7 4 R 5 1 R 4 K p /y s 7 2 R 2 K 9 7 R 7 6 R t p 2 K /x s}D\n"
- "/C{4 1 R q f 7 6 R g}D\n"
- "/V{q f e}D\n"
- "/c{3 1 R .5 f 7 6 R g}D\n"
- "/v{.5 f e}D\n"
- "/j{5 K P p /y s 3 K t 7 5 R p /x s x moveto P}D\n"
- "/i{.5 j}D\n"
- "/I{dup 6 1 R q j 3 2 R}D\n"
- "/z{closepath}D\n"
- "/b{%s z fill}D\n"
- "/w{%s z fill}D\n";
-
-/* special macros for debug output */
-static const char *debugmacros =
- "/unit { %f } def\n"
- "/box { newpath 0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath } def\n"
- "/circ { newpath 0 0 1 0 360 arc closepath } def\n"
- "/dot { gsave .15 mul dup scale circ fill grestore } def\n"
- "/sq { gsave unit unit scale -.5 -.5 translate box .02 setlinewidth stroke grestore } def\n"
- "/sq1 { gsave translate sq unit .6 mul dot grestore } def\n"
- "/dot2 { gsave translate unit dot grestore } def\n"
- "/usq { gsave unit unit scale -.5 -.5 rmoveto 0 1 rlineto 1 0 rlineto 0 -1 rlineto closepath .02 setlinewidth stroke grestore } def\n"
- "/dot1 { gsave translate unit .3 mul dup scale circ fill grestore } def\n"
- "/times { /Times-Roman findfont unit .3 mul scalefont setfont } def\n"
- "/times1 { /Times-Roman findfont unit 10 mul scalefont setfont 0 0 0 setrgbcolor } def\n"
- "/times2 { /Times-Roman findfont unit 2 mul scalefont setfont 0 0 0 setrgbcolor } def\n";
-
-/* ---------------------------------------------------------------------- */
-/* Backends for various types of output. */
-
-/* Normal output: black on transparent */
-static int render0(potrace_path_t *plist) {
- potrace_path_t *p;
-
- if (info.longcoding) {
- eps_setcolor(info.color);
- list_forall (p, plist) {
- TRY(eps_path(p->priv->fcurve));
- ship("closepath\n");
- if (p->next == NULL || p->next->sign == '+') {
- ship("fill\n");
- }
- }
- } else {
- list_forall (p, plist) {
- TRY(eps_path(p->priv->fcurve));
- if (p->next == NULL || p->next->sign == '+') {
- ship("b\n");
- } else {
- ship("z\n");
- }
- }
- }
- return 0;
-
- try_error:
- return 1;
-}
-
-/* Opaque output: alternating black and white */
-static int render0_opaque(potrace_path_t *plist) {
- potrace_path_t *p;
-
- if (info.longcoding) {
- list_forall (p, plist) {
- TRY(eps_path(p->priv->fcurve));
- ship("closepath\n");
- eps_setcolor(p->sign=='+' ? info.color : info.fillcolor);
- ship("fill\n");
- }
- } else {
- list_forall (p, plist) {
- TRY(eps_path(p->priv->fcurve));
- ship(p->sign=='+' ? "b\n" : "w\n");
- }
- }
- return 0;
-
- try_error:
- return 1;
-}
-
-/* Debug output type 1 (show optimal polygon) */
-static int render1(potrace_path_t *plist) {
- potrace_path_t *p;
- int i;
-
- eps_jaggy(plist);
-
- list_forall (p, plist) {
-
- point_t *pt = p->priv->pt;
- int n = p->priv->len;
- int m = p->priv->m;
- int *po = p->priv->po;
-
- eps_linewidth(.02);
- eps_setcolor(black);
- /* output jaggie curve in boxed style */
- for (i=1; i<n; i++) {
- eps_moveto(dpoint(pt[i-1]));
- eps_lineto(dpoint(pt[i]));
- ship("stroke\n");
- eps_coords(dpoint(pt[i]));
- ship("sq1\n");
- }
- eps_moveto(dpoint(pt[n-1]));
- eps_lineto(dpoint(pt[0]));
- ship("stroke\n");
- eps_coords(dpoint(pt[0]));
- ship("sq1\n");
-
- /* output the uncorrected polygon */
- eps_linewidth(.1);
- eps_setcolor(blue);
- eps_moveto(dpoint(pt[po[0]]));
- for (i=1; i<m; i++) {
- eps_lineto(dpoint(pt[po[i]]));
- }
- eps_lineto(dpoint(pt[po[0]]));
- ship("stroke\n");
- for (i=0; i<m; i++) {
- eps_coords(dpoint(pt[po[i]]));
- ship("dot2\n");
- }
- }
- return 0;
-}
-
-/* Debug output type 2 (show corrected polygon and edge detection) */
-static int render2(potrace_path_t *plist) {
- potrace_path_t *p;
- int i;
-
- /* output original bitmap in grey */
- eps_jaggy(plist);
-
- list_forall (p, plist) {
- /* output polygon with corrected edges, lines L, and parameter alpha */
- eps_polygon(&p->priv->curve, black);
- eps_L(&p->priv->curve, black);
-
- /* output the vertex unit squares */
- for (i=0; i<p->priv->curve.n; i++) {
- eps_moveto(p->priv->curve.vertex[i]);
- ship("usq\n");
- }
-
- /* output the path */
- eps_linewidth(.1);
- eps_setcolor(blue);
- TRY(eps_path(&p->priv->curve));
- ship("closepath\n");
- ship("stroke\n");
-
- if (info.param->opticurve && info.debug == 3) {
-
- /* output opticurve */
- eps_linewidth(.05);
- eps_setcolor(red);
- TRY(eps_path(&p->priv->ocurve));
- ship("closepath\n");
- ship("stroke\n");
-
- /* output dots */
- for (i=0; i<p->priv->ocurve.n; i++) {
- eps_coords(p->priv->ocurve.c[i][2]);
- ship("dot1\n");
- }
- }
- }
- return 0;
-
- try_error:
- return 1;
-}
-
-/* Free-style debug output */
-static int render_debug(potrace_path_t *plist) {
- potrace_path_t *p;
- int count;
- int i;
-
- /* output original bitmap in grey */
- eps_jaggy(plist);
-
- count = -1;
- list_forall (p, plist) {
- count++;
-
- /* output path numbers */
- eps_moveto_offs(p->priv->curve.vertex[0], 0, 5);
- ship("times1 (%d) show\n", count);
-
- /* output polygon with corrected edges, lines L, and parameter alpha */
- eps_polygon(&p->priv->curve, black);
- eps_L(&p->priv->curve, black);
-
- /* output the vertex unit squares */
- for (i=0; i<p->priv->curve.n; i++) {
- eps_moveto(p->priv->curve.vertex[i]);
- ship("usq\n");
- }
-
- /* output the vertex numbers */
- for (i=0; i<p->priv->curve.n; i++) {
- eps_moveto_offs(p->priv->curve.vertex[i], +1, +1);
- ship("times2 (%d) show\n", i);
- }
-
- /* output the path */
- eps_linewidth(.1);
- eps_setcolor(blue);
- TRY(eps_path(&p->priv->curve));
- ship("closepath\n");
- ship("stroke\n");
-
- if (info.param->opticurve) {
-
- /* output the opti-verteces polygon */
- eps_polygon(&p->priv->ocurve, green);
-
- /* output opticurve */
- eps_linewidth(.05);
- eps_setcolor(red);
- TRY(eps_path(&p->priv->ocurve));
- ship("closepath\n");
- ship("stroke\n");
-
- /* output dots */
- for (i=0; i<p->priv->ocurve.n; i++) {
- eps_coords(p->priv->ocurve.c[i][2]);
- ship("dot1\n");
- }
-
- /* output beta parameters */
- for (i=0; i<p->priv->ocurve.n; i++) {
- eps_moveto_offs(p->priv->ocurve.c[i][2], +.4, -.4);
- ship("times (%.2f) show\n", p->priv->ocurve.beta[i]);
- }
- }
- }
- return 0;
-
- try_error:
- return 1;
-}
-
-/* select the appropriate rendering function from above */
-static int eps_render(potrace_path_t *plist) {
- int r;
-
- switch (info.debug) {
- case 0:
- if (info.opaque) {
- r = render0_opaque(plist);
- } else {
- r = render0(plist);
- }
- break;
- case 1:
- r = render1(plist);
- break;
- case 2: case 3:
- r = render2(plist);
- break;
- default:
- r = render_debug(plist);
- break;
- }
- return r;
-}
-
-/* ---------------------------------------------------------------------- */
-/* EPS header and footer */
-
-static int eps_init(imginfo_t *imginfo) {
- double origx = imginfo->trans.orig[0] + imginfo->lmar;
- double origy = imginfo->trans.orig[1] + imginfo->bmar;
- double scalex = imginfo->trans.scalex / info.unit;
- double scaley = imginfo->trans.scaley / info.unit;
- char *c0, *c1;
-
- shipcom("%%!PS-Adobe-3.0 EPSF-3.0\n");
- shipcom("%%%%Creator: " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n");
- shipcom("%%%%LanguageLevel: %d\n", info.pslevel);
- shipcom("%%%%BoundingBox: 0 0 %.0f %.0f\n",
- ceil(imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar),
- ceil(imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar));
- shipcom("%%%%HiResBoundingBox: 0 0 %f %f\n",
- imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar,
- imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar);
- shipcom("%%%%Pages: 1\n");
- shipcom("%%%%EndComments\n");
-
- shipcom("%%%%Page: 1 1\n");
- ship("save\n");
- if (!info.longcoding) {
- c0 = strdup(eps_colorstring(info.color));
- c1 = strdup(eps_colorstring(info.fillcolor));
- if (!c0 || !c1) {
- free(c0);
- free(c1);
- return 1;
- }
- ship(optimacros, c0, c1);
- free(c0);
- free(c1);
- }
- if (info.debug) {
- ship(debugmacros, info.unit);
- }
- if (origx != 0 || origy != 0) {
- ship("%f %f translate\n", origx, origy);
- }
- if (info.angle != 0) {
- ship("%.2f rotate\n", info.angle);
- }
- ship("%f %f scale\n", scalex, scaley);
-
- return 0;
-}
-
-static void eps_term(void) {
- ship("restore\n");
- shipcom("%%%%EOF\n");
-}
-
-/* public interface for EPS */
-int page_eps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- eps_callbacks(fout);
-
- TRY(eps_init(imginfo));
- TRY(eps_render(plist));
- eps_term();
- return 0;
-
- try_error:
- return 1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* PostScript header and footer */
-
-static int eps_pagenumber;
-
-int init_ps(FILE *fout) {
- char *c0, *c1;
-
- /* set callback functions for shipping routines */
- eps_callbacks(fout);
-
- shipcom("%%!PS-Adobe-3.0\n");
- shipcom("%%%%Creator: " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n");
- shipcom("%%%%LanguageLevel: %d\n", info.pslevel);
- shipcom("%%%%BoundingBox: 0 0 %d %d\n", info.paperwidth, info.paperheight);
- shipcom("%%%%Pages: (atend)\n");
- shipcom("%%%%EndComments\n");
- if (!info.longcoding || info.debug) {
- shipcom("%%%%BeginSetup\n");
- if (!info.longcoding) {
- c0 = strdup(eps_colorstring(info.color));
- c1 = strdup(eps_colorstring(info.fillcolor));
- if (!c0 || !c1) {
- free(c0);
- free(c1);
- return 1;
- }
- ship(optimacros, c0, c1);
- free(c0);
- free(c1);
- }
- if (info.debug) {
- ship(debugmacros, info.unit);
- }
- shipcom("%%%%EndSetup\n");
- }
- eps_pagenumber = 0;
- fflush(fout);
- return 0;
-}
-
-int term_ps(FILE *fout) {
- eps_callbacks(fout);
-
- shipcom("%%%%Trailer\n");
- shipcom("%%%%Pages: %d\n", eps_pagenumber);
- shipcom("%%%%EOF\n");
- fflush(fout);
-
- return 0;
-}
-
-static void eps_pageinit_ps(imginfo_t *imginfo) {
- double origx = imginfo->trans.orig[0] + imginfo->lmar;
- double origy = imginfo->trans.orig[1] + imginfo->bmar;
- double scalex = imginfo->trans.scalex / info.unit;
- double scaley = imginfo->trans.scaley / info.unit;
-
- eps_pagenumber++;
- eps_color = -1;
- eps_width = -1;
-
- shipcom("%%%%Page: %d %d\n", eps_pagenumber, eps_pagenumber);
- ship("save\n");
- if (origx != 0 || origy != 0) {
- ship("%f %f translate\n", origx, origy);
- }
- if (info.angle != 0) {
- ship("%.2f rotate\n", info.angle);
- }
- ship("%f %f scale\n", scalex, scaley);
-}
-
-static void eps_pageterm_ps(void) {
- ship("restore\n");
- ship("showpage\n");
-}
-
-int page_ps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- int r;
-
- eps_callbacks(fout);
-
- eps_pageinit_ps(imginfo);
-
- r = eps_render(plist);
- if (r) {
- return r;
- }
-
- eps_pageterm_ps();
-
- shipcom("");
-
- fflush(fout);
-
- return 0;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_eps.h b/Build/source/libs/potrace/potrace-src/src/backend_eps.h
deleted file mode 100644
index d0dfd650b22..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_eps.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_EPS_H
-#define BACKEND_EPS_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int init_ps(FILE *fout);
-int page_ps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-int term_ps(FILE *fout);
-
-int page_eps(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_EPS_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_geojson.c b/Build/source/libs/potrace/potrace-src/src/backend_geojson.c
deleted file mode 100644
index b929653d97c..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_geojson.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* The GeoJSON backend of Potrace. */
-/* Written 2012 by Christoph Hormann <chris_hormann@gmx.de> */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-
-#include "potracelib.h"
-#include "curve.h"
-#include "main.h"
-#include "backend_geojson.h"
-#include "lists.h"
-#include "auxiliary.h"
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary */
-
-/* return a point on a 1-dimensional Bezier segment */
-static inline double bezier(double t, double x0, double x1, double x2, double x3) {
- double s = 1-t;
- return s*s*s*x0 + 3*(s*s*t)*x1 + 3*(t*t*s)*x2 + t*t*t*x3;
-}
-
-static const char *format = "%f";
-
-/* Convert a floating-point number to a string, using a pre-determined
- format. The format must be previously set with set_format().
- Returns one of a small number of statically allocated strings. */
-static char *round_to_unit(double x) {
- static int n = 0;
- static char buf[4][100];
-
- n++;
- if (n >= 4) {
- n = 0;
- }
- sprintf(buf[n], format, x);
- return buf[n];
-}
-
-/* Select a print format for floating point numbers, appropriate for
- the given scaling and info.unit. Note: the format must be so that
- the resulting number fits into a buffer of size 100. */
-static void set_format(trans_t tr) {
- double s;
- int d;
- static char buf[10];
-
- s = min(fabs(tr.scalex), fabs(tr.scaley));
- if (info.unit != 0.0 && s != 0.0) {
- d = (int)ceil(log(info.unit/s) / log(10));
- } else {
- d = 0;
- }
- if (d <= 0) {
- format = "%.0f";
- } else if (d <= 20) {
- sprintf(buf, "%%.%df", d);
- format = buf;
- } else {
- format = "%e";
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* path-drawing auxiliary functions */
-
-static dpoint_t cur;
-
-static void geojson_moveto(FILE *fout, dpoint_t p, trans_t tr) {
- dpoint_t q;
-
- q = trans(p, tr);
-
- fprintf(fout, "[%s, %s]", round_to_unit(q.x), round_to_unit(q.y));
-
- cur = q;
-}
-
-static void geojson_lineto(FILE *fout, dpoint_t p, trans_t tr) {
- dpoint_t q;
-
- q = trans(p, tr);
-
- fprintf(fout, ", [%s, %s]", round_to_unit(q.x), round_to_unit(q.y));
-
- cur = q;
-}
-
-static void geojson_curveto(FILE *fout, dpoint_t p1, dpoint_t p2, dpoint_t p3, trans_t tr) {
- dpoint_t q1;
- dpoint_t q2;
- dpoint_t q3;
- double step, t;
- int i;
- double x, y;
-
- q1 = trans(p1, tr);
- q2 = trans(p2, tr);
- q3 = trans(p3, tr);
-
- step = 1.0 / 8.0;
-
- for (i=0, t=step; i<8; i++, t+=step) {
- x = bezier(t, cur.x, q1.x, q2.x, q3.x);
- y = bezier(t, cur.y, q1.y, q2.y, q3.y);
-
- fprintf(fout, ", [%s, %s]", round_to_unit(x), round_to_unit(y));
- }
-
- cur = q3;
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for converting a path to an SVG path element */
-
-static int geojson_path(FILE *fout, potrace_curve_t *curve, trans_t tr) {
- int i;
- dpoint_t *c;
- int m = curve->n;
-
- fprintf(fout, " [");
-
- c = curve->c[m-1];
- geojson_moveto(fout, c[2], tr);
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- geojson_lineto(fout, c[1], tr);
- geojson_lineto(fout, c[2], tr);
- break;
- case POTRACE_CURVETO:
- geojson_curveto(fout, c[0], c[1], c[2], tr);
- break;
- }
- }
-
- fprintf(fout, " ]");
-
- return 0;
-}
-
-
-static void write_polygons(FILE *fout, potrace_path_t *tree, trans_t tr, int first) {
- potrace_path_t *p, *q;
-
- for (p=tree; p; p=p->sibling) {
-
- if (!first) fprintf(fout, ",\n");
-
- fprintf(fout, "{ \"type\": \"Feature\",\n");
- fprintf(fout, " \"properties\": { },\n");
- fprintf(fout, " \"geometry\": {\n");
- fprintf(fout, " \"type\": \"Polygon\",\n");
- fprintf(fout, " \"coordinates\": [\n");
-
- geojson_path(fout, &p->curve, tr);
-
- for (q=p->childlist; q; q=q->sibling) {
- fprintf(fout, ",\n");
- geojson_path(fout, &q->curve, tr);
- }
-
- fprintf(fout, " ]\n");
- fprintf(fout, " }\n");
- fprintf(fout, "}");
-
- for (q=p->childlist; q; q=q->sibling) {
- write_polygons(fout, q->childlist, tr, 0);
- }
-
- first = 0;
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* Backend. */
-
-/* public interface for GeoJSON */
-int page_geojson(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
-
- trans_t tr;
-
- /* set up the coordinate transform (rotation) */
- tr.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar;
- tr.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar;
- tr.orig[0] = imginfo->trans.orig[0]+imginfo->lmar;
- tr.orig[1] = imginfo->trans.orig[1]+imginfo->bmar;
- tr.x[0] = imginfo->trans.x[0];
- tr.x[1] = imginfo->trans.x[1];
- tr.y[0] = imginfo->trans.y[0];
- tr.y[1] = imginfo->trans.y[1];
-
- /* set the print format for floating point numbers */
- set_format(imginfo->trans);
-
- /* header */
- fprintf(fout, "{\n");
- fprintf(fout, "\"type\": \"FeatureCollection\",\n");
- fprintf(fout, "\"features\": [\n");
-
- write_polygons(fout, plist, tr, 1);
-
- /* write footer */
- fprintf(fout, "\n]\n");
- fprintf(fout, "}\n");
-
- fflush(fout);
-
- return 0;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_geojson.h b/Build/source/libs/potrace/potrace-src/src/backend_geojson.h
deleted file mode 100644
index 02be534ef93..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_geojson.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_GEO_H
-#define BACKEND_GEO_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int page_geojson(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_GEO_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pdf.c b/Build/source/libs/potrace/potrace-src/src/backend_pdf.c
deleted file mode 100644
index 2cbdd70da4e..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_pdf.c
+++ /dev/null
@@ -1,441 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* The PDF backend of Potrace. Stream compression is optionally
- supplied via the functions in flate.c. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-#include <stdlib.h>
-
-#include "main.h"
-#include "backend_pdf.h"
-#include "flate.h"
-#include "lists.h"
-#include "potracelib.h"
-#include "auxiliary.h"
-
-typedef int color_t;
-
-#define TRY(x) if (x) goto try_error
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary: growing arrays */
-
-struct intarray_s {
- int size;
- int *data;
-};
-typedef struct intarray_s intarray_t;
-
-static inline void intarray_init(intarray_t *ar) {
- ar->size = 0;
- ar->data = NULL;
-}
-
-static inline void intarray_term(intarray_t *ar) {
- free(ar->data);
- ar->size = 0;
- ar->data = NULL;
-}
-
-/* Set ar[n]=val. Expects n>=0. Grows array if necessary. Return 0 on
- success and -1 on error with errno set. */
-static inline int intarray_set(intarray_t *ar, int n, int val) {
- int *p;
- int s;
-
- if (n >= ar->size) {
- s = n+1024;
- p = (int *)realloc(ar->data, s * sizeof(int));
- if (!p) {
- return -1;
- }
- ar->data = p;
- ar->size = s;
- }
- ar->data[n] = val;
- return 0;
-}
-
-/* ---------------------------------------------------------------------- */
-/* some global variables */
-
-static intarray_t xref;
-static int nxref = 0;
-static intarray_t pages;
-static int npages;
-static int streamofs;
-static size_t outcount; /* output file position */
-
-/* ---------------------------------------------------------------------- */
-/* functions for interfacing with compression backend */
-
-/* xship: callback function that must be initialized before calling
- any other functions of the "ship" family. xship_file must be
- initialized too. */
-
-/* print the token to f, but filtered through a compression
- filter in case filter!=0 */
-static int (*xship)(FILE *f, int filter, const char *s, int len);
-static FILE *xship_file;
-
-/* ship PDF code, filtered */
-static int ship(const char *fmt, ...) {
- va_list args;
- static char buf[4096]; /* static string limit is okay here because
- we only use constant format strings - for
- the same reason, it is okay to use
- vsprintf instead of vsnprintf below. */
- va_start(args, fmt);
- vsprintf(buf, fmt, args);
- buf[4095] = 0;
- va_end(args);
-
- outcount += xship(xship_file, 1, buf, strlen(buf));
- return 0;
-}
-
-/* ship PDF code, unfiltered */
-static int shipclear(const char *fmt, ...) {
- static char buf[4096];
- va_list args;
-
- va_start(args, fmt);
- vsprintf(buf, fmt, args);
- buf[4095] = 0;
- va_end(args);
-
- outcount += xship(xship_file, 0, buf, strlen(buf));
- return 0;
-}
-
-/* set all callback functions */
-static void pdf_callbacks(FILE *fout) {
-
- if (info.compress) {
- xship = pdf_xship;
- } else {
- xship = dummy_xship;
- }
- xship_file = fout;
-}
-
-/* ---------------------------------------------------------------------- */
-/* PDF path-drawing auxiliary functions */
-
-/* coordinate quantization */
-static inline point_t unit(dpoint_t p) {
- point_t q;
-
- q.x = (long)(floor(p.x*info.unit+.5));
- q.y = (long)(floor(p.y*info.unit+.5));
- return q;
-}
-
-static void pdf_coords(dpoint_t p) {
- point_t cur = unit(p);
- ship("%ld %ld ", cur.x, cur.y);
-}
-
-static void pdf_moveto(dpoint_t p) {
- pdf_coords(p);
- ship("m\n");
-}
-
-static void pdf_lineto(dpoint_t p) {
- pdf_coords(p);
- ship("l\n");
-}
-
-static void pdf_curveto(dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- point_t q1, q2, q3;
-
- q1 = unit(p1);
- q2 = unit(p2);
- q3 = unit(p3);
-
- ship("%ld %ld %ld %ld %ld %ld c\n", q1.x, q1.y, q2.x, q2.y, q3.x, q3.y);
-}
-
-/* this procedure returns a statically allocated string */
-static const char *pdf_colorstring(const color_t col) {
- double r, g, b;
- static char buf[100];
-
- r = (col & 0xff0000) >> 16;
- g = (col & 0x00ff00) >> 8;
- b = (col & 0x0000ff) >> 0;
-
- if (r==0 && g==0 && b==0) {
- return "0 g";
- } else if (r==255 && g==255 && b==255) {
- return "1 g";
- } else if (r == g && g == b) {
- sprintf(buf, "%.3f g", r/255.0);
- return buf;
- } else {
- sprintf(buf, "%.3f %.3f %.3f rg", r/255.0, g/255.0, b/255.0);
- return buf;
- }
-}
-
-static color_t pdf_color = -1;
-
-static void pdf_setcolor(const color_t col) {
- if (col == pdf_color) {
- return;
- }
- pdf_color = col;
-
- ship("%s\n", pdf_colorstring(col));
-}
-
-/* explicit encoding, does not use special macros */
-static int pdf_path(potrace_curve_t *curve) {
- int i;
- dpoint_t *c;
- int m = curve->n;
-
- c = curve->c[m-1];
- pdf_moveto(c[2]);
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- pdf_lineto(c[1]);
- pdf_lineto(c[2]);
- break;
- case POTRACE_CURVETO:
- pdf_curveto(c[0], c[1], c[2]);
- break;
- }
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Backends for various types of output. */
-
-/* Normal output: black on transparent */
-static int render0(potrace_path_t *plist) {
- potrace_path_t *p;
-
- pdf_setcolor(info.color);
- list_forall (p, plist) {
- pdf_path(&p->curve);
- ship("h\n");
- if (p->next == NULL || p->next->sign == '+') {
- ship("f\n");
- }
- }
- return 0;
-}
-
-/* Opaque output: alternating black and white */
-static int render0_opaque(potrace_path_t *plist) {
- potrace_path_t *p;
-
- list_forall (p, plist) {
- pdf_path(&p->curve);
- ship("h\n");
- pdf_setcolor(p->sign=='+' ? info.color : info.fillcolor);
- ship("f\n");
- }
- return 0;
-}
-
-/* select the appropriate rendering function from above */
-static int pdf_render(potrace_path_t *plist)
-{
- if (info.opaque) {
- return render0_opaque(plist);
- }
- return render0(plist);
-}
-
-/* ---------------------------------------------------------------------- */
-/* PDF header and footer */
-
-int init_pdf(FILE *fout)
-{
- intarray_init(&xref);
- intarray_init(&pages);
- nxref = 0;
- npages = 0;
-
- /* set callback functions for shipping routines */
- pdf_callbacks(fout);
- outcount = 0;
-
- shipclear("%%PDF-1.3\n");
-
- TRY(intarray_set(&xref, nxref++, outcount));
- shipclear("1 0 obj\n<</Type/Catalog/Pages 3 0 R>>\nendobj\n");
-
- TRY(intarray_set(&xref, nxref++, outcount));
- shipclear("2 0 obj\n"
- "<</Creator"
- "(" POTRACE " " VERSION ", written by Peter Selinger 2001-2017)>>\n"
- "endobj\n");
-
- /* delay obj #3 (pages) until end */
- nxref++;
-
- fflush(fout);
- return 0;
-
- try_error:
- return 1;
-}
-
-int term_pdf(FILE *fout)
-{
- int startxref;
- int i;
-
- pdf_callbacks(fout);
-
- TRY(intarray_set(&xref, 2, outcount));
- shipclear("3 0 obj\n"
- "<</Type/Pages/Count %d/Kids[\n", npages);
- for (i = 0; i < npages; i++)
- shipclear("%d 0 R\n", pages.data[i]);
- shipclear("]>>\nendobj\n");
-
- startxref = outcount;
-
- shipclear("xref\n0 %d\n", nxref + 1);
- shipclear("0000000000 65535 f \n");
- for (i = 0; i < nxref; i++)
- shipclear("%0.10d 00000 n \n", xref.data[i]);
-
- shipclear("trailer\n<</Size %d/Root 1 0 R/Info 2 0 R>>\n", nxref + 1);
- shipclear("startxref\n%d\n%%%%EOF\n", startxref);
-
- fflush(fout);
- intarray_term(&xref);
- intarray_term(&pages);
- return 0;
-
- try_error:
- return 1;
-}
-
-/* if largebbox is set, set bounding box to pagesize. Return 0 on
- success or 1 on error with errno set. */
-static int pdf_pageinit(imginfo_t *imginfo, int largebbox)
-{
- double origx = imginfo->trans.orig[0] + imginfo->lmar;
- double origy = imginfo->trans.orig[1] + imginfo->bmar;
- double dxx = imginfo->trans.x[0] / info.unit;
- double dxy = imginfo->trans.x[1] / info.unit;
- double dyx = imginfo->trans.y[0] / info.unit;
- double dyy = imginfo->trans.y[1] / info.unit;
-
- double pagew = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar;
- double pageh = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar;
-
- pdf_color = -1;
-
- TRY(intarray_set(&xref, nxref++, outcount));
- shipclear("%d 0 obj\n", nxref);
- shipclear("<</Type/Page/Parent 3 0 R/Resources<</ProcSet[/PDF]>>");
- if (largebbox) {
- shipclear("/MediaBox[0 0 %d %d]", info.paperwidth, info.paperheight);
- } else {
- shipclear("/MediaBox[0 0 %f %f]", pagew, pageh);
- }
- shipclear("/Contents %d 0 R>>\n", nxref + 1);
- shipclear("endobj\n");
-
- TRY(intarray_set(&pages, npages++, nxref));
-
- TRY(intarray_set(&xref, nxref++, outcount));
- shipclear("%d 0 obj\n", nxref);
- if (info.compress)
- shipclear("<</Filter/FlateDecode/Length %d 0 R>>\n", nxref + 1);
- else
- shipclear("<</Length %d 0 R>>\n", nxref + 1);
- shipclear("stream\n");
-
- streamofs = outcount;
-
- ship("%f %f %f %f %f %f cm\n", dxx, dxy, dyx, dyy, origx, origy);
- return 0;
-
- try_error:
- return 1;
-}
-
-/* Return 0 on success or 1 on error with errno set. */
-static int pdf_pageterm(void)
-{
- int streamlen;
-
- shipclear("");
-
- streamlen = outcount - streamofs;
- shipclear("endstream\nendobj\n");
-
- TRY(intarray_set(&xref, nxref++, outcount));
- shipclear("%d 0 obj\n%d\nendobj\n", nxref, streamlen);
- return 0;
-
- try_error:
- return 1;
-}
-
-int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo)
-{
- int r;
-
- pdf_callbacks(fout);
-
- TRY(pdf_pageinit(imginfo, 0));
-
- r = pdf_render(plist);
- if (r) {
- return r;
- }
-
- TRY(pdf_pageterm());
-
- fflush(fout);
- return 0;
-
- try_error:
- return 1;
-}
-
-int page_pdfpage(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo)
-{
- int r;
-
- pdf_callbacks(fout);
-
- TRY(pdf_pageinit(imginfo, 1));
-
- r = pdf_render(plist);
- if (r) {
- return r;
- }
-
- TRY(pdf_pageterm());
-
- fflush(fout);
- return 0;
-
- try_error:
- return 1;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pdf.h b/Build/source/libs/potrace/potrace-src/src/backend_pdf.h
deleted file mode 100644
index c14c55a9c62..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_pdf.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_PDF_H
-#define BACKEND_PDF_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int init_pdf(FILE *fout);
-int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-int term_pdf(FILE *fout);
-
-int page_pdf(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-int page_pdfpage(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_PDF_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pgm.c b/Build/source/libs/potrace/potrace-src/src/backend_pgm.c
deleted file mode 100644
index 60f17c232e5..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_pgm.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* The PGM backend of Potrace. Here we custom-render a set of Bezier
- curves and output the result as a greymap. This is merely a
- convenience, as the same could be achieved by piping the EPS output
- through ghostscript. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <math.h>
-
-#include "backend_pgm.h"
-#include "potracelib.h"
-#include "lists.h"
-#include "greymap.h"
-#include "render.h"
-#include "main.h"
-#include "auxiliary.h"
-#include "trans.h"
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-static void pgm_path(potrace_curve_t *curve, trans_t t, render_t *rm) {
- dpoint_t *c, c1[3];
- int i;
- int m = curve->n;
-
- c = curve->c[m-1];
- c1[2] = trans(c[2], t);
- render_moveto(rm, c1[2].x, c1[2].y);
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- c1[1] = trans(c[1], t);
- c1[2] = trans(c[2], t);
- render_lineto(rm, c1[1].x, c1[1].y);
- render_lineto(rm, c1[2].x, c1[2].y);
- break;
- case POTRACE_CURVETO:
- c1[0] = trans(c[0], t);
- c1[1] = trans(c[1], t);
- c1[2] = trans(c[2], t);
- render_curveto(rm, c1[0].x, c1[0].y, c1[1].x, c1[1].y, c1[2].x, c1[2].y);
- break;
- }
- }
-}
-
-int page_pgm(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- potrace_path_t *p;
- greymap_t *gm;
- render_t *rm;
- int w, h;
- trans_t t;
- int mode;
- const char *comment = "created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017";
-
- t.bb[0] = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar;
- t.bb[1] = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar;
- t.orig[0] = imginfo->trans.orig[0]+imginfo->lmar;
- t.orig[1] = imginfo->trans.orig[1]+imginfo->bmar;
- t.x[0] = imginfo->trans.x[0];
- t.x[1] = imginfo->trans.x[1];
- t.y[0] = imginfo->trans.y[0];
- t.y[1] = imginfo->trans.y[1];
-
- w = (int)ceil(t.bb[0]);
- h = (int)ceil(t.bb[1]);
-
- gm = gm_new(w, h);
- if (!gm) {
- return 1;
- }
- rm = render_new(gm);
- if (!rm) {
- return 1;
- }
-
- gm_clear(gm, 255); /* white */
-
- list_forall(p, plist) {
- pgm_path(&p->curve, t, rm);
- }
-
- render_close(rm);
-
- /* if negative orientation, make sure to invert effect of rendering */
- mode = imginfo->width * imginfo->height < 0 ? GM_MODE_NEGATIVE : GM_MODE_POSITIVE;
-
- gm_writepgm(fout, rm->gm, comment, 1, mode, info.gamma);
-
- render_free(rm);
- gm_free(gm);
-
- return 0;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_pgm.h b/Build/source/libs/potrace/potrace-src/src/backend_pgm.h
deleted file mode 100644
index db3545b15ff..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_pgm.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_PGM_H
-#define BACKEND_PGM_H
-
-#include <stdio.h>
-
-#include "potracelib.h"
-#include "main.h"
-
-int page_pgm(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_PGM_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_svg.c b/Build/source/libs/potrace/potrace-src/src/backend_svg.c
deleted file mode 100644
index 717f58aa396..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_svg.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* The SVG backend of Potrace. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-
-#include "potracelib.h"
-#include "curve.h"
-#include "main.h"
-#include "backend_svg.h"
-#include "lists.h"
-#include "auxiliary.h"
-
-/* ---------------------------------------------------------------------- */
-/* path-drawing auxiliary functions */
-
-/* coordinate quantization */
-static inline point_t unit(dpoint_t p) {
- point_t q;
-
- q.x = (long)(floor(p.x*info.unit+.5));
- q.y = (long)(floor(p.y*info.unit+.5));
- return q;
-}
-
-static point_t cur;
-static char lastop = 0;
-static int column = 0;
-static int newline = 1;
-
-static void shiptoken(FILE *fout, const char *token) {
- int c = strlen(token);
- if (!newline && column+c+1 > 75) {
- fprintf(fout, "\n");
- column = 0;
- newline = 1;
- } else if (!newline) {
- fprintf(fout, " ");
- column++;
- }
- fprintf(fout, "%s", token);
- column += c;
- newline = 0;
-}
-
-static void ship(FILE *fout, const char *fmt, ...) {
- va_list args;
- static char buf[4096]; /* static string limit is okay here because
- we only use constant format strings - for
- the same reason, it is okay to use
- vsprintf instead of vsnprintf below. */
- char *p, *q;
-
- va_start(args, fmt);
- vsprintf(buf, fmt, args);
- buf[4095] = 0;
- va_end(args);
-
- p = buf;
- while ((q = strchr(p, ' ')) != NULL) {
- *q = 0;
- shiptoken(fout, p);
- p = q+1;
- }
- shiptoken(fout, p);
-}
-
-static void svg_moveto(FILE *fout, dpoint_t p) {
- cur = unit(p);
-
- ship(fout, "M%ld %ld", cur.x, cur.y);
- lastop = 'M';
-}
-
-static void svg_rmoveto(FILE *fout, dpoint_t p) {
- point_t q;
-
- q = unit(p);
- ship(fout, "m%ld %ld", q.x-cur.x, q.y-cur.y);
- cur = q;
- lastop = 'm';
-}
-
-static void svg_lineto(FILE *fout, dpoint_t p) {
- point_t q;
-
- q = unit(p);
-
- if (lastop != 'l') {
- ship(fout, "l%ld %ld", q.x-cur.x, q.y-cur.y);
- } else {
- ship(fout, "%ld %ld", q.x-cur.x, q.y-cur.y);
- }
- cur = q;
- lastop = 'l';
-}
-
-static void svg_curveto(FILE *fout, dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- point_t q1, q2, q3;
-
- q1 = unit(p1);
- q2 = unit(p2);
- q3 = unit(p3);
-
- if (lastop != 'c') {
- ship(fout, "c%ld %ld %ld %ld %ld %ld", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y);
- } else {
- ship(fout, "%ld %ld %ld %ld %ld %ld", q1.x-cur.x, q1.y-cur.y, q2.x-cur.x, q2.y-cur.y, q3.x-cur.x, q3.y-cur.y);
- }
- cur = q3;
- lastop = 'c';
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for converting a path to an SVG path element */
-
-/* Explicit encoding. If abs is set, move to first coordinate
- absolutely. */
-static int svg_path(FILE *fout, potrace_curve_t *curve, int abs) {
- int i;
- dpoint_t *c;
- int m = curve->n;
-
- c = curve->c[m-1];
- if (abs) {
- svg_moveto(fout, c[2]);
- } else {
- svg_rmoveto(fout, c[2]);
- }
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- svg_lineto(fout, c[1]);
- svg_lineto(fout, c[2]);
- break;
- case POTRACE_CURVETO:
- svg_curveto(fout, c[0], c[1], c[2]);
- break;
- }
- }
- newline = 1;
- shiptoken(fout, "z");
- return 0;
-}
-
-/* produce a jaggy path - for debugging. If abs is set, move to first
- coordinate absolutely. If abs is not set, move to first coordinate
- relatively, and traverse path in the opposite direction. */
-static int svg_jaggy_path(FILE *fout, point_t *pt, int n, int abs) {
- int i;
- point_t cur, prev;
-
- if (abs) {
- cur = prev = pt[n-1];
- svg_moveto(fout, dpoint(cur));
- for (i=0; i<n; i++) {
- if (pt[i].x != cur.x && pt[i].y != cur.y) {
- cur = prev;
- svg_lineto(fout, dpoint(cur));
- }
- prev = pt[i];
- }
- svg_lineto(fout, dpoint(pt[n-1]));
- } else {
- cur = prev = pt[0];
- svg_rmoveto(fout, dpoint(cur));
- for (i=n-1; i>=0; i--) {
- if (pt[i].x != cur.x && pt[i].y != cur.y) {
- cur = prev;
- svg_lineto(fout, dpoint(cur));
- }
- prev = pt[i];
- }
- svg_lineto(fout, dpoint(pt[0]));
- }
- newline = 1;
- shiptoken(fout, "z");
- return 0;
-}
-
-static void write_paths_opaque(FILE *fout, potrace_path_t *tree) {
- potrace_path_t *p, *q;
-
- for (p=tree; p; p=p->sibling) {
- if (info.grouping == 2) {
- fprintf(fout, "<g>\n");
- fprintf(fout, "<g>\n");
- }
- column = fprintf(fout, "<path fill=\"#%06x\" stroke=\"none\" d=\"", info.color);
- newline = 1;
- lastop = 0;
- if (info.debug == 1) {
- svg_jaggy_path(fout, p->priv->pt, p->priv->len, 1);
- } else {
- svg_path(fout, &p->curve, 1);
- }
- fprintf(fout, "\"/>\n");
- for (q=p->childlist; q; q=q->sibling) {
- column = fprintf(fout, "<path fill=\"#%06x\" stroke=\"none\" d=\"", info.fillcolor);
- newline = 1;
- lastop = 0;
- if (info.debug == 1) {
- svg_jaggy_path(fout, q->priv->pt, q->priv->len, 1);
- } else {
- svg_path(fout, &q->curve, 1);
- }
- fprintf(fout, "\"/>\n");
- }
- if (info.grouping == 2) {
- fprintf(fout, "</g>\n");
- }
- for (q=p->childlist; q; q=q->sibling) {
- write_paths_opaque(fout, q->childlist);
- }
- if (info.grouping == 2) {
- fprintf(fout, "</g>\n");
- }
- }
-}
-
-static void write_paths_transparent_rec(FILE *fout, potrace_path_t *tree) {
- potrace_path_t *p, *q;
-
- for (p=tree; p; p=p->sibling) {
- if (info.grouping == 2) {
- fprintf(fout, "<g>\n");
- }
- if (info.grouping != 0) {
- column = fprintf(fout, "<path d=\"");
- newline = 1;
- lastop = 0;
- }
- if (info.debug == 1) {
- svg_jaggy_path(fout, p->priv->pt, p->priv->len, 1);
- } else {
- svg_path(fout, &p->curve, 1);
- }
- for (q=p->childlist; q; q=q->sibling) {
- if (info.debug == 1) {
- svg_jaggy_path(fout, q->priv->pt, q->priv->len, 0);
- } else {
- svg_path(fout, &q->curve, 0);
- }
- }
- if (info.grouping != 0) {
- fprintf(fout, "\"/>\n");
- }
- for (q=p->childlist; q; q=q->sibling) {
- write_paths_transparent_rec(fout, q->childlist);
- }
- if (info.grouping == 2) {
- fprintf(fout, "</g>\n");
- }
- }
-}
-
-static void write_paths_transparent(FILE *fout, potrace_path_t *tree) {
- if (info.grouping == 0) {
- column = fprintf(fout, "<path d=\"");
- newline = 1;
- lastop = 0;
- }
- write_paths_transparent_rec(fout, tree);
- if (info.grouping == 0) {
- fprintf(fout, "\"/>\n");
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* Backend. */
-
-/* public interface for SVG */
-int page_svg(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
-
- double bboxx = imginfo->trans.bb[0]+imginfo->lmar+imginfo->rmar;
- double bboxy = imginfo->trans.bb[1]+imginfo->tmar+imginfo->bmar;
- double origx = imginfo->trans.orig[0] + imginfo->lmar;
- double origy = bboxy - imginfo->trans.orig[1] - imginfo->bmar;
- double scalex = imginfo->trans.scalex / info.unit;
- double scaley = -imginfo->trans.scaley / info.unit;
-
- /* header */
- fprintf(fout, "<?xml version=\"1.0\" standalone=\"no\"?>\n");
- fprintf(fout, "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 20010904//EN\"\n");
- fprintf(fout, " \"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\n");
-
- /* set bounding box and namespace */
- fprintf(fout, "<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n");
- fprintf(fout, " width=\"%fpt\" height=\"%fpt\" viewBox=\"0 0 %f %f\"\n",
- bboxx, bboxy, bboxx, bboxy);
- fprintf(fout, " preserveAspectRatio=\"xMidYMid meet\">\n");
-
- /* metadata: creator */
- fprintf(fout, "<metadata>\n");
- fprintf(fout, "Created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n");
- fprintf(fout, "</metadata>\n");
-
- /* use a "group" tag to establish coordinate system and style */
- fprintf(fout, "<g transform=\"");
- if (origx != 0 || origy != 0) {
- fprintf(fout, "translate(%f,%f) ", origx, origy);
- }
- if (info.angle != 0) {
- fprintf(fout, "rotate(%.2f) ", -info.angle);
- }
- fprintf(fout, "scale(%f,%f)", scalex, scaley);
- fprintf(fout, "\"\n");
- fprintf(fout, "fill=\"#%06x\" stroke=\"none\">\n", info.color);
-
- if (info.opaque) {
- write_paths_opaque(fout, plist);
- } else {
- write_paths_transparent(fout, plist);
- }
-
- /* write footer */
- fprintf(fout, "</g>\n");
- fprintf(fout, "</svg>\n");
- fflush(fout);
-
- return 0;
-}
-
-/* the Gimppath backend is identical, except that it disables
- --opaque, enables --flat, and the dimensions are pixel-based */
-int page_gimp(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- info.opaque = 0;
- info.grouping = 0;
- return page_svg(fout, plist, imginfo);
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_svg.h b/Build/source/libs/potrace/potrace-src/src/backend_svg.h
deleted file mode 100644
index 2e0817846c0..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_svg.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_SVG_H
-#define BACKEND_SVG_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int page_svg(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-int page_gimp(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_SVG_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_xfig.c b/Build/source/libs/potrace/potrace-src/src/backend_xfig.c
deleted file mode 100644
index bd9a4904c24..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_xfig.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* The xfig backend of Potrace. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <string.h>
-#include <math.h>
-
-#include "main.h"
-#include "backend_xfig.h"
-#include "potracelib.h"
-#include "lists.h"
-#include "auxiliary.h"
-#include "trans.h"
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-struct pageformat_s {
- const char *name;
- int w, h;
-};
-typedef struct pageformat_s pageformat_t;
-
-/* page formats known by xfig, and their dimensions in postscript points */
-static pageformat_t pageformat[] = {
- { "A9", 105, 149 },
- { "A8", 149, 211 },
- { "A7", 211, 298 },
- { "A6", 298, 421 },
- { "A5", 421, 595 },
- { "A4", 595, 842 },
- { "A3", 842, 1191 },
- { "A2", 1191, 1685 },
- { "A1", 1685, 2383 },
- { "A0", 2383, 3370 },
-
- { "B10", 91, 129 },
- { "B9", 129, 182 },
- { "B8", 182, 258 },
- { "B7", 258, 365 },
- { "B6", 365, 516 },
- { "B5", 516, 730 },
- { "B4", 730, 1032 },
- { "B3", 1032, 1460 },
- { "B2", 1460, 2064 },
- { "B1", 2064, 2920 },
- { "B0", 2920, 4127 },
-
- { "Letter", 612, 792 },
- { "Legal", 612, 1008 },
- { "Tabloid", 792, 1224 },
- { "A", 612, 792 },
- { "B", 792, 1224 },
- { "C", 1224, 1584 },
- { "D", 1584, 2448 },
- { "E", 2448, 3168 },
-
- { NULL, 0, 0 },
-};
-
-/* ---------------------------------------------------------------------- */
-/* path-drawing auxiliary functions */
-
-/* coordinate quantization */
-static inline point_t unit(dpoint_t p) {
- point_t q;
-
- q.x = (long)(floor(p.x+.5));
- q.y = (long)(floor(p.y+.5));
- return q;
-}
-
-static void xfig_point(FILE *fout, dpoint_t p, trans_t t) {
- point_t q;
-
- q = unit(trans(p, t));
-
- fprintf(fout, "%ld %ld\n", q.x, q.y);
-}
-
-/* ---------------------------------------------------------------------- */
-/* functions for converting a path to a xfig */
-
-/* calculate number of xfig control points in this path */
-static int npoints(potrace_curve_t *curve, int m) {
- int i;
- int n=0;
-
- for (i=0; i<m; i++) {
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- n += 1;
- break;
- case POTRACE_CURVETO:
- n += 2;
- break;
- }
- }
- return n;
-}
-
-/* do one path. */
-static void xfig_path(FILE *fout, potrace_curve_t *curve, trans_t t, int sign, int depth) {
- int i;
- dpoint_t *c;
- int m = curve->n;
-
- fprintf(fout, "3 1 0 0 0 %d %d 0 20 0.000 0 0 0 %d\n", sign=='+' ? 32 : 33, depth, npoints(curve, m));
-
- for (i=0; i<m; i++) {
- c = curve->c[i];
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- xfig_point(fout, c[1], t);
- break;
- case POTRACE_CURVETO:
- xfig_point(fout, c[0], t);
- xfig_point(fout, c[1], t);
- break;
- }
- }
- for (i=0; i<m; i++) {
- switch (curve->tag[i]) {
- case POTRACE_CORNER:
- fprintf(fout, "0\n");
- break;
- case POTRACE_CURVETO:
- fprintf(fout, "1 1\n");
- break;
- }
- }
-}
-
-/* render a whole tree */
-static void xfig_write_paths(FILE *fout, potrace_path_t *plist, trans_t t, int depth) {
- potrace_path_t *p, *q;
-
- for (p=plist; p; p=p->sibling) {
- xfig_path(fout, &p->curve, t, p->sign, depth);
- for (q=p->childlist; q; q=q->sibling) {
- xfig_path(fout, &q->curve, t, q->sign, depth >= 1 ? depth-1 : 0);
- }
- for (q=p->childlist; q; q=q->sibling) {
- xfig_write_paths(fout, q->childlist, t, depth >= 2 ? depth-2 : 0);
- }
- }
-}
-
-/* calculate the depth of a tree. Call with d=0. */
-static int xfig_get_depth(potrace_path_t *plist) {
- potrace_path_t *p;
- int max =0;
- int d;
-
- for (p=plist; p; p=p->sibling) {
- d = xfig_get_depth(p->childlist);
- if (d > max) {
- max = d;
- }
- }
- return max + 1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Backend. */
-
-/* public interface for XFIG */
-int page_xfig(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo) {
- trans_t t;
- double origx = imginfo->trans.orig[0] + imginfo->lmar;
- double origy = - imginfo->trans.orig[1] - imginfo->bmar + info.paperheight;
- const char *formatname;
- int best, penalty;
- pageformat_t *f;
- int i;
- int x0, y0, x1, y1; /* in xfig's coordinates */
- int depth;
-
- t.orig[0] = 1200/72.0 * origx;
- t.orig[1] = 1200/72.0 * origy;
- t.x[0] = 1200/72.0 * imginfo->trans.x[0];
- t.x[1] = -1200/72.0 * imginfo->trans.x[1];
- t.y[0] = 1200/72.0 * imginfo->trans.y[0];
- t.y[1] = -1200/72.0 * imginfo->trans.y[1];
-
- x0 = (int)(1200/72.0 * (origx - imginfo->trans.orig[0]));
- y0 = (int)(1200/72.0 * (origy + imginfo->trans.orig[1]));
- x1 = x0 + (int)(1200/72.0 * imginfo->trans.bb[0]);
- y1 = y0 - (int)(1200/72.0 * imginfo->trans.bb[1]);
-
- best = -1;
- formatname = "Letter";
-
- /* find closest page format */
- for (i=0; pageformat[i].name; i++) {
- f = &pageformat[i];
- if (f->w >= info.paperwidth-1 && f->h >= info.paperheight-1) {
- penalty = f->w + f->h;
- if (best == -1 || penalty < best) {
- best = penalty;
- formatname = f->name;
- }
- }
- }
-
- /* header */
- fprintf(fout, "#FIG 3.2\n");
- fprintf(fout, "#created by " POTRACE " " VERSION ", written by Peter Selinger 2001-2017\n");
- fprintf(fout, "Portrait\n");
- fprintf(fout, "Center\n");
- fprintf(fout, "Inches\n");
- fprintf(fout, "%s\n", formatname);
- fprintf(fout, "100.0\n");
- fprintf(fout, "Single\n");
- fprintf(fout, "-2\n");
- fprintf(fout, "1200 2\n"); /* 1200 pixels per inch */
- fprintf(fout, "0 32 #%06x\n", info.color);
- fprintf(fout, "0 33 #%06x\n", info.fillcolor);
- fprintf(fout, "6 %d %d %d %d\n", x0-75, y1-35, x1+75, y0+35); /* bounding box */
-
- /* determine depth of the tree */
- depth = xfig_get_depth(plist);
-
- /* figure out appropriate xfig starting depth. Note: xfig only has 1000 depths available */
- if (depth <= 40) {
- depth = 50;
- } else if (depth < 990) {
- depth += 10;
- } else {
- depth = 999;
- }
-
- /* write paths. Note: can never use "opticurve" with this backend -
- it just does not approximate Bezier curves closely enough. */
- xfig_write_paths(fout, plist, t, depth);
-
- fprintf(fout, "-6\n"); /* end bounding box */
-
- fflush(fout);
-
- return 0;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/backend_xfig.h b/Build/source/libs/potrace/potrace-src/src/backend_xfig.h
deleted file mode 100644
index ce8df41a99a..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/backend_xfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef BACKEND_XFIG_H
-#define BACKEND_XFIG_H
-
-#include "potracelib.h"
-#include "main.h"
-
-int page_xfig(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
-
-#endif /* BACKEND_XFIG_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/bbox.c b/Build/source/libs/potrace/potrace-src/src/bbox.c
deleted file mode 100644
index 45783c80739..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bbox.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* figure out the true bounding box of a vector image */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <math.h>
-#include <stdlib.h>
-
-#include "bbox.h"
-#include "potracelib.h"
-#include "lists.h"
-
-/* ---------------------------------------------------------------------- */
-/* intervals */
-
-/* initialize the interval to [min, max] */
-static void interval(interval_t *i, double min, double max) {
- i->min = min;
- i->max = max;
-}
-
-/* initialize the interval to [x, x] */
-static inline void singleton(interval_t *i, double x) {
- interval(i, x, x);
-}
-
-/* extend the interval to include the number x */
-static inline void extend(interval_t *i, double x) {
- if (x < i->min) {
- i->min = x;
- } else if (x > i->max) {
- i->max = x;
- }
-}
-
-static inline int in_interval(interval_t *i, double x) {
- return i->min <= x && x <= i->max;
-}
-
-/* ---------------------------------------------------------------------- */
-/* inner product */
-
-typedef potrace_dpoint_t dpoint_t;
-
-static double iprod(dpoint_t a, dpoint_t b) {
- return a.x * b.x + a.y * b.y;
-}
-
-/* ---------------------------------------------------------------------- */
-/* linear Bezier segments */
-
-/* return a point on a 1-dimensional Bezier segment */
-static inline double bezier(double t, double x0, double x1, double x2, double x3) {
- double s = 1-t;
- return s*s*s*x0 + 3*(s*s*t)*x1 + 3*(t*t*s)*x2 + t*t*t*x3;
-}
-
-/* Extend the interval i to include the minimum and maximum of a
- 1-dimensional Bezier segment given by control points x0..x3. For
- efficiency, x0 in i is assumed as a precondition. */
-static void bezier_limits(double x0, double x1, double x2, double x3, interval_t *i) {
- double a, b, c, d, r;
- double t, x;
-
- /* the min and max of a cubic curve segment are attained at one of
- at most 4 critical points: the 2 endpoints and at most 2 local
- extrema. We don't check the first endpoint, because all our
- curves are cyclic so it's more efficient not to check endpoints
- twice. */
-
- /* endpoint */
- extend(i, x3);
-
- /* optimization: don't bother calculating extrema if all control
- points are already in i */
- if (in_interval(i, x1) && in_interval(i, x2)) {
- return;
- }
-
- /* solve for extrema. at^2 + bt + c = 0 */
- a = -3*x0 + 9*x1 - 9*x2 + 3*x3;
- b = 6*x0 - 12*x1 + 6*x2;
- c = -3*x0 + 3*x1;
- d = b*b - 4*a*c;
- if (d > 0) {
- r = sqrt(d);
- t = (-b-r)/(2*a);
- if (t > 0 && t < 1) {
- x = bezier(t, x0, x1, x2, x3);
- extend(i, x);
- }
- t = (-b+r)/(2*a);
- if (t > 0 && t < 1) {
- x = bezier(t, x0, x1, x2, x3);
- extend(i, x);
- }
- }
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Potrace segments, curves, and pathlists */
-
-/* extend the interval i to include the inner product <v | dir> for
- all points v on the segment. Assume precondition a in i. */
-static inline void segment_limits(int tag, dpoint_t a, dpoint_t c[3], dpoint_t dir, interval_t *i) {
- switch (tag) {
- case POTRACE_CORNER:
- extend(i, iprod(c[1], dir));
- extend(i, iprod(c[2], dir));
- break;
- case POTRACE_CURVETO:
- bezier_limits(iprod(a, dir), iprod(c[0], dir), iprod(c[1], dir), iprod(c[2], dir), i);
- break;
- }
-}
-
-/* extend the interval i to include <v | dir> for all points v on the
- curve. */
-static void curve_limits(potrace_curve_t *curve, dpoint_t dir, interval_t *i) {
- int k;
- int n = curve->n;
-
- segment_limits(curve->tag[0], curve->c[n-1][2], curve->c[0], dir, i);
- for (k=1; k<n; k++) {
- segment_limits(curve->tag[k], curve->c[k-1][2], curve->c[k], dir, i);
- }
-}
-
-/* compute the interval i to be the smallest interval including all <v
- | dir> for points in the pathlist. If the pathlist is empty, return
- the singleton interval [0,0]. */
-void path_limits(potrace_path_t *path, dpoint_t dir, interval_t *i) {
- potrace_path_t *p;
-
- /* empty image? */
- if (path == NULL) {
- interval(i, 0, 0);
- return;
- }
-
- /* initialize interval to a point on the first curve */
- singleton(i, iprod(path->curve.c[0][2], dir));
-
- /* iterate */
- list_forall(p, path) {
- curve_limits(&p->curve, dir, i);
- }
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/bbox.h b/Build/source/libs/potrace/potrace-src/src/bbox.h
deleted file mode 100644
index 30b71ba6930..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bbox.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifndef BBOX_H
-#define BBOX_H
-
-#include "potracelib.h"
-
-/* an interval [min, max] */
-struct interval_s {
- double min, max;
-};
-typedef struct interval_s interval_t;
-
-void path_limits(potrace_path_t *path, potrace_dpoint_t dir, interval_t *i);
-
-#endif /* BBOX_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap.h b/Build/source/libs/potrace/potrace-src/src/bitmap.h
deleted file mode 100644
index 2e91ab1e7d7..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bitmap.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifndef BITMAP_H
-#define BITMAP_H
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stddef.h>
-
-/* The bitmap type is defined in potracelib.h */
-#include "potracelib.h"
-
-/* The present file defines some convenient macros and static inline
- functions for accessing bitmaps. Since they only produce inline
- code, they can be conveniently shared by the library and frontends,
- if desired */
-
-/* ---------------------------------------------------------------------- */
-/* some measurements */
-
-#define BM_WORDSIZE ((int)sizeof(potrace_word))
-#define BM_WORDBITS (8*BM_WORDSIZE)
-#define BM_HIBIT (((potrace_word)1)<<(BM_WORDBITS-1))
-#define BM_ALLBITS (~(potrace_word)0)
-
-/* macros for accessing pixel at index (x,y). U* macros omit the
- bounds check. */
-
-#define bm_scanline(bm, y) ((bm)->map + (ptrdiff_t)(y)*(ptrdiff_t)(bm)->dy)
-#define bm_index(bm, x, y) (&bm_scanline(bm, y)[(x)/BM_WORDBITS])
-#define bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS-1)))
-#define bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a))
-#define bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h))
-#define BM_UGET(bm, x, y) ((*bm_index(bm, x, y) & bm_mask(x)) != 0)
-#define BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x))
-#define BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x))
-#define BM_UINV(bm, x, y) (*bm_index(bm, x, y) ^= bm_mask(x))
-#define BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y))
-#define BM_GET(bm, x, y) (bm_safe(bm, x, y) ? BM_UGET(bm, x, y) : 0)
-#define BM_SET(bm, x, y) (bm_safe(bm, x, y) ? BM_USET(bm, x, y) : 0)
-#define BM_CLR(bm, x, y) (bm_safe(bm, x, y) ? BM_UCLR(bm, x, y) : 0)
-#define BM_INV(bm, x, y) (bm_safe(bm, x, y) ? BM_UINV(bm, x, y) : 0)
-#define BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0)
-
-/* calculate the size, in bytes, required for the data area of a
- bitmap of the given dy and h. Assume h >= 0. Return -1 if the size
- does not fit into the ptrdiff_t type. */
-static inline ptrdiff_t getsize(int dy, int h) {
- ptrdiff_t size;
-
- if (dy < 0) {
- dy = -dy;
- }
-
- size = (ptrdiff_t)dy * (ptrdiff_t)h * (ptrdiff_t)BM_WORDSIZE;
-
- /* check for overflow error */
- if (size < 0 || (h != 0 && dy != 0 && size / h / dy != BM_WORDSIZE)) {
- return -1;
- }
-
- return size;
-}
-
-/* return the size, in bytes, of the data area of the bitmap. Return
- -1 if the size does not fit into the ptrdiff_t type; however, this
- cannot happen if the bitmap is well-formed, i.e., if created with
- bm_new or bm_dup. */
-static inline ptrdiff_t bm_size(const potrace_bitmap_t *bm) {
- return getsize(bm->dy, bm->h);
-}
-
-/* calculate the base address of the bitmap data. Assume that the
- bitmap is well-formed, i.e., its size fits into the ptrdiff_t type.
- This is the case if created with bm_new or bm_dup. The base address
- may differ from bm->map if dy is negative */
-static inline potrace_word *bm_base(const potrace_bitmap_t *bm) {
- int dy = bm->dy;
-
- if (dy >= 0 || bm->h == 0) {
- return bm->map;
- } else {
- return bm_scanline(bm, bm->h - 1);
- }
-}
-
-/* free the given bitmap. Leaves errno untouched. */
-static inline void bm_free(potrace_bitmap_t *bm) {
- if (bm && bm->map) {
- free(bm_base(bm));
- }
- free(bm);
-}
-
-/* return new bitmap initialized to 0. NULL with errno on error.
- Assumes w, h >= 0. */
-static inline potrace_bitmap_t *bm_new(int w, int h) {
- potrace_bitmap_t *bm;
- int dy = w == 0 ? 0 : (w - 1) / BM_WORDBITS + 1;
- ptrdiff_t size;
-
- size = getsize(dy, h);
- if (size < 0) {
- errno = ENOMEM;
- return NULL;
- }
- if (size == 0) {
- size = 1; /* make sure calloc() doesn't return NULL */
- }
-
- bm = (potrace_bitmap_t *) malloc(sizeof(potrace_bitmap_t));
- if (!bm) {
- return NULL;
- }
- bm->w = w;
- bm->h = h;
- bm->dy = dy;
- bm->map = (potrace_word *) calloc(1, size);
- if (!bm->map) {
- free(bm);
- return NULL;
- }
- return bm;
-}
-
-/* clear the given bitmap. Set all bits to c. Assumes a well-formed
- bitmap. */
-static inline void bm_clear(potrace_bitmap_t *bm, int c) {
- /* Note: if the bitmap was created with bm_new, then it is
- guaranteed that size will fit into the ptrdiff_t type. */
- ptrdiff_t size = bm_size(bm);
- memset(bm_base(bm), c ? -1 : 0, size);
-}
-
-/* duplicate the given bitmap. Return NULL on error with errno
- set. Assumes a well-formed bitmap. */
-static inline potrace_bitmap_t *bm_dup(const potrace_bitmap_t *bm) {
- potrace_bitmap_t *bm1 = bm_new(bm->w, bm->h);
- int y;
-
- if (!bm1) {
- return NULL;
- }
- for (y=0; y < bm->h; y++) {
- memcpy(bm_scanline(bm1, y), bm_scanline(bm, y), (size_t)bm1->dy * (size_t)BM_WORDSIZE);
- }
- return bm1;
-}
-
-/* invert the given bitmap. */
-static inline void bm_invert(potrace_bitmap_t *bm) {
- int dy = bm->dy;
- int y;
- int i;
- potrace_word *p;
-
- if (dy < 0) {
- dy = -dy;
- }
-
- for (y=0; y < bm->h; y++) {
- p = bm_scanline(bm, y);
- for (i=0; i < dy; i++) {
- p[i] ^= BM_ALLBITS;
- }
- }
-}
-
-/* turn the given bitmap upside down. This does not move the bitmap
- data or change the bm_base() address. */
-static inline void bm_flip(potrace_bitmap_t *bm) {
- int dy = bm->dy;
-
- if (bm->h == 0 || bm->h == 1) {
- return;
- }
-
- bm->map = bm_scanline(bm, bm->h - 1);
- bm->dy = -dy;
-}
-
-/* resize the bitmap to the given new height. The bitmap data remains
- bottom-aligned (truncated at the top) when dy >= 0 and top-aligned
- (truncated at the bottom) when dy < 0. Return 0 on success, or 1 on
- error with errno set. If the new height is <= the old one, no error
- should occur. If the new height is larger, the additional bitmap
- data is *not* initialized. */
-static inline int bm_resize(potrace_bitmap_t *bm, int h) {
- int dy = bm->dy;
- ptrdiff_t newsize;
- potrace_word *newmap;
-
- if (dy < 0) {
- bm_flip(bm);
- }
-
- newsize = getsize(dy, h);
- if (newsize < 0) {
- errno = ENOMEM;
- goto error;
- }
- if (newsize == 0) {
- newsize = 1; /* make sure realloc() doesn't return NULL */
- }
-
- newmap = (potrace_word *)realloc(bm->map, newsize);
- if (newmap == NULL) {
- goto error;
- }
- bm->map = newmap;
- bm->h = h;
-
- if (dy < 0) {
- bm_flip(bm);
- }
- return 0;
-
- error:
- if (dy < 0) {
- bm_flip(bm);
- }
- return 1;
-}
-
-#endif /* BITMAP_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap_io.c b/Build/source/libs/potrace/potrace-src/src/bitmap_io.c
deleted file mode 100644
index f965b733212..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bitmap_io.c
+++ /dev/null
@@ -1,880 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* Routines for manipulating bitmaps, including reading pbm files. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include "bitmap.h"
-#include "bitops.h"
-#include "bitmap_io.h"
-
-#define INTBITS (8*sizeof(int))
-
-static int bm_readbody_bmp(FILE *f, double threshold, potrace_bitmap_t **bmp);
-static int bm_readbody_pnm(FILE *f, double threshold, potrace_bitmap_t **bmp, int magic);
-
-#define TRY(x) if (x) goto try_error
-#define TRY_EOF(x) if (x) goto eof
-#define TRY_STD(x) if (x) goto std_error
-
-/* ---------------------------------------------------------------------- */
-/* routines for reading pnm streams */
-
-/* read next character after whitespace and comments. Return EOF on
- end of file or error. */
-static int fgetc_ws(FILE *f) {
- int c;
-
- while (1) {
- c = fgetc(f);
- if (c=='#') {
- while (1) {
- c = fgetc(f);
- if (c=='\n' || c==EOF) {
- break;
- }
- }
- }
- /* space, tab, line feed, carriage return, form-feed */
- if (c!=' ' && c!='\t' && c!='\r' && c!='\n' && c!=12) {
- return c;
- }
- }
-}
-
-/* skip whitespace and comments, then read a non-negative decimal
- number from a stream. Return -1 on EOF. Tolerate other errors (skip
- bad characters). Do not the read any characters following the
- number (put next character back into the stream) */
-
-static int readnum(FILE *f) {
- int c;
- int acc;
-
- /* skip whitespace and comments */
- while (1) {
- c = fgetc_ws(f);
- if (c==EOF) {
- return -1;
- }
- if (c>='0' && c<='9') {
- break;
- }
- }
-
- /* first digit is already in c */
- acc = c-'0';
- while (1) {
- c = fgetc(f);
- if (c==EOF) {
- break;
- }
- if (c<'0' || c>'9') {
- ungetc(c, f);
- break;
- }
- acc *= 10;
- acc += c-'0';
- }
- return acc;
-}
-
-/* similar to readnum, but read only a single 0 or 1, and do not read
- any characters after it. */
-
-static int readbit(FILE *f) {
- int c;
-
- /* skip whitespace and comments */
- while (1) {
- c = fgetc_ws(f);
- if (c==EOF) {
- return -1;
- }
- if (c>='0' && c<='1') {
- break;
- }
- }
-
- return c-'0';
-}
-
-/* ---------------------------------------------------------------------- */
-
-/* read a PNM stream: P1-P6 format (see pnm(5)), or a BMP stream, and
- convert the output to a bitmap. Return bitmap in *bmp. Return 0 on
- success, -1 on error with errno set, -2 on bad file format (with
- error message in bm_read_error), and 1 on premature end of file, -3
- on empty file (including files which contain only whitespace and
- comments), -4 if wrong magic number. If the return value is >=0,
- *bmp is valid. */
-
-const char *bm_read_error = NULL;
-
-int bm_read(FILE *f, double threshold, potrace_bitmap_t **bmp) {
- int magic[2];
-
- /* read magic number. We ignore whitespace and comments before the
- magic, for the benefit of concatenated files in P1-P3 format.
- Multiple P1-P3 images in a single file are not formally allowed
- by the PNM standard, but there is no harm in being lenient. */
-
- magic[0] = fgetc_ws(f);
- if (magic[0] == EOF) {
- return -3;
- }
- magic[1] = fgetc(f);
- if (magic[0] == 'P' && magic[1] >= '1' && magic[1] <= '6') {
- return bm_readbody_pnm(f, threshold, bmp, magic[1]);
- }
- if (magic[0] == 'B' && magic[1] == 'M') {
- return bm_readbody_bmp(f, threshold, bmp);
- }
- return -4;
-}
-
-/* ---------------------------------------------------------------------- */
-/* read PNM format */
-
-/* read PNM stream after magic number. Return values as for bm_read */
-static int bm_readbody_pnm(FILE *f, double threshold, potrace_bitmap_t **bmp, int magic) {
- potrace_bitmap_t *bm;
- int x, y, i, b, b1, sum;
- int bpr; /* bytes per row (as opposed to 4*bm->c) */
- int w, h, max;
- int realheight; /* in case of incomplete file, keeps track of how
- many scan lines actually contain data */
-
- bm = NULL;
-
- w = readnum(f);
- if (w<0) {
- goto format_error;
- }
-
- h = readnum(f);
- if (h<0) {
- goto format_error;
- }
-
- /* allocate bitmap */
- bm = bm_new(w, h);
- if (!bm) {
- goto std_error;
- }
-
- realheight = 0;
-
- switch (magic) {
- default:
- /* not reached */
- goto format_error;
-
- case '1':
- /* read P1 format: PBM ascii */
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = readbit(f);
- if (b<0) {
- goto eof;
- }
- BM_UPUT(bm, x, y, b);
- }
- }
- break;
-
- case '2':
- /* read P2 format: PGM ascii */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = readnum(f);
- if (b<0) {
- goto eof;
- }
- BM_UPUT(bm, x, y, b > threshold * max ? 0 : 1);
- }
- }
- break;
-
- case '3':
- /* read P3 format: PPM ascii */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- sum = 0;
- for (i=0; i<3; i++) {
- b = readnum(f);
- if (b<0) {
- goto eof;
- }
- sum += b;
- }
- BM_UPUT(bm, x, y, sum > 3 * threshold * max ? 0 : 1);
- }
- }
- break;
-
- case '4':
- /* read P4 format: PBM raw */
-
- b = fgetc(f); /* read single white-space character after height */
- if (b==EOF) {
- goto format_error;
- }
-
- bpr = (w+7)/8;
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (i=0; i<bpr; i++) {
- b = fgetc(f);
- if (b==EOF) {
- goto eof;
- }
- *bm_index(bm, i*8, y) |= ((potrace_word)b) << (8*(BM_WORDSIZE-1-(i % BM_WORDSIZE)));
- }
- }
- break;
-
- case '5':
- /* read P5 format: PGM raw */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- b = fgetc(f); /* read single white-space character after max */
- if (b==EOF) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = fgetc(f);
- if (b==EOF)
- goto eof;
- if (max>=256) {
- b <<= 8;
- b1 = fgetc(f);
- if (b1==EOF)
- goto eof;
- b |= b1;
- }
- BM_UPUT(bm, x, y, b > threshold * max ? 0 : 1);
- }
- }
- break;
-
- case '6':
- /* read P6 format: PPM raw */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- b = fgetc(f); /* read single white-space character after max */
- if (b==EOF) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- sum = 0;
- for (i=0; i<3; i++) {
- b = fgetc(f);
- if (b==EOF) {
- goto eof;
- }
- if (max>=256) {
- b <<= 8;
- b1 = fgetc(f);
- if (b1==EOF)
- goto eof;
- b |= b1;
- }
- sum += b;
- }
- BM_UPUT(bm, x, y, sum > 3 * threshold * max ? 0 : 1);
- }
- }
- break;
- }
-
- bm_flip(bm);
- *bmp = bm;
- return 0;
-
- eof:
- TRY_STD(bm_resize(bm, realheight));
- bm_flip(bm);
- *bmp = bm;
- return 1;
-
- format_error:
- bm_free(bm);
- if (magic == '1' || magic == '4') {
- bm_read_error = "invalid pbm file";
- } else if (magic == '2' || magic == '5') {
- bm_read_error = "invalid pgm file";
- } else {
- bm_read_error = "invalid ppm file";
- }
- return -2;
-
- std_error:
- bm_free(bm);
- return -1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* read BMP format */
-
-struct bmp_info_s {
- unsigned int FileSize;
- unsigned int reserved;
- unsigned int DataOffset;
- unsigned int InfoSize;
- unsigned int w; /* width */
- unsigned int h; /* height */
- unsigned int Planes;
- unsigned int bits; /* bits per sample */
- unsigned int comp; /* compression mode */
- unsigned int ImageSize;
- unsigned int XpixelsPerM;
- unsigned int YpixelsPerM;
- unsigned int ncolors; /* number of colors in palette */
- unsigned int ColorsImportant;
- unsigned int RedMask;
- unsigned int GreenMask;
- unsigned int BlueMask;
- unsigned int AlphaMask;
- unsigned int ctbits; /* sample size for color table */
- int topdown; /* top-down mode? */
-};
-typedef struct bmp_info_s bmp_info_t;
-
-/* auxiliary */
-
-static int bmp_count = 0; /* counter for byte padding */
-static int bmp_pos = 0; /* counter from start of BMP data */
-
-/* read n-byte little-endian integer. Return 1 on EOF or error, else
- 0. Assume n<=4. */
-static int bmp_readint(FILE *f, int n, unsigned int *p) {
- int i;
- unsigned int sum = 0;
- int b;
-
- for (i=0; i<n; i++) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- sum += (unsigned)b << (8*i);
- }
- bmp_count += n;
- bmp_pos += n;
- *p = sum;
- return 0;
-}
-
-/* reset padding boundary */
-static void bmp_pad_reset(void) {
- bmp_count = 0;
-}
-
-/* read padding bytes to 4-byte boundary. Return 1 on EOF or error,
- else 0. */
-static int bmp_pad(FILE *f) {
- int c, i, b;
-
- c = (-bmp_count) & 3;
- for (i=0; i<c; i++) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- }
- bmp_pos += c;
- bmp_count = 0;
- return 0;
-}
-
-/* forward to the new file position. Return 1 on EOF or error, else 0 */
-static int bmp_forward(FILE *f, int pos) {
- int b;
-
- while (bmp_pos < pos) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- bmp_pos++;
- bmp_count++;
- }
- return 0;
-}
-
-/* safe colortable access */
-#define COLTABLE(c) ((c) < bmpinfo.ncolors ? coltable[(c)] : 0)
-
-/* read BMP stream after magic number. Return values as for bm_read.
- We choose to be as permissive as possible, since there are many
- programs out there which produce BMP. For instance, ppmtobmp can
- produce codings with anywhere from 1-8 or 24 bits per sample,
- although most specifications only allow 1,4,8,24,32. We can also
- read both the old and new OS/2 BMP formats in addition to the
- Windows BMP format. */
-static int bm_readbody_bmp(FILE *f, double threshold, potrace_bitmap_t **bmp) {
- bmp_info_t bmpinfo;
- int *coltable;
- unsigned int b, c;
- unsigned int i;
- potrace_bitmap_t *bm;
- int mask;
- unsigned int x, y;
- int col[2];
- unsigned int bitbuf;
- unsigned int n;
- unsigned int redshift, greenshift, blueshift;
- int col1[2];
- int realheight; /* in case of incomplete file, keeps track of how
- many scan lines actually contain data */
-
- bm_read_error = NULL;
- bm = NULL;
- coltable = NULL;
-
- bmp_pos = 2; /* set file position */
-
- /* file header (minus magic number) */
- TRY(bmp_readint(f, 4, &bmpinfo.FileSize));
- TRY(bmp_readint(f, 4, &bmpinfo.reserved));
- TRY(bmp_readint(f, 4, &bmpinfo.DataOffset));
-
- /* info header */
- TRY(bmp_readint(f, 4, &bmpinfo.InfoSize));
- if (bmpinfo.InfoSize == 40 || bmpinfo.InfoSize == 64
- || bmpinfo.InfoSize == 108 || bmpinfo.InfoSize == 124) {
- /* Windows or new OS/2 format */
- bmpinfo.ctbits = 32; /* sample size in color table */
- TRY(bmp_readint(f, 4, &bmpinfo.w));
- TRY(bmp_readint(f, 4, &bmpinfo.h));
- TRY(bmp_readint(f, 2, &bmpinfo.Planes));
- TRY(bmp_readint(f, 2, &bmpinfo.bits));
- TRY(bmp_readint(f, 4, &bmpinfo.comp));
- TRY(bmp_readint(f, 4, &bmpinfo.ImageSize));
- TRY(bmp_readint(f, 4, &bmpinfo.XpixelsPerM));
- TRY(bmp_readint(f, 4, &bmpinfo.YpixelsPerM));
- TRY(bmp_readint(f, 4, &bmpinfo.ncolors));
- TRY(bmp_readint(f, 4, &bmpinfo.ColorsImportant));
- if (bmpinfo.InfoSize >= 108) { /* V4 and V5 bitmaps */
- TRY(bmp_readint(f, 4, &bmpinfo.RedMask));
- TRY(bmp_readint(f, 4, &bmpinfo.GreenMask));
- TRY(bmp_readint(f, 4, &bmpinfo.BlueMask));
- TRY(bmp_readint(f, 4, &bmpinfo.AlphaMask));
- }
- if (bmpinfo.w > 0x7fffffff) {
- goto format_error;
- }
- if (bmpinfo.h > 0x7fffffff) {
- bmpinfo.h = (-bmpinfo.h) & 0xffffffff;
- bmpinfo.topdown = 1;
- } else {
- bmpinfo.topdown = 0;
- }
- if (bmpinfo.h > 0x7fffffff) {
- goto format_error;
- }
- } else if (bmpinfo.InfoSize == 12) {
- /* old OS/2 format */
- bmpinfo.ctbits = 24; /* sample size in color table */
- TRY(bmp_readint(f, 2, &bmpinfo.w));
- TRY(bmp_readint(f, 2, &bmpinfo.h));
- TRY(bmp_readint(f, 2, &bmpinfo.Planes));
- TRY(bmp_readint(f, 2, &bmpinfo.bits));
- bmpinfo.comp = 0;
- bmpinfo.ncolors = 0;
- bmpinfo.topdown = 0;
- } else {
- goto format_error;
- }
-
- if (bmpinfo.comp == 3 && bmpinfo.InfoSize < 108) {
- /* bitfield feature is only understood with V4 and V5 format */
- goto format_error;
- }
-
- if (bmpinfo.comp > 3 || bmpinfo.bits > 32) {
- goto format_error;
- }
-
- /* forward to color table (e.g., if bmpinfo.InfoSize == 64) */
- TRY(bmp_forward(f, 14+bmpinfo.InfoSize));
-
- if (bmpinfo.Planes != 1) {
- bm_read_error = "cannot handle bmp planes";
- goto format_error; /* can't handle planes */
- }
-
- if (bmpinfo.ncolors == 0 && bmpinfo.bits <= 8) {
- bmpinfo.ncolors = 1 << bmpinfo.bits;
- }
-
- /* color table, present only if bmpinfo.bits <= 8. */
- if (bmpinfo.bits <= 8) {
- coltable = (int *) calloc(bmpinfo.ncolors, sizeof(int));
- if (!coltable) {
- goto std_error;
- }
- /* NOTE: since we are reading a bitmap, we can immediately convert
- the color table entries to bits. */
- for (i=0; i<bmpinfo.ncolors; i++) {
- TRY(bmp_readint(f, bmpinfo.ctbits/8, &c));
- c = ((c>>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff);
- coltable[i] = (c > 3 * threshold * 255 ? 0 : 1);
- if (i<2) {
- col1[i] = c;
- }
- }
- }
-
- /* forward to data */
- if (bmpinfo.InfoSize != 12) { /* not old OS/2 format */
- TRY(bmp_forward(f, bmpinfo.DataOffset));
- }
-
- /* allocate bitmap */
- bm = bm_new(bmpinfo.w, bmpinfo.h);
- if (!bm) {
- goto std_error;
- }
-
- realheight = 0;
-
- switch (bmpinfo.bits + 0x100*bmpinfo.comp) {
-
- default:
- goto format_error;
- break;
-
- case 0x001: /* monochrome palette */
- if (col1[0] < col1[1]) { /* make the darker color black */
- mask = 0xff;
- } else {
- mask = 0;
- }
-
- /* raster data */
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (i=0; 8*i<bmpinfo.w; i++) {
- TRY_EOF(bmp_readint(f, 1, &b));
- b ^= mask;
- *bm_index(bm, i*8, y) |= ((potrace_word)b) << (8*(BM_WORDSIZE-1-(i % BM_WORDSIZE)));
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x002: /* 2-bit to 8-bit palettes */
- case 0x003:
- case 0x004:
- case 0x005:
- case 0x006:
- case 0x007:
- case 0x008:
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- bitbuf = 0; /* bit buffer: bits in buffer are high-aligned */
- n = 0; /* number of bits currently in bitbuffer */
- for (x=0; x<bmpinfo.w; x++) {
- if (n < bmpinfo.bits) {
- TRY_EOF(bmp_readint(f, 1, &b));
- bitbuf |= b << (INTBITS - 8 - n);
- n += 8;
- }
- b = bitbuf >> (INTBITS - bmpinfo.bits);
- bitbuf <<= bmpinfo.bits;
- n -= bmpinfo.bits;
- BM_UPUT(bm, x, y, COLTABLE(b));
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x010: /* 16-bit encoding */
- /* can't do this format because it is not well-documented and I
- don't have any samples */
- bm_read_error = "cannot handle bmp 16-bit coding";
- goto format_error;
- break;
-
- case 0x018: /* 24-bit encoding */
- case 0x020: /* 32-bit encoding */
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (x=0; x<bmpinfo.w; x++) {
- TRY_EOF(bmp_readint(f, bmpinfo.bits/8, &c));
- c = ((c>>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff);
- BM_UPUT(bm, x, y, c > 3 * threshold * 255 ? 0 : 1);
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x320: /* 32-bit encoding with bitfields */
- if (bmpinfo.RedMask == 0 || bmpinfo.GreenMask == 0 || bmpinfo.BlueMask == 0) {
- goto format_error;
- }
-
- redshift = lobit(bmpinfo.RedMask);
- greenshift = lobit(bmpinfo.GreenMask);
- blueshift = lobit(bmpinfo.BlueMask);
-
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (x=0; x<bmpinfo.w; x++) {
- TRY_EOF(bmp_readint(f, bmpinfo.bits/8, &c));
- c = ((c & bmpinfo.RedMask) >> redshift) + ((c & bmpinfo.GreenMask) >> greenshift) + ((c & bmpinfo.BlueMask) >> blueshift);
- BM_UPUT(bm, x, y, c > 3 * threshold * 255 ? 0 : 1);
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x204: /* 4-bit runlength compressed encoding (RLE4) */
- x = 0;
- y = 0;
-
- while (1) {
- TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */
- TRY_EOF(bmp_readint(f, 1, &c)); /* argument */
- if (b>0) {
- /* repeat count */
- col[0] = COLTABLE((c>>4) & 0xf);
- col[1] = COLTABLE(c & 0xf);
- for (i=0; i<b && x<bmpinfo.w; i++) {
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- BM_PUT(bm, x, y, col[i&1]);
- x++;
- }
- } else if (c == 0) {
- /* end of line */
- y++;
- x = 0;
- } else if (c == 1) {
- /* end of bitmap */
- break;
- } else if (c == 2) {
- /* "delta": skip pixels in x and y directions */
- TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */
- TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */
- x += b;
- y += c;
- } else {
- /* verbatim segment */
- for (i=0; i<c; i++) {
- if ((i&1)==0) {
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- BM_PUT(bm, x, y, COLTABLE((b>>(4-4*(i&1))) & 0xf));
- x++;
- }
- if ((c+1) & 2) {
- /* pad to 16-bit boundary */
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- }
- }
- break;
-
- case 0x108: /* 8-bit runlength compressed encoding (RLE8) */
- x = 0;
- y = 0;
- while (1) {
- TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */
- TRY_EOF(bmp_readint(f, 1, &c)); /* argument */
- if (b>0) {
- /* repeat count */
- for (i=0; i<b; i++) {
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- BM_PUT(bm, x, y, COLTABLE(c));
- x++;
- }
- } else if (c == 0) {
- /* end of line */
- y++;
- x = 0;
- } else if (c == 1) {
- /* end of bitmap */
- break;
- } else if (c == 2) {
- /* "delta": skip pixels in x and y directions */
- TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */
- TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */
- x += b;
- y += c;
- } else {
- /* verbatim segment */
- for (i=0; i<c; i++) {
- TRY_EOF(bmp_readint(f, 1, &b));
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- BM_PUT(bm, x, y, COLTABLE(b));
- x++;
- }
- if (c & 1) {
- /* pad input to 16-bit boundary */
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- }
- }
- break;
-
- } /* switch */
-
- /* skip any potential junk after the data section, but don't
- complain in case EOF is encountered */
- bmp_forward(f, bmpinfo.FileSize);
-
- free(coltable);
- if (bmpinfo.topdown) {
- bm_flip(bm);
- }
- *bmp = bm;
- return 0;
-
- eof:
- TRY_STD(bm_resize(bm, realheight));
- free(coltable);
- if (bmpinfo.topdown) {
- bm_flip(bm);
- }
- *bmp = bm;
- return 1;
-
- format_error:
- try_error:
- free(coltable);
- bm_free(bm);
- if (!bm_read_error) {
- bm_read_error = "invalid bmp file";
- }
- return -2;
-
- std_error:
- free(coltable);
- bm_free(bm);
- return -1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* output pbm format */
-
-void bm_writepbm(FILE *f, potrace_bitmap_t *bm) {
- int w, h, bpr, y, i, c;
-
- w = bm->w;
- h = bm->h;
-
- bpr = (w+7)/8;
-
- fprintf(f, "P4\n%d %d\n", w, h);
- for (y=h-1; y>=0; y--) {
- for (i=0; i<bpr; i++) {
- c = (*bm_index(bm, i*8, y) >> (8*(BM_WORDSIZE-1-(i % BM_WORDSIZE)))) & 0xff;
- fputc(c, f);
- }
- }
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* output - for primitive debugging purposes only! */
-
-/* print bitmap to screen */
-int bm_print(FILE *f, potrace_bitmap_t *bm) {
- int x, y;
- int xx, yy;
- int d;
- int sw, sh;
-
- sw = bm->w < 79 ? bm->w : 79;
- sh = bm->w < 79 ? bm->h : bm->h*sw*44/(79*bm->w);
-
- for (yy=sh-1; yy>=0; yy--) {
- for (xx=0; xx<sw; xx++) {
- d=0;
- for (x=xx*bm->w/sw; x<(xx+1)*bm->w/sw; x++) {
- for (y=yy*bm->h/sh; y<(yy+1)*bm->h/sh; y++) {
- if (BM_GET(bm, x, y)) {
- d++;
- }
- }
- }
- fputc(d ? '*' : ' ', f);
- }
- fputc('\n', f);
- }
- return 0;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/bitmap_io.h b/Build/source/libs/potrace/potrace-src/src/bitmap_io.h
deleted file mode 100644
index 5bfa5af0c3a..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bitmap_io.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* bitmap input/output functions */
-
-#ifndef BITMAP_IO_H
-#define BITMAP_IO_H
-
-#include <stdio.h>
-#include "bitmap.h"
-
-/* Note that bitmaps are stored bottom to top, i.e., the first
- scanline is the bottom-most one */
-
-extern const char *bm_read_error;
-
-int bm_read(FILE *f, double blacklevel, potrace_bitmap_t **bmp);
-void bm_writepbm(FILE *f, potrace_bitmap_t *bm);
-int bm_print(FILE *f, potrace_bitmap_t *bm);
-
-#endif /* BITMAP_IO_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/bitops.h b/Build/source/libs/potrace/potrace-src/src/bitops.h
deleted file mode 100644
index e7e7ed36247..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/bitops.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* bits.h: this file defines some macros for bit manipulations. We
- provide a generic implementation, as well as machine- and
- compiler-specific fast implementations */
-
-/* lobit: return the position of the rightmost "1" bit of an int, or
- 32 if none. hibit: return 1 + the position of the leftmost "1" bit
- of an int, or 0 if none. Note: these functions work on 32-bit
- integers. */
-
-#ifndef BITOPS_H
-#define BITOPS_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/* ---------------------------------------------------------------------- */
-/* machine specific macros */
-
-#if defined(HAVE_I386)
-
-static inline unsigned int lobit(unsigned int x) {
- unsigned int res;
- asm ("bsf %1,%0\n\t"
- "jnz 0f\n\t"
- "movl $32,%0\n"
- "0:"
- : "=r" (res)
- : "r" (x)
- : "cc");
- return res;
-}
-
-static inline unsigned int hibit(unsigned int x) {
- unsigned int res;
-
- asm ("bsr %1,%0\n\t"
- "jnz 0f\n\t"
- "movl $-1,%0\n"
- "0:"
- : "=r" (res)
- : "r" (x)
- : "cc");
- return res+1;
-}
-
-/* ---------------------------------------------------------------------- */
-#else /* generic macros */
-
-static inline unsigned int lobit(unsigned int x) {
- unsigned int res = 32;
- while (x & 0xffffff) {
- x <<= 8;
- res -= 8;
- }
- while (x) {
- x <<= 1;
- res -= 1;
- }
- return res;
-}
-
-static inline unsigned int hibit(unsigned int x) {
- unsigned int res = 0;
- while (x > 0xff) {
- x >>= 8;
- res += 8;
- }
- while (x) {
- x >>= 1;
- res += 1;
- }
- return res;
-}
-
-#endif
-
-#endif /* BITOPS_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/curve.c b/Build/source/libs/potrace/potrace-src/src/curve.c
deleted file mode 100644
index 0f415559589..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/curve.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* private part of the path and curve data structures */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "potracelib.h"
-#include "lists.h"
-#include "curve.h"
-
-#define SAFE_CALLOC(var, n, typ) \
- if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error
-
-/* ---------------------------------------------------------------------- */
-/* allocate and free path objects */
-
-path_t *path_new(void) {
- path_t *p = NULL;
- privpath_t *priv = NULL;
-
- SAFE_CALLOC(p, 1, path_t);
- memset(p, 0, sizeof(path_t));
- SAFE_CALLOC(priv, 1, privpath_t);
- memset(priv, 0, sizeof(privpath_t));
- p->priv = priv;
- return p;
-
- calloc_error:
- free(p);
- free(priv);
- return NULL;
-}
-
-/* free the members of the given curve structure. Leave errno unchanged. */
-static void privcurve_free_members(privcurve_t *curve) {
- free(curve->tag);
- free(curve->c);
- free(curve->vertex);
- free(curve->alpha);
- free(curve->alpha0);
- free(curve->beta);
-}
-
-/* free a path. Leave errno untouched. */
-void path_free(path_t *p) {
- if (p) {
- if (p->priv) {
- free(p->priv->pt);
- free(p->priv->lon);
- free(p->priv->sums);
- free(p->priv->po);
- privcurve_free_members(&p->priv->curve);
- privcurve_free_members(&p->priv->ocurve);
- }
- free(p->priv);
- /* do not free p->fcurve ! */
- }
- free(p);
-}
-
-/* free a pathlist, leaving errno untouched. */
-void pathlist_free(path_t *plist) {
- path_t *p;
-
- list_forall_unlink(p, plist) {
- path_free(p);
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* initialize and finalize curve structures */
-
-typedef dpoint_t dpoint3_t[3];
-
-/* initialize the members of the given curve structure to size m.
- Return 0 on success, 1 on error with errno set. */
-int privcurve_init(privcurve_t *curve, int n) {
- memset(curve, 0, sizeof(privcurve_t));
- curve->n = n;
- SAFE_CALLOC(curve->tag, n, int);
- SAFE_CALLOC(curve->c, n, dpoint3_t);
- SAFE_CALLOC(curve->vertex, n, dpoint_t);
- SAFE_CALLOC(curve->alpha, n, double);
- SAFE_CALLOC(curve->alpha0, n, double);
- SAFE_CALLOC(curve->beta, n, double);
- return 0;
-
- calloc_error:
- free(curve->tag);
- free(curve->c);
- free(curve->vertex);
- free(curve->alpha);
- free(curve->alpha0);
- free(curve->beta);
- return 1;
-}
-
-/* copy private to public curve structure */
-void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c) {
- c->n = pc->n;
- c->tag = pc->tag;
- c->c = pc->c;
-}
-
diff --git a/Build/source/libs/potrace/potrace-src/src/curve.h b/Build/source/libs/potrace/potrace-src/src/curve.h
deleted file mode 100644
index 00f042cc228..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/curve.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifndef CURVE_H
-#define CURVE_H
-
-#include "auxiliary.h"
-
-/* vertex is c[1] for tag=POTRACE_CORNER, and the intersection of
- .c[-1][2]..c[0] and c[1]..c[2] for tag=POTRACE_CURVETO. alpha is only
- defined for tag=POTRACE_CURVETO and is the alpha parameter of the curve:
- .c[-1][2]..c[0] = alpha*(.c[-1][2]..vertex), and
- c[2]..c[1] = alpha*(c[2]..vertex).
- Beta is so that (.beta[i])[.vertex[i],.vertex[i+1]] = .c[i][2].
-*/
-
-struct privcurve_s {
- int n; /* number of segments */
- int *tag; /* tag[n]: POTRACE_CORNER or POTRACE_CURVETO */
- dpoint_t (*c)[3]; /* c[n][i]: control points.
- c[n][0] is unused for tag[n]=POTRACE_CORNER */
- /* the remainder of this structure is special to privcurve, and is
- used in EPS debug output and special EPS "short coding". These
- fields are valid only if "alphacurve" is set. */
- int alphacurve; /* have the following fields been initialized? */
- dpoint_t *vertex; /* for POTRACE_CORNER, this equals c[1] */
- double *alpha; /* only for POTRACE_CURVETO */
- double *alpha0; /* "uncropped" alpha parameter - for debug output only */
- double *beta;
-};
-typedef struct privcurve_s privcurve_t;
-
-struct sums_s {
- double x;
- double y;
- double x2;
- double xy;
- double y2;
-};
-typedef struct sums_s sums_t;
-
-/* the path structure is filled in with information about a given path
- as it is accumulated and passed through the different stages of the
- Potrace algorithm. Backends only need to read the fcurve and fm
- fields of this data structure, but debugging backends may read
- other fields. */
-struct potrace_privpath_s {
- int len;
- point_t *pt; /* pt[len]: path as extracted from bitmap */
- int *lon; /* lon[len]: (i,lon[i]) = longest straight line from i */
-
- int x0, y0; /* origin for sums */
- sums_t *sums; /* sums[len+1]: cache for fast summing */
-
- int m; /* length of optimal polygon */
- int *po; /* po[m]: optimal polygon */
-
- privcurve_t curve; /* curve[m]: array of curve elements */
- privcurve_t ocurve; /* ocurve[om]: array of curve elements */
- privcurve_t *fcurve; /* final curve: this points to either curve or
- ocurve. Do not free this separately. */
-};
-typedef struct potrace_privpath_s potrace_privpath_t;
-
-/* shorter names */
-typedef potrace_privpath_t privpath_t;
-typedef potrace_path_t path_t;
-
-path_t *path_new(void);
-void path_free(path_t *p);
-void pathlist_free(path_t *plist);
-int privcurve_init(privcurve_t *curve, int n);
-void privcurve_to_curve(privcurve_t *pc, potrace_curve_t *c);
-
-#endif /* CURVE_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/decompose.c b/Build/source/libs/potrace/potrace-src/src/decompose.c
deleted file mode 100644
index 5439ad51f3a..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/decompose.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-#include "potracelib.h"
-#include "curve.h"
-#include "lists.h"
-#include "bitmap.h"
-#include "decompose.h"
-#include "progress.h"
-
-/* ---------------------------------------------------------------------- */
-/* deterministically and efficiently hash (x,y) into a pseudo-random bit */
-
-static inline int detrand(int x, int y) {
- unsigned int z;
- static const unsigned char t[256] = {
- /* non-linear sequence: constant term of inverse in GF(8),
- mod x^8+x^4+x^3+x+1 */
- 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1,
- 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0,
- 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1,
- 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1,
- 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
- 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1,
- 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
- };
-
- /* 0x04b3e375 and 0x05a8ef93 are chosen to contain every possible
- 5-bit sequence */
- z = ((0x04b3e375 * x) ^ y) * 0x05a8ef93;
- z = t[z & 0xff] ^ t[(z>>8) & 0xff] ^ t[(z>>16) & 0xff] ^ t[(z>>24) & 0xff];
- return z;
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary bitmap manipulations */
-
-/* set the excess padding to 0 */
-static void bm_clearexcess(potrace_bitmap_t *bm) {
- potrace_word mask;
- int y;
-
- if (bm->w % BM_WORDBITS != 0) {
- mask = BM_ALLBITS << (BM_WORDBITS - (bm->w % BM_WORDBITS));
- for (y=0; y<bm->h; y++) {
- *bm_index(bm, bm->w, y) &= mask;
- }
- }
-}
-
-struct bbox_s {
- int x0, x1, y0, y1; /* bounding box */
-};
-typedef struct bbox_s bbox_t;
-
-/* clear the bm, assuming the bounding box is set correctly (faster
- than clearing the whole bitmap) */
-static void clear_bm_with_bbox(potrace_bitmap_t *bm, bbox_t *bbox) {
- int imin = (bbox->x0 / BM_WORDBITS);
- int imax = ((bbox->x1 + BM_WORDBITS-1) / BM_WORDBITS);
- int i, y;
-
- for (y=bbox->y0; y<bbox->y1; y++) {
- for (i=imin; i<imax; i++) {
- bm_scanline(bm, y)[i] = 0;
- }
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions */
-
-/* return the "majority" value of bitmap bm at intersection (x,y). We
- assume that the bitmap is balanced at "radius" 1. */
-static int majority(potrace_bitmap_t *bm, int x, int y) {
- int i, a, ct;
-
- for (i=2; i<5; i++) { /* check at "radius" i */
- ct = 0;
- for (a=-i+1; a<=i-1; a++) {
- ct += BM_GET(bm, x+a, y+i-1) ? 1 : -1;
- ct += BM_GET(bm, x+i-1, y+a-1) ? 1 : -1;
- ct += BM_GET(bm, x+a-1, y-i) ? 1 : -1;
- ct += BM_GET(bm, x-i, y+a) ? 1 : -1;
- }
- if (ct>0) {
- return 1;
- } else if (ct<0) {
- return 0;
- }
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------- */
-/* decompose image into paths */
-
-/* efficiently invert bits [x,infty) and [xa,infty) in line y. Here xa
- must be a multiple of BM_WORDBITS. */
-static void xor_to_ref(potrace_bitmap_t *bm, int x, int y, int xa) {
- int xhi = x & -BM_WORDBITS;
- int xlo = x & (BM_WORDBITS-1); /* = x % BM_WORDBITS */
- int i;
-
- if (xhi<xa) {
- for (i = xhi; i < xa; i+=BM_WORDBITS) {
- *bm_index(bm, i, y) ^= BM_ALLBITS;
- }
- } else {
- for (i = xa; i < xhi; i+=BM_WORDBITS) {
- *bm_index(bm, i, y) ^= BM_ALLBITS;
- }
- }
- /* note: the following "if" is needed because x86 treats a<<b as
- a<<(b&31). I spent hours looking for this bug. */
- if (xlo) {
- *bm_index(bm, xhi, y) ^= (BM_ALLBITS << (BM_WORDBITS - xlo));
- }
-}
-
-/* a path is represented as an array of points, which are thought to
- lie on the corners of pixels (not on their centers). The path point
- (x,y) is the lower left corner of the pixel (x,y). Paths are
- represented by the len/pt components of a path_t object (which
- also stores other information about the path) */
-
-/* xor the given pixmap with the interior of the given path. Note: the
- path must be within the dimensions of the pixmap. */
-static void xor_path(potrace_bitmap_t *bm, path_t *p) {
- int xa, x, y, k, y1;
-
- if (p->priv->len <= 0) { /* a path of length 0 is silly, but legal */
- return;
- }
-
- y1 = p->priv->pt[p->priv->len-1].y;
-
- xa = p->priv->pt[0].x & -BM_WORDBITS;
- for (k=0; k<p->priv->len; k++) {
- x = p->priv->pt[k].x;
- y = p->priv->pt[k].y;
-
- if (y != y1) {
- /* efficiently invert the rectangle [x,xa] x [y,y1] */
- xor_to_ref(bm, x, min(y,y1), xa);
- y1 = y;
- }
- }
-}
-
-/* Find the bounding box of a given path. Path is assumed to be of
- non-zero length. */
-static void setbbox_path(bbox_t *bbox, path_t *p) {
- int x, y;
- int k;
-
- bbox->y0 = INT_MAX;
- bbox->y1 = 0;
- bbox->x0 = INT_MAX;
- bbox->x1 = 0;
-
- for (k=0; k<p->priv->len; k++) {
- x = p->priv->pt[k].x;
- y = p->priv->pt[k].y;
-
- if (x < bbox->x0) {
- bbox->x0 = x;
- }
- if (x > bbox->x1) {
- bbox->x1 = x;
- }
- if (y < bbox->y0) {
- bbox->y0 = y;
- }
- if (y > bbox->y1) {
- bbox->y1 = y;
- }
- }
-}
-
-/* compute a path in the given pixmap, separating black from white.
- Start path at the point (x0,x1), which must be an upper left corner
- of the path. Also compute the area enclosed by the path. Return a
- new path_t object, or NULL on error (note that a legitimate path
- cannot have length 0). Sign is required for correct interpretation
- of turnpolicies. */
-static path_t *findpath(potrace_bitmap_t *bm, int x0, int y0, int sign, int turnpolicy) {
- int x, y, dirx, diry, len, size;
- uint64_t area;
- int c, d, tmp;
- point_t *pt, *pt1;
- path_t *p = NULL;
-
- x = x0;
- y = y0;
- dirx = 0;
- diry = -1;
-
- len = size = 0;
- pt = NULL;
- area = 0;
-
- while (1) {
- /* add point to path */
- if (len>=size) {
- size += 100;
- size = (int)(1.3 * size);
- pt1 = (point_t *)realloc(pt, size * sizeof(point_t));
- if (!pt1) {
- goto error;
- }
- pt = pt1;
- }
- pt[len].x = x;
- pt[len].y = y;
- len++;
-
- /* move to next point */
- x += dirx;
- y += diry;
- area += x*diry;
-
- /* path complete? */
- if (x==x0 && y==y0) {
- break;
- }
-
- /* determine next direction */
- c = BM_GET(bm, x + (dirx+diry-1)/2, y + (diry-dirx-1)/2);
- d = BM_GET(bm, x + (dirx-diry-1)/2, y + (diry+dirx-1)/2);
-
- if (c && !d) { /* ambiguous turn */
- if (turnpolicy == POTRACE_TURNPOLICY_RIGHT
- || (turnpolicy == POTRACE_TURNPOLICY_BLACK && sign == '+')
- || (turnpolicy == POTRACE_TURNPOLICY_WHITE && sign == '-')
- || (turnpolicy == POTRACE_TURNPOLICY_RANDOM && detrand(x,y))
- || (turnpolicy == POTRACE_TURNPOLICY_MAJORITY && majority(bm, x, y))
- || (turnpolicy == POTRACE_TURNPOLICY_MINORITY && !majority(bm, x, y))) {
- tmp = dirx; /* right turn */
- dirx = diry;
- diry = -tmp;
- } else {
- tmp = dirx; /* left turn */
- dirx = -diry;
- diry = tmp;
- }
- } else if (c) { /* right turn */
- tmp = dirx;
- dirx = diry;
- diry = -tmp;
- } else if (!d) { /* left turn */
- tmp = dirx;
- dirx = -diry;
- diry = tmp;
- }
- } /* while this path */
-
- /* allocate new path object */
- p = path_new();
- if (!p) {
- goto error;
- }
-
- p->priv->pt = pt;
- p->priv->len = len;
- p->area = area <= INT_MAX ? area : INT_MAX; /* avoid overflow */
- p->sign = sign;
-
- return p;
-
- error:
- free(pt);
- return NULL;
-}
-
-/* Give a tree structure to the given path list, based on "insideness"
- testing. I.e., path A is considered "below" path B if it is inside
- path B. The input pathlist is assumed to be ordered so that "outer"
- paths occur before "inner" paths. The tree structure is stored in
- the "childlist" and "sibling" components of the path_t
- structure. The linked list structure is also changed so that
- negative path components are listed immediately after their
- positive parent. Note: some backends may ignore the tree
- structure, others may use it e.g. to group path components. We
- assume that in the input, point 0 of each path is an "upper left"
- corner of the path, as returned by bm_to_pathlist. This makes it
- easy to find an "interior" point. The bm argument should be a
- bitmap of the correct size (large enough to hold all the paths),
- and will be used as scratch space. Return 0 on success or -1 on
- error with errno set. */
-
-static void pathlist_to_tree(path_t *plist, potrace_bitmap_t *bm) {
- path_t *p, *p1;
- path_t *heap, *heap1;
- path_t *cur;
- path_t *head;
- path_t **plist_hook; /* for fast appending to linked list */
- path_t **hook_in, **hook_out; /* for fast appending to linked list */
- bbox_t bbox;
-
- bm_clear(bm, 0);
-
- /* save original "next" pointers */
- list_forall(p, plist) {
- p->sibling = p->next;
- p->childlist = NULL;
- }
-
- heap = plist;
-
- /* the heap holds a list of lists of paths. Use "childlist" field
- for outer list, "next" field for inner list. Each of the sublists
- is to be turned into a tree. This code is messy, but it is
- actually fast. Each path is rendered exactly once. We use the
- heap to get a tail recursive algorithm: the heap holds a list of
- pathlists which still need to be transformed. */
-
- while (heap) {
- /* unlink first sublist */
- cur = heap;
- heap = heap->childlist;
- cur->childlist = NULL;
-
- /* unlink first path */
- head = cur;
- cur = cur->next;
- head->next = NULL;
-
- /* render path */
- xor_path(bm, head);
- setbbox_path(&bbox, head);
-
- /* now do insideness test for each element of cur; append it to
- head->childlist if it's inside head, else append it to
- head->next. */
- hook_in=&head->childlist;
- hook_out=&head->next;
- list_forall_unlink(p, cur) {
- if (p->priv->pt[0].y <= bbox.y0) {
- list_insert_beforehook(p, hook_out);
- /* append the remainder of the list to hook_out */
- *hook_out = cur;
- break;
- }
- if (BM_GET(bm, p->priv->pt[0].x, p->priv->pt[0].y-1)) {
- list_insert_beforehook(p, hook_in);
- } else {
- list_insert_beforehook(p, hook_out);
- }
- }
-
- /* clear bm */
- clear_bm_with_bbox(bm, &bbox);
-
- /* now schedule head->childlist and head->next for further
- processing */
- if (head->next) {
- head->next->childlist = heap;
- heap = head->next;
- }
- if (head->childlist) {
- head->childlist->childlist = heap;
- heap = head->childlist;
- }
- }
-
- /* copy sibling structure from "next" to "sibling" component */
- p = plist;
- while (p) {
- p1 = p->sibling;
- p->sibling = p->next;
- p = p1;
- }
-
- /* reconstruct a new linked list ("next") structure from tree
- ("childlist", "sibling") structure. This code is slightly messy,
- because we use a heap to make it tail recursive: the heap
- contains a list of childlists which still need to be
- processed. */
- heap = plist;
- if (heap) {
- heap->next = NULL; /* heap is a linked list of childlists */
- }
- plist = NULL;
- plist_hook = &plist;
- while (heap) {
- heap1 = heap->next;
- for (p=heap; p; p=p->sibling) {
- /* p is a positive path */
- /* append to linked list */
- list_insert_beforehook(p, plist_hook);
-
- /* go through its children */
- for (p1=p->childlist; p1; p1=p1->sibling) {
- /* append to linked list */
- list_insert_beforehook(p1, plist_hook);
- /* append its childlist to heap, if non-empty */
- if (p1->childlist) {
- list_append(path_t, heap1, p1->childlist);
- }
- }
- }
- heap = heap1;
- }
-
- return;
-}
-
-/* find the next set pixel in a row <= y. Pixels are searched first
- left-to-right, then top-down. In other words, (x,y)<(x',y') if y>y'
- or y=y' and x<x'. If found, return 0 and store pixel in
- (*xp,*yp). Else return 1. Note that this function assumes that
- excess bytes have been cleared with bm_clearexcess. */
-static int findnext(potrace_bitmap_t *bm, int *xp, int *yp) {
- int x;
- int y;
- int x0;
-
- x0 = (*xp) & ~(BM_WORDBITS-1);
-
- for (y=*yp; y>=0; y--) {
- for (x=x0; x<bm->w && x>=0; x+=(unsigned)BM_WORDBITS) {
- if (*bm_index(bm, x, y)) {
- while (!BM_GET(bm, x, y)) {
- x++;
- }
- /* found */
- *xp = x;
- *yp = y;
- return 0;
- }
- }
- x0 = 0;
- }
- /* not found */
- return 1;
-}
-
-/* Decompose the given bitmap into paths. Returns a linked list of
- path_t objects with the fields len, pt, area, sign filled
- in. Returns 0 on success with plistp set, or -1 on error with errno
- set. */
-
-int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress) {
- int x;
- int y;
- path_t *p;
- path_t *plist = NULL; /* linked list of path objects */
- path_t **plist_hook = &plist; /* used to speed up appending to linked list */
- potrace_bitmap_t *bm1 = NULL;
- int sign;
-
- bm1 = bm_dup(bm);
- if (!bm1) {
- goto error;
- }
-
- /* be sure the byte padding on the right is set to 0, as the fast
- pixel search below relies on it */
- bm_clearexcess(bm1);
-
- /* iterate through components */
- x = 0;
- y = bm1->h - 1;
- while (findnext(bm1, &x, &y) == 0) {
- /* calculate the sign by looking at the original */
- sign = BM_GET(bm, x, y) ? '+' : '-';
-
- /* calculate the path */
- p = findpath(bm1, x, y+1, sign, param->turnpolicy);
- if (p==NULL) {
- goto error;
- }
-
- /* update buffered image */
- xor_path(bm1, p);
-
- /* if it's a turd, eliminate it, else append it to the list */
- if (p->area <= param->turdsize) {
- path_free(p);
- } else {
- list_insert_beforehook(p, plist_hook);
- }
-
- if (bm1->h > 0) { /* to be sure */
- progress_update(1-y/(double)bm1->h, progress);
- }
- }
-
- pathlist_to_tree(plist, bm1);
- bm_free(bm1);
- *plistp = plist;
-
- progress_update(1.0, progress);
-
- return 0;
-
- error:
- bm_free(bm1);
- list_forall_unlink(p, plist) {
- path_free(p);
- }
- return -1;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/decompose.h b/Build/source/libs/potrace/potrace-src/src/decompose.h
deleted file mode 100644
index a80a480ccbf..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/decompose.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef DECOMPOSE_H
-#define DECOMPOSE_H
-
-#include "potracelib.h"
-#include "progress.h"
-#include "curve.h"
-
-int bm_to_pathlist(const potrace_bitmap_t *bm, path_t **plistp, const potrace_param_t *param, progress_t *progress);
-
-#endif /* DECOMPOSE_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/flate.c b/Build/source/libs/potrace/potrace-src/src/flate.c
deleted file mode 100644
index 5c81894d910..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/flate.c
+++ /dev/null
@@ -1,380 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* the PostScript compression module of Potrace. The basic interface
- is through the *_xship function, which processes a byte array and
- outputs it in compressed or verbatim form, depending on whether
- filter is 1 or 0. To flush the output, simply call with the empty
- string and filter=0. filter=2 is used to output encoded text but
- without the PostScript header to turn on the encoding. Each
- function has variants for shipping a single character, a
- null-terminated string, or a byte array. */
-
-/* different compression algorithms are available. There is
- dummy_xship, which is just the identity, and flate_xship, which
- uses zlib compression. Also, lzw_xship provides LZW compression
- from the file lzw.c/h. a85_xship provides a85-encoding without
- compression. Each function returns the actual number of characters
- written. */
-
-/* note: the functions provided here have global state and are not
- reentrant */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#ifdef HAVE_ZLIB
-#include <zlib.h>
-#endif
-
-#include "flate.h"
-#include "lzw.h"
-
-#define OUTSIZE 1000
-
-static int a85init(FILE *f);
-static int a85finish(FILE *f);
-static int a85write(FILE *f, const char *buf, int n);
-static int a85out(FILE *f, int n);
-static int a85spool(FILE *f, char c);
-
-/* ---------------------------------------------------------------------- */
-/* dummy interface: no encoding */
-
-int dummy_xship(FILE *f, int filter, const char *s, int len) {
- fwrite(s, 1, len, f);
- return len;
-}
-
-/* ---------------------------------------------------------------------- */
-/* flate interface: zlib (=postscript level 3) compression and a85 */
-
-#ifdef HAVE_ZLIB
-
-int pdf_xship(FILE *f, int filter, const char *s, int len) {
- static int fstate = 0;
- static z_stream c_stream;
- char outbuf[OUTSIZE];
- int err;
- int n=0;
-
- if (filter && !fstate) {
- /* switch on filtering */
- c_stream.zalloc = Z_NULL;
- c_stream.zfree = Z_NULL;
- c_stream.opaque = Z_NULL;
- err = deflateInit(&c_stream, 9);
- if (err != Z_OK) {
- fprintf(stderr, "deflateInit: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- c_stream.avail_in = 0;
- fstate = 1;
- } else if (!filter && fstate) {
- /* switch off filtering */
- /* flush stream */
- do {
- c_stream.next_out = (Bytef*)outbuf;
- c_stream.avail_out = OUTSIZE;
-
- err = deflate(&c_stream, Z_FINISH);
- if (err != Z_OK && err != Z_STREAM_END) {
- fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- n += fwrite(outbuf, 1, OUTSIZE-c_stream.avail_out, f);
- } while (err != Z_STREAM_END);
-
- fstate = 0;
- }
- if (!fstate) {
- fwrite(s, 1, len, f);
- return n+len;
- }
-
- /* do the actual compression */
- c_stream.next_in = (Bytef*) s;
- c_stream.avail_in = len;
-
- do {
- c_stream.next_out = (Bytef*) outbuf;
- c_stream.avail_out = OUTSIZE;
-
- err = deflate(&c_stream, Z_NO_FLUSH);
- if (err != Z_OK) {
- fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- n += fwrite(outbuf, 1, OUTSIZE-c_stream.avail_out, f);
- } while (!c_stream.avail_out);
-
- return n;
-}
-
-/* ship len bytes from s using zlib compression. */
-int flate_xship(FILE *f, int filter, const char *s, int len) {
- static int fstate = 0;
- static z_stream c_stream;
- char outbuf[OUTSIZE];
- int err;
- int n=0;
-
- if (filter && !fstate) {
- /* switch on filtering */
- if (filter == 1) {
- n += fprintf(f, "currentfile /ASCII85Decode filter /FlateDecode filter cvx exec\n");
- }
- c_stream.zalloc = Z_NULL;
- c_stream.zfree = Z_NULL;
- c_stream.opaque = Z_NULL;
- err = deflateInit(&c_stream, 9);
- if (err != Z_OK) {
- fprintf(stderr, "deflateInit: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- c_stream.avail_in = 0;
- n += a85init(f);
- fstate = 1;
- } else if (!filter && fstate) {
- /* switch off filtering */
- /* flush stream */
- do {
- c_stream.next_out = (Bytef*)outbuf;
- c_stream.avail_out = OUTSIZE;
-
- err = deflate(&c_stream, Z_FINISH);
- if (err != Z_OK && err != Z_STREAM_END) {
- fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- n += a85write(f, outbuf, OUTSIZE-c_stream.avail_out);
- } while (err != Z_STREAM_END);
-
- n += a85finish(f);
-
- fstate = 0;
- }
- if (!fstate) {
- fwrite(s, 1, len, f);
- return n+len;
- }
-
- /* do the actual compression */
- c_stream.next_in = (Bytef*) s;
- c_stream.avail_in = len;
-
- do {
- c_stream.next_out = (Bytef*) outbuf;
- c_stream.avail_out = OUTSIZE;
-
- err = deflate(&c_stream, Z_NO_FLUSH);
- if (err != Z_OK) {
- fprintf(stderr, "deflate: %s (%d)\n", c_stream.msg, err);
- exit(2);
- }
- n += a85write(f, outbuf, OUTSIZE-c_stream.avail_out);
- } while (!c_stream.avail_out);
-
- return n;
-}
-
-#else /* HAVE_ZLIB */
-
-int pdf_xship(FILE *f, int filter, const char *s, int len) {
- return dummy_xship(f, filter, s, len);
-}
-
-int flate_xship(FILE *f, int filter, const char *s, int len) {
- return dummy_xship(f, filter, s, len);
-}
-
-#endif /* HAVE_ZLIB */
-
-/* ---------------------------------------------------------------------- */
-/* lzw interface: LZW (=postscript level 2) compression with a85.
- This relies on lzw.c/h to do the actual compression. */
-
-/* use Postscript level 2 compression. Ship len bytes from str. */
-int lzw_xship(FILE *f, int filter, const char *str, int len) {
- static int fstate = 0;
- static lzw_stream_t *s = NULL;
- char outbuf[OUTSIZE];
- int err;
- int n=0;
-
- if (filter && !fstate) {
- /* switch on filtering */
- if (filter == 1) {
- n += fprintf(f, "currentfile /ASCII85Decode filter /LZWDecode filter cvx exec\n");
- }
- s = lzw_init();
- if (s == NULL) {
- fprintf(stderr, "lzw_init: %s\n", strerror(errno));
- exit(2);
- }
- n += a85init(f);
- fstate = 1;
- } else if (!filter && fstate) {
- /* switch off filtering */
- /* flush stream */
- s->next_in = 0;
- s->avail_in = 0;
- do {
- s->next_out = outbuf;
- s->avail_out = OUTSIZE;
-
- err = lzw_compress(s, LZW_EOD);
- if (err) {
- fprintf(stderr, "lzw_compress: %s\n", strerror(errno));
- exit(2);
- }
- n += a85write(f, outbuf, OUTSIZE - s->avail_out);
- } while (s->avail_out == 0);
-
- n += a85finish(f);
-
- lzw_free(s);
- s = NULL;
-
- fstate = 0;
- }
- if (!fstate) {
- fwrite(str, 1, len, f);
- return n+len;
- }
-
- /* do the actual compression */
- s->next_in = str;
- s->avail_in = len;
-
- do {
- s->next_out = outbuf;
- s->avail_out = OUTSIZE;
-
- err = lzw_compress(s, LZW_NORMAL);
- if (err) {
- fprintf(stderr, "lzw_compress: %s\n", strerror(errno));
- exit(2);
- }
- n += a85write(f, outbuf, OUTSIZE - s->avail_out);
- } while (s->avail_out == 0);
-
- return n;
-}
-
-/* ---------------------------------------------------------------------- */
-/* a85 interface: a85 encoding without compression */
-
-/* ship len bytes from s using a85 encoding only. */
-int a85_xship(FILE *f, int filter, const char *s, int len) {
- static int fstate = 0;
- int n=0;
-
- if (filter && !fstate) {
- /* switch on filtering */
- if (filter == 1) {
- n += fprintf(f, "currentfile /ASCII85Decode filter cvx exec\n");
- }
- n += a85init(f);
- fstate = 1;
- } else if (!filter && fstate) {
- /* switch off filtering */
- /* flush stream */
- n += a85finish(f);
- fstate = 0;
- }
- if (!fstate) {
- fwrite(s, 1, len, f);
- return n+len;
- }
-
- n += a85write(f, s, len);
-
- return n;
-}
-
-/* ---------------------------------------------------------------------- */
-/* low-level a85 backend */
-
-static unsigned long a85buf[4];
-static int a85n;
-static int a85col;
-
-static int a85init(FILE *f) {
- a85n = 0;
- a85col = 0;
- return 0;
-}
-
-static int a85finish(FILE *f) {
- int r=0;
-
- if (a85n) {
- r+=a85out(f, a85n);
- }
- fputs("~>\n", f);
- return r+2;
-}
-
-static int a85write(FILE *f, const char *buf, int n) {
- int i;
- int r=0;
-
- for (i=0; i<n; i++) {
- a85buf[a85n] = (unsigned char)buf[i];
- a85n++;
-
- if (a85n == 4) {
- r+=a85out(f, 4);
- a85n = 0;
- }
- }
- return r;
-}
-
-static int a85out(FILE *f, int n) {
- char out[5];
- unsigned long s;
- int r=0;
- int i;
-
- for (i=n; i<4; i++) {
- a85buf[i] = 0;
- }
-
- s = (a85buf[0]<<24) + (a85buf[1]<<16) + (a85buf[2]<<8) + (a85buf[3]<<0);
-
- if (!s) {
- r+=a85spool(f, 'z');
- } else {
- for (i=4; i>=0; i--) {
- out[i] = s % 85;
- s /= 85;
- }
- for (i=0; i<n+1; i++) {
- r+=a85spool(f, out[i]+33);
- }
- }
- return r;
-}
-
-static int a85spool(FILE *f, char c) {
- fputc(c, f);
-
- a85col++;
- if (a85col>70) {
- fputc('\n', f);
- a85col=0;
- return 2;
- }
-
- return 1;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/flate.h b/Build/source/libs/potrace/potrace-src/src/flate.h
deleted file mode 100644
index d3a9961bcfd..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/flate.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef FLATE_H
-#define FLATE_H
-
-int dummy_xship(FILE *f, int filter, const char *s, int len);
-int flate_xship(FILE *f, int filter, const char *s, int len);
-int pdf_xship(FILE *f, int filter, const char *s, int len);
-int lzw_xship(FILE *f, int filter, const char *s, int len);
-int a85_xship(FILE *f, int filter, const char *s, int len);
-
-#endif /* FLATE_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/getopt.c b/Build/source/libs/potrace/potrace-src/src/getopt.c
deleted file mode 100644
index d889c3c8686..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/getopt.c
+++ /dev/null
@@ -1,1041 +0,0 @@
-/* Getopt for GNU.
- NOTE: getopt is now part of the C library, so if you don't know what
- "Keep this file name-space clean" means, talk to drepper@gnu.org
- before changing it!
-
- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
- Free Software Foundation, Inc.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
- Ditto for AIX 3.2 and <stdlib.h>. */
-#ifndef _NO_PROTO
-# define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-# ifndef const
-# define const
-# endif
-#endif
-
-#include <stdio.h>
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
- contain conflicting prototypes for getopt. */
-# include <stdlib.h>
-# include <unistd.h>
-#endif /* GNU C library. */
-
-#ifdef VMS
-# include <unixlib.h>
-# if HAVE_STRING_H - 0
-# include <string.h>
-# endif
-#endif
-
-#ifndef _
-/* This is for other GNU distributions with internationalized messages. */
-# if defined HAVE_LIBINTL_H || defined _LIBC
-# include <libintl.h>
-# ifndef _
-# define _(msgid) gettext (msgid)
-# endif
-# else
-# define _(msgid) (msgid)
-# endif
-#endif
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
- but it behaves differently for the user, since it allows the user
- to intersperse the options with the other arguments.
-
- As `getopt' works, it permutes the elements of ARGV so that,
- when it is done, all the options precede everything else. Thus
- all application programs are extended to handle flexible argument order.
-
- Setting the environment variable POSIXLY_CORRECT disables permutation.
- Then the behavior is completely standard.
-
- GNU application programs can use a third alternative mode in which
- they can distinguish the relative order of options and other arguments. */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-/* 1003.2 says this must be 1 before any call. */
-int optind = 1;
-
-/* Formerly, initialization of getopt depended on optind==0, which
- causes problems with re-calling getopt as programs generally don't
- know that. */
-
-int __getopt_initialized;
-
-/* The next char to be scanned in the option-element
- in which the last option character we returned was found.
- This allows us to pick up the scan where we left off.
-
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
- for unrecognized options. */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
- This must be initialized on some systems to avoid linking in the
- system's own getopt implementation. */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
- If the caller did not specify anything,
- the default is REQUIRE_ORDER if the environment variable
- POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
- REQUIRE_ORDER means don't recognize them as options;
- stop option processing when the first non-option is seen.
- This is what Unix does.
- This mode of operation is selected by either setting the environment
- variable POSIXLY_CORRECT, or using `+' as the first character
- of the list of option characters.
-
- PERMUTE is the default. We permute the contents of ARGV as we scan,
- so that eventually all the non-options are at the end. This allows options
- to be given in any order, even with programs that were not written to
- expect this.
-
- RETURN_IN_ORDER is an option available to programs that were written
- to expect options and other ARGV-elements in any order and that care about
- the ordering of the two. We describe each non-option ARGV-element
- as if it were the argument of an option with character code 1.
- Using `-' as the first character of the list of option characters
- selects this mode of operation.
-
- The special argument `--' forces an end of option-scanning regardless
- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- `--' can cause `getopt' to return -1 with `optind' != ARGC. */
-
-static enum
-{
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable. */
-static char *posixly_correct;
-
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
- because there are many ways it can cause trouble.
- On some systems, it contains special magic macros that don't work
- in GCC. */
-# include <string.h>
-# define my_index strchr
-#else
-
-# if HAVE_STRING_H
-# include <string.h>
-# else
-# include <strings.h>
-# endif
-
-/* Avoid depending on library functions or files
- whose names are inconsistent. */
-
-#ifndef getenv
-extern char *getenv ();
-#endif
-
-static char *
-my_index (str, chr)
- const char *str;
- int chr;
-{
- while (*str)
- {
- if (*str == chr)
- return (char *) str;
- str++;
- }
- return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
- If not using GCC, it is ok not to declare it. */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
- That was relevant to code that was here before. */
-# if (!defined __STDC__ || !__STDC__) && !defined strlen
-/* gcc with -traditional declares the built-in strlen to return int,
- and has done so at least since version 2.4.5. -- rms. */
-extern int strlen (const char *);
-# endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-
-/* Handle permutation of arguments. */
-
-/* Describe the part of ARGV that contains non-options that have
- been skipped. `first_nonopt' is the index in ARGV of the first of them;
- `last_nonopt' is the index after the last of them. */
-
-static int first_nonopt;
-static int last_nonopt;
-
-#ifdef _LIBC
-/* Bash 2.0 gives us an environment variable containing flags
- indicating ARGV elements that should not be considered arguments. */
-
-/* Defined in getopt_init.c */
-extern char *__getopt_nonoption_flags;
-
-static int nonoption_flags_max_len;
-static int nonoption_flags_len;
-
-static int original_argc;
-static char *const *original_argv;
-
-/* Make sure the environment variable bash 2.0 puts in the environment
- is valid for the getopt call we must make sure that the ARGV passed
- to getopt is that one passed to the process. */
-static void
-__attribute__ ((unused))
-store_args_and_env (int argc, char *const *argv)
-{
- /* XXX This is no good solution. We should rather copy the args so
- that we can compare them later. But we must not use malloc(3). */
- original_argc = argc;
- original_argv = argv;
-}
-# ifdef text_set_element
-text_set_element (__libc_subinit, store_args_and_env);
-# endif /* text_set_element */
-
-# define SWAP_FLAGS(ch1, ch2) \
- if (nonoption_flags_len > 0) \
- { \
- char __tmp = __getopt_nonoption_flags[ch1]; \
- __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
- __getopt_nonoption_flags[ch2] = __tmp; \
- }
-#else /* !_LIBC */
-# define SWAP_FLAGS(ch1, ch2)
-#endif /* _LIBC */
-
-/* Exchange two adjacent subsequences of ARGV.
- One subsequence is elements [first_nonopt,last_nonopt)
- which contains all the non-options that have been skipped so far.
- The other is elements [last_nonopt,optind), which contains all
- the options processed since those non-options were skipped.
-
- `first_nonopt' and `last_nonopt' are relocated so that they describe
- the new indices of the non-options in ARGV after they are moved. */
-
-#if defined __STDC__ && __STDC__
-static void exchange (char **);
-#endif
-
-static void
-exchange (argv)
- char **argv;
-{
- int bottom = first_nonopt;
- int middle = last_nonopt;
- int top = optind;
- char *tem;
-
- /* Exchange the shorter segment with the far end of the longer segment.
- That puts the shorter segment into the right place.
- It leaves the longer segment in the right place overall,
- but it consists of two parts that need to be swapped next. */
-
-#ifdef _LIBC
- /* First make sure the handling of the `__getopt_nonoption_flags'
- string can work normally. Our top argument must be in the range
- of the string. */
- if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
- {
- /* We must extend the array. The user plays games with us and
- presents new arguments. */
- char *new_str = malloc (top + 1);
- if (new_str == NULL)
- nonoption_flags_len = nonoption_flags_max_len = 0;
- else
- {
- memset (__mempcpy (new_str, __getopt_nonoption_flags,
- nonoption_flags_max_len),
- '\0', top + 1 - nonoption_flags_max_len);
- nonoption_flags_max_len = top + 1;
- __getopt_nonoption_flags = new_str;
- }
- }
-#endif
-
- while (top > middle && middle > bottom)
- {
- if (top - middle > middle - bottom)
- {
- /* Bottom segment is the short one. */
- int len = middle - bottom;
- register int i;
-
- /* Swap it with the top part of the top segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[top - (middle - bottom) + i];
- argv[top - (middle - bottom) + i] = tem;
- SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
- }
- /* Exclude the moved bottom segment from further swapping. */
- top -= len;
- }
- else
- {
- /* Top segment is the short one. */
- int len = top - middle;
- register int i;
-
- /* Swap it with the bottom part of the bottom segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[middle + i];
- argv[middle + i] = tem;
- SWAP_FLAGS (bottom + i, middle + i);
- }
- /* Exclude the moved top segment from further swapping. */
- bottom += len;
- }
- }
-
- /* Update records for the slots the non-options now occupy. */
-
- first_nonopt += (optind - last_nonopt);
- last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made. */
-
-#if defined __STDC__ && __STDC__
-static const char *_getopt_initialize (int, char *const *, const char *);
-#endif
-static const char *
-_getopt_initialize (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
-{
- /* Start processing options with ARGV-element 1 (since ARGV-element 0
- is the program name); the sequence of previously skipped
- non-option ARGV-elements is empty. */
-
- first_nonopt = last_nonopt = optind;
-
- nextchar = NULL;
-
- posixly_correct = getenv ("POSIXLY_CORRECT");
-
- /* Determine how to handle the ordering of options and nonoptions. */
-
- if (optstring[0] == '-')
- {
- ordering = RETURN_IN_ORDER;
- ++optstring;
- }
- else if (optstring[0] == '+')
- {
- ordering = REQUIRE_ORDER;
- ++optstring;
- }
- else if (posixly_correct != NULL)
- ordering = REQUIRE_ORDER;
- else
- ordering = PERMUTE;
-
-#ifdef _LIBC
- if (posixly_correct == NULL
- && argc == original_argc && argv == original_argv)
- {
- if (nonoption_flags_max_len == 0)
- {
- if (__getopt_nonoption_flags == NULL
- || __getopt_nonoption_flags[0] == '\0')
- nonoption_flags_max_len = -1;
- else
- {
- const char *orig_str = __getopt_nonoption_flags;
- int len = nonoption_flags_max_len = strlen (orig_str);
- if (nonoption_flags_max_len < argc)
- nonoption_flags_max_len = argc;
- __getopt_nonoption_flags =
- (char *) malloc (nonoption_flags_max_len);
- if (__getopt_nonoption_flags == NULL)
- nonoption_flags_max_len = -1;
- else
- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
- '\0', nonoption_flags_max_len - len);
- }
- }
- nonoption_flags_len = nonoption_flags_max_len;
- }
- else
- nonoption_flags_len = 0;
-#endif
-
- return optstring;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
- given in OPTSTRING.
-
- If an element of ARGV starts with '-', and is not exactly "-" or "--",
- then it is an option element. The characters of this element
- (aside from the initial '-') are option characters. If `getopt'
- is called repeatedly, it returns successively each of the option characters
- from each of the option elements.
-
- If `getopt' finds another option character, it returns that character,
- updating `optind' and `nextchar' so that the next call to `getopt' can
- resume the scan with the following option character or ARGV-element.
-
- If there are no more option characters, `getopt' returns -1.
- Then `optind' is the index in ARGV of the first ARGV-element
- that is not an option. (The ARGV-elements have been permuted
- so that those that are not options now come last.)
-
- OPTSTRING is a string containing the legitimate option characters.
- If an option character is seen that is not listed in OPTSTRING,
- return '?' after printing an error message. If you set `opterr' to
- zero, the error message is suppressed but we still return '?'.
-
- If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- so the following text in the same ARGV-element, or the text of the following
- ARGV-element, is returned in `optarg'. Two colons mean an option that
- wants an optional arg; if there is text in the current ARGV-element,
- it is returned in `optarg', otherwise `optarg' is set to zero.
-
- If OPTSTRING starts with `-' or `+', it requests different methods of
- handling the non-option ARGV-elements.
- See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
- Long-named options begin with `--' instead of `-'.
- Their names may be abbreviated as long as the abbreviation is unique
- or is an exact match for some defined option. If they have an
- argument, it follows the option name in the same ARGV-element, separated
- from the option name by a `=', or else the in next ARGV-element.
- When `getopt' finds a long-named option, it returns 0 if that option's
- `flag' field is nonzero, the value of the option's `val' field
- if the `flag' field is zero.
-
- The elements of ARGV aren't really const, because we permute them.
- But we pretend they're const in the prototype to be compatible
- with other systems.
-
- LONGOPTS is a vector of `struct option' terminated by an
- element containing a name which is zero.
-
- LONGIND returns the index in LONGOPT of the long-named option found.
- It is only valid when a long-named option has been found by the most
- recent call.
-
- If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- long-named options. */
-
-int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- int argc;
- char *const *argv;
- const char *optstring;
- const struct option *longopts;
- int *longind;
- int long_only;
-{
- int print_errors = opterr;
- if (optstring[0] == ':')
- print_errors = 0;
-
- if (argc < 1)
- return -1;
-
- optarg = NULL;
-
- if (optind == 0 || !__getopt_initialized)
- {
- if (optind == 0)
- optind = 1; /* Don't scan ARGV[0], the program name. */
- optstring = _getopt_initialize (argc, argv, optstring);
- __getopt_initialized = 1;
- }
-
- /* Test whether ARGV[optind] points to a non-option argument.
- Either it does not have option syntax, or there is an environment flag
- from the shell indicating it is not an option. The later information
- is only used when the used in the GNU libc. */
-#ifdef _LIBC
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
- || (optind < nonoption_flags_len \
- && __getopt_nonoption_flags[optind] == '1'))
-#else
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#endif
-
- if (nextchar == NULL || *nextchar == '\0')
- {
- /* Advance to the next ARGV-element. */
-
- /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
- moved back by the user (who may also have changed the arguments). */
- if (last_nonopt > optind)
- last_nonopt = optind;
- if (first_nonopt > optind)
- first_nonopt = optind;
-
- if (ordering == PERMUTE)
- {
- /* If we have just processed some options following some non-options,
- exchange them so that the options come first. */
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (last_nonopt != optind)
- first_nonopt = optind;
-
- /* Skip any additional non-options
- and extend the range of non-options previously skipped. */
-
- while (optind < argc && NONOPTION_P)
- optind++;
- last_nonopt = optind;
- }
-
- /* The special ARGV-element `--' means premature end of options.
- Skip it like a null option,
- then exchange with previous non-options as if it were an option,
- then skip everything else like a non-option. */
-
- if (optind != argc && !strcmp (argv[optind], "--"))
- {
- optind++;
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (first_nonopt == last_nonopt)
- first_nonopt = optind;
- last_nonopt = argc;
-
- optind = argc;
- }
-
- /* If we have done all the ARGV-elements, stop the scan
- and back over any non-options that we skipped and permuted. */
-
- if (optind == argc)
- {
- /* Set the next-arg-index to point at the non-options
- that we previously skipped, so the caller will digest them. */
- if (first_nonopt != last_nonopt)
- optind = first_nonopt;
- return -1;
- }
-
- /* If we have come to a non-option and did not permute it,
- either stop the scan or describe it to the caller and pass it by. */
-
- if (NONOPTION_P)
- {
- if (ordering == REQUIRE_ORDER)
- return -1;
- optarg = argv[optind++];
- return 1;
- }
-
- /* We have found another option-ARGV-element.
- Skip the initial punctuation. */
-
- nextchar = (argv[optind] + 1
- + (longopts != NULL && argv[optind][1] == '-'));
- }
-
- /* Decode the current option-ARGV-element. */
-
- /* Check whether the ARGV-element is a long option.
-
- If long_only and the ARGV-element has the form "-f", where f is
- a valid short option, don't consider it an abbreviated form of
- a long option that starts with f. Otherwise there would be no
- way to give the -f short option.
-
- On the other hand, if there's a long option "fubar" and
- the ARGV-element is "-fu", do consider that an abbreviation of
- the long option, just like "--fu", and not "-f" with arg "u".
-
- This distinction seems to be the most useful approach. */
-
- if (longopts != NULL
- && (argv[optind][1] == '-'
- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
- {
- char *nameend;
- const struct option *p;
- const struct option *pfound = NULL;
- int exact = 0;
- int ambig = 0;
- int indfound = -1;
- int option_index;
-
- for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
- /* Do nothing. */ ;
-
- /* Test all long options for either exact match
- or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
- {
- if ((unsigned int) (nameend - nextchar)
- == (unsigned int) strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else if (long_only
- || pfound->has_arg != p->has_arg
- || pfound->flag != p->flag
- || pfound->val != p->val)
- /* Second or later nonexact match found. */
- ambig = 1;
- }
-
- if (ambig && !exact)
- {
- if (print_errors)
- fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
- argv[0], argv[optind]);
- nextchar += strlen (nextchar);
- optind++;
- optopt = 0;
- return '?';
- }
-
- if (pfound != NULL)
- {
- option_index = indfound;
- optind++;
- if (*nameend)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = nameend + 1;
- else
- {
- if (print_errors)
- {
- if (argv[optind - 1][1] == '-')
- /* --option */
- fprintf (stderr,
- _("%s: option `--%s' doesn't allow an argument\n"),
- argv[0], pfound->name);
- else
- /* +option or -option */
- fprintf (stderr,
- _("%s: option `%c%s' doesn't allow an argument\n"),
- argv[0], argv[optind - 1][0], pfound->name);
- }
-
- nextchar += strlen (nextchar);
-
- optopt = pfound->val;
- return '?';
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (print_errors)
- fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
- nextchar += strlen (nextchar);
- optopt = pfound->val;
- return optstring[0] == ':' ? ':' : '?';
- }
- }
- nextchar += strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
-
- /* Can't find it as a long option. If this is not getopt_long_only,
- or the option starts with '--' or is not a valid short
- option, then it's an error.
- Otherwise interpret it as a short option. */
- if (!long_only || argv[optind][1] == '-'
- || my_index (optstring, *nextchar) == NULL)
- {
- if (print_errors)
- {
- if (argv[optind][1] == '-')
- /* --option */
- fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
- argv[0], nextchar);
- else
- /* +option or -option */
- fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
- argv[0], argv[optind][0], nextchar);
- }
- nextchar = (char *) "";
- optind++;
- optopt = 0;
- return '?';
- }
- }
-
- /* Look at and handle the next short option-character. */
-
- {
- char c = *nextchar++;
- char *temp = my_index (optstring, c);
-
- /* Increment `optind' when we start to process its last character. */
- if (*nextchar == '\0')
- ++optind;
-
- if (temp == NULL || c == ':')
- {
- if (print_errors)
- {
- if (posixly_correct)
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, _("%s: illegal option -- %c\n"),
- argv[0], c);
- else
- fprintf (stderr, _("%s: invalid option -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- return '?';
- }
- /* Convenience. Treat POSIX -W foo same as long option --foo */
- if (temp[0] == 'W' && temp[1] == ';')
- {
- char *nameend;
- const struct option *p;
- const struct option *pfound = NULL;
- int exact = 0;
- int ambig = 0;
- int indfound = 0;
- int option_index;
-
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (print_errors)
- {
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, _("%s: option requires an argument -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = '?';
- return c;
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
-
- /* optarg is now the argument, see if it's in the
- table of longopts. */
-
- for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
- /* Do nothing. */ ;
-
- /* Test all long options for either exact match
- or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
- {
- if ((unsigned int) (nameend - nextchar) == strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else
- /* Second or later nonexact match found. */
- ambig = 1;
- }
- if (ambig && !exact)
- {
- if (print_errors)
- fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
- argv[0], argv[optind]);
- nextchar += strlen (nextchar);
- optind++;
- return '?';
- }
- if (pfound != NULL)
- {
- option_index = indfound;
- if (*nameend)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = nameend + 1;
- else
- {
- if (print_errors)
- fprintf (stderr, _("%s: option `-W %s' doesn't allow an argument\n"),
- argv[0], pfound->name);
-
- nextchar += strlen (nextchar);
- return '?';
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (print_errors)
- fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
- nextchar += strlen (nextchar);
- return optstring[0] == ':' ? ':' : '?';
- }
- }
- nextchar += strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
- nextchar = NULL;
- return 'W'; /* Let the application handle it. */
- }
- if (temp[1] == ':')
- {
- if (temp[2] == ':')
- {
- /* This is an option that accepts an argument optionally. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- optind++;
- }
- else
- optarg = NULL;
- nextchar = NULL;
- }
- else
- {
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (print_errors)
- {
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr,
- _("%s: option requires an argument -- %c\n"),
- argv[0], c);
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = '?';
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
- nextchar = NULL;
- }
- }
- return c;
- }
-}
-
-int
-getopt (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
-{
- return _getopt_internal (argc, argv, optstring,
- (const struct option *) 0,
- (int *) 0,
- 0);
-}
-
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
- the above definition of `getopt'. */
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
-
- c = getopt (argc, argv, "abc:d:0123456789");
- if (c == -1)
- break;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
diff --git a/Build/source/libs/potrace/potrace-src/src/getopt1.c b/Build/source/libs/potrace/potrace-src/src/getopt1.c
deleted file mode 100644
index d983d120ac0..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/getopt1.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "getopt.h"
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-#include <stdlib.h>
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-int
-getopt_long (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-/* Like getopt_long, but '-' as well as '--' can indicate a long option.
- If an option that starts with '-' (not '--') doesn't match a long option,
- but does match a short option, it is parsed as a short option
- instead. */
-
-int
-getopt_long_only (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-}
-
-
-
-#ifdef TEST
-
-#include <stdio.h>
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
- int option_index = 0;
- static struct option long_options[] =
- {
- {"add", 1, 0, 0},
- {"append", 0, 0, 0},
- {"delete", 1, 0, 0},
- {"verbose", 0, 0, 0},
- {"create", 0, 0, 0},
- {"file", 1, 0, 0},
- {0, 0, 0, 0}
- };
-
- c = getopt_long (argc, argv, "abc:d:0123456789",
- long_options, &option_index);
- if (c == -1)
- break;
-
- switch (c)
- {
- case 0:
- printf ("option %s", long_options[option_index].name);
- if (optarg)
- printf (" with arg %s", optarg);
- printf ("\n");
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case 'd':
- printf ("option d with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
diff --git a/Build/source/libs/potrace/potrace-src/src/greymap.c b/Build/source/libs/potrace/potrace-src/src/greymap.c
deleted file mode 100644
index 0f97f12056e..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/greymap.c
+++ /dev/null
@@ -1,1084 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* Routines for manipulating greymaps, including reading pgm files. We
- only deal with greymaps of depth 8 bits. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <errno.h>
-#include <stddef.h>
-
-#include "greymap.h"
-#include "bitops.h"
-
-#define INTBITS (8*sizeof(int))
-
-#define mod(a,n) ((a)>=(n) ? (a)%(n) : (a)>=0 ? (a) : (n)-1-(-1-(a))%(n))
-
-static int gm_readbody_pnm(FILE *f, greymap_t **gmp, int magic);
-static int gm_readbody_bmp(FILE *f, greymap_t **gmp);
-
-#define TRY(x) if (x) goto try_error
-#define TRY_EOF(x) if (x) goto eof
-#define TRY_STD(x) if (x) goto std_error
-
-/* ---------------------------------------------------------------------- */
-/* basic greymap routines */
-
-/* calculate the size, in bytes, required for the data area of a
- greymap of the given dy and h. Assume h >= 0. Return -1 if the size
- does not fit into the ptrdiff_t type. */
-static inline ptrdiff_t getsize(int dy, int h) {
- ptrdiff_t size;
-
- if (dy < 0) {
- dy = -dy;
- }
-
- size = (ptrdiff_t)dy * (ptrdiff_t)h * (ptrdiff_t)sizeof(gm_sample_t);
-
- /* check for overflow error */
- if (size < 0 || (h != 0 && dy != 0 && size / h / dy != sizeof(gm_sample_t))) {
- return -1;
- }
-
- return size;
-}
-
-/* return the size, in bytes, of the data area of the greymap. Return
- -1 if the size does not fit into the ptrdiff_t type; however, this
- cannot happen if the bitmap is well-formed, i.e., if created with
- gm_new or gm_dup. */
-static inline ptrdiff_t gm_size(const greymap_t *gm) {
- return getsize(gm->dy, gm->h);
-}
-
-
-
-/* return new greymap initialized to 0. NULL with errno on error.
- Assumes w, h >= 0. */
-greymap_t *gm_new(int w, int h) {
- greymap_t *gm;
- int dy = w;
- ptrdiff_t size;
-
- size = getsize(dy, h);
- if (size < 0) {
- errno = ENOMEM;
- return NULL;
- }
- if (size == 0) {
- size = 1; /* make surecmalloc() doesn't return NULL */
- }
-
- gm = (greymap_t *) malloc(sizeof(greymap_t));
- if (!gm) {
- return NULL;
- }
- gm->w = w;
- gm->h = h;
- gm->dy = dy;
- gm->base = (gm_sample_t *) calloc(1, size);
- if (!gm->base) {
- free(gm);
- return NULL;
- }
- gm->map = gm->base;
- return gm;
-}
-
-/* free the given greymap */
-void gm_free(greymap_t *gm) {
- if (gm) {
- free(gm->base);
- }
- free(gm);
-}
-
-/* duplicate the given greymap. Return NULL on error with errno set. */
-greymap_t *gm_dup(greymap_t *gm) {
- greymap_t *gm1 = gm_new(gm->w, gm->h);
- int y;
-
- if (!gm1) {
- return NULL;
- }
- for (y=0; y<gm->h; y++) {
- memcpy(gm_scanline(gm1, y), gm_scanline(gm, y), (size_t)gm1->dy * sizeof(gm_sample_t));
- }
- return gm1;
-}
-
-/* clear the given greymap to color b. */
-void gm_clear(greymap_t *gm, int b) {
- ptrdiff_t size = gm_size(gm);
- int x, y;
-
- if (b==0) {
- memset(gm->base, 0, size);
- } else {
- for (y=0; y<gm->h; y++) {
- for (x=0; x<gm->w; x++) {
- GM_UPUT(gm, x, y, b);
- }
- }
- }
-}
-
-/* turn the given greymap upside down. This does not move the pixel
- data or change the base address. */
-static inline void gm_flip(greymap_t *gm) {
- int dy = gm->dy;
-
- if (gm->h == 0 || gm->h == 1) {
- return;
- }
-
- gm->map = gm_scanline(gm, gm->h - 1);
- gm->dy = -dy;
-}
-
-/* resize the greymap to the given new height. The pixel data remains
- bottom-aligned (truncated at the top) when dy >= 0 and top-aligned
- (truncated at the bottom) when dy < 0. Return 0 on success, or 1 on
- error with errno set. If the new height is <= the old one, no error
- should occur. If the new height is larger, the additional pixel
- data is *not* initialized. */
-static inline int gm_resize(greymap_t *gm, int h) {
- int dy = gm->dy;
- ptrdiff_t newsize;
- gm_sample_t *newbase;
-
- if (dy < 0) {
- gm_flip(gm);
- }
-
- newsize = getsize(dy, h);
- if (newsize < 0) {
- errno = ENOMEM;
- goto error;
- }
- if (newsize == 0) {
- newsize = 1; /* make sure realloc() doesn't return NULL */
- }
-
- newbase = (gm_sample_t *)realloc(gm->base, newsize);
- if (newbase == NULL) {
- goto error;
- }
- gm->base = newbase;
- gm->map = newbase;
- gm->h = h;
-
- if (dy < 0) {
- gm_flip(gm);
- }
- return 0;
-
- error:
- if (dy < 0) {
- gm_flip(gm);
- }
- return 1;
-}
-
-
-/* ---------------------------------------------------------------------- */
-/* routines for reading pnm streams */
-
-/* read next character after whitespace and comments. Return EOF on
- end of file or error. */
-static int fgetc_ws(FILE *f) {
- int c;
-
- while (1) {
- c = fgetc(f);
- if (c=='#') {
- while (1) {
- c = fgetc(f);
- if (c=='\n' || c==EOF) {
- break;
- }
- }
- }
- /* space, tab, line feed, carriage return, form-feed */
- if (c!=' ' && c!='\t' && c!='\r' && c!='\n' && c!=12) {
- return c;
- }
- }
-}
-
-/* skip whitespace and comments, then read a non-negative decimal
- number from a stream. Return -1 on EOF. Tolerate other errors (skip
- bad characters). Do not the read any characters following the
- number (put next character back into the stream) */
-
-static int readnum(FILE *f) {
- int c;
- int acc;
-
- /* skip whitespace and comments */
- while (1) {
- c = fgetc_ws(f);
- if (c==EOF) {
- return -1;
- }
- if (c>='0' && c<='9') {
- break;
- }
- }
-
- /* first digit is already in c */
- acc = c-'0';
- while (1) {
- c = fgetc(f);
- if (c==EOF) {
- break;
- }
- if (c<'0' || c>'9') {
- ungetc(c, f);
- break;
- }
- acc *= 10;
- acc += c-'0';
- }
- return acc;
-}
-
-/* similar to readnum, but read only a single 0 or 1, and do not read
- any characters after it. */
-
-static int readbit(FILE *f) {
- int c;
-
- /* skip whitespace and comments */
- while (1) {
- c = fgetc_ws(f);
- if (c==EOF) {
- return -1;
- }
- if (c>='0' && c<='1') {
- break;
- }
- }
-
- return c-'0';
-}
-
-/* ---------------------------------------------------------------------- */
-
-/* read a PNM stream: P1-P6 format (see pnm(5)), or a BMP stream, and
- convert the output to a greymap. Return greymap in *gmp. Return 0
- on success, -1 on error with errno set, -2 on bad file format (with
- error message in gm_read_error), and 1 on premature end of file, -3
- on empty file (including files with only whitespace and comments),
- -4 if wrong magic number. If the return value is >=0, *gmp is
- valid. */
-
-const char *gm_read_error = NULL;
-
-int gm_read(FILE *f, greymap_t **gmp) {
- int magic[2];
-
- /* read magic number. We ignore whitespace and comments before the
- magic, for the benefit of concatenated files in P1-P3 format.
- Multiple P1-P3 images in a single file are not formally allowed
- by the PNM standard, but there is no harm in being lenient. */
-
- magic[0] = fgetc_ws(f);
- if (magic[0] == EOF) {
- /* files which contain only comments and whitespace count as "empty" */
- return -3;
- }
- magic[1] = fgetc(f);
- if (magic[0] == 'P' && magic[1] >= '1' && magic[1] <= '6') {
- return gm_readbody_pnm(f, gmp, magic[1]);
- }
- if (magic[0] == 'B' && magic[1] == 'M') {
- return gm_readbody_bmp(f, gmp);
- }
- return -4;
-}
-
-/* ---------------------------------------------------------------------- */
-/* read PNM format */
-
-/* read PNM stream after magic number. Return values as for gm_read */
-static int gm_readbody_pnm(FILE *f, greymap_t **gmp, int magic) {
- greymap_t *gm;
- int x, y, i, j, b, b1, sum;
- int bpr; /* bytes per row (as opposed to 4*gm->c) */
- int w, h, max;
- int realheight; /* in case of incomplete file, keeps track of how
- many scan lines actually contain data */
-
- gm = NULL;
-
- w = readnum(f);
- if (w<0) {
- goto format_error;
- }
-
- h = readnum(f);
- if (h<0) {
- goto format_error;
- }
-
- /* allocate greymap */
- gm = gm_new(w, h);
- if (!gm) {
- goto std_error;
- }
-
- realheight = 0;
-
- switch (magic) {
- default:
- /* not reached */
- goto format_error;
-
- case '1':
- /* read P1 format: PBM ascii */
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = readbit(f);
- if (b<0) {
- goto eof;
- }
- GM_UPUT(gm, x, y, b ? 0 : 255);
- }
- }
- break;
-
- case '2':
- /* read P2 format: PGM ascii */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = readnum(f);
- if (b<0) {
- goto eof;
- }
- GM_UPUT(gm, x, y, b*255/max);
- }
- }
- break;
-
- case '3':
- /* read P3 format: PPM ascii */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- sum = 0;
- for (i=0; i<3; i++) {
- b = readnum(f);
- if (b<0) {
- goto eof;
- }
- sum += b;
- }
- GM_UPUT(gm, x, y, sum*(255/3)/max);
- }
- }
- break;
-
- case '4':
- /* read P4 format: PBM raw */
-
- b = fgetc(f); /* read single white-space character after height */
- if (b==EOF) {
- goto format_error;
- }
-
- bpr = (w+7)/8;
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (i=0; i<bpr; i++) {
- b = fgetc(f);
- if (b==EOF) {
- goto eof;
- }
- for (j=0; j<8; j++) {
- GM_PUT(gm, i*8+j, y, b & (0x80 >> j) ? 0 : 255);
- }
- }
- }
- break;
-
- case '5':
- /* read P5 format: PGM raw */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- b = fgetc(f); /* read single white-space character after max */
- if (b==EOF) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- b = fgetc(f);
- if (b==EOF)
- goto eof;
- if (max>=256) {
- b <<= 8;
- b1 = fgetc(f);
- if (b1==EOF)
- goto eof;
- b |= b1;
- }
- GM_UPUT(gm, x, y, b*255/max);
- }
- }
- break;
-
- case '6':
- /* read P6 format: PPM raw */
-
- max = readnum(f);
- if (max<1) {
- goto format_error;
- }
-
- b = fgetc(f); /* read single white-space character after max */
- if (b==EOF) {
- goto format_error;
- }
-
- for (y=0; y<h; y++) {
- realheight = y+1;
- for (x=0; x<w; x++) {
- sum = 0;
- for (i=0; i<3; i++) {
- b = fgetc(f);
- if (b==EOF) {
- goto eof;
- }
- if (max>=256) {
- b <<= 8;
- b1 = fgetc(f);
- if (b1==EOF)
- goto eof;
- b |= b1;
- }
- sum += b;
- }
- GM_UPUT(gm, x, y, sum*(255/3)/max);
- }
- }
- break;
- }
-
- gm_flip(gm);
- *gmp = gm;
- return 0;
-
- eof:
- TRY_STD(gm_resize(gm, realheight));
- gm_flip(gm);
- *gmp = gm;
- return 1;
-
- format_error:
- gm_free(gm);
- if (magic == '1' || magic == '4') {
- gm_read_error = "invalid pbm file";
- } else if (magic == '2' || magic == '5') {
- gm_read_error = "invalid pgm file";
- } else {
- gm_read_error = "invalid ppm file";
- }
- return -2;
-
- std_error:
- gm_free(gm);
- return -1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* read BMP format */
-
-struct bmp_info_s {
- unsigned int FileSize;
- unsigned int reserved;
- unsigned int DataOffset;
- unsigned int InfoSize;
- unsigned int w; /* width */
- unsigned int h; /* height */
- unsigned int Planes;
- unsigned int bits; /* bits per sample */
- unsigned int comp; /* compression mode */
- unsigned int ImageSize;
- unsigned int XpixelsPerM;
- unsigned int YpixelsPerM;
- unsigned int ncolors; /* number of colors in palette */
- unsigned int ColorsImportant;
- unsigned int RedMask;
- unsigned int GreenMask;
- unsigned int BlueMask;
- unsigned int AlphaMask;
- unsigned int ctbits; /* sample size for color table */
- int topdown; /* top-down mode? */
-};
-typedef struct bmp_info_s bmp_info_t;
-
-/* auxiliary */
-
-static int bmp_count = 0; /* counter for byte padding */
-static int bmp_pos = 0; /* counter from start of BMP data */
-
-/* read n-byte little-endian integer. Return 1 on EOF or error, else
- 0. Assume n<=4. */
-static int bmp_readint(FILE *f, int n, unsigned int *p) {
- int i;
- unsigned int sum = 0;
- int b;
-
- for (i=0; i<n; i++) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- sum += (unsigned)b << (8*i);
- }
- bmp_count += n;
- bmp_pos += n;
- *p = sum;
- return 0;
-}
-
-/* reset padding boundary */
-static void bmp_pad_reset(void) {
- bmp_count = 0;
-}
-
-/* read padding bytes to 4-byte boundary. Return 1 on EOF or error,
- else 0. */
-static int bmp_pad(FILE *f) {
- int c, i, b;
-
- c = (-bmp_count) & 3;
- for (i=0; i<c; i++) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- }
- bmp_pos += c;
- bmp_count = 0;
- return 0;
-}
-
-/* forward to the new file position. Return 1 on EOF or error, else 0 */
-static int bmp_forward(FILE *f, int pos) {
- int b;
-
- while (bmp_pos < pos) {
- b = fgetc(f);
- if (b==EOF) {
- return 1;
- }
- bmp_pos++;
- bmp_count++;
- }
- return 0;
-}
-
-/* safe colortable access */
-#define COLTABLE(c) ((c) < bmpinfo.ncolors ? coltable[(c)] : 0)
-
-/* read BMP stream after magic number. Return values as for gm_read.
- We choose to be as permissive as possible, since there are many
- programs out there which produce BMP. For instance, ppmtobmp can
- produce codings with anywhere from 1-8 or 24 bits per sample,
- although most specifications only allow 1,4,8,24,32. We can also
- read both the old and new OS/2 BMP formats in addition to the
- Windows BMP format. */
-static int gm_readbody_bmp(FILE *f, greymap_t **gmp) {
- bmp_info_t bmpinfo;
- int *coltable;
- unsigned int b, c;
- unsigned int i, j;
- greymap_t *gm;
- unsigned int x, y;
- int col[2];
- unsigned int bitbuf;
- unsigned int n;
- unsigned int redshift, greenshift, blueshift;
- int realheight; /* in case of incomplete file, keeps track of how
- many scan lines actually contain data */
-
- gm_read_error = NULL;
- gm = NULL;
- coltable = NULL;
-
- bmp_pos = 2; /* set file position */
-
- /* file header (minus magic number) */
- TRY(bmp_readint(f, 4, &bmpinfo.FileSize));
- TRY(bmp_readint(f, 4, &bmpinfo.reserved));
- TRY(bmp_readint(f, 4, &bmpinfo.DataOffset));
-
- /* info header */
- TRY(bmp_readint(f, 4, &bmpinfo.InfoSize));
- if (bmpinfo.InfoSize == 40 || bmpinfo.InfoSize == 64
- || bmpinfo.InfoSize == 108 || bmpinfo.InfoSize == 124) {
- /* Windows or new OS/2 format */
- bmpinfo.ctbits = 32; /* sample size in color table */
- TRY(bmp_readint(f, 4, &bmpinfo.w));
- TRY(bmp_readint(f, 4, &bmpinfo.h));
- TRY(bmp_readint(f, 2, &bmpinfo.Planes));
- TRY(bmp_readint(f, 2, &bmpinfo.bits));
- TRY(bmp_readint(f, 4, &bmpinfo.comp));
- TRY(bmp_readint(f, 4, &bmpinfo.ImageSize));
- TRY(bmp_readint(f, 4, &bmpinfo.XpixelsPerM));
- TRY(bmp_readint(f, 4, &bmpinfo.YpixelsPerM));
- TRY(bmp_readint(f, 4, &bmpinfo.ncolors));
- TRY(bmp_readint(f, 4, &bmpinfo.ColorsImportant));
- if (bmpinfo.InfoSize >= 108) { /* V4 and V5 bitmaps */
- TRY(bmp_readint(f, 4, &bmpinfo.RedMask));
- TRY(bmp_readint(f, 4, &bmpinfo.GreenMask));
- TRY(bmp_readint(f, 4, &bmpinfo.BlueMask));
- TRY(bmp_readint(f, 4, &bmpinfo.AlphaMask));
- }
- if (bmpinfo.w > 0x7fffffff) {
- goto format_error;
- }
- if (bmpinfo.h > 0x7fffffff) {
- bmpinfo.h = (-bmpinfo.h) & 0xffffffff;
- bmpinfo.topdown = 1;
- } else {
- bmpinfo.topdown = 0;
- }
- if (bmpinfo.h > 0x7fffffff) {
- goto format_error;
- }
- } else if (bmpinfo.InfoSize == 12) {
- /* old OS/2 format */
- bmpinfo.ctbits = 24; /* sample size in color table */
- TRY(bmp_readint(f, 2, &bmpinfo.w));
- TRY(bmp_readint(f, 2, &bmpinfo.h));
- TRY(bmp_readint(f, 2, &bmpinfo.Planes));
- TRY(bmp_readint(f, 2, &bmpinfo.bits));
- bmpinfo.comp = 0;
- bmpinfo.ncolors = 0;
- bmpinfo.topdown = 0;
- } else {
- goto format_error;
- }
-
- if (bmpinfo.comp == 3 && bmpinfo.InfoSize < 108) {
- /* bitfield feature is only understood with V4 and V5 format */
- goto format_error;
- }
-
- if (bmpinfo.comp > 3 || bmpinfo.bits > 32) {
- goto format_error;
- }
-
- /* forward to color table (e.g., if bmpinfo.InfoSize == 64) */
- TRY(bmp_forward(f, 14+bmpinfo.InfoSize));
-
- if (bmpinfo.Planes != 1) {
- gm_read_error = "cannot handle bmp planes";
- goto format_error; /* can't handle planes */
- }
-
- if (bmpinfo.ncolors == 0 && bmpinfo.bits <= 8) {
- bmpinfo.ncolors = 1 << bmpinfo.bits;
- }
-
- /* color table, present only if bmpinfo.bits <= 8. */
- if (bmpinfo.bits <= 8) {
- coltable = (int *) calloc(bmpinfo.ncolors, sizeof(int));
- if (!coltable) {
- goto std_error;
- }
- /* NOTE: since we are reading a greymap, we can immediately convert
- the color table entries to grey values. */
- for (i=0; i<bmpinfo.ncolors; i++) {
- TRY(bmp_readint(f, bmpinfo.ctbits/8, &c));
- c = ((c>>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff);
- coltable[i] = c/3;
- }
- }
-
- /* forward to data */
- if (bmpinfo.InfoSize != 12) { /* not old OS/2 format */
- TRY(bmp_forward(f, bmpinfo.DataOffset));
- }
-
- /* allocate greymap */
- gm = gm_new(bmpinfo.w, bmpinfo.h);
- if (!gm) {
- goto std_error;
- }
-
- realheight = 0;
-
- switch (bmpinfo.bits + 0x100*bmpinfo.comp) {
-
- default:
- goto format_error;
- break;
-
- case 0x001: /* monochrome palette */
-
- /* raster data */
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (i=0; 8*i<bmpinfo.w; i++) {
- TRY_EOF(bmp_readint(f, 1, &b));
- for (j=0; j<8; j++) {
- GM_PUT(gm, i*8+j, y, b & (0x80 >> j) ? COLTABLE(1) : COLTABLE(0));
- }
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x002: /* 2-bit to 8-bit palettes */
- case 0x003:
- case 0x004:
- case 0x005:
- case 0x006:
- case 0x007:
- case 0x008:
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- bitbuf = 0; /* bit buffer: bits in buffer are high-aligned */
- n = 0; /* number of bits currently in bitbuffer */
- for (x=0; x<bmpinfo.w; x++) {
- if (n < bmpinfo.bits) {
- TRY_EOF(bmp_readint(f, 1, &b));
- bitbuf |= b << (INTBITS - 8 - n);
- n += 8;
- }
- b = bitbuf >> (INTBITS - bmpinfo.bits);
- bitbuf <<= bmpinfo.bits;
- n -= bmpinfo.bits;
- GM_UPUT(gm, x, y, COLTABLE(b));
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x010: /* 16-bit encoding */
- /* can't do this format because it is not well-documented and I
- don't have any samples */
- gm_read_error = "cannot handle bmp 16-bit coding";
- goto format_error;
- break;
-
- case 0x018: /* 24-bit encoding */
- case 0x020: /* 32-bit encoding */
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (x=0; x<bmpinfo.w; x++) {
- TRY_EOF(bmp_readint(f, bmpinfo.bits/8, &c));
- c = ((c>>16) & 0xff) + ((c>>8) & 0xff) + (c & 0xff);
- GM_UPUT(gm, x, y, c/3);
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x320: /* 32-bit encoding with bitfields */
- redshift = lobit(bmpinfo.RedMask);
- greenshift = lobit(bmpinfo.GreenMask);
- blueshift = lobit(bmpinfo.BlueMask);
-
- for (y=0; y<bmpinfo.h; y++) {
- realheight = y+1;
- bmp_pad_reset();
- for (x=0; x<bmpinfo.w; x++) {
- TRY_EOF(bmp_readint(f, bmpinfo.bits/8, &c));
- c = ((c & bmpinfo.RedMask) >> redshift) + ((c & bmpinfo.GreenMask) >> greenshift) + ((c & bmpinfo.BlueMask) >> blueshift);
- GM_UPUT(gm, x, y, c/3);
- }
- TRY(bmp_pad(f));
- }
- break;
-
- case 0x204: /* 4-bit runlength compressed encoding (RLE4) */
- x = 0;
- y = 0;
- while (1) {
- TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */
- TRY_EOF(bmp_readint(f, 1, &c)); /* argument */
- if (b>0) {
- /* repeat count */
- col[0] = COLTABLE((c>>4) & 0xf);
- col[1] = COLTABLE(c & 0xf);
- for (i=0; i<b && x<bmpinfo.w; i++) {
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- GM_PUT(gm, x, y, col[i&1]);
- x++;
- }
- } else if (c == 0) {
- /* end of line */
- y++;
- x = 0;
- } else if (c == 1) {
- /* end of greymap */
- break;
- } else if (c == 2) {
- /* "delta": skip pixels in x and y directions */
- TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */
- TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */
- x += b;
- y += c;
- } else {
- /* verbatim segment */
- for (i=0; i<c; i++) {
- if ((i&1)==0) {
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- GM_PUT(gm, x, y, COLTABLE((b>>(4-4*(i&1))) & 0xf));
- x++;
- }
- if ((c+1) & 2) {
- /* pad to 16-bit boundary */
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- }
- }
- break;
-
- case 0x108: /* 8-bit runlength compressed encoding (RLE8) */
- x = 0;
- y = 0;
- while (1) {
- TRY_EOF(bmp_readint(f, 1, &b)); /* opcode */
- TRY_EOF(bmp_readint(f, 1, &c)); /* argument */
- if (b>0) {
- /* repeat count */
- for (i=0; i<b; i++) {
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- GM_PUT(gm, x, y, COLTABLE(c));
- x++;
- }
- } else if (c == 0) {
- /* end of line */
- y++;
- x = 0;
- } else if (c == 1) {
- /* end of greymap */
- break;
- } else if (c == 2) {
- /* "delta": skip pixels in x and y directions */
- TRY_EOF(bmp_readint(f, 1, &b)); /* x offset */
- TRY_EOF(bmp_readint(f, 1, &c)); /* y offset */
- x += b;
- y += c;
- } else {
- /* verbatim segment */
- for (i=0; i<c; i++) {
- TRY_EOF(bmp_readint(f, 1, &b));
- if (x>=bmpinfo.w) {
- x=0;
- y++;
- }
- if (x>=bmpinfo.w || y>=bmpinfo.h) {
- break;
- }
- realheight = y+1;
- GM_PUT(gm, x, y, COLTABLE(b));
- x++;
- }
- if (c & 1) {
- /* pad input to 16-bit boundary */
- TRY_EOF(bmp_readint(f, 1, &b));
- }
- }
- }
- break;
-
- } /* switch */
-
- /* skip any potential junk after the data section, but don't
- complain in case EOF is encountered */
- bmp_forward(f, bmpinfo.FileSize);
-
- free(coltable);
- if (bmpinfo.topdown) {
- gm_flip(gm);
- }
- *gmp = gm;
- return 0;
-
- eof:
- TRY_STD(gm_resize(gm, realheight));
- free(coltable);
- if (bmpinfo.topdown) {
- gm_flip(gm);
- }
- *gmp = gm;
- return 1;
-
- format_error:
- try_error:
- free(coltable);
- gm_free(gm);
- if (!gm_read_error) {
- gm_read_error = "invalid bmp file";
- }
- return -2;
-
- std_error:
- free(coltable);
- gm_free(gm);
- return -1;
-}
-
-/* ---------------------------------------------------------------------- */
-
-/* write a pgm stream, either P2 or (if raw != 0) P5 format. Include
- one-line comment if non-NULL. Mode determines how out-of-range
- color values are converted. Gamma is the desired gamma correction,
- if any (set to 2.2 if the image is to look optimal on a CRT monitor,
- 2.8 for LCD). Set to 1.0 for no gamma correction */
-
-int gm_writepgm(FILE *f, greymap_t *gm, const char *comment, int raw, int mode, double gamma) {
- int x, y, v;
- int gammatable[256];
-
- /* prepare gamma correction lookup table */
- if (gamma != 1.0) {
- gammatable[0] = 0;
- for (v=1; v<256; v++) {
- gammatable[v] = (int)(255 * exp(log(v/255.0)/gamma) + 0.5);
- }
- } else {
- for (v=0; v<256; v++) {
- gammatable[v] = v;
- }
- }
-
- fprintf(f, raw ? "P5\n" : "P2\n");
- if (comment && *comment) {
- fprintf(f, "# %s\n", comment);
- }
- fprintf(f, "%d %d 255\n", gm->w, gm->h);
- for (y=gm->h-1; y>=0; y--) {
- for (x=0; x<gm->w; x++) {
- v = GM_UGET(gm, x, y);
- if (mode == GM_MODE_NONZERO) {
- if (v > 255) {
- v = 510 - v;
- }
- if (v < 0) {
- v = 0;
- }
- } else if (mode == GM_MODE_ODD) {
- v = mod(v, 510);
- if (v > 255) {
- v = 510 - v;
- }
- } else if (mode == GM_MODE_POSITIVE) {
- if (v < 0) {
- v = 0;
- } else if (v > 255) {
- v = 255;
- }
- } else if (mode == GM_MODE_NEGATIVE) {
- v = 510 - v;
- if (v < 0) {
- v = 0;
- } else if (v > 255) {
- v = 255;
- }
- }
- v = gammatable[v];
-
- if (raw) {
- fputc(v, f);
- } else {
- fprintf(f, x == gm->w-1 ? "%d\n" : "%d ", v);
- }
- }
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------- */
-/* output - for primitive debugging purposes only! */
-
-/* print greymap to screen */
-int gm_print(FILE *f, greymap_t *gm) {
- int x, y;
- int xx, yy;
- int d, t;
- int sw, sh;
-
- sw = gm->w < 79 ? gm->w : 79;
- sh = gm->w < 79 ? gm->h : gm->h*sw*44/(79*gm->w);
-
- for (yy=sh-1; yy>=0; yy--) {
- for (xx=0; xx<sw; xx++) {
- d=0;
- t=0;
- for (x=xx*gm->w/sw; x<(xx+1)*gm->w/sw; x++) {
- for (y=yy*gm->h/sh; y<(yy+1)*gm->h/sh; y++) {
- d += GM_GET(gm, x, y);
- t += 256;
- }
- }
- fputc("*#=- "[5*d/t], f); /* what a cute trick :) */
- }
- fputc('\n', f);
- }
- return 0;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/greymap.h b/Build/source/libs/potrace/potrace-src/src/greymap.h
deleted file mode 100644
index a1cea516338..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/greymap.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef GREYMAP_H
-#define GREYMAP_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-
-/* type for greymap samples */
-typedef signed short int gm_sample_t;
-
-/* internal format for greymaps. Note: in this format, rows are
- ordered from bottom to top. The pixels in each row are given from
- left to right. */
-struct greymap_s {
- int w; /* width, in pixels */
- int h; /* height, in pixels */
- int dy; /* offset between scanlines (in samples);
- can be negative */
- gm_sample_t *base; /* root of allocated data */
- gm_sample_t *map; /* points to the lower left pixel */
-};
-typedef struct greymap_s greymap_t;
-
-/* macros for accessing pixel at index (x,y). Note that the origin is
- in the *lower* left corner. U* macros omit the bounds check. */
-
-#define gm_scanline(gm, y) ((gm)->map + (ptrdiff_t)(y)*(ptrdiff_t)(gm)->dy)
-#define gm_index(gm, x, y) (gm_scanline(gm, y) + (x))
-#define gm_safe(gm, x, y) ((int)(x)>=0 && (int)(x)<(gm)->w && (int)(y)>=0 && (int)(y)<(gm)->h)
-#define gm_bound(x, m) ((x)<0 ? 0 : (x)>=(m) ? (m)-1 : (x))
-#define GM_UGET(gm, x, y) (*gm_index(gm, x, y))
-#define GM_UINC(gm, x, y, b) (*gm_index(gm, x, y) += (gm_sample_t)(b))
-#define GM_UINV(gm, x, y) (*gm_index(gm, x, y) = 255 - *gm_index(gm, x, y))
-#define GM_UPUT(gm, x, y, b) (*gm_index(gm, x, y) = (gm_sample_t)(b))
-#define GM_GET(gm, x, y) (gm_safe(gm, x, y) ? GM_UGET(gm, x, y) : 0)
-#define GM_INC(gm, x, y, b) (gm_safe(gm, x, y) ? GM_UINC(gm, x, y, b) : 0)
-#define GM_INV(gm, x, y) (gm_safe(gm, x, y) ? GM_UINV(gm, x, y) : 0)
-#define GM_PUT(gm, x, y, b) (gm_safe(gm, x, y) ? GM_UPUT(gm, x, y, b) : 0)
-#define GM_BGET(gm, x, y) ((gm)->w == 0 || (gm)->h == 0 ? 0 : GM_UGET(gm, gm_bound(x, (gm)->w), gm_bound(y, (gm)->h)))
-
-/* modes for cutting off out-of-range values. The following names
- refer to winding numbers. I.e., make a pixel black if winding
- number is nonzero, odd, or positive, respectively. We assume that 0
- winding number corresponds to white (255). */
-#define GM_MODE_NONZERO 1
-#define GM_MODE_ODD 2
-#define GM_MODE_POSITIVE 3
-#define GM_MODE_NEGATIVE 4
-
-extern const char *gm_read_error;
-
-greymap_t *gm_new(int w, int h);
-greymap_t *gm_dup(greymap_t *gm);
-void gm_free(greymap_t *gm);
-void gm_clear(greymap_t *gm, int b);
-int gm_read(FILE *f, greymap_t **gmp);
-int gm_writepgm(FILE *f, greymap_t *gm, const char *comment, int raw, int mode, double gamma);
-int gm_print(FILE *f, greymap_t *gm);
-
-#endif /* GREYMAP_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h b/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h
deleted file mode 100644
index 20daef6168b..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/include/getopt/getopt.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Declarations for getopt.
- Copyright (C) 1989,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-#ifndef _GETOPT_H
-
-#ifndef __need_getopt
-# define _GETOPT_H 1
-#endif
-
-/* If __GNU_LIBRARY__ is not already defined, either we are being used
- standalone, or this is the first header included in the source file.
- If we are being used with glibc, we need to include <features.h>, but
- that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
- not defined, include <ctype.h>, which will pull in <features.h> for us
- if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
- doesn't flood the namespace with stuff the way some other headers do.) */
-#if !defined __GNU_LIBRARY__
-# include <ctype.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns -1, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-
-#ifndef __need_getopt
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of `struct option' terminated by an element containing a name which is
- zero.
-
- The field `has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field `flag' is not NULL, it points to a variable that is set
- to the value given in the field `val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an `int' to
- a compiled-in constant, such as set a value from `optarg', set the
- option's `flag' field to zero and its `val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero `flag' field, `getopt'
- returns the contents of the `val' field. */
-
-struct option
-{
-# if defined __STDC__ && __STDC__
- const char *name;
-# else
- char *name;
-# endif
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'. */
-
-# define no_argument 0
-# define required_argument 1
-# define optional_argument 2
-#endif /* need getopt */
-
-
-/* Get definitions and prototypes for functions to process the
- arguments in ARGV (ARGC of them, minus the program name) for
- options given in OPTS.
-
- Return the option character from OPTS just read. Return -1 when
- there are no more options. For unrecognized options, or options
- missing arguments, `optopt' is set to the option letter, and '?' is
- returned.
-
- The OPTS string is a list of characters which are recognized option
- letters, optionally followed by colons, specifying that that letter
- takes an argument, to be placed in `optarg'.
-
- If a letter in OPTS is followed by two colons, its argument is
- optional. This behavior is specific to the GNU `getopt'.
-
- The argument `--' causes premature termination of argument
- scanning, explicitly telling `getopt' that there are no more
- options.
-
- If OPTS begins with `--', then non-option arguments are treated as
- arguments to the option '\0'. This behavior is specific to the GNU
- `getopt'. */
-
-#if defined __STDC__ && __STDC__
-# ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in stdlib.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-# else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-# endif /* __GNU_LIBRARY__ */
-
-# ifndef __need_getopt
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind);
-
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind,
- int long_only);
-# endif
-#else /* not __STDC__ */
-extern int getopt ();
-# ifndef __need_getopt
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-# endif
-#endif /* __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Make sure we later can get all the definitions and declarations. */
-#undef __need_getopt
-
-#endif /* getopt.h */
diff --git a/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym b/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym
deleted file mode 100644
index 74d55c87482..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/libpotrace-export.sym
+++ /dev/null
@@ -1,5 +0,0 @@
-potrace_state_free
-potrace_param_default
-potrace_trace
-potrace_param_free
-potrace_version
diff --git a/Build/source/libs/potrace/potrace-src/src/lists.h b/Build/source/libs/potrace/potrace-src/src/lists.h
deleted file mode 100644
index f76bdcde14b..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/lists.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef _PS_LISTS_H
-#define _PS_LISTS_H
-
-/* here we define some general list macros. Because they are macros,
- they should work on any datatype with a "->next" component. Some of
- them use a "hook". If elt and list are of type t* then hook is of
- type t**. A hook stands for an insertion point in the list, i.e.,
- either before the first element, or between two elements, or after
- the last element. If an operation "sets the hook" for an element,
- then the hook is set to just before the element. One can insert
- something at a hook. One can also unlink at a hook: this means,
- unlink the element just after the hook. By "to unlink", we mean the
- element is removed from the list, but not deleted. Thus, it and its
- components still need to be freed. */
-
-/* Note: these macros are somewhat experimental. Only the ones that
- are actually *used* have been tested. So be careful to test any
- that you use. Looking at the output of the preprocessor, "gcc -E"
- (possibly piped though "indent"), might help too. Also: these
- macros define some internal (local) variables that start with
- "_". */
-
-/* we enclose macro definitions whose body consists of more than one
- statement in MACRO_BEGIN and MACRO_END, rather than '{' and '}'. The
- reason is that we want to be able to use the macro in a context
- such as "if (...) macro(...); else ...". If we didn't use this obscure
- trick, we'd have to omit the ";" in such cases. */
-
-#define MACRO_BEGIN do {
-#define MACRO_END } while (0)
-
-/* ---------------------------------------------------------------------- */
-/* macros for singly-linked lists */
-
-/* traverse list. At the end, elt is set to NULL. */
-#define list_forall(elt, list) for (elt=list; elt!=NULL; elt=elt->next)
-
-/* set elt to the first element of list satisfying boolean condition
- c, or NULL if not found */
-#define list_find(elt, list, c) \
- MACRO_BEGIN list_forall(elt, list) if (c) break; MACRO_END
-
-/* like forall, except also set hook for elt. */
-#define list_forall2(elt, list, hook) \
- for (elt=list, hook=&list; elt!=NULL; hook=&elt->next, elt=elt->next)
-
-/* same as list_find, except also set hook for elt. */
-#define list_find2(elt, list, c, hook) \
- MACRO_BEGIN list_forall2(elt, list, hook) if (c) break; MACRO_END
-
-/* same, except only use hook. */
-#define _list_forall_hook(list, hook) \
- for (hook=&list; *hook!=NULL; hook=&(*hook)->next)
-
-/* same, except only use hook. Note: c may only refer to *hook, not elt. */
-#define _list_find_hook(list, c, hook) \
- MACRO_BEGIN _list_forall_hook(list, hook) if (c) break; MACRO_END
-
-/* insert element after hook */
-#define list_insert_athook(elt, hook) \
- MACRO_BEGIN elt->next = *hook; *hook = elt; MACRO_END
-
-/* insert element before hook */
-#define list_insert_beforehook(elt, hook) \
- MACRO_BEGIN elt->next = *hook; *hook = elt; hook=&elt->next; MACRO_END
-
-/* unlink element after hook, let elt be unlinked element, or NULL.
- hook remains. */
-#define list_unlink_athook(list, elt, hook) \
- MACRO_BEGIN \
- elt = hook ? *hook : NULL; if (elt) { *hook = elt->next; elt->next = NULL; }\
- MACRO_END
-
-/* unlink the specific element, if it is in the list. Otherwise, set
- elt to NULL */
-#define list_unlink(listtype, list, elt) \
- MACRO_BEGIN \
- listtype **_hook; \
- _list_find_hook(list, *_hook==elt, _hook); \
- list_unlink_athook(list, elt, _hook); \
- MACRO_END
-
-/* prepend elt to list */
-#define list_prepend(list, elt) \
- MACRO_BEGIN elt->next = list; list = elt; MACRO_END
-
-/* append elt to list. */
-#define list_append(listtype, list, elt) \
- MACRO_BEGIN \
- listtype **_hook; \
- _list_forall_hook(list, _hook) {} \
- list_insert_athook(elt, _hook); \
- MACRO_END
-
-/* unlink the first element that satisfies the condition. */
-#define list_unlink_cond(listtype, list, elt, c) \
- MACRO_BEGIN \
- listtype **_hook; \
- list_find2(elt, list, c, _hook); \
- list_unlink_athook(list, elt, _hook); \
- MACRO_END
-
-/* let elt be the nth element of the list, starting to count from 0.
- Return NULL if out of bounds. */
-#define list_nth(elt, list, n) \
- MACRO_BEGIN \
- int _x; /* only evaluate n once */ \
- for (_x=(n), elt=list; _x && elt; _x--, elt=elt->next) {} \
- MACRO_END
-
-/* let elt be the nth element of the list, starting to count from 0.
- Return NULL if out of bounds. */
-#define list_nth_hook(elt, list, n, hook) \
- MACRO_BEGIN \
- int _x; /* only evaluate n once */ \
- for (_x=(n), elt=list, hook=&list; _x && elt; _x--, hook=&elt->next, elt=elt->next) {} \
- MACRO_END
-
-/* set n to the length of the list */
-#define list_length(listtype, list, n) \
- MACRO_BEGIN \
- listtype *_elt; \
- n=0; \
- list_forall(_elt, list) \
- n++; \
- MACRO_END
-
-/* set n to the index of the first element satisfying cond, or -1 if
- none found. Also set elt to the element, or NULL if none found. */
-#define list_index(list, n, elt, c) \
- MACRO_BEGIN \
- n=0; \
- list_forall(elt, list) { \
- if (c) break; \
- n++; \
- } \
- if (!elt) \
- n=-1; \
- MACRO_END
-
-/* set n to the number of elements in the list that satisfy condition c */
-#define list_count(list, n, elt, c) \
- MACRO_BEGIN \
- n=0; \
- list_forall(elt, list) { \
- if (c) n++; \
- } \
- MACRO_END
-
-/* let elt be each element of the list, unlinked. At the end, set list=NULL. */
-#define list_forall_unlink(elt, list) \
- for (elt=list; elt ? (list=elt->next, elt->next=NULL), 1 : 0; elt=list)
-
-/* reverse a list (efficient) */
-#define list_reverse(listtype, list) \
- MACRO_BEGIN \
- listtype *_list1=NULL, *elt; \
- list_forall_unlink(elt, list) \
- list_prepend(_list1, elt); \
- list = _list1; \
- MACRO_END
-
-/* insert the element ELT just before the first element TMP of the
- list for which COND holds. Here COND must be a condition of ELT and
- TMP. Typical usage is to insert an element into an ordered list:
- for instance, list_insert_ordered(listtype, list, elt, tmp,
- elt->size <= tmp->size). Note: if we give a "less than or equal"
- condition, the new element will be inserted just before a sequence
- of equal elements. If we give a "less than" condition, the new
- element will be inserted just after a list of equal elements.
- Note: it is much more efficient to construct a list with
- list_prepend and then order it with list_merge_sort, than to
- construct it with list_insert_ordered. */
-#define list_insert_ordered(listtype, list, elt, tmp, cond) \
- MACRO_BEGIN \
- listtype **_hook; \
- _list_find_hook(list, (tmp=*_hook, (cond)), _hook); \
- list_insert_athook(elt, _hook); \
- MACRO_END
-
-/* sort the given list, according to the comparison condition.
- Typical usage is list_sort(listtype, list, a, b, a->size <
- b->size). Note: if we give "less than or equal" condition, each
- segment of equal elements will be reversed in order. If we give a
- "less than" condition, each segment of equal elements will retain
- the original order. The latter is slower but sometimes
- prettier. Average running time: n*n/2. */
-#define list_sort(listtype, list, a, b, cond) \
- MACRO_BEGIN \
- listtype *_newlist=NULL; \
- list_forall_unlink(a, list) \
- list_insert_ordered(listtype, _newlist, a, b, cond); \
- list = _newlist; \
- MACRO_END
-
-/* a much faster sort algorithm (merge sort, n log n worst case). It
- is required that the list type has an additional, unused next1
- component. Note there is no curious reversal of order of equal
- elements as for list_sort. */
-
-#define list_mergesort(listtype, list, a, b, cond) \
- MACRO_BEGIN \
- listtype *_elt, **_hook1; \
- \
- for (_elt=list; _elt; _elt=_elt->next1) { \
- _elt->next1 = _elt->next; \
- _elt->next = NULL; \
- } \
- do { \
- _hook1 = &(list); \
- while ((a = *_hook1) != NULL && (b = a->next1) != NULL ) { \
- _elt = b->next1; \
- _list_merge_cond(listtype, a, b, cond, *_hook1); \
- _hook1 = &((*_hook1)->next1); \
- *_hook1 = _elt; \
- } \
- } while (_hook1 != &(list)); \
- MACRO_END
-
-/* merge two sorted lists. Store result at &result */
-#define _list_merge_cond(listtype, a, b, cond, result) \
- MACRO_BEGIN \
- listtype **_hook; \
- _hook = &(result); \
- while (1) { \
- if (a==NULL) { \
- *_hook = b; \
- break; \
- } else if (b==NULL) { \
- *_hook = a; \
- break; \
- } else if (cond) { \
- *_hook = a; \
- _hook = &(a->next); \
- a = a->next; \
- } else { \
- *_hook = b; \
- _hook = &(b->next); \
- b = b->next; \
- } \
- } \
- MACRO_END
-
-/* ---------------------------------------------------------------------- */
-/* macros for doubly-linked lists */
-
-#define dlist_append(head, end, elt) \
- MACRO_BEGIN \
- elt->prev = end; \
- elt->next = NULL; \
- if (end) { \
- end->next = elt; \
- } else { \
- head = elt; \
- } \
- end = elt; \
- MACRO_END
-
-/* let elt be each element of the list, unlinked. At the end, set list=NULL. */
-#define dlist_forall_unlink(elt, head, end) \
- for (elt=head; elt ? (head=elt->next, elt->next=NULL, elt->prev=NULL), 1 : (end=NULL, 0); elt=head)
-
-/* unlink the first element of the list */
-#define dlist_unlink_first(head, end, elt) \
- MACRO_BEGIN \
- elt = head; \
- if (head) { \
- head = head->next; \
- if (head) { \
- head->prev = NULL; \
- } else { \
- end = NULL; \
- } \
- elt->prev = NULL; \
- elt->next = NULL; \
- } \
- MACRO_END
-
-#endif /* _PS_LISTS_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/lzw.c b/Build/source/libs/potrace/potrace-src/src/lzw.c
deleted file mode 100644
index dc9d6f761d1..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/lzw.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-/* code for adaptive LZW compression, as used in PostScript. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-#include "lists.h"
-#include "bitops.h"
-#include "lzw.h"
-
-/* ---------------------------------------------------------------------- */
-/* compression state specification */
-
-/* The compression algorithm follows the following specification,
- expressed as a state machine. A state is a triple {s,d,n}, where s
- is a string of input symbols, d is a dictionary, which is a
- function from strings to output symbols, and n is the dictionary
- size, or equivalently, the next unused output symbol. There are
- also special states init and stop. emit[b, code] is a function
- which emits the code 'code' as a b-bit value into the output
- bitstream. hibit(n) returns the least number of binary digits
- required to represent n.
-
- init ---> {[], newdict, 258}
-
- where [] is the empty string, and newdict maps each of the 256
- singleton strings to itself. (Note that there are two special
- output symbols 256 and 257, so that the next available one is
- 258). Note: hibit(258)=9.
-
- {[], d, n} (input c) ---> (emit[hibit(n), 256]) {c, d, n}
-
- {s,d,n} (input c) ---> {s*c,d,n}
-
- if s!=[], s*c is in the domain of d. Here s*c is the strings s
- extended by the character c.
-
- {s,d,n} (input c) ---> (emit[hibit(n), d(s)]) {c,d',n+1}
-
- if s!=[], s*c is not in the domain of d, and hibit(n+2) <= 12.
- Here d'=d+{s*c->n}.
-
- {s,d,n} (input c) --->
- (emit[hibit(n), d(s)]) (emit[hibit(n+1), 256]) {c, newdict, 258}
-
- if s!=[], s*c is not in the domain of d, and hibit(n+2) > 12.
-
- {s,d,n} (input EOD) ---> (emit[hibit(n), d(s)]) (emit[hibit(n+1), 257]) stop
-
- where s != []. Here, EOD stands for end-of-data.
-
- {[],d,n} (input EOD) ---> (emit[hibit(n), 256]) (emit[hibit(n), 257]) stop
-
- Notes:
-
- * Each reachable state {s,d,n} satisfies hibit(n+1) <= 12.
- * Only codes of 12 or fewer bits are emitted.
- * Each reachable state {s,d,n} satisfies s=[] or s is in the domain of d.
- * The domain of d is always prefix closed (except for the empty prefix)
- * The state machine is deterministic and non-blocking.
-
-*/
-
-
-/* ---------------------------------------------------------------------- */
-/* private state */
-
-#define BITBUF_TYPE unsigned int
-
-/* the dictionary is implemented as a tree of strings under the prefix
- order. The tree is in turns represented as a linked list of
- lzw_dict_t structures, with "children" pointing to a node's first
- child, and "next" pointing to a node's next sibling. As an
- optimization, the top-level nodes (singleton strings) are
- implemented lazily, i.e., the corresponding entry is not actually
- created until it is accessed. */
-
-struct lzw_dict_s {
- char c; /* last character of string represented by this entry */
- unsigned int code; /* code for the string represented by this entry */
- int freq; /* how often searched? For optimization only */
- struct lzw_dict_s *children; /* list of sub-entries */
- struct lzw_dict_s *next; /* for making a linked list */
-};
-typedef struct lzw_dict_s lzw_dict_t;
-
-/* A state {s,d,n} is represented by the "dictionary state" part of
- the lzw_state_t structure. Here, s is a pointer directly to the node
- of the dictionary structure corresponding to the string s, or NULL
- if s=[]. Further, the lzw_state_t structure contains a buffer of
- pending output bits, and a flag indicating whether the EOD (end of
- data) has been reached in the input. */
-
-struct lzw_state_s {
- /* dictionary state */
- int n; /* current size of the dictionary */
- lzw_dict_t *d; /* pointer to dictionary */
- lzw_dict_t *s; /* pointer to current string, or NULL at beginning */
-
- /* buffers for pending output */
- BITBUF_TYPE buf; /* bits scheduled for output - left aligned, 0 padded */
- int bufsize; /* number of bits scheduled for output. */
- int eod; /* flush buffer? */
-};
-typedef struct lzw_state_s lzw_state_t;
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions which operate on dictionary states */
-
-/* recursively free an lzw_dict_t object */
-static void lzw_free_dict(lzw_dict_t *s) {
- lzw_dict_t *e;
-
- list_forall_unlink(e, s) {
- lzw_free_dict(e->children);
- free(e);
- }
-}
-
-/* re-initialize the lzw state's dictionary state to "newdict",
- freeing any old dictionary. */
-static void lzw_clear_table(lzw_state_t *st) {
-
- lzw_free_dict(st->d);
- st->d = NULL;
- st->n = 258;
- st->s = NULL;
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions for reading/writing the bit buffer */
-
-/* write the code to the bit buffer. Precondition st->bufsize <= 7.
- Note: this does not change the dictionary state; in particular,
- n must be updated between consecutive calls. */
-static inline void lzw_emit(unsigned int code, lzw_state_t *st) {
- BITBUF_TYPE mask;
- int bits = hibit(st->n);
-
- /* fill bit buffer */
- mask = (1 << bits) - 1;
- code &= mask;
-
- st->buf |= code << (8*sizeof(BITBUF_TYPE) - st->bufsize - bits);
- st->bufsize += bits;
-}
-
-/* transfer one byte from bit buffer to output. Precondition:
- s->avail_out > 0. */
-static inline void lzw_read_bitbuf(lzw_stream_t *s) {
- int ch;
- lzw_state_t *st = (lzw_state_t *)s->internal;
-
- ch = st->buf >> (8*sizeof(BITBUF_TYPE)-8);
- st->buf <<= 8;
- st->bufsize -= 8;
-
- s->next_out[0] = ch;
- s->next_out++;
- s->avail_out--;
-}
-
-/* ---------------------------------------------------------------------- */
-/* The following functions implement the state machine. */
-
-/* perform state transition of the state st on input character
- ch. This updates the dictionary state and/or writes to the bit
- buffer. Precondition: st->bufsize <= 7. Return 0 on success, or 1
- on error with errno set. */
-static int lzw_encode_char(lzw_state_t *st, char c) {
- lzw_dict_t *e;
-
- /* st = {s,d,n}. hibit(n+1)<=12. */
-
- /* {[], d, n} (input c) ---> (emit[hibit(n), 256]) {c, d, n} */
- if (st->s == NULL) {
- lzw_emit(256, st);
- goto singleton; /* enter singleton state c */
- }
-
- /* {s,d,n} (input c) ---> {s*c,d,n} */
- list_find(e, st->s->children, e->c == c);
- if (e) {
- e->freq++;
- st->s = e;
- return 0;
- }
-
- /* {s,d,n} (input c) ---> (emit[hibit(n), d(s)]) {c,d',n+1} */
- /* {s,d,n} (input c) --->
- (emit[hibit(n), d(s)]) (emit[hibit(n+1), 256]) {c, newdict, 258} */
-
- lzw_emit(st->s->code, st); /* 9-12 bits */
- if (st->n >= 4094) { /* hibit(n+2) > 12 */
- st->n++;
- lzw_emit(256, st);
- goto dictfull; /* reset dictionary and enter singleton state c */
- }
-
- /* insert new code in dictionary, if possible */
- e = (lzw_dict_t *)malloc(sizeof(lzw_dict_t));
- if (!e) {
- return 1;
- }
- e->c = c;
- e->code = st->n;
- e->freq = 1;
- e->children = NULL;
- list_prepend(st->s->children, e);
- st->n++;
- goto singleton; /* enter singleton state c */
-
- dictfull: /* reset dictionary and enter singleton state c */
- lzw_clear_table(st);
- /* fall through */
-
- singleton: /* enter singleton state c */
- list_find(e, st->d, e->c == c);
- if (!e) { /* not found: lazily add it */
- e = (lzw_dict_t *)malloc(sizeof(lzw_dict_t));
- if (!e) {
- return 1;
- }
- e->c = c;
- e->code = (unsigned char)c;
- e->freq = 0;
- e->children = NULL;
- list_prepend(st->d, e);
- }
- e->freq++;
- st->s = e;
- return 0;
-}
-
-/* perform state transition of the state st on input EOD. The leaves
- the dictionary state undefined and writes to the bit buffer.
- Precondition: st->bufsize <= 7. This function must be called
- exactly once, at the end of the stream. */
-static void lzw_encode_eod(lzw_state_t *st) {
-
- /* {[],d,n} (input EOD) --->
- (emit[hibit(n), 256]) (emit[hibit(n), 257]) stop */
- if (st->s == NULL) {
- lzw_emit(256, st); /* 9 bits */
- st->n=258;
- lzw_emit(257, st); /* 9 bits */
- return;
- }
-
- /* {s,d,n} (input EOD) --->
- (emit[hibit(n), code]) (emit[hibit(n+1), 257]) stop */
-
- lzw_emit(st->s->code, st); /* 9-12 bits */
- st->n++;
- lzw_emit(257, st); /* 9-12 bits */
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* User visible functions. These implement a buffer interface. See
- lzw.h for the API description. */
-
-lzw_stream_t *lzw_init(void) {
- lzw_stream_t *s = NULL;
- lzw_state_t *st = NULL;
-
- s = (lzw_stream_t *)malloc(sizeof(lzw_stream_t));
- if (s==NULL) {
- goto fail;
- }
- st = (lzw_state_t *)malloc(sizeof(lzw_state_t));
- if (st==NULL) {
- goto fail;
- }
- st->buf = 0;
- st->bufsize = 0;
- st->eod = 0;
- st->d = NULL;
- lzw_clear_table(st);
- s->internal = (void *) st;
- return s;
-
- fail:
- free(s);
- free(st);
- return NULL;
-}
-
-int lzw_compress(lzw_stream_t *s, int mode) {
- int r;
- lzw_state_t *st = (lzw_state_t *)s->internal;
-
- while (st->eod == 0) {
- /* empty bit buffer */
- while (st->bufsize > 7) {
- if (s->avail_out == 0) {
- return 0;
- } else {
- lzw_read_bitbuf(s);
- }
- }
- /* fill bit buffer */
- if (s->avail_in == 0) {
- break;
- } else {
- r = lzw_encode_char(st, s->next_in[0]);
- if (r) {
- if (r==2) {
- errno = EINVAL;
- }
- return 1;
- }
- s->next_in++;
- s->avail_in--;
- }
- }
-
- if (mode==LZW_EOD && st->eod == 0) {
- st->eod = 1;
- lzw_encode_eod(st);
- }
-
- /* flush bit buffer */
- if (st->eod) {
- while (st->bufsize > 0) {
- if (s->avail_out == 0) {
- return 0;
- } else {
- lzw_read_bitbuf(s);
- }
- }
- }
-
- return 0;
-}
-
-void lzw_free(lzw_stream_t *s) {
- lzw_state_t *st = (lzw_state_t *)s->internal;
-
- lzw_free_dict(st->d);
- free(st);
- free(s);
-}
-
-/* ---------------------------------------------------------------------- */
-/* main function for testing and illustration purposes */
-
-#ifdef LZW_MAIN
-
-int main() {
- lzw_stream_t *s;
- int ch;
- char inbuf[100];
- char outbuf[100];
- int i, r;
- int mode;
-
- s = lzw_init();
- if (!s) {
- goto error;
- }
- mode = LZW_NORMAL;
-
- while (1) {
- /* fill inbuf */
- for (i=0; i<100; i++) {
- ch = fgetc(stdin);
- if (ch==EOF) {
- break;
- }
- inbuf[i] = ch;
- }
- if (i<100) { /* end of input */
- mode = LZW_EOD;
- }
-
- /* compress */
- s->next_in = inbuf;
- s->avail_in = i;
- do {
- s->next_out = outbuf;
- s->avail_out = 100;
- r = lzw_compress(s, mode);
- if (r) {
- goto error;
- }
- fwrite(outbuf, 1, 100-s->avail_out, stdout);
- } while (s->avail_out==0);
- if (mode == LZW_EOD) {
- break;
- }
- }
- fflush(stdout);
- lzw_free(s);
-
- return 0;
-
- error:
- fprintf(stderr, "lzw: %s\n", strerror(errno));
- lzw_free(s);
- return 1;
-
-}
-#endif
-
diff --git a/Build/source/libs/potrace/potrace-src/src/lzw.h b/Build/source/libs/potrace/potrace-src/src/lzw.h
deleted file mode 100644
index f30fc49ad34..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/lzw.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#define LZW_NORMAL 0
-#define LZW_EOD 1
-
-/* user visible state */
-
-struct lzw_stream_s {
- const char *next_in; /* pointer to next input character */
- int avail_in; /* number of input chars available */
- char *next_out; /* pointer to next free byte in output buffer */
- int avail_out; /* remaining size of output buffer */
-
- void *internal; /* internal state, not user accessible */
-};
-typedef struct lzw_stream_s lzw_stream_t;
-
-/* user visible functions */
-
-/* The interface for compression and decompression is the same. The
- application must first call lzw_init to create and initialize a
- compression object. Then it calls lzw_compress on this object
- repeatedly, as follows: next_in and next_out must point to valid,
- non-overlapping regions of memory of size at least avail_in and
- avail_out, respectively. The lzw_compress function will read and
- process as many input bytes as possible as long as there is room in
- the output buffer. It will update next_in, avail_in, next_out, and
- avail_out accordingly. Some input may be consumed without producing
- any output, or some output may be produced without consuming any
- input. However, the lzw_compress function makes progress in the
- sense that, after calling this function, at least one of avail_in
- or avail_out is guaranteed to be 0. The mode flag is normally set
- to LZW_NORMAL. It can be set to LZW_EOD (end of data) to indicate
- that the current input buffer represents the entire remaining input
- data stream. When called with mode=LZW_EOD, and avail_out is
- non-zero after the call, then the application may conclude that the
- end of output has been reached. (However, if avail_out==0 after the
- call, then lzw_compress should be called again with the remaining
- input, if any). Finally, lzw_free should be called to deallocate
- the lzw_stream. Lzw_init returns NULL on error, with errno
- set. Lzw_compress returns 0 on success, and 1 on error with errno
- set. EINVAL is used to indicate an internal error, which should not
- happen. */
-
-lzw_stream_t *lzw_init(void);
-int lzw_compress(lzw_stream_t *s, int mode);
-void lzw_free(lzw_stream_t *s);
diff --git a/Build/source/libs/potrace/potrace-src/src/main.c b/Build/source/libs/potrace/potrace-src/src/main.c
deleted file mode 100644
index 1722e69af19..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/main.c
+++ /dev/null
@@ -1,1274 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifndef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200809L
-#endif
-
-#ifndef _NETBSD_SOURCE
-#define _NETBSD_SOURCE 1
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <strings.h>
-#include <getopt.h>
-#include <math.h>
-
-#include "main.h"
-#include "potracelib.h"
-#include "backend_pdf.h"
-#include "backend_eps.h"
-#include "backend_pgm.h"
-#include "backend_svg.h"
-#include "backend_xfig.h"
-#include "backend_dxf.h"
-#include "backend_geojson.h"
-#include "potracelib.h"
-#include "bitmap_io.h"
-#include "bitmap.h"
-#include "platform.h"
-#include "auxiliary.h"
-#include "progress_bar.h"
-#include "trans.h"
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-#define UNDEF ((double)(1e30)) /* a value to represent "undefined" */
-
-struct info_s info;
-
-/* ---------------------------------------------------------------------- */
-/* some data structures for option processing */
-
-struct pageformat_s {
- const char *name;
- int w, h;
-};
-typedef struct pageformat_s pageformat_t;
-
-/* dimensions of the various page formats, in postscript points */
-static pageformat_t pageformat[] = {
- { "a4", 595, 842 },
- { "a3", 842, 1191 },
- { "a5", 421, 595 },
- { "b5", 516, 729 },
- { "letter", 612, 792 },
- { "legal", 612, 1008 },
- { "tabloid", 792, 1224 },
- { "statement", 396, 612 },
- { "executive", 540, 720 },
- { "folio", 612, 936 },
- { "quarto", 610, 780 },
- { "10x14", 720, 1008 },
- { NULL, 0, 0 },
-};
-
-struct turnpolicy_s {
- const char *name;
- int n;
-};
-typedef struct turnpolicy_s turnpolicy_t;
-
-/* names of turn policies */
-static turnpolicy_t turnpolicy[] = {
- {"black", POTRACE_TURNPOLICY_BLACK},
- {"white", POTRACE_TURNPOLICY_WHITE},
- {"left", POTRACE_TURNPOLICY_LEFT},
- {"right", POTRACE_TURNPOLICY_RIGHT},
- {"minority", POTRACE_TURNPOLICY_MINORITY},
- {"majority", POTRACE_TURNPOLICY_MAJORITY},
- {"random", POTRACE_TURNPOLICY_RANDOM},
- {NULL, 0},
-};
-
-/* backends and their characteristics */
-struct backend_s {
- const char *name; /* name of this backend */
- const char *ext; /* file extension */
- int fixed; /* fixed page size backend? */
- int pixel; /* pixel-based backend? */
- int multi; /* multi-page backend? */
- int (*init_f)(FILE *fout); /* initialization function */
- int (*page_f)(FILE *fout, potrace_path_t *plist, imginfo_t *imginfo);
- /* per-bitmap function */
- int (*term_f)(FILE *fout); /* finalization function */
- int opticurve; /* opticurve capable (true Bezier curves?) */
-};
-typedef struct backend_s backend_t;
-
-static backend_t backend[] = {
- { "svg", ".svg", 0, 0, 0, NULL, page_svg, NULL, 1 },
- { "pdf", ".pdf", 0, 0, 1, init_pdf, page_pdf, term_pdf, 1 },
- { "pdfpage", ".pdf", 1, 0, 1, init_pdf, page_pdfpage, term_pdf, 1 },
- { "eps", ".eps", 0, 0, 0, NULL, page_eps, NULL, 1 },
- { "postscript", ".ps", 1, 0, 1, init_ps, page_ps, term_ps, 1 },
- { "ps", ".ps", 1, 0, 1, init_ps, page_ps, term_ps, 1 },
- { "dxf", ".dxf", 0, 1, 0, NULL, page_dxf, NULL, 1 },
- { "geojson", ".json",0, 1, 0, NULL, page_geojson, NULL, 1 },
- { "pgm", ".pgm", 0, 1, 1, NULL, page_pgm, NULL, 1 },
- { "gimppath", ".svg", 0, 1, 0, NULL, page_gimp, NULL, 1 },
- { "xfig", ".fig", 1, 0, 0, NULL, page_xfig, NULL, 0 },
- { NULL, NULL, 0, 0, 0, NULL, NULL, NULL, 0 },
-};
-
-/* look up a backend by name. If found, return 0 and set *bp. If not
- found leave *bp unchanged and return 1, or 2 on ambiguous
- prefix. */
-static int backend_lookup(const char *name, backend_t **bp) {
- int i;
- int m=0; /* prefix matches */
- backend_t *b = NULL;
-
- for (i=0; backend[i].name; i++) {
- if (strcasecmp(backend[i].name, name)==0) {
- *bp = &backend[i];
- return 0;
- } else if (strncasecmp(backend[i].name, name, strlen(name))==0) {
- m++;
- b = &backend[i];
- }
- }
- /* if there was no exact match, and exactly one prefix match, use that */
- if (m==1) {
- *bp = b;
- return 0;
- } else if (m) {
- return 2;
- } else {
- return 1;
- }
-}
-
-/* list all available backends by name, in a comma separated list.
- Assume the cursor starts in column j, and break lines at length
- linelen. Do not output any trailing punctuation. Return the column
- the cursor is in. */
-static int backend_list(FILE *fout, int j, int linelen) {
- int i;
-
- for (i=0; backend[i].name; i++) {
- if (j + (int)strlen(backend[i].name) > linelen) {
- fprintf(fout, "\n");
- j = 0;
- }
- j += fprintf(fout, "%s", backend[i].name);
- if (backend[i+1].name) {
- j += fprintf(fout, ", ");
- }
- }
- return j;
-}
-
-/* ---------------------------------------------------------------------- */
-/* some info functions */
-
-static void license(FILE *f) {
- fprintf(f,
- "This program is free software; you can redistribute it and/or modify\n"
- "it under the terms of the GNU General Public License as published by\n"
- "the Free Software Foundation; either version 2 of the License, or\n"
- "(at your option) any later version.\n"
- "\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU General Public License\n"
- "along with this program; if not, write to the Free Software Foundation\n"
- "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"
- );
-}
-
-static void show_defaults(FILE *f) {
- fprintf(f, "Default unit: " DEFAULT_DIM_NAME "\n");
- fprintf(f, "Default page size: " DEFAULT_PAPERFORMAT "\n");
-}
-
-static void usage(FILE *f) {
- int j;
-
- fprintf(f, "Usage: " POTRACE " [options] [filename...]\n");
- fprintf(f, "General options:\n");
- fprintf(f, " -h, --help - print this help message and exit\n");
- fprintf(f, " -v, --version - print version info and exit\n");
- fprintf(f, " -l, --license - print license info and exit\n");
- fprintf(f, "File selection:\n");
- fprintf(f, " <filename> - an input file\n");
- fprintf(f, " -o, --output <filename> - write all output to this file\n");
- fprintf(f, " -- - end of options; 0 or more input filenames follow\n");
- fprintf(f, "Backend selection:\n");
- fprintf(f, " -b, --backend <name> - select backend by name\n");
- fprintf(f, " -b svg, -s, --svg - SVG backend (scalable vector graphics)\n");
- fprintf(f, " -b pdf - PDF backend (portable document format)\n");
- fprintf(f, " -b pdfpage - fixed page-size PDF backend\n");
- fprintf(f, " -b eps, -e, --eps - EPS backend (encapsulated PostScript) (default)\n");
- fprintf(f, " -b ps, -p, --postscript - PostScript backend\n");
- fprintf(f, " -b pgm, -g, --pgm - PGM backend (portable greymap)\n");
- fprintf(f, " -b dxf - DXF backend (drawing interchange format)\n");
- fprintf(f, " -b geojson - GeoJSON backend\n");
- fprintf(f, " -b gimppath - Gimppath backend (GNU Gimp)\n");
- fprintf(f, " -b xfig - XFig backend\n");
- fprintf(f, "Algorithm options:\n");
- fprintf(f, " -z, --turnpolicy <policy> - how to resolve ambiguities in path decomposition\n");
- fprintf(f, " -t, --turdsize <n> - suppress speckles of up to this size (default 2)\n");
- fprintf(f, " -a, --alphamax <n> - corner threshold parameter (default 1)\n");
- fprintf(f, " -n, --longcurve - turn off curve optimization\n");
- fprintf(f, " -O, --opttolerance <n> - curve optimization tolerance (default 0.2)\n");
- fprintf(f, " -u, --unit <n> - quantize output to 1/unit pixels (default 10)\n");
- fprintf(f, " -d, --debug <n> - produce debugging output of type n (n=1,2,3)\n");
- fprintf(f, "Scaling and placement options:\n");
- fprintf(f, " -P, --pagesize <format> - page size (default is " DEFAULT_PAPERFORMAT ")\n");
- fprintf(f, " -W, --width <dim> - width of output image\n");
- fprintf(f, " -H, --height <dim> - height of output image\n");
- fprintf(f, " -r, --resolution <n>[x<n>] - resolution (in dpi) (dimension-based backends)\n");
- fprintf(f, " -x, --scale <n>[x<n>] - scaling factor (pixel-based backends)\n");
- fprintf(f, " -S, --stretch <n> - yresolution/xresolution\n");
- fprintf(f, " -A, --rotate <angle> - rotate counterclockwise by angle\n");
- fprintf(f, " -M, --margin <dim> - margin\n");
- fprintf(f, " -L, --leftmargin <dim> - left margin\n");
- fprintf(f, " -R, --rightmargin <dim> - right margin\n");
- fprintf(f, " -T, --topmargin <dim> - top margin\n");
- fprintf(f, " -B, --bottommargin <dim> - bottom margin\n");
- fprintf(f, " --tight - remove whitespace around the input image\n");
- fprintf(f, "Color options, supported by some backends:\n");
- fprintf(f, " -C, --color #rrggbb - set foreground color (default black)\n");
- fprintf(f, " --fillcolor #rrggbb - set fill color (default transparent)\n");
- fprintf(f, " --opaque - make white shapes opaque\n");
- fprintf(f, "SVG options:\n");
- fprintf(f, " --group - group related paths together\n");
- fprintf(f, " --flat - whole image as a single path\n");
- fprintf(f, "Postscript/EPS/PDF options:\n");
- fprintf(f, " -c, --cleartext - do not compress the output\n");
- fprintf(f, " -2, --level2 - use postscript level 2 compression (default)\n");
-#ifdef HAVE_ZLIB
- fprintf(f, " -3, --level3 - use postscript level 3 compression\n");
-#endif
- fprintf(f, " -q, --longcoding - do not optimize for file size\n");
- fprintf(f, "PGM options:\n");
- fprintf(f, " -G, --gamma <n> - gamma value for anti-aliasing (default 2.2)\n");
- fprintf(f, "Frontend options:\n");
- fprintf(f, " -k, --blacklevel <n> - black/white cutoff in input file (default 0.5)\n");
- fprintf(f, " -i, --invert - invert bitmap\n");
- fprintf(f, "Progress bar options:\n");
- fprintf(f, " --progress - show progress bar\n");
- fprintf(f, " --tty <mode> - progress bar rendering: vt100 or dumb\n");
- fprintf(f, "\n");
- fprintf(f, "Dimensions can have optional units, e.g. 6.5in, 15cm, 100pt.\n");
- fprintf(f, "Default is " DEFAULT_DIM_NAME " (or pixels for pgm, dxf, and gimppath backends).\n");
- fprintf(f, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n");
- j = fprintf(f, "Backends are: ");
- backend_list(f, j, 78);
- fprintf(f, ".\n");
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions for parameter parsing */
-
-/* parse a dimension of the kind "1.5in", "7cm", etc. Return result in
- postscript points (=1/72 in). If endptr!=NULL, store pointer to
- next character in *endptr in the manner of strtod(3). */
-static dim_t parse_dimension(char *s, char **endptr) {
- char *p;
- dim_t res;
-
- res.x = strtod(s, &p);
- res.d = 0;
- if (p!=s) {
- if (!strncasecmp(p, "in", 2)) {
- res.d = DIM_IN;
- p += 2;
- } else if (!strncasecmp(p, "cm", 2)) {
- res.d = DIM_CM;
- p += 2;
- } else if (!strncasecmp(p, "mm", 2)) {
- res.d = DIM_MM;
- p += 2;
- } else if (!strncasecmp(p, "pt", 2)) {
- res.d = DIM_PT;
- p += 2;
- }
- }
- if (endptr!=NULL) {
- *endptr = p;
- }
- return res;
-}
-
-/* parse a pair of dimensions, such as "8.5x11in", "30mmx4cm" */
-static void parse_dimensions(char *s, char **endptr, dim_t *dxp, dim_t *dyp) {
- char *p, *q;
- dim_t dx, dy;
-
- dx = parse_dimension(s, &p);
- if (p==s) {
- goto fail;
- }
- if (*p != 'x') {
- goto fail;
- }
- p++;
- dy = parse_dimension(p, &q);
- if (q==p) {
- goto fail;
- }
- if (dx.d && !dy.d) {
- dy.d = dx.d;
- } else if (!dx.d && dy.d) {
- dx.d = dy.d;
- }
- *dxp = dx;
- *dyp = dy;
- if (endptr != NULL) {
- *endptr = q;
- }
- return;
-
- fail:
- dx.x = dx.d = dy.x = dy.d = 0;
- *dxp = dx;
- *dyp = dy;
- if (endptr != NULL) {
- *endptr = s;
- }
- return;
-}
-
-static inline double double_of_dim(dim_t d, double def) {
- if (d.d) {
- return d.x * d.d;
- } else {
- return d.x * def;
- }
-}
-
-static int parse_color(char *s) {
- int i, d;
- int col = 0;
-
- if (s[0] != '#' || strlen(s) != 7) {
- return -1;
- }
- for (i=0; i<6; i++) {
- d = s[6-i];
- if (d >= '0' && d <= '9') {
- col |= (d-'0') << (4*i);
- } else if (d >= 'a' && d <= 'f') {
- col |= (d-'a'+10) << (4*i);
- } else if (d >= 'A' && d <= 'F') {
- col |= (d-'A'+10) << (4*i);
- } else {
- return -1;
- }
- }
- return col;
-}
-
-/* ---------------------------------------------------------------------- */
-/* option processing */
-
-/* codes for options that don't have short form */
-enum {
- OPT_TIGHT = 300,
- OPT_FILLCOLOR,
- OPT_OPAQUE,
- OPT_GROUP,
- OPT_FLAT,
- OPT_PROGRESS,
- OPT_TTY
-};
-
-static struct option longopts[] = {
- {"help", 0, 0, 'h'},
- {"version", 0, 0, 'v'},
- {"show-defaults", 0, 0, 'V'}, /* undocumented option for compatibility */
- {"license", 0, 0, 'l'},
- {"width", 1, 0, 'W'},
- {"height", 1, 0, 'H'},
- {"resolution", 1, 0, 'r'},
- {"scale", 1, 0, 'x'},
- {"stretch", 1, 0, 'S'},
- {"margin", 1, 0, 'M'},
- {"leftmargin", 1, 0, 'L'},
- {"rightmargin", 1, 0, 'R'},
- {"topmargin", 1, 0, 'T'},
- {"bottommargin", 1, 0, 'B'},
- {"tight", 0, 0, OPT_TIGHT},
- {"rotate", 1, 0, 'A'},
- {"pagesize", 1, 0, 'P'},
- {"turdsize", 1, 0, 't'},
- {"unit", 1, 0, 'u'},
- {"cleartext", 0, 0, 'c'},
- {"level2", 0, 0, '2'},
- {"level3", 0, 0, '3'},
- {"eps", 0, 0, 'e'},
- {"postscript", 0, 0, 'p'},
- {"svg", 0, 0, 's'},
- {"pgm", 0, 0, 'g'},
- {"backend", 1, 0, 'b'},
- {"debug", 1, 0, 'd'},
- {"color", 1, 0, 'C'},
- {"fillcolor", 1, 0, OPT_FILLCOLOR},
- {"turnpolicy", 1, 0, 'z'},
- {"gamma", 1, 0, 'G'},
- {"longcurve", 0, 0, 'n'},
- {"longcoding", 0, 0, 'q'},
- {"alphamax", 1, 0, 'a'},
- {"opttolerance", 1, 0, 'O'},
- {"output", 1, 0, 'o'},
- {"blacklevel", 1, 0, 'k'},
- {"invert", 0, 0, 'i'},
- {"opaque", 0, 0, OPT_OPAQUE},
- {"group", 0, 0, OPT_GROUP},
- {"flat", 0, 0, OPT_FLAT},
- {"progress", 0, 0, OPT_PROGRESS},
- {"tty", 1, 0, OPT_TTY},
-
- {0, 0, 0, 0}
-};
-
-static const char *shortopts = "hvVlW:H:r:x:S:M:L:R:T:B:A:P:t:u:c23epsgb:d:C:z:G:nqa:O:o:k:i";
-
-static void dopts(int ac, char *av[]) {
- int c;
- char *p;
- int i, j, r;
- dim_t dim, dimx, dimy;
- int matches, bestmatch;
-
- /* defaults */
- backend_lookup("eps", &info.backend);
- info.debug = 0;
- info.width_d.x = UNDEF;
- info.height_d.x = UNDEF;
- info.rx = UNDEF;
- info.ry = UNDEF;
- info.sx = UNDEF;
- info.sy = UNDEF;
- info.stretch = 1;
- info.lmar_d.x = UNDEF;
- info.rmar_d.x = UNDEF;
- info.tmar_d.x = UNDEF;
- info.bmar_d.x = UNDEF;
- info.angle = 0;
- info.paperwidth = DEFAULT_PAPERWIDTH;
- info.paperheight = DEFAULT_PAPERHEIGHT;
- info.tight = 0;
- info.unit = 10;
- info.compress = 1;
- info.pslevel = 2;
- info.color = 0x000000;
- info.gamma = 2.2;
- info.param = potrace_param_default();
- if (!info.param) {
- fprintf(stderr, "" POTRACE ": %s\n", strerror(errno));
- exit(2);
- }
- info.longcoding = 0;
- info.outfile = NULL;
- info.blacklevel = 0.5;
- info.invert = 0;
- info.opaque = 0;
- info.grouping = 1;
- info.fillcolor = 0xffffff;
- info.progress = 0;
- info.progress_bar = DEFAULT_PROGRESS_BAR;
-
- while ((c = getopt_long(ac, av, shortopts, longopts, NULL)) != -1) {
- switch (c) {
- case 'h':
- fprintf(stdout, "" POTRACE " " VERSION ". Transforms bitmaps into vector graphics.\n\n");
- usage(stdout);
- exit(0);
- break;
- case 'v':
- case 'V':
- fprintf(stdout, "" POTRACE " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n");
- fprintf(stdout, "Library version: %s\n", potrace_version());
- show_defaults(stdout);
- exit(0);
- break;
- case 'l':
- fprintf(stdout, "" POTRACE " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n\n");
- license(stdout);
- exit(0);
- break;
- case 'W':
- info.width_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'H':
- info.height_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'r':
- parse_dimensions(optarg, &p, &dimx, &dimy);
- if (*p == 0 && dimx.d == 0 && dimy.d == 0 && dimx.x != 0.0 && dimy.x != 0.0) {
- info.rx = dimx.x;
- info.ry = dimy.x;
- break;
- }
- dim = parse_dimension(optarg, &p);
- if (*p == 0 && dim.d == 0 && dim.x != 0.0) {
- info.rx = info.ry = dim.x;
- break;
- }
- fprintf(stderr, "" POTRACE ": invalid resolution -- %s\n", optarg);
- exit(1);
- break;
- case 'x':
- parse_dimensions(optarg, &p, &dimx, &dimy);
- if (*p == 0 && dimx.d == 0 && dimy.d == 0) {
- info.sx = dimx.x;
- info.sy = dimy.x;
- break;
- }
- dim = parse_dimension(optarg, &p);
- if (*p == 0 && dim.d == 0) {
- info.sx = info.sy = dim.x;
- break;
- }
- fprintf(stderr, "" POTRACE ": invalid scaling factor -- %s\n", optarg);
- exit(1);
- break;
- case 'S':
- info.stretch = atof(optarg);
- break;
- case 'M':
- info.lmar_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- info.rmar_d = info.tmar_d = info.bmar_d = info.lmar_d;
- break;
- case 'L':
- info.lmar_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'R':
- info.rmar_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'T':
- info.tmar_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'B':
- info.bmar_d = parse_dimension(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid dimension -- %s\n", optarg);
- exit(1);
- }
- break;
- case OPT_TIGHT:
- info.tight = 1;
- break;
- case 'A':
- info.angle = strtod(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid angle -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'P':
- matches = 0;
- bestmatch = 0;
- for (i=0; pageformat[i].name!=NULL; i++) {
- if (strcasecmp(pageformat[i].name, optarg)==0) {
- matches = 1;
- bestmatch = i;
- break;
- } else if (strncasecmp(pageformat[i].name, optarg, strlen(optarg))==0) {
- /* don't allow partial match on "10x14" */
- if (optarg[0] != '1') {
- matches++;
- bestmatch = i;
- }
- }
- }
- if (matches == 1) {
- info.paperwidth = pageformat[bestmatch].w;
- info.paperheight = pageformat[bestmatch].h;
- break;
- }
- parse_dimensions(optarg, &p, &dimx, &dimy);
- if (*p == 0) {
- info.paperwidth = (int)round(double_of_dim(dimx, DEFAULT_DIM));
- info.paperheight = (int)round(double_of_dim(dimy, DEFAULT_DIM));
- break;
- }
- if (matches == 0) {
- fprintf(stderr, "" POTRACE ": unrecognized page format -- %s\n", optarg);
- } else {
- fprintf(stderr, "" POTRACE ": ambiguous page format -- %s\n", optarg);
- }
- j = fprintf(stderr, "Use one of: ");
- for (i=0; pageformat[i].name!=NULL; i++) {
- if (j + strlen(pageformat[i].name) > 75) {
- fprintf(stderr, "\n");
- j = 0;
- }
- j += fprintf(stderr, "%s, ", pageformat[i].name);
- }
- fprintf(stderr, "or specify <dim>x<dim>.\n");
- exit(1);
- break;
- case 't':
- info.param->turdsize = atoi(optarg);
- break;
- case 'u':
- info.unit = strtod(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid unit -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'c':
- info.pslevel = 2;
- info.compress = 0;
- break;
- case '2':
- info.pslevel = 2;
- info.compress = 1;
- break;
- case '3':
-#ifdef HAVE_ZLIB
- info.pslevel = 3;
- info.compress = 1;
-#else
- fprintf(stderr, "" POTRACE ": option -3 not supported, using -2 instead.\n");
- fflush(stderr);
- info.pslevel = 2;
- info.compress = 1;
-#endif
- break;
- case 'e':
- backend_lookup("eps", &info.backend);
- break;
- case 'p':
- backend_lookup("postscript", &info.backend);
- break;
- case 's':
- backend_lookup("svg", &info.backend);
- break;
- case 'g':
- backend_lookup("pgm", &info.backend);
- break;
- case 'b':
- r = backend_lookup(optarg, &info.backend);
- if (r==1 || r==2) {
- if (r==1) {
- fprintf(stderr, "" POTRACE ": unrecognized backend -- %s\n", optarg);
- } else {
- fprintf(stderr, "" POTRACE ": ambiguous backend -- %s\n", optarg);
- }
- j = fprintf(stderr, "Use one of: ");
- backend_list(stderr, j, 70);
- fprintf(stderr, ".\n");
- exit(1);
- }
- break;
- case 'd':
- info.debug = atoi(optarg);
- break;
- case 'C':
- info.color = parse_color(optarg);
- if (info.color == -1) {
- fprintf(stderr, "" POTRACE ": invalid color -- %s\n", optarg);
- exit(1);
- }
- break;
- case OPT_FILLCOLOR:
- info.fillcolor = parse_color(optarg);
- if (info.fillcolor == -1) {
- fprintf(stderr, "" POTRACE ": invalid color -- %s\n", optarg);
- exit(1);
- }
- info.opaque = 1;
- break;
- case 'z':
- matches = 0;
- bestmatch = 0;
- for (i=0; turnpolicy[i].name!=NULL; i++) {
- if (strcasecmp(turnpolicy[i].name, optarg)==0) {
- matches = 1;
- bestmatch = i;
- break;
- } else if (strncasecmp(turnpolicy[i].name, optarg, strlen(optarg))==0) {
- matches++;
- bestmatch = i;
- }
- }
- if (matches == 1) {
- info.param->turnpolicy = turnpolicy[bestmatch].n;
- break;
- }
- if (matches == 0) {
- fprintf(stderr, "" POTRACE ": unrecognized turnpolicy -- %s\n", optarg);
- } else {
- fprintf(stderr, "" POTRACE ": ambiguous turnpolicy -- %s\n", optarg);
- }
- j = fprintf(stderr, "Use one of: ");
- for (i=0; turnpolicy[i].name!=NULL; i++) {
- if (j + strlen(turnpolicy[i].name) > 75) {
- fprintf(stderr, "\n");
- j = 0;
- }
- j += fprintf(stderr, "%s%s", turnpolicy[i].name, turnpolicy[i+1].name ? ", " : "");
- }
- fprintf(stderr, ".\n");
- exit(1);
- break;
- case 'G':
- info.gamma = atof(optarg);
- break;
- case 'n':
- info.param->opticurve = 0;
- break;
- case 'q':
- info.longcoding = 1;
- break;
- case 'a':
- info.param->alphamax = strtod(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid alphamax -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'O':
- info.param->opttolerance = strtod(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid opttolerance -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'o':
- free(info.outfile);
- info.outfile = strdup(optarg);
- if (!info.outfile) {
- fprintf(stderr, "" POTRACE ": %s\n", strerror(errno));
- exit(2);
- }
- break;
- case 'k':
- info.blacklevel = strtod(optarg, &p);
- if (*p) {
- fprintf(stderr, "" POTRACE ": invalid blacklevel -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'i':
- info.invert = 1;
- break;
- case OPT_OPAQUE:
- info.opaque = 1;
- break;
- case OPT_GROUP:
- info.grouping = 2;
- break;
- case OPT_FLAT:
- info.grouping = 0;
- break;
- case OPT_PROGRESS:
- info.progress = 1;
- break;
- case OPT_TTY:
- if (strcmp(optarg, "dumb") == 0) {
- info.progress_bar = progress_bar_simplified;
- } else if (strcmp(optarg, "vt100") == 0) {
- info.progress_bar = progress_bar_vt100;
- } else {
- fprintf(stderr, "" POTRACE ": invalid tty mode -- %s. Try --help for more info\n", optarg);
- exit(1);
- }
- break;
- case '?':
- fprintf(stderr, "Try --help for more info\n");
- exit(1);
- break;
- default:
- fprintf(stderr, "" POTRACE ": Unimplemented option -- %c\n", c);
- exit(1);
- }
- }
- info.infiles = &av[optind];
- info.infilecount = ac-optind;
- info.some_infiles = info.infilecount ? 1 : 0;
-
- /* if "--" was used, even an empty list of filenames is considered
- "some" filenames. */
- if (strcmp(av[optind-1], "--") == 0) {
- info.some_infiles = 1;
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* calculations with bitmap dimensions, positioning etc */
-
-/* determine the dimensions of the output based on command line and
- image dimensions, and optionally, based on the actual image outline. */
-static void calc_dimensions(imginfo_t *imginfo, potrace_path_t *plist) {
- double dim_def;
- double maxwidth, maxheight, sc;
- int default_scaling = 0;
-
- /* we take care of a special case: if one of the image dimensions is
- 0, we change it to 1. Such an image is empty anyway, so there
- will be 0 paths in it. Changing the dimensions avoids division by
- 0 error in calculating scaling factors, bounding boxes and
- such. This doesn't quite do the right thing in all cases, but it
- is better than causing overflow errors or "nan" output in
- backends. Human users don't tend to process images of size 0
- anyway; they might occur in some pipelines. */
- if (imginfo->pixwidth == 0) {
- imginfo->pixwidth = 1;
- }
- if (imginfo->pixheight == 0) {
- imginfo->pixheight = 1;
- }
-
- /* set the default dimension for width, height, margins */
- if (info.backend->pixel) {
- dim_def = DIM_PT;
- } else {
- dim_def = DEFAULT_DIM;
- }
-
- /* apply default dimension to width, height, margins */
- imginfo->width = info.width_d.x == UNDEF ? UNDEF : double_of_dim(info.width_d, dim_def);
- imginfo->height = info.height_d.x == UNDEF ? UNDEF : double_of_dim(info.height_d, dim_def);
- imginfo->lmar = info.lmar_d.x == UNDEF ? UNDEF : double_of_dim(info.lmar_d, dim_def);
- imginfo->rmar = info.rmar_d.x == UNDEF ? UNDEF : double_of_dim(info.rmar_d, dim_def);
- imginfo->tmar = info.tmar_d.x == UNDEF ? UNDEF : double_of_dim(info.tmar_d, dim_def);
- imginfo->bmar = info.bmar_d.x == UNDEF ? UNDEF : double_of_dim(info.bmar_d, dim_def);
-
- /* start with a standard rectangle */
- trans_from_rect(&imginfo->trans, imginfo->pixwidth, imginfo->pixheight);
-
- /* if info.tight is set, tighten the bounding box */
- if (info.tight) {
- trans_tighten(&imginfo->trans, plist);
- }
-
- /* sx/rx is just an alternate way to specify width; sy/ry is just an
- alternate way to specify height. */
- if (info.backend->pixel) {
- if (imginfo->width == UNDEF && info.sx != UNDEF) {
- imginfo->width = imginfo->trans.bb[0] * info.sx;
- }
- if (imginfo->height == UNDEF && info.sy != UNDEF) {
- imginfo->height = imginfo->trans.bb[1] * info.sy;
- }
- } else {
- if (imginfo->width == UNDEF && info.rx != UNDEF) {
- imginfo->width = imginfo->trans.bb[0] / info.rx * 72;
- }
- if (imginfo->height == UNDEF && info.ry != UNDEF) {
- imginfo->height = imginfo->trans.bb[1] / info.ry * 72;
- }
- }
-
- /* if one of width/height is specified, use stretch to determine the
- other */
- if (imginfo->width == UNDEF && imginfo->height != UNDEF) {
- imginfo->width = imginfo->height / imginfo->trans.bb[1] * imginfo->trans.bb[0] / info.stretch;
- } else if (imginfo->width != UNDEF && imginfo->height == UNDEF) {
- imginfo->height = imginfo->width / imginfo->trans.bb[0] * imginfo->trans.bb[1] * info.stretch;
- }
-
- /* if width and height are still variable, tenatively use the
- default scaling factor of 72dpi (for dimension-based backends) or
- 1 (for pixel-based backends). For fixed-size backends, this will
- be adjusted later to fit the page. */
- if (imginfo->width == UNDEF && imginfo->height == UNDEF) {
- imginfo->width = imginfo->trans.bb[0];
- imginfo->height = imginfo->trans.bb[1] * info.stretch;
- default_scaling = 1;
- }
-
- /* apply scaling */
- trans_scale_to_size(&imginfo->trans, imginfo->width, imginfo->height);
-
- /* apply rotation, and tighten the bounding box again, if necessary */
- if (info.angle != 0.0) {
- trans_rotate(&imginfo->trans, info.angle);
- if (info.tight) {
- trans_tighten(&imginfo->trans, plist);
- }
- }
-
- /* for fixed-size backends, if default scaling was in effect,
- further adjust the scaling to be the "best fit" for the given
- page size and margins. */
- if (default_scaling && info.backend->fixed) {
-
- /* try to squeeze it between margins */
- maxwidth = UNDEF;
- maxheight = UNDEF;
-
- if (imginfo->lmar != UNDEF && imginfo->rmar != UNDEF) {
- maxwidth = info.paperwidth - imginfo->lmar - imginfo->rmar;
- }
- if (imginfo->bmar != UNDEF && imginfo->tmar != UNDEF) {
- maxheight = info.paperheight - imginfo->bmar - imginfo->tmar;
- }
- if (maxwidth == UNDEF && maxheight == UNDEF) {
- maxwidth = max(info.paperwidth - 144, info.paperwidth * 0.75);
- maxheight = max(info.paperheight - 144, info.paperheight * 0.75);
- }
-
- if (maxwidth == UNDEF) {
- sc = maxheight / imginfo->trans.bb[1];
- } else if (maxheight == UNDEF) {
- sc = maxwidth / imginfo->trans.bb[0];
- } else {
- sc = min(maxwidth / imginfo->trans.bb[0], maxheight / imginfo->trans.bb[1]);
- }
-
- /* re-scale coordinate system */
- imginfo->width *= sc;
- imginfo->height *= sc;
- trans_rescale(&imginfo->trans, sc);
- }
-
- /* adjust margins */
- if (info.backend->fixed) {
- if (imginfo->lmar == UNDEF && imginfo->rmar == UNDEF) {
- imginfo->lmar = (info.paperwidth-imginfo->trans.bb[0])/2;
- } else if (imginfo->lmar == UNDEF) {
- imginfo->lmar = (info.paperwidth-imginfo->trans.bb[0]-imginfo->rmar);
- } else if (imginfo->lmar != UNDEF && imginfo->rmar != UNDEF) {
- imginfo->lmar += (info.paperwidth-imginfo->trans.bb[0]-imginfo->lmar-imginfo->rmar)/2;
- }
- if (imginfo->bmar == UNDEF && imginfo->tmar == UNDEF) {
- imginfo->bmar = (info.paperheight-imginfo->trans.bb[1])/2;
- } else if (imginfo->bmar == UNDEF) {
- imginfo->bmar = (info.paperheight-imginfo->trans.bb[1]-imginfo->tmar);
- } else if (imginfo->bmar != UNDEF && imginfo->tmar != UNDEF) {
- imginfo->bmar += (info.paperheight-imginfo->trans.bb[1]-imginfo->bmar-imginfo->tmar)/2;
- }
- } else {
- if (imginfo->lmar == UNDEF) {
- imginfo->lmar = 0;
- }
- if (imginfo->rmar == UNDEF) {
- imginfo->rmar = 0;
- }
- if (imginfo->bmar == UNDEF) {
- imginfo->bmar = 0;
- }
- if (imginfo->tmar == UNDEF) {
- imginfo->tmar = 0;
- }
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions for file handling */
-
-/* open a file for reading. Return stdin if filename is NULL or "-" */
-static FILE *my_fopen_read(const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return stdin;
- }
- return fopen(filename, "rb");
-}
-
-/* open a file for writing. Return stdout if filename is NULL or "-" */
-static FILE *my_fopen_write(const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return stdout;
- }
- return fopen(filename, "wb");
-}
-
-/* close a file, but do nothing is filename is NULL or "-" */
-static void my_fclose(FILE *f, const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return;
- }
- fclose(f);
-}
-
-/* make output filename from input filename. Return an allocated value. */
-static char *make_outfilename(const char *infile, const char *ext) {
- char *outfile;
- char *p;
-
- if (strcmp(infile, "-") == 0) {
- return strdup("-");
- }
-
- outfile = (char *) malloc(strlen(infile)+strlen(ext)+5);
- if (!outfile) {
- return NULL;
- }
- strcpy(outfile, infile);
- p = strrchr(outfile, '.');
- if (p) {
- *p = 0;
- }
- strcat(outfile, ext);
-
- /* check that input and output filenames are different */
- if (strcmp(infile, outfile) == 0) {
- strcpy(outfile, infile);
- strcat(outfile, "-out");
- }
-
- return outfile;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Process one infile */
-
-/* Process one or more bitmaps from fin, and write the results to fout
- using the page_f function of the appropriate backend. */
-
-static void process_file(backend_t *b, const char *infile, const char *outfile, FILE *fin, FILE *fout) {
- int r;
- potrace_bitmap_t *bm = NULL;
- imginfo_t imginfo;
- int eof_flag = 0; /* to indicate premature eof */
- int count; /* number of bitmaps successfully processed, this file */
- potrace_state_t *st;
-
- for (count=0; ; count++) {
- /* read a bitmap */
- r = bm_read(fin, info.blacklevel, &bm);
- switch (r) {
- case -1: /* system error */
- fprintf(stderr, "" POTRACE ": %s: %s\n", infile, strerror(errno));
- exit(2);
- case -2: /* corrupt file format */
- fprintf(stderr, "" POTRACE ": %s: file format error: %s\n", infile, bm_read_error);
- exit(2);
- case -3: /* empty file */
- if (count>0) { /* end of file */
- return;
- }
- fprintf(stderr, "" POTRACE ": %s: empty file\n", infile);
- exit(2);
- case -4: /* wrong magic */
- if (count>0) {
- fprintf(stderr, "" POTRACE ": %s: warning: junk at end of file\n", infile);
- return;
- }
- fprintf(stderr, "" POTRACE ": %s: file format not recognized\n", infile);
- fprintf(stderr, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n");
- exit(2);
- case 1: /* unexpected end of file */
- fprintf(stderr, "" POTRACE ": warning: %s: premature end of file\n", infile);
- eof_flag = 1;
- break;
- }
-
- /* prepare progress bar, if requested */
- if (info.progress) {
- r = info.progress_bar->init(&info.param->progress, infile, count);
- if (r) {
- fprintf(stderr, "" POTRACE ": %s\n", strerror(errno));
- exit(2);
- }
- } else {
- info.param->progress.callback = NULL;
- }
-
- if (info.invert) {
- bm_invert(bm);
- }
-
- /* process the image */
- st = potrace_trace(info.param, bm);
- if (!st || st->status != POTRACE_STATUS_OK) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", infile, strerror(errno));
- exit(2);
- }
-
- /* calculate image dimensions */
- imginfo.pixwidth = bm->w;
- imginfo.pixheight = bm->h;
- bm_free(bm);
-
- calc_dimensions(&imginfo, st->plist);
-
- r = b->page_f(fout, st->plist, &imginfo);
- if (r) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", outfile, strerror(errno));
- exit(2);
- }
-
- potrace_state_free(st);
-
- if (info.progress) {
- info.progress_bar->term(&info.param->progress);
- }
-
- if (eof_flag || !b->multi) {
- return;
- }
- }
- /* not reached */
-}
-
-/* ---------------------------------------------------------------------- */
-/* main: handle file i/o */
-
-#define TRY(x) if (x) goto try_error
-
-int main(int ac, char *av[]) {
- backend_t *b; /* backend info */
- FILE *fin, *fout;
- int i;
- char *outfile;
-
- /* platform-specific initializations, e.g., set file i/o to binary */
- platform_init();
-
- /* process options */
- dopts(ac, av);
-
- b = info.backend;
- if (b==NULL) {
- fprintf(stderr, "" POTRACE ": internal error: selected backend not found\n");
- exit(1);
- }
-
- /* fix some parameters */
- /* if backend cannot handle opticurve, disable it */
- if (b->opticurve == 0) {
- info.param->opticurve = 0;
- }
-
- /* there are several ways to call us:
- potrace -- stdin to stdout
- potrace -o outfile -- stdin to outfile
- potrace file... -- encode each file and generate outfile names
- potrace -o outfile file... -- concatenate files and write to outfile
-
- The latter form is only allowed one file for single-page
- backends. For multi-page backends, each file must contain 0 or
- more complete bitmaps.
- */
-
- if (!info.some_infiles) { /* read from stdin */
-
- fout = my_fopen_write(info.outfile);
- if (!fout) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", info.outfile ? info.outfile : "stdout", strerror(errno));
- exit(2);
- }
- if (b->init_f) {
- TRY(b->init_f(fout));
- }
- process_file(b, "stdin", info.outfile ? info.outfile : "stdout", stdin, fout);
- if (b->term_f) {
- TRY(b->term_f(fout));
- }
- my_fclose(fout, info.outfile);
- free(info.outfile);
- potrace_param_free(info.param);
- return 0;
-
- } else if (!info.outfile) { /* infiles -> multiple outfiles */
-
- for (i=0; i<info.infilecount; i++) {
- outfile = make_outfilename(info.infiles[i], b->ext);
- if (!outfile) {
- fprintf(stderr, "" POTRACE ": %s\n", strerror(errno));
- exit(2);
- }
- fin = my_fopen_read(info.infiles[i]);
- if (!fin) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", info.infiles[i], strerror(errno));
- exit(2);
- }
- fout = my_fopen_write(outfile);
- if (!fout) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", outfile, strerror(errno));
- exit(2);
- }
- if (b->init_f) {
- TRY(b->init_f(fout));
- }
- process_file(b, info.infiles[i], outfile, fin, fout);
- if (b->term_f) {
- TRY(b->term_f(fout));
- }
- my_fclose(fin, info.infiles[i]);
- my_fclose(fout, outfile);
- free(outfile);
- }
- potrace_param_free(info.param);
- return 0;
-
- } else { /* infiles to single outfile */
-
- if (!b->multi && info.infilecount >= 2) {
- fprintf(stderr, "" POTRACE ": cannot use multiple input files with -o in %s mode\n", b->name);
- exit(1);
- }
- if (info.infilecount == 0) {
- fprintf(stderr, "" POTRACE ": cannot use empty list of input files with -o\n");
- exit(1);
- }
-
- fout = my_fopen_write(info.outfile);
- if (!fout) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", info.outfile, strerror(errno));
- exit(2);
- }
- if (b->init_f) {
- TRY(b->init_f(fout));
- }
- for (i=0; i<info.infilecount; i++) {
- fin = my_fopen_read(info.infiles[i]);
- if (!fin) {
- fprintf(stderr, "" POTRACE ": %s: %s\n", info.infiles[i], strerror(errno));
- exit(2);
- }
- process_file(b, info.infiles[i], info.outfile, fin, fout);
- my_fclose(fin, info.infiles[i]);
- }
- if (b->term_f) {
- TRY(b->term_f(fout));
- }
- my_fclose(fout, info.outfile);
- free(info.outfile);
- potrace_param_free(info.param);
- return 0;
-
- }
-
- /* not reached */
-
- try_error:
- fprintf(stderr, "" POTRACE ": %s\n", strerror(errno));
- exit(2);
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/main.h b/Build/source/libs/potrace/potrace-src/src/main.h
deleted file mode 100644
index a80359b67b9..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/main.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef MAIN_H
-#define MAIN_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "potracelib.h"
-#include "progress_bar.h"
-#include "auxiliary.h"
-#include "trans.h"
-
-/* structure to hold a dimensioned value */
-struct dim_s {
- double x; /* value */
- double d; /* dimension (in pt), or 0 if not given */
-};
-typedef struct dim_s dim_t;
-
-#define DIM_IN (72)
-#define DIM_CM (72 / 2.54)
-#define DIM_MM (72 / 25.4)
-#define DIM_PT (1)
-
-/* set some configurable defaults */
-
-#ifdef USE_METRIC
-#define DEFAULT_DIM DIM_CM
-#define DEFAULT_DIM_NAME "centimeters"
-#else
-#define DEFAULT_DIM DIM_IN
-#define DEFAULT_DIM_NAME "inches"
-#endif
-
-#ifdef USE_A4
-#define DEFAULT_PAPERWIDTH 595
-#define DEFAULT_PAPERHEIGHT 842
-#define DEFAULT_PAPERFORMAT "a4"
-#else
-#define DEFAULT_PAPERWIDTH 612
-#define DEFAULT_PAPERHEIGHT 792
-#define DEFAULT_PAPERFORMAT "letter"
-#endif
-
-#ifdef DUMB_TTY
-#define DEFAULT_PROGRESS_BAR progress_bar_simplified
-#else
-#define DEFAULT_PROGRESS_BAR progress_bar_vt100
-#endif
-
-
-
-struct backend_s;
-
-/* structure to hold command line options */
-struct info_s {
- struct backend_s *backend; /* type of backend (eps,ps,pgm etc) */
- potrace_param_t *param; /* tracing parameters, see potracelib.h */
- int debug; /* type of output (0-2) (for BACKEND_PS/EPS only) */
- dim_t width_d; /* desired width of image */
- dim_t height_d; /* desired height of image */
- double rx; /* desired x resolution (in dpi) */
- double ry; /* desired y resolution (in dpi) */
- double sx; /* desired x scaling factor */
- double sy; /* desired y scaling factor */
- double stretch; /* ry/rx, if not otherwise determined */
- dim_t lmar_d, rmar_d, tmar_d, bmar_d; /* margins */
- double angle; /* rotate by this many degrees */
- int paperwidth, paperheight; /* paper size for ps backend (in pt) */
- int tight; /* should bounding box follow actual vector outline? */
- double unit; /* granularity of output grid */
- int compress; /* apply compression? */
- int pslevel; /* postscript level to use: affects only compression */
- int color; /* rgb color code 0xrrggbb: line color */
- int fillcolor; /* rgb color code 0xrrggbb: fill color */
- double gamma; /* gamma value for pgm backend */
- int longcoding; /* do not optimize for file size? */
- char *outfile; /* output filename, if given */
- char **infiles; /* array of input filenames */
- int infilecount; /* number of input filenames */
- int some_infiles; /* do we process a list of input filenames? */
- double blacklevel; /* 0 to 1: black/white cutoff in input file */
- int invert; /* invert bitmap? */
- int opaque; /* paint white shapes opaquely? */
- int grouping; /* 0=flat; 1=connected components; 2=hierarchical */
- int progress; /* should we display a progress bar? */
- progress_bar_t *progress_bar; /* which progress bar to use */
-};
-typedef struct info_s info_t;
-
-extern info_t info;
-
-/* structure to hold per-image information, set e.g. by calc_dimensions */
-struct imginfo_s {
- int pixwidth; /* width of input pixmap */
- int pixheight; /* height of input pixmap */
- double width; /* desired width of image (in pt or pixels) */
- double height; /* desired height of image (in pt or pixels) */
- double lmar, rmar, tmar, bmar; /* requested margins (in pt) */
- trans_t trans; /* specify relative position of a tilted rectangle */
-};
-typedef struct imginfo_s imginfo_t;
-
-#endif /* MAIN_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/mkbitmap.c b/Build/source/libs/potrace/potrace-src/src/mkbitmap.c
deleted file mode 100644
index 4b1b1a3294d..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/mkbitmap.c
+++ /dev/null
@@ -1,802 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* mkbitmap.c: a standalone program for converting greymaps to bitmaps
- while optionally applying the following enhancements: highpass
- filter (evening out background gradients), lowpass filter
- (smoothing foreground details), interpolated scaling, inversion. */
-
-#ifndef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200809L
-#endif
-
-#ifndef _NETBSD_SOURCE
-#define _NETBSD_SOURCE 1
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-#include <getopt.h>
-
-#include "greymap.h"
-#include "bitmap_io.h"
-#include "platform.h"
-
-#define SAFE_CALLOC(var, n, typ) \
- if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error
-
-/* structure to hold command line options */
-struct info_s {
- char *outfile; /* output file */
- char **infiles; /* input files */
- int infilecount; /* how many input files? */
- int invert; /* invert input? */
- int highpass; /* use highpass filter? */
- double lambda; /* highpass filter radius */
- int lowpass; /* use lowpass filter? */
- double lambda1; /* lowpass filter radius */
- int scale; /* scaling factor */
- int linear; /* linear scaling? */
- int bilevel; /* convert to bilevel? */
- double level; /* cutoff grey level */
- const char *outext; /* default output file extension */
-};
-typedef struct info_s info_t;
-
-static info_t info;
-
-/* apply lowpass filter (an approximate Gaussian blur) to greymap.
- Lambda is the standard deviation of the kernel of the filter (i.e.,
- the approximate filter radius). */
-static void lowpass(greymap_t *gm, double lambda) {
- double f, g;
- double c, d;
- double B;
- int x, y;
-
- if (gm->h == 0 || gm->w == 0) {
- return;
- }
-
- /* calculate filter coefficients from given lambda */
- B = 1+2/(lambda*lambda);
- c = B-sqrt(B*B-1);
- d = 1-c;
-
- for (y=0; y<gm->h; y++) {
- /* apply low-pass filter to row y */
- /* left-to-right */
- f = g = 0;
- for (x=0; x<gm->w; x++) {
- f = f*c + GM_UGET(gm, x, y)*d;
- g = g*c + f*d;
- GM_UPUT(gm, x, y, g);
- }
-
- /* right-to-left */
- for (x=gm->w-1; x>=0; x--) {
- f = f*c + GM_UGET(gm, x, y)*d;
- g = g*c + f*d;
- GM_UPUT(gm, x, y, g);
- }
-
- /* left-to-right mop-up */
- for (x=0; x<gm->w; x++) {
- f = f*c;
- g = g*c + f*d;
- if (f+g < 1/255.0) {
- break;
- }
- GM_UPUT(gm, x, y, GM_UGET(gm, x, y)+g);
- }
- }
-
- for (x=0; x<gm->w; x++) {
- /* apply low-pass filter to column x */
- /* bottom-to-top */
- f = g = 0;
- for (y=0; y<gm->h; y++) {
- f = f*c + GM_UGET(gm, x, y)*d;
- g = g*c + f*d;
- GM_UPUT(gm, x, y, g);
- }
-
- /* top-to-bottom */
- for (y=gm->h-1; y>=0; y--) {
- f = f*c + GM_UGET(gm, x, y)*d;
- g = g*c + f*d;
- GM_UPUT(gm, x, y, g);
- }
-
- /* bottom-to-top mop-up */
- for (y=0; y<gm->h; y++) {
- f = f*c;
- g = g*c + f*d;
- if (f+g < 1/255.0) {
- break;
- }
- GM_UPUT(gm, x, y, GM_UGET(gm, x, y)+g);
- }
- }
-}
-
-/* apply highpass filter to greymap. Return 0 on success, 1 on error
- with errno set. */
-static int highpass(greymap_t *gm, double lambda) {
- greymap_t *gm1;
- double f;
- int x, y;
-
- if (gm->h == 0 || gm->w == 0) {
- return 0;
- }
-
- /* create a copy */
- gm1 = gm_dup(gm);
- if (!gm1) {
- return 1;
- }
-
- /* apply lowpass filter to the copy */
- lowpass(gm1, lambda);
-
- /* subtract copy from original */
- for (y=0; y<gm->h; y++) {
- for (x=0; x<gm->w; x++) {
- f = GM_UGET(gm, x, y);
- f -= GM_UGET(gm1, x, y);
- f += 128; /* normalize! */
- GM_UPUT(gm, x, y, f);
- }
- }
- gm_free(gm1);
- return 0;
-}
-
-/* Convert greymap to bitmap by using cutoff threshold c (0=black,
- 1=white). On error, return NULL with errno set. */
-static potrace_bitmap_t *threshold(greymap_t *gm, double c) {
- int w, h;
- potrace_bitmap_t *bm_out = NULL;
- double c1;
- int x, y;
- double p;
-
- w = gm->w;
- h = gm->h;
-
- /* allocate output bitmap */
- bm_out = bm_new(w, h);
- if (!bm_out) {
- return NULL;
- }
-
- /* thresholding */
- c1 = c * 255;
-
- for (y=0; y<h; y++) {
- for (x=0; x<w; x++) {
- p = GM_UGET(gm, x, y);
- BM_UPUT(bm_out, x, y, p < c1);
- }
- }
- return bm_out;
-}
-
-/* scale greymap by factor s, using linear interpolation. If
- bilevel=0, return a pointer to a greymap_t. If bilevel=1, return a
- pointer to a potrace_bitmap_t and use cutoff threshold c (0=black,
- 1=white). On error, return NULL with errno set. */
-
-static void *interpolate_linear(greymap_t *gm, int s, int bilevel, double c) {
- int p00, p01, p10, p11;
- int i, j, x, y;
- double xx, yy, av;
- double c1 = 0;
- int w, h;
- double p0, p1;
- greymap_t *gm_out = NULL;
- potrace_bitmap_t *bm_out = NULL;
-
- w = gm->w;
- h = gm->h;
-
- /* allocate output bitmap/greymap */
- if (bilevel) {
- bm_out = bm_new(w*s, h*s);
- if (!bm_out) {
- return NULL;
- }
- c1 = c * 255;
- } else {
- gm_out = gm_new(w*s, h*s);
- if (!gm_out) {
- return NULL;
- }
- }
-
- /* interpolate */
- for (i=0; i<w; i++) {
- for (j=0; j<h; j++) {
- p00 = GM_BGET(gm, i, j);
- p01 = GM_BGET(gm, i, j+1);
- p10 = GM_BGET(gm, i+1, j);
- p11 = GM_BGET(gm, i+1, j+1);
-
- if (bilevel) {
- /* treat two special cases which are very common */
- if (p00 < c1 && p01 < c1 && p10 < c1 && p11 < c1) {
- for (x=0; x<s; x++) {
- for (y=0; y<s; y++) {
- BM_UPUT(bm_out, i*s+x, j*s+y, 1);
- }
- }
- continue;
- }
- if (p00 >= c1 && p01 >= c1 && p10 >= c1 && p11 >= c1) {
- continue;
- }
- }
-
- /* the general case */
- for (x=0; x<s; x++) {
- xx = x/(double)s;
- p0 = p00*(1-xx) + p10*xx;
- p1 = p01*(1-xx) + p11*xx;
- for (y=0; y<s; y++) {
- yy = y/(double)s;
- av = p0*(1-yy) + p1*yy;
- if (bilevel) {
- BM_UPUT(bm_out, i*s+x, j*s+y, av < c1);
- } else {
- GM_UPUT(gm_out, i*s+x, j*s+y, av);
- }
- }
- }
- }
- }
- if (bilevel) {
- return (void *)bm_out;
- } else {
- return (void *)gm_out;
- }
-}
-
-/* same as interpolate_linear, except use cubic interpolation (slower
- and better). */
-
-/* we need this typedef so that the SAFE_CALLOC macro will work */
-typedef double double4[4];
-
-static void *interpolate_cubic(greymap_t *gm, int s, int bilevel, double c) {
- int w, h;
- double4 *poly = NULL; /* poly[s][4]: fixed interpolation polynomials */
- double p[4]; /* four current points */
- double4 *window = NULL; /* window[s][4]: current state */
- double t, v;
- int k, l, i, j, x, y;
- double c1 = 0;
- greymap_t *gm_out = NULL;
- potrace_bitmap_t *bm_out = NULL;
-
- SAFE_CALLOC(poly, s, double4);
- SAFE_CALLOC(window, s, double4);
-
- w = gm->w;
- h = gm->h;
-
- /* allocate output bitmap/greymap */
- if (bilevel) {
- bm_out = bm_new(w*s, h*s);
- if (!bm_out) {
- goto calloc_error;
- }
- c1 = c * 255;
- } else {
- gm_out = gm_new(w*s, h*s);
- if (!gm_out) {
- goto calloc_error;
- }
- }
-
- /* pre-calculate interpolation polynomials */
- for (k=0; k<s; k++) {
- t = k/(double)s;
- poly[k][0] = 0.5 * t * (t-1) * (1-t);
- poly[k][1] = -(t+1) * (t-1) * (1-t) + 0.5 * (t-1) * (t-2) * t;
- poly[k][2] = 0.5 * (t+1) * t * (1-t) - t * (t-2) * t;
- poly[k][3] = 0.5 * t * (t-1) * t;
- }
-
- /* interpolate */
- for (y=0; y<h; y++) {
- x=0;
- for (i=0; i<4; i++) {
- for (j=0; j<4; j++) {
- p[j] = GM_BGET(gm, x+i-1, y+j-1);
- }
- for (k=0; k<s; k++) {
- window[k][i] = 0.0;
- for (j=0; j<4; j++) {
- window[k][i] += poly[k][j] * p[j];
- }
- }
- }
- while (1) {
- for (l=0; l<s; l++) {
- for (k=0; k<s; k++) {
- v = 0.0;
- for (i=0; i<4; i++) {
- v += window[k][i] * poly[l][i];
- }
- if (bilevel) {
- BM_PUT(bm_out, x*s+l, y*s+k, v < c1);
- } else {
- GM_PUT(gm_out, x*s+l, y*s+k, v);
- }
- }
- }
- x++;
- if (x>=w) {
- break;
- }
- for (i=0; i<3; i++) {
- for (k=0; k<s; k++) {
- window[k][i] = window[k][i+1];
- }
- }
- i=3;
- for (j=0; j<4; j++) {
- p[j] = GM_BGET(gm, x+i-1, y+j-1);
- }
- for (k=0; k<s; k++) {
- window[k][i] = 0.0;
- for (j=0; j<4; j++) {
- window[k][i] += poly[k][j] * p[j];
- }
- }
- }
- }
-
- free(poly);
- free(window);
-
- if (bilevel) {
- return (void *)bm_out;
- } else {
- return (void *)gm_out;
- }
-
- calloc_error:
- free(poly);
- free(window);
- return NULL;
-}
-
-/* ---------------------------------------------------------------------- */
-
-/* process a single file, containing one or more images. On error,
- print error message to stderr and exit with code 2. On warning,
- print warning message to stderr. */
-
-static void process_file(FILE *fin, FILE *fout, const char *infile, const char *outfile) {
- int r;
- greymap_t *gm;
- potrace_bitmap_t *bm;
- void *sm;
- int x, y;
- int count;
-
- for (count=0; ; count++) {
- r = gm_read(fin, &gm);
- switch (r) {
- case -1: /* system error */
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", infile, strerror(errno));
- exit(2);
- case -2: /* corrupt file format */
- fprintf(stderr, "" MKBITMAP ": %s: file format error: %s\n", infile, gm_read_error);
- exit(2);
- case -3: /* empty file */
- if (count>0) { /* end of file */
- return;
- }
- fprintf(stderr, "" MKBITMAP ": %s: empty file\n", infile);
- exit(2);
- case -4: /* wrong magic */
- if (count>0) {
- fprintf(stderr, "" MKBITMAP ": %s: warning: junk at end of file\n", infile);
- return;
- }
- fprintf(stderr, "" MKBITMAP ": %s: file format not recognized\n", infile);
- fprintf(stderr, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n");
- exit(2);
- case 1: /* unexpected end of file */
- fprintf(stderr, "" MKBITMAP ": %s: warning: premature end of file\n", infile);
- break;
- }
-
- if (info.invert) {
- for (y=0; y<gm->h; y++) {
- for (x=0; x<gm->w; x++) {
- GM_UPUT(gm, x, y, 255-GM_UGET(gm, x, y));
- }
- }
- }
-
- if (info.highpass) {
- r = highpass(gm, info.lambda);
- if (r) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", infile, strerror(errno));
- exit(2);
- }
- }
-
- if (info.lowpass) {
- lowpass(gm, info.lambda1);
- }
-
- if (info.scale == 1 && info.bilevel) { /* no interpolation necessary */
- sm = threshold(gm, info.level);
- gm_free(gm);
- } else if (info.scale == 1) {
- sm = gm;
- } else if (info.linear) { /* linear interpolation */
- sm = interpolate_linear(gm, info.scale, info.bilevel, info.level);
- gm_free(gm);
- } else { /* cubic interpolation */
- sm = interpolate_cubic(gm, info.scale, info.bilevel, info.level);
- gm_free(gm);
- }
- if (!sm) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", infile, strerror(errno));
- exit(2);
- }
-
- if (info.bilevel) {
- bm = (potrace_bitmap_t *)sm;
- bm_writepbm(fout, bm);
- bm_free(bm);
- } else {
- gm = (greymap_t *)sm;
- gm_writepgm(fout, gm, NULL, 1, GM_MODE_POSITIVE, 1.0);
- gm_free(gm);
- }
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* some info functions and option processing */
-
-static int license(FILE *f) {
- fprintf(f,
- "This program is free software; you can redistribute it and/or modify\n"
- "it under the terms of the GNU General Public License as published by\n"
- "the Free Software Foundation; either version 2 of the License, or\n"
- "(at your option) any later version.\n"
- "\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n"
- "\n"
- "You should have received a copy of the GNU General Public License\n"
- "along with this program; if not, write to the Free Software Foundation\n"
- "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"
- );
- return 0;
-}
-
-static int usage(FILE *f) {
- fprintf(f, "Usage: " MKBITMAP " [options] [file...]\n");
- fprintf(f, "Options:\n");
- fprintf(f, " -h, --help - print this help message and exit\n");
- fprintf(f, " -v, --version - print version info and exit\n");
- fprintf(f, " -l, --license - print license info and exit\n");
- fprintf(f, " -o, --output <file> - output to file\n");
- fprintf(f, " -x, --nodefaults - turn off default options\n");
- fprintf(f, "Inversion:\n");
- fprintf(f, " -i, --invert - invert the input (undo 'blackboard' effect)\n");
- fprintf(f, "Highpass filtering:\n");
- fprintf(f, " -f, --filter <n> - apply highpass filter with radius n (default 4)\n");
- fprintf(f, " -n, --nofilter - no highpass filtering\n");
- fprintf(f, " -b, --blur <n> - apply lowpass filter with radius n (default: none)\n");
- fprintf(f, "Scaling:\n");
- fprintf(f, " -s, --scale <n> - scale by integer factor n (default 2)\n");
- fprintf(f, " -1, --linear - use linear interpolation\n");
- fprintf(f, " -3, --cubic - use cubic interpolation (default)\n");
- fprintf(f, "Thresholding:\n");
- fprintf(f, " -t, --threshold <n> - set threshold for bilevel conversion (default 0.45)\n");
- fprintf(f, " -g, --grey - no bilevel conversion, output a greymap\n");
-
- fprintf(f, "\n");
- fprintf(f, "Possible input file formats are: pnm (pbm, pgm, ppm), bmp.\n");
- fprintf(f, "The default options are: -f 4 -s 2 -3 -t 0.45\n");
-
- return 0;
-}
-
-static struct option longopts[] = {
- {"help", 0, 0, 'h'},
- {"version", 0, 0, 'v'},
- {"license", 0, 0, 'l'},
- {"output", 1, 0, 'o'},
- {"reset", 0, 0, 'x'},
- {"invert", 0, 0, 'i'},
- {"filter", 1, 0, 'f'},
- {"nofilter", 0, 0, 'n'},
- {"blur", 1, 0, 'b'},
- {"scale", 1, 0, 's'},
- {"linear", 0, 0, '1'},
- {"cubic", 0, 0, '3'},
- {"grey", 0, 0, 'g'},
- {"threshold", 1, 0, 't'},
- {0, 0, 0, 0}
-};
-
-static const char *shortopts = "hvlo:xif:nb:s:13gt:";
-
-/* process options. On error, print error message to stderr and exit
- with code 1 */
-static void dopts(int ac, char *av[]) {
- int c;
- char *p;
-
- /* set defaults for command line parameters */
- info.outfile = NULL; /* output file */
- info.infiles = NULL; /* input files */
- info.infilecount = 0; /* how many input files? */
- info.invert = 0; /* invert input? */
- info.highpass = 1; /* use highpass filter? */
- info.lambda = 4; /* highpass filter radius */
- info.lowpass = 0; /* use lowpass filter? */
- info.lambda1 = 0; /* lowpass filter radius */
- info.scale = 2; /* scaling factor */
- info.linear = 0; /* linear scaling? */
- info.bilevel = 1; /* convert to bilevel? */
- info.level = 0.45; /* cutoff grey level */
- info.outext = ".pbm"; /* output file extension */
-
- while ((c = getopt_long(ac, av, shortopts, longopts, NULL)) != -1) {
- switch (c) {
- case 'h':
- fprintf(stdout, "" MKBITMAP " " VERSION ". Transforms images into bitmaps with scaling and filtering.\n\n");
- usage(stdout);
- exit(0);
- break;
- case 'v':
- fprintf(stdout, "" MKBITMAP " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n");
- exit(0);
- break;
- case 'l':
- fprintf(stdout, "" MKBITMAP " " VERSION ". Copyright (C) 2001-2017 Peter Selinger.\n\n");
- license(stdout);
- exit(0);
- break;
- case 'o':
- free(info.outfile);
- info.outfile = strdup(optarg);
- if (!info.outfile) {
- fprintf(stderr, "" MKBITMAP ": %s\n", strerror(errno));
- exit(2);
- }
- break;
- case 'x':
- info.invert = 0;
- info.highpass = 0;
- info.scale = 1;
- info.bilevel = 0;
- info.outext = ".pgm";
- break;
- case 'i':
- info.invert = 1;
- break;
- case 'f':
- info.highpass = 1;
- info.lambda = strtod(optarg, &p);
- if (*p || info.lambda<0) {
- fprintf(stderr, "" MKBITMAP ": invalid filter radius -- %s\n", optarg);
- exit(1);
- }
- break;
- case 'n':
- info.highpass = 0;
- break;
- case 'b':
- info.lowpass = 1;
- info.lambda1 = strtod(optarg, &p);
- if (*p || info.lambda1<0) {
- fprintf(stderr, "" MKBITMAP ": invalid filter radius -- %s\n", optarg);
- exit(1);
- }
- break;
- case 's':
- info.scale = strtol(optarg, &p, 0);
- if (*p || info.scale<=0) {
- fprintf(stderr, "" MKBITMAP ": invalid scaling factor -- %s\n", optarg);
- exit(1);
- }
- break;
- case '1':
- info.linear = 1;
- break;
- case '3':
- info.linear = 0;
- break;
- case 'g':
- info.bilevel = 0;
- info.outext = ".pgm";
- break;
- case 't':
- info.bilevel = 1;
- info.outext = ".pbm";
- info.level = strtod(optarg, &p);
- if (*p || info.level<0) {
- fprintf(stderr, "" MKBITMAP ": invalid threshold -- %s\n", optarg);
- exit(1);
- }
- break;
- case '?':
- fprintf(stderr, "Try --help for more info\n");
- exit(1);
- break;
- default:
- fprintf(stderr, "" MKBITMAP ": Unimplemented option -- %c\n", c);
- exit(1);
- }
- }
- info.infiles = &av[optind];
- info.infilecount = ac-optind;
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions for file handling */
-
-/* open a file for reading. Return stdin if filename is NULL or "-" */
-static FILE *my_fopen_read(const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return stdin;
- }
- return fopen(filename, "rb");
-}
-
-/* open a file for writing. Return stdout if filename is NULL or "-" */
-static FILE *my_fopen_write(const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return stdout;
- }
- return fopen(filename, "wb");
-}
-
-/* close a file, but do nothing is filename is NULL or "-" */
-static void my_fclose(FILE *f, const char *filename) {
- if (filename == NULL || strcmp(filename, "-") == 0) {
- return;
- }
- fclose(f);
-}
-
-/* make output filename from input filename. Return an allocated value. */
-static char *make_outfilename(const char *infile, const char *ext) {
- char *outfile;
- char *p;
-
- if (strcmp(infile, "-") == 0) {
- return strdup("-");
- }
-
- outfile = (char *) malloc(strlen(infile)+strlen(ext)+5);
- if (!outfile) {
- return NULL;
- }
- strcpy(outfile, infile);
- p = strrchr(outfile, '.');
- if (p) {
- *p = 0;
- }
- strcat(outfile, ext);
-
- /* check that input and output filenames are different */
- if (strcmp(infile, outfile) == 0) {
- strcpy(outfile, infile);
- strcat(outfile, "-out");
- }
-
- return outfile;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Main function */
-
-int main(int ac, char *av[]) {
- FILE *fin, *fout;
- int i;
- char *outfile;
-
- /* platform-specific initializations, e.g., set file i/o to binary */
- platform_init();
-
- /* process options */
- dopts(ac, av);
-
- /* there are several ways to call us:
- mkbitmap -- stdin to stdout
- mkbitmap -o outfile -- stdin to outfile
- mkbitmap file... -- encode each file and generate outfile names
- mkbitmap file... -o outfile -- concatenate files and write to outfile
- */
-
- if (info.infilecount == 0 && info.outfile == NULL) { /* stdin to stdout */
-
- process_file(stdin, stdout, "stdin", "stdout");
- return 0;
-
- } else if (info.infilecount == 0) { /* stdin to outfile */
-
- fout = my_fopen_write(info.outfile);
- if (!fout) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", info.outfile, strerror(errno));
- exit(2);
- }
- process_file(stdin, fout, "stdin", info.outfile);
- my_fclose(fout, info.outfile);
- free(info.outfile);
- return 0;
-
- } else if (info.outfile == NULL) { /* infiles -> multiple outfiles */
-
- for (i=0; i<info.infilecount; i++) {
- outfile = make_outfilename(info.infiles[i], info.outext);
- if (!outfile) {
- fprintf(stderr, "" MKBITMAP ": %s\n", strerror(errno));
- exit(2);
- }
- fin = my_fopen_read(info.infiles[i]);
- if (!fin) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", info.infiles[i], strerror(errno));
- exit(2);
- }
- fout = my_fopen_write(outfile);
- if (!fout) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", outfile, strerror(errno));
- exit(2);
- }
- process_file(fin, fout, info.infiles[i], outfile);
- my_fclose(fin, info.infiles[i]);
- my_fclose(fout, outfile);
- free(outfile);
- }
- return 0;
-
- } else { /* infiles to single outfile */
-
- fout = my_fopen_write(info.outfile);
- if (!fout) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", info.outfile, strerror(errno));
- exit(2);
- }
- for (i=0; i<info.infilecount; i++) {
- fin = my_fopen_read(info.infiles[i]);
- if (!fin) {
- fprintf(stderr, "" MKBITMAP ": %s: %s\n", info.infiles[i], strerror(errno));
- exit(2);
- }
- process_file(fin, fout, info.infiles[i], info.outfile);
- my_fclose(fin, info.infiles[i]);
- }
- my_fclose(fout, info.outfile);
- free(info.outfile);
- return 0;
-
- }
-
- /* not reached */
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/platform.h b/Build/source/libs/potrace/potrace-src/src/platform.h
deleted file mode 100644
index 5bb1589c2a3..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/platform.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* this header file contains some platform dependent stuff */
-
-#ifndef PLATFORM_H
-#define PLATFORM_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/* in Windows, set all file i/o to binary */
-#ifdef __MINGW32__
-#include <fcntl.h>
-unsigned int _CRT_fmode = _O_BINARY;
-static inline void platform_init(void) {
- _setmode(_fileno(stdin), _O_BINARY);
- _setmode(_fileno(stdout), _O_BINARY);
-}
-#else
-
-#ifdef __CYGWIN__
-#include <fcntl.h>
-#include <io.h>
-static inline void platform_init(void) {
- setmode(0,O_BINARY);
- setmode(1,O_BINARY);
-}
-#else
-static inline void platform_init(void) {
- /* NOP */
-}
-#endif
-#endif
-
-#endif /* PLATFORM_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib.c b/Build/source/libs/potrace/potrace-src/src/potracelib.c
deleted file mode 100644
index 7dc9fe940ab..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/potracelib.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "potracelib.h"
-#include "curve.h"
-#include "decompose.h"
-#include "trace.h"
-#include "progress.h"
-
-/* default parameters */
-static const potrace_param_t param_default = {
- 2, /* turdsize */
- POTRACE_TURNPOLICY_MINORITY, /* turnpolicy */
- 1.0, /* alphamax */
- 1, /* opticurve */
- 0.2, /* opttolerance */
- {
- NULL, /* callback function */
- NULL, /* callback data */
- 0.0, 1.0, /* progress range */
- 0.0, /* granularity */
- },
-};
-
-/* Return a fresh copy of the set of default parameters, or NULL on
- failure with errno set. */
-potrace_param_t *potrace_param_default(void) {
- potrace_param_t *p;
-
- p = (potrace_param_t *) malloc(sizeof(potrace_param_t));
- if (!p) {
- return NULL;
- }
- memcpy(p, &param_default, sizeof(potrace_param_t));
- return p;
-}
-
-/* On success, returns a Potrace state st with st->status ==
- POTRACE_STATUS_OK. On failure, returns NULL if no Potrace state
- could be created (with errno set), or returns an incomplete Potrace
- state (with st->status == POTRACE_STATUS_INCOMPLETE, and with errno
- set). Complete or incomplete Potrace state can be freed with
- potrace_state_free(). */
-potrace_state_t *potrace_trace(const potrace_param_t *param, const potrace_bitmap_t *bm) {
- int r;
- path_t *plist = NULL;
- potrace_state_t *st;
- progress_t prog;
- progress_t subprog;
-
- /* prepare private progress bar state */
- prog.callback = param->progress.callback;
- prog.data = param->progress.data;
- prog.min = param->progress.min;
- prog.max = param->progress.max;
- prog.epsilon = param->progress.epsilon;
- prog.d_prev = param->progress.min;
-
- /* allocate state object */
- st = (potrace_state_t *)malloc(sizeof(potrace_state_t));
- if (!st) {
- return NULL;
- }
-
- progress_subrange_start(0.0, 0.1, &prog, &subprog);
-
- /* process the image */
- r = bm_to_pathlist(bm, &plist, param, &subprog);
- if (r) {
- free(st);
- return NULL;
- }
-
- st->status = POTRACE_STATUS_OK;
- st->plist = plist;
- st->priv = NULL; /* private state currently unused */
-
- progress_subrange_end(&prog, &subprog);
-
- progress_subrange_start(0.1, 1.0, &prog, &subprog);
-
- /* partial success. */
- r = process_path(plist, param, &subprog);
- if (r) {
- st->status = POTRACE_STATUS_INCOMPLETE;
- }
-
- progress_subrange_end(&prog, &subprog);
-
- return st;
-}
-
-/* free a Potrace state, without disturbing errno. */
-void potrace_state_free(potrace_state_t *st) {
- pathlist_free(st->plist);
- free(st);
-}
-
-/* free a parameter list, without disturbing errno. */
-void potrace_param_free(potrace_param_t *p) {
- free(p);
-}
-
-const char *potrace_version(void) {
- return "potracelib " VERSION "";
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib.h b/Build/source/libs/potrace/potrace-src/src/potracelib.h
deleted file mode 100644
index 003297740af..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/potracelib.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifndef POTRACELIB_H
-#define POTRACELIB_H
-
-/* this file defines the API for the core Potrace library. For a more
- detailed description of the API, see potracelib.pdf */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ---------------------------------------------------------------------- */
-/* tracing parameters */
-
-/* turn policies */
-#define POTRACE_TURNPOLICY_BLACK 0
-#define POTRACE_TURNPOLICY_WHITE 1
-#define POTRACE_TURNPOLICY_LEFT 2
-#define POTRACE_TURNPOLICY_RIGHT 3
-#define POTRACE_TURNPOLICY_MINORITY 4
-#define POTRACE_TURNPOLICY_MAJORITY 5
-#define POTRACE_TURNPOLICY_RANDOM 6
-
-/* structure to hold progress bar callback data */
-struct potrace_progress_s {
- void (*callback)(double progress, void *privdata); /* callback fn */
- void *data; /* callback function's private data */
- double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */
- double epsilon; /* granularity: can skip smaller increments */
-};
-typedef struct potrace_progress_s potrace_progress_t;
-
-/* structure to hold tracing parameters */
-struct potrace_param_s {
- int turdsize; /* area of largest path to be ignored */
- int turnpolicy; /* resolves ambiguous turns in path decomposition */
- double alphamax; /* corner threshold */
- int opticurve; /* use curve optimization? */
- double opttolerance; /* curve optimization tolerance */
- potrace_progress_t progress; /* progress callback function */
-};
-typedef struct potrace_param_s potrace_param_t;
-
-/* ---------------------------------------------------------------------- */
-/* bitmaps */
-
-/* native word size */
-typedef unsigned long potrace_word;
-
-/* Internal bitmap format. The n-th scanline starts at scanline(n) =
- (map + n*dy). Raster data is stored as a sequence of potrace_words
- (NOT bytes). The leftmost bit of scanline n is the most significant
- bit of scanline(n)[0]. */
-struct potrace_bitmap_s {
- int w, h; /* width and height, in pixels */
- int dy; /* words per scanline (not bytes) */
- potrace_word *map; /* raw data, dy*h words */
-};
-typedef struct potrace_bitmap_s potrace_bitmap_t;
-
-/* ---------------------------------------------------------------------- */
-/* curves */
-
-/* point */
-struct potrace_dpoint_s {
- double x, y;
-};
-typedef struct potrace_dpoint_s potrace_dpoint_t;
-
-/* segment tags */
-#define POTRACE_CURVETO 1
-#define POTRACE_CORNER 2
-
-/* closed curve segment */
-struct potrace_curve_s {
- int n; /* number of segments */
- int *tag; /* tag[n]: POTRACE_CURVETO or POTRACE_CORNER */
- potrace_dpoint_t (*c)[3]; /* c[n][3]: control points.
- c[n][0] is unused for tag[n]=POTRACE_CORNER */
-};
-typedef struct potrace_curve_s potrace_curve_t;
-
-/* Linked list of signed curve segments. Also carries a tree structure. */
-struct potrace_path_s {
- int area; /* area of the bitmap path */
- int sign; /* '+' or '-', depending on orientation */
- potrace_curve_t curve; /* this path's vector data */
-
- struct potrace_path_s *next; /* linked list structure */
-
- struct potrace_path_s *childlist; /* tree structure */
- struct potrace_path_s *sibling; /* tree structure */
-
- struct potrace_privpath_s *priv; /* private state */
-};
-typedef struct potrace_path_s potrace_path_t;
-
-/* ---------------------------------------------------------------------- */
-/* Potrace state */
-
-#define POTRACE_STATUS_OK 0
-#define POTRACE_STATUS_INCOMPLETE 1
-
-struct potrace_state_s {
- int status;
- potrace_path_t *plist; /* vector data */
-
- struct potrace_privstate_s *priv; /* private state */
-};
-typedef struct potrace_state_s potrace_state_t;
-
-/* ---------------------------------------------------------------------- */
-/* API functions */
-
-/* get default parameters */
-potrace_param_t *potrace_param_default(void);
-
-/* free parameter set */
-void potrace_param_free(potrace_param_t *p);
-
-/* trace a bitmap */
-potrace_state_t *potrace_trace(const potrace_param_t *param,
- const potrace_bitmap_t *bm);
-
-/* free a Potrace state */
-void potrace_state_free(potrace_state_t *st);
-
-/* return a static plain text version string identifying this version
- of potracelib */
-const char *potrace_version(void);
-
-#ifdef __cplusplus
-} /* end of extern "C" */
-#endif
-
-#endif /* POTRACELIB_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c b/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c
deleted file mode 100644
index 49fe075e8ad..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/potracelib_demo.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* A simple and self-contained demo of the potracelib API */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#include "potracelib.h"
-
-#define WIDTH 250
-#define HEIGHT 250
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary bitmap functions */
-
-/* macros for writing individual bitmap pixels */
-#define BM_WORDSIZE ((int)sizeof(potrace_word))
-#define BM_WORDBITS (8*BM_WORDSIZE)
-#define BM_HIBIT (((potrace_word)1)<<(BM_WORDBITS-1))
-#define bm_scanline(bm, y) ((bm)->map + (y)*(bm)->dy)
-#define bm_index(bm, x, y) (&bm_scanline(bm, y)[(x)/BM_WORDBITS])
-#define bm_mask(x) (BM_HIBIT >> ((x) & (BM_WORDBITS-1)))
-#define bm_range(x, a) ((int)(x) >= 0 && (int)(x) < (a))
-#define bm_safe(bm, x, y) (bm_range(x, (bm)->w) && bm_range(y, (bm)->h))
-#define BM_USET(bm, x, y) (*bm_index(bm, x, y) |= bm_mask(x))
-#define BM_UCLR(bm, x, y) (*bm_index(bm, x, y) &= ~bm_mask(x))
-#define BM_UPUT(bm, x, y, b) ((b) ? BM_USET(bm, x, y) : BM_UCLR(bm, x, y))
-#define BM_PUT(bm, x, y, b) (bm_safe(bm, x, y) ? BM_UPUT(bm, x, y, b) : 0)
-
-/* return new un-initialized bitmap. NULL with errno on error */
-static potrace_bitmap_t *bm_new(int w, int h) {
- potrace_bitmap_t *bm;
- int dy = (w + BM_WORDBITS - 1) / BM_WORDBITS;
-
- bm = (potrace_bitmap_t *) malloc(sizeof(potrace_bitmap_t));
- if (!bm) {
- return NULL;
- }
- bm->w = w;
- bm->h = h;
- bm->dy = dy;
- bm->map = (potrace_word *) calloc(h, dy * BM_WORDSIZE);
- if (!bm->map) {
- free(bm);
- return NULL;
- }
- return bm;
-}
-
-/* free a bitmap */
-static void bm_free(potrace_bitmap_t *bm) {
- if (bm != NULL) {
- free(bm->map);
- }
- free(bm);
-}
-
-/* ---------------------------------------------------------------------- */
-/* demo */
-
-int main() {
- int x, y, i;
- potrace_bitmap_t *bm;
- potrace_param_t *param;
- potrace_path_t *p;
- potrace_state_t *st;
- int n, *tag;
- potrace_dpoint_t (*c)[3];
-
- /* create a bitmap */
- bm = bm_new(WIDTH, HEIGHT);
- if (!bm) {
- fprintf(stderr, "Error allocating bitmap: %s\n", strerror(errno));
- return 1;
- }
-
- /* fill the bitmap with some pattern */
- for (y=0; y<HEIGHT; y++) {
- for (x=0; x<WIDTH; x++) {
- BM_PUT(bm, x, y, ((x*x + y*y*y) % 10000 < 5000) ? 1 : 0);
- }
- }
-
- /* set tracing parameters, starting from defaults */
- param = potrace_param_default();
- if (!param) {
- fprintf(stderr, "Error allocating parameters: %s\n", strerror(errno));
- return 1;
- }
- param->turdsize = 0;
-
- /* trace the bitmap */
- st = potrace_trace(param, bm);
- if (!st || st->status != POTRACE_STATUS_OK) {
- fprintf(stderr, "Error tracing bitmap: %s\n", strerror(errno));
- return 1;
- }
- bm_free(bm);
-
- /* output vector data, e.g. as a rudimentary EPS file */
- printf("%%!PS-Adobe-3.0 EPSF-3.0\n");
- printf("%%%%BoundingBox: 0 0 %d %d\n", WIDTH, HEIGHT);
- printf("gsave\n");
-
- /* draw each curve */
- p = st->plist;
- while (p != NULL) {
- n = p->curve.n;
- tag = p->curve.tag;
- c = p->curve.c;
- printf("%f %f moveto\n", c[n-1][2].x, c[n-1][2].y);
- for (i=0; i<n; i++) {
- switch (tag[i]) {
- case POTRACE_CORNER:
- printf("%f %f lineto\n", c[i][1].x, c[i][1].y);
- printf("%f %f lineto\n", c[i][2].x, c[i][2].y);
- break;
- case POTRACE_CURVETO:
- printf("%f %f %f %f %f %f curveto\n",
- c[i][0].x, c[i][0].y,
- c[i][1].x, c[i][1].y,
- c[i][2].x, c[i][2].y);
- break;
- }
- }
- /* at the end of a group of a positive path and its negative
- children, fill. */
- if (p->next == NULL || p->next->sign == '+') {
- printf("0 setgray fill\n");
- }
- p = p->next;
- }
- printf("grestore\n");
- printf("%%EOF\n");
-
- potrace_state_free(st);
- potrace_param_free(param);
-
- return 0;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/progress.h b/Build/source/libs/potrace/potrace-src/src/progress.h
deleted file mode 100644
index cdd637694c1..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/progress.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* operations on potrace_progress_t objects, which are defined in
- potracelib.h. Note: the code attempts to minimize runtime overhead
- when no progress monitoring was requested. It also tries to
- minimize excessive progress calculations beneath the "epsilon"
- threshold. */
-
-#ifndef PROGRESS_H
-#define PROGRESS_H
-
-/* structure to hold progress bar callback data */
-struct progress_s {
- void (*callback)(double progress, void *privdata); /* callback fn */
- void *data; /* callback function's private data */
- double min, max; /* desired range of progress, e.g. 0.0 to 1.0 */
- double epsilon; /* granularity: can skip smaller increments */
- double b; /* upper limit of subrange in superrange units */
- double d_prev; /* previous value of d */
-};
-typedef struct progress_s progress_t;
-
-/* notify given progress object of current progress. Note that d is
- given in the 0.0-1.0 range, which will be scaled and translated to
- the progress object's range. */
-static inline void progress_update(double d, progress_t *prog) {
- double d_scaled;
-
- if (prog != NULL && prog->callback != NULL) {
- d_scaled = prog->min * (1-d) + prog->max * d;
- if (d == 1.0 || d_scaled >= prog->d_prev + prog->epsilon) {
- prog->callback(prog->min * (1-d) + prog->max * d, prog->data);
- prog->d_prev = d_scaled;
- }
- }
-}
-
-/* start a subrange of the given progress object. The range is
- narrowed to [a..b], relative to 0.0-1.0 coordinates. If new range
- is below granularity threshold, disable further subdivisions. */
-static inline void progress_subrange_start(double a, double b, const progress_t *prog, progress_t *sub) {
- double min, max;
-
- if (prog == NULL || prog->callback == NULL) {
- sub->callback = NULL;
- return;
- }
-
- min = prog->min * (1-a) + prog->max * a;
- max = prog->min * (1-b) + prog->max * b;
-
- if (max - min < prog->epsilon) {
- sub->callback = NULL; /* no further progress info in subrange */
- sub->b = b;
- return;
- }
- sub->callback = prog->callback;
- sub->data = prog->data;
- sub->epsilon = prog->epsilon;
- sub->min = min;
- sub->max = max;
- sub->d_prev = prog->d_prev;
- return;
-}
-
-static inline void progress_subrange_end(progress_t *prog, progress_t *sub) {
- if (prog != NULL && prog->callback != NULL) {
- if (sub->callback == NULL) {
- progress_update(sub->b, prog);
- } else {
- prog->d_prev = sub->d_prev;
- }
- }
-}
-
-#endif /* PROGRESS_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/progress_bar.c b/Build/source/libs/potrace/potrace-src/src/progress_bar.c
deleted file mode 100644
index 091269487a4..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/progress_bar.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* functions to render a progress bar for main.c. We provide a
- standard and a simplified progress bar. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "potracelib.h"
-#include "progress_bar.h"
-
-/* ---------------------------------------------------------------------- */
-/* vt100 progress bar */
-
-#define COL0 "\033[G" /* reset cursor to column 0 */
-
-struct vt100_progress_s {
- char name[22]; /* filename for status bar */
- double dnext; /* threshold value for next tick */
-};
-typedef struct vt100_progress_s vt100_progress_t;
-
-/* print a progress bar using vt100 control characters. This is a
- callback function that is potentially called often; thus, it has
- been optimized for the typical case, which is when the progress bar
- does not need updating. */
-static void vt100_progress(double d, void *data) {
- vt100_progress_t *p = (vt100_progress_t *)data;
- static char b[] = "========================================";
- int tick; /* number of visible tickmarks, 0..40 */
- int perc; /* visible percentage, 0..100 */
-
- /* note: the 0.01 and 0.025 ensure that we always end on 40
- tickmarks and 100%, despite any rounding errors. The 0.995
- ensures that tick always increases when d >= p->dnext. */
- if (d >= p->dnext) {
- tick = (int) floor(d*40+0.01);
- perc = (int) floor(d*100+0.025);
- fprintf(stderr, "%-21s |%-40s| %d%% " COL0 "", p->name, b+40-tick, perc);
- fflush(stderr);
- p->dnext = (tick+0.995) / 40.0;
- }
-}
-
-/* Initialize progress bar. Return 0 on success or 1 on failure with
- errno set. */
-static int init_vt100_progress(potrace_progress_t *prog, const char *filename, int count) {
- vt100_progress_t *p;
- const char *q, *s;
- int len;
-
- p = (vt100_progress_t *) malloc(sizeof(vt100_progress_t));
- if (!p) {
- return 1;
- }
-
- /* initialize callback function's data */
- p->dnext = 0;
-
- if (count != 0) {
- sprintf(p->name, " (p.%d):", count+1);
- } else {
- s = filename;
- if ((q = strrchr(s, '/')) != NULL) {
- s = q+1;
- }
- len = strlen(s);
- strncpy(p->name, s, 21);
- p->name[20] = 0;
- if (len > 20) {
- p->name[17] = '.';
- p->name[18] = '.';
- p->name[19] = '.';
- }
- strcat(p->name, ":");
- }
-
- /* initialize progress parameters */
- prog->callback = &vt100_progress;
- prog->data = (void *)p;
- prog->min = 0.0;
- prog->max = 1.0;
- prog->epsilon = 0.0;
-
- /* draw first progress bar */
- vt100_progress(0.0, prog->data);
- return 0;
-}
-
-/* Finalize the progress bar. */
-static void term_vt100_progress(potrace_progress_t *prog) {
- fprintf(stderr, "\n");
- fflush(stderr);
- free(prog->data);
- return;
-}
-
-/* progress bar interface structure */
-static progress_bar_t progress_bar_vt100_struct = {
- init_vt100_progress,
- term_vt100_progress,
-};
-progress_bar_t *progress_bar_vt100 = &progress_bar_vt100_struct;
-
-/* ---------------------------------------------------------------------- */
-/* another progress bar for dumb terminals */
-
-struct simplified_progress_s {
- int n; /* number of ticks displayed so far */
- double dnext; /* threshold value for next tick */
-};
-typedef struct simplified_progress_s simplified_progress_t;
-
-/* print a simplified progress bar, not using any special tty control
- codes. Optimized for frequent calling. */
-static void simplified_progress(double d, void *data) {
- simplified_progress_t *p = (simplified_progress_t *)data;
- int tick; /* number of visible tickmarks, 0..40 */
-
- /* note: the 0.01 and 0.025 ensure that we always end on 40
- tickmarks and 100%, despite any rounding errors. The 0.995
- ensures that tick always increases when d >= p->dnext. */
- if (d >= p->dnext) {
- tick = (int) floor(d*40+0.01);
- while (p->n < tick) {
- fputc('=', stderr);
- p->n++;
- }
- fflush(stderr);
- p->dnext = (tick+0.995) / 40.0;
- }
-}
-
-/* Initialize parameters for simplified progress bar. Return 0 on
- success or 1 on error with errno set. */
-static int init_simplified_progress(potrace_progress_t *prog, const char *filename, int count) {
- simplified_progress_t *p;
- const char *q, *s;
- int len;
- char buf[22];
-
- p = (simplified_progress_t *) malloc(sizeof(simplified_progress_t));
- if (!p) {
- return 1;
- }
-
- /* initialize callback function's data */
- p->n = 0;
- p->dnext = 0;
-
- if (count != 0) {
- sprintf(buf, " (p.%d):", count+1);
- } else {
- s = filename;
- if ((q = strrchr(s, '/')) != NULL) {
- s = q+1;
- }
- len = strlen(s);
- strncpy(buf, s, 21);
- buf[20] = 0;
- if (len > 20) {
- buf[17] = '.';
- buf[18] = '.';
- buf[19] = '.';
- }
- strcat(buf, ":");
- }
-
- fprintf(stderr, "%-21s |", buf);
-
- /* initialize progress parameters */
- prog->callback = &simplified_progress;
- prog->data = (void *)p;
- prog->min = 0.0;
- prog->max = 1.0;
- prog->epsilon = 0.0;
-
- /* draw first progress bar */
- simplified_progress(0.0, prog->data);
- return 0;
-}
-
-static void term_simplified_progress(potrace_progress_t *prog) {
- simplified_progress_t *p = (simplified_progress_t *)prog->data;
-
- simplified_progress(1.0, (void *)p);
- fprintf(stderr, "| 100%%\n");
- fflush(stderr);
- free(p);
- return;
-}
-
-/* progress bar interface structure */
-static progress_bar_t progress_bar_simplified_struct = {
- init_simplified_progress,
- term_simplified_progress,
-};
-progress_bar_t *progress_bar_simplified = &progress_bar_simplified_struct;
-
diff --git a/Build/source/libs/potrace/potrace-src/src/progress_bar.h b/Build/source/libs/potrace/potrace-src/src/progress_bar.h
deleted file mode 100644
index e34a578339c..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/progress_bar.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* functions to render a progress bar for main.c. We provide a
- standard and a simplified progress bar. */
-
-#ifndef PROGRESS_BAR_H
-#define PROGRESS_BAR_H
-
-#include "potracelib.h"
-
-/* structure to hold a progress bar interface */
-struct progress_bar_s {
- int (*init)(potrace_progress_t *prog, const char *filename, int count);
- void (*term)(potrace_progress_t *prog);
-};
-typedef struct progress_bar_s progress_bar_t;
-
-extern progress_bar_t *progress_bar_vt100;
-extern progress_bar_t *progress_bar_simplified;
-
-
-
-#endif /* PROGRESS_BAR_H */
-
diff --git a/Build/source/libs/potrace/potrace-src/src/render.c b/Build/source/libs/potrace/potrace-src/src/render.c
deleted file mode 100644
index ff66b0f4f56..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/render.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-
-#include "render.h"
-#include "greymap.h"
-#include "auxiliary.h"
-
-/* ---------------------------------------------------------------------- */
-/* routines for anti-aliased rendering of curves */
-
-/* we use the following method. Given a point (x,y) (with real-valued
- coordinates) in the plane, let (xi,yi) be the integer part of the
- coordinates, i.e., xi=floor(x), yi=floor(y). Define a path from
- (x,y) to infinity as follows: path(x,y) =
- (x,y)--(xi+1,y)--(xi+1,yi)--(+infty,yi). Now as the point (x,y)
- moves smoothly across the plane, the path path(x,y) sweeps
- (non-smoothly) across a certain area. We proportionately blacken
- the area as the path moves "downward", and we whiten the area as
- the path moves "upward". This way, after the point has traversed a
- closed curve, the interior of the curve has been darkened
- (counterclockwise movement) or lightened (clockwise movement). (The
- "grey shift" is actually proportional to the winding number). By
- choosing the above path with mostly integer coordinates, we achieve
- that only pixels close to (x,y) receive grey values and are subject
- to round-off errors. The grey value of pixels far away from (x,y)
- is always in "integer" (where 0=black, 1=white). As a special
- trick, we keep an accumulator rm->a1, which holds a double value to
- be added to the grey value to be added to the current pixel
- (xi,yi). Only when changing "current" pixels, we convert this
- double value to an integer. This way we avoid round-off errors at
- the meeting points of line segments. Another speedup measure is
- that we sometimes use the rm->incrow_buf array to postpone
- incrementing or decrementing an entire row. If incrow_buf[y]=x+1!=0,
- then all the pixels (x,y),(x+1,y),(x+2,y),... are scheduled to be
- incremented/decremented (which one is the case will be clear from
- context). This keeps the greymap operations reasonably local. */
-
-/* allocate a new rendering state */
-render_t *render_new(greymap_t *gm) {
- render_t *rm;
-
- rm = (render_t *) malloc(sizeof(render_t));
- if (!rm) {
- return NULL;
- }
- memset(rm, 0, sizeof(render_t));
- rm->gm = gm;
- rm->incrow_buf = (int *) calloc(gm->h, sizeof(int));
- if (!rm->incrow_buf) {
- free(rm);
- return NULL;
- }
- return rm;
-}
-
-/* free a given rendering state. Note: this does not free the
- underlying greymap. */
-void render_free(render_t *rm) {
- free(rm->incrow_buf);
- free(rm);
-}
-
-/* close path */
-void render_close(render_t *rm) {
- if (rm->x0 != rm->x1 || rm->y0 != rm->y1) {
- render_lineto(rm, rm->x0, rm->y0);
- }
- GM_INC(rm->gm, rm->x0i, rm->y0i, (rm->a0+rm->a1)*255);
-
- /* assert (rm->x0i != rm->x1i || rm->y0i != rm->y1i); */
-
- /* the persistent state is now undefined */
-}
-
-/* move point */
-void render_moveto(render_t *rm, double x, double y) {
- /* close the previous path */
- render_close(rm);
-
- rm->x0 = rm->x1 = x;
- rm->y0 = rm->y1 = y;
- rm->x0i = (int)floor(rm->x0);
- rm->x1i = (int)floor(rm->x1);
- rm->y0i = (int)floor(rm->y0);
- rm->y1i = (int)floor(rm->y1);
- rm->a0 = rm->a1 = 0;
-}
-
-/* add b to pixels (x,y) and all pixels to the right of it. However,
- use rm->incrow_buf as a buffer to economize on multiple calls */
-static void incrow(render_t *rm, int x, int y, int b) {
- int i, x0;
-
- if (y < 0 || y >= rm->gm->h) {
- return;
- }
-
- if (x < 0) {
- x = 0;
- } else if (x > rm->gm->w) {
- x = rm->gm->w;
- }
- if (rm->incrow_buf[y] == 0) {
- rm->incrow_buf[y] = x+1; /* store x+1 so that we can use 0 for "vacant" */
- return;
- }
- x0 = rm->incrow_buf[y]-1;
- rm->incrow_buf[y] = 0;
- if (x0 < x) {
- for (i=x0; i<x; i++) {
- GM_INC(rm->gm, i, y, -b);
- }
- } else {
- for (i=x; i<x0; i++) {
- GM_INC(rm->gm, i, y, b);
- }
- }
-}
-
-/* render a straight line */
-void render_lineto(render_t *rm, double x2, double y2) {
- int x2i, y2i;
- double t0=2, s0=2;
- int sn, tn;
- double ss=2, ts=2;
- double r0, r1;
- int i, j;
- int rxi, ryi;
- int s;
-
- x2i = (int)floor(x2);
- y2i = (int)floor(y2);
-
- sn = abs(x2i - rm->x1i);
- tn = abs(y2i - rm->y1i);
-
- if (sn) {
- s0 = ((x2>rm->x1 ? rm->x1i+1 : rm->x1i) - rm->x1)/(x2-rm->x1);
- ss = fabs(1.0/(x2-rm->x1));
- }
- if (tn) {
- t0 = ((y2>rm->y1 ? rm->y1i+1 : rm->y1i) - rm->y1)/(y2-rm->y1);
- ts = fabs(1.0/(y2-rm->y1));
- }
-
- r0 = 0;
-
- i = 0;
- j = 0;
-
- rxi = rm->x1i;
- ryi = rm->y1i;
-
- while (i<sn || j<tn) {
- if (j>=tn || (i<sn && s0+i*ss < t0+j*ts)) {
- r1 = s0+i*ss;
- i++;
- s = 1;
- } else {
- r1 = t0+j*ts;
- j++;
- s = 0;
- }
- /* render line from r0 to r1 segment of (rm->x1,rm->y1)..(x2,y2) */
-
- /* move point to r1 */
- rm->a1 += (r1-r0)*(y2-rm->y1)*(rxi+1-((r0+r1)/2.0*(x2-rm->x1)+rm->x1));
-
- /* move point across pixel boundary */
- if (s && x2>rm->x1) {
- GM_INC(rm->gm, rxi, ryi, rm->a1*255);
- rm->a1 = 0;
- rxi++;
- rm->a1 += rm->y1+r1*(y2-rm->y1)-ryi;
- } else if (!s && y2>rm->y1) {
- GM_INC(rm->gm, rxi, ryi, rm->a1*255);
- rm->a1 = 0;
- incrow(rm, rxi+1, ryi, 255);
- ryi++;
- } else if (s && x2<=rm->x1) {
- rm->a1 -= rm->y1+r1*(y2-rm->y1)-ryi;
- GM_INC(rm->gm, rxi, ryi, rm->a1*255);
- rm->a1 = 0;
- rxi--;
- } else if (!s && y2<=rm->y1) {
- GM_INC(rm->gm, rxi, ryi, rm->a1*255);
- rm->a1 = 0;
- ryi--;
- incrow(rm, rxi+1, ryi, -255);
- }
-
- r0 = r1;
- }
-
- /* move point to (x2,y2) */
-
- r1 = 1;
- rm->a1 += (r1-r0)*(y2-rm->y1)*(rxi+1-((r0+r1)/2.0*(x2-rm->x1)+rm->x1));
-
- rm->x1i = x2i;
- rm->y1i = y2i;
- rm->x1 = x2;
- rm->y1 = y2;
-
- /* assert (rxi != rm->x1i || ryi != rm->y1i); */
-}
-
-/* render a Bezier curve. */
-void render_curveto(render_t *rm, double x2, double y2, double x3, double y3, double x4, double y4) {
- double x1, y1, dd0, dd1, dd, delta, e2, epsilon, t;
-
- x1 = rm->x1; /* starting point */
- y1 = rm->y1;
-
- /* we approximate the curve by small line segments. The interval
- size, epsilon, is determined on the fly so that the distance
- between the true curve and its approximation does not exceed the
- desired accuracy delta. */
-
- delta = .1; /* desired accuracy, in pixels */
-
- /* let dd = maximal value of 2nd derivative over curve - this must
- occur at an endpoint. */
- dd0 = sq(x1-2*x2+x3) + sq(y1-2*y2+y3);
- dd1 = sq(x2-2*x3+x4) + sq(y2-2*y3+y4);
- dd = 6*sqrt(max(dd0, dd1));
- e2 = 8*delta <= dd ? 8*delta/dd : 1;
- epsilon = sqrt(e2); /* necessary interval size */
-
- for (t=epsilon; t<1; t+=epsilon) {
- render_lineto(rm, x1*cu(1-t)+3*x2*sq(1-t)*t+3*x3*(1-t)*sq(t)+x4*cu(t),
- y1*cu(1-t)+3*y2*sq(1-t)*t+3*y3*(1-t)*sq(t)+y4*cu(t));
- }
- render_lineto(rm, x4, y4);
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/render.h b/Build/source/libs/potrace/potrace-src/src/render.h
deleted file mode 100644
index 719fdf17068..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/render.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef RENDER_H
-#define RENDER_H
-
-#include "greymap.h"
-
-struct render_s {
- greymap_t *gm;
- double x0, y0, x1, y1;
- int x0i, y0i, x1i, y1i;
- double a0, a1;
- int *incrow_buf;
-};
-typedef struct render_s render_t;
-
-render_t *render_new(greymap_t *gm);
-void render_free(render_t *rm);
-void render_close(render_t *rm);
-void render_moveto(render_t *rm, double x, double y);
-void render_lineto(render_t *rm, double x, double y);
-void render_curveto(render_t *rm, double x2, double y2, double x3, double y3, double x4, double y4);
-
-#endif /* RENDER_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/trace.c b/Build/source/libs/potrace/potrace-src/src/trace.c
deleted file mode 100644
index b0b9944ae6a..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/trace.c
+++ /dev/null
@@ -1,1249 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* transform jaggy paths into smooth curves */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "potracelib.h"
-#include "curve.h"
-#include "lists.h"
-#include "auxiliary.h"
-#include "trace.h"
-#include "progress.h"
-
-#define INFTY 10000000 /* it suffices that this is longer than any
- path; it need not be really infinite */
-#define COS179 -0.999847695156 /* the cosine of 179 degrees */
-
-/* ---------------------------------------------------------------------- */
-#define SAFE_CALLOC(var, n, typ) \
- if ((var = (typ *)calloc(n, sizeof(typ))) == NULL) goto calloc_error
-
-/* ---------------------------------------------------------------------- */
-/* auxiliary functions */
-
-/* return a direction that is 90 degrees counterclockwise from p2-p0,
- but then restricted to one of the major wind directions (n, nw, w, etc) */
-static inline point_t dorth_infty(dpoint_t p0, dpoint_t p2) {
- point_t r;
-
- r.y = sign(p2.x-p0.x);
- r.x = -sign(p2.y-p0.y);
-
- return r;
-}
-
-/* return (p1-p0)x(p2-p0), the area of the parallelogram */
-static inline double dpara(dpoint_t p0, dpoint_t p1, dpoint_t p2) {
- double x1, y1, x2, y2;
-
- x1 = p1.x-p0.x;
- y1 = p1.y-p0.y;
- x2 = p2.x-p0.x;
- y2 = p2.y-p0.y;
-
- return x1*y2 - x2*y1;
-}
-
-/* ddenom/dpara have the property that the square of radius 1 centered
- at p1 intersects the line p0p2 iff |dpara(p0,p1,p2)| <= ddenom(p0,p2) */
-static inline double ddenom(dpoint_t p0, dpoint_t p2) {
- point_t r = dorth_infty(p0, p2);
-
- return r.y*(p2.x-p0.x) - r.x*(p2.y-p0.y);
-}
-
-/* return 1 if a <= b < c < a, in a cyclic sense (mod n) */
-static inline int cyclic(int a, int b, int c) {
- if (a<=c) {
- return (a<=b && b<c);
- } else {
- return (a<=b || b<c);
- }
-}
-
-/* determine the center and slope of the line i..j. Assume i<j. Needs
- "sum" components of p to be set. */
-static void pointslope(privpath_t *pp, int i, int j, dpoint_t *ctr, dpoint_t *dir) {
- /* assume i<j */
-
- int n = pp->len;
- sums_t *sums = pp->sums;
-
- double x, y, x2, xy, y2;
- double k;
- double a, b, c, lambda2, l;
- int r=0; /* rotations from i to j */
-
- while (j>=n) {
- j-=n;
- r+=1;
- }
- while (i>=n) {
- i-=n;
- r-=1;
- }
- while (j<0) {
- j+=n;
- r-=1;
- }
- while (i<0) {
- i+=n;
- r+=1;
- }
-
- x = sums[j+1].x-sums[i].x+r*sums[n].x;
- y = sums[j+1].y-sums[i].y+r*sums[n].y;
- x2 = sums[j+1].x2-sums[i].x2+r*sums[n].x2;
- xy = sums[j+1].xy-sums[i].xy+r*sums[n].xy;
- y2 = sums[j+1].y2-sums[i].y2+r*sums[n].y2;
- k = j+1-i+r*n;
-
- ctr->x = x/k;
- ctr->y = y/k;
-
- a = (x2-(double)x*x/k)/k;
- b = (xy-(double)x*y/k)/k;
- c = (y2-(double)y*y/k)/k;
-
- lambda2 = (a+c+sqrt((a-c)*(a-c)+4*b*b))/2; /* larger e.value */
-
- /* now find e.vector for lambda2 */
- a -= lambda2;
- c -= lambda2;
-
- if (fabs(a) >= fabs(c)) {
- l = sqrt(a*a+b*b);
- if (l!=0) {
- dir->x = -b/l;
- dir->y = a/l;
- }
- } else {
- l = sqrt(c*c+b*b);
- if (l!=0) {
- dir->x = -c/l;
- dir->y = b/l;
- }
- }
- if (l==0) {
- dir->x = dir->y = 0; /* sometimes this can happen when k=4:
- the two eigenvalues coincide */
- }
-}
-
-/* the type of (affine) quadratic forms, represented as symmetric 3x3
- matrices. The value of the quadratic form at a vector (x,y) is v^t
- Q v, where v = (x,y,1)^t. */
-typedef double quadform_t[3][3];
-
-/* Apply quadratic form Q to vector w = (w.x,w.y) */
-static inline double quadform(quadform_t Q, dpoint_t w) {
- double v[3];
- int i, j;
- double sum;
-
- v[0] = w.x;
- v[1] = w.y;
- v[2] = 1;
- sum = 0.0;
-
- for (i=0; i<3; i++) {
- for (j=0; j<3; j++) {
- sum += v[i] * Q[i][j] * v[j];
- }
- }
- return sum;
-}
-
-/* calculate p1 x p2 */
-static inline int xprod(point_t p1, point_t p2) {
- return p1.x*p2.y - p1.y*p2.x;
-}
-
-/* calculate (p1-p0)x(p3-p2) */
-static inline double cprod(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- double x1, y1, x2, y2;
-
- x1 = p1.x - p0.x;
- y1 = p1.y - p0.y;
- x2 = p3.x - p2.x;
- y2 = p3.y - p2.y;
-
- return x1*y2 - x2*y1;
-}
-
-/* calculate (p1-p0)*(p2-p0) */
-static inline double iprod(dpoint_t p0, dpoint_t p1, dpoint_t p2) {
- double x1, y1, x2, y2;
-
- x1 = p1.x - p0.x;
- y1 = p1.y - p0.y;
- x2 = p2.x - p0.x;
- y2 = p2.y - p0.y;
-
- return x1*x2 + y1*y2;
-}
-
-/* calculate (p1-p0)*(p3-p2) */
-static inline double iprod1(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- double x1, y1, x2, y2;
-
- x1 = p1.x - p0.x;
- y1 = p1.y - p0.y;
- x2 = p3.x - p2.x;
- y2 = p3.y - p2.y;
-
- return x1*x2 + y1*y2;
-}
-
-/* calculate distance between two points */
-static inline double ddist(dpoint_t p, dpoint_t q) {
- return sqrt(sq(p.x-q.x)+sq(p.y-q.y));
-}
-
-/* calculate point of a bezier curve */
-static inline dpoint_t bezier(double t, dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3) {
- double s = 1-t;
- dpoint_t res;
-
- /* Note: a good optimizing compiler (such as gcc-3) reduces the
- following to 16 multiplications, using common subexpression
- elimination. */
-
- res.x = s*s*s*p0.x + 3*(s*s*t)*p1.x + 3*(t*t*s)*p2.x + t*t*t*p3.x;
- res.y = s*s*s*p0.y + 3*(s*s*t)*p1.y + 3*(t*t*s)*p2.y + t*t*t*p3.y;
-
- return res;
-}
-
-/* calculate the point t in [0..1] on the (convex) bezier curve
- (p0,p1,p2,p3) which is tangent to q1-q0. Return -1.0 if there is no
- solution in [0..1]. */
-static double tangent(dpoint_t p0, dpoint_t p1, dpoint_t p2, dpoint_t p3, dpoint_t q0, dpoint_t q1) {
- double A, B, C; /* (1-t)^2 A + 2(1-t)t B + t^2 C = 0 */
- double a, b, c; /* a t^2 + b t + c = 0 */
- double d, s, r1, r2;
-
- A = cprod(p0, p1, q0, q1);
- B = cprod(p1, p2, q0, q1);
- C = cprod(p2, p3, q0, q1);
-
- a = A - 2*B + C;
- b = -2*A + 2*B;
- c = A;
-
- d = b*b - 4*a*c;
-
- if (a==0 || d<0) {
- return -1.0;
- }
-
- s = sqrt(d);
-
- r1 = (-b + s) / (2 * a);
- r2 = (-b - s) / (2 * a);
-
- if (r1 >= 0 && r1 <= 1) {
- return r1;
- } else if (r2 >= 0 && r2 <= 1) {
- return r2;
- } else {
- return -1.0;
- }
-}
-
-/* ---------------------------------------------------------------------- */
-/* Preparation: fill in the sum* fields of a path (used for later
- rapid summing). Return 0 on success, 1 with errno set on
- failure. */
-static int calc_sums(privpath_t *pp) {
- int i, x, y;
- int n = pp->len;
-
- SAFE_CALLOC(pp->sums, pp->len+1, sums_t);
-
- /* origin */
- pp->x0 = pp->pt[0].x;
- pp->y0 = pp->pt[0].y;
-
- /* preparatory computation for later fast summing */
- pp->sums[0].x2 = pp->sums[0].xy = pp->sums[0].y2 = pp->sums[0].x = pp->sums[0].y = 0;
- for (i=0; i<n; i++) {
- x = pp->pt[i].x - pp->x0;
- y = pp->pt[i].y - pp->y0;
- pp->sums[i+1].x = pp->sums[i].x + x;
- pp->sums[i+1].y = pp->sums[i].y + y;
- pp->sums[i+1].x2 = pp->sums[i].x2 + (double)x*x;
- pp->sums[i+1].xy = pp->sums[i].xy + (double)x*y;
- pp->sums[i+1].y2 = pp->sums[i].y2 + (double)y*y;
- }
- return 0;
-
- calloc_error:
- return 1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Stage 1: determine the straight subpaths (Sec. 2.2.1). Fill in the
- "lon" component of a path object (based on pt/len). For each i,
- lon[i] is the furthest index such that a straight line can be drawn
- from i to lon[i]. Return 1 on error with errno set, else 0. */
-
-/* this algorithm depends on the fact that the existence of straight
- subpaths is a triplewise property. I.e., there exists a straight
- line through squares i0,...,in iff there exists a straight line
- through i,j,k, for all i0<=i<j<k<=in. (Proof?) */
-
-/* this implementation of calc_lon is O(n^2). It replaces an older
- O(n^3) version. A "constraint" means that future points must
- satisfy xprod(constraint[0], cur) >= 0 and xprod(constraint[1],
- cur) <= 0. */
-
-/* Remark for Potrace 1.1: the current implementation of calc_lon is
- more complex than the implementation found in Potrace 1.0, but it
- is considerably faster. The introduction of the "nc" data structure
- means that we only have to test the constraints for "corner"
- points. On a typical input file, this speeds up the calc_lon
- function by a factor of 31.2, thereby decreasing its time share
- within the overall Potrace algorithm from 72.6% to 7.82%, and
- speeding up the overall algorithm by a factor of 3.36. On another
- input file, calc_lon was sped up by a factor of 6.7, decreasing its
- time share from 51.4% to 13.61%, and speeding up the overall
- algorithm by a factor of 1.78. In any case, the savings are
- substantial. */
-
-/* returns 0 on success, 1 on error with errno set */
-static int calc_lon(privpath_t *pp) {
- point_t *pt = pp->pt;
- int n = pp->len;
- int i, j, k, k1;
- int ct[4], dir;
- point_t constraint[2];
- point_t cur;
- point_t off;
- int *pivk = NULL; /* pivk[n] */
- int *nc = NULL; /* nc[n]: next corner */
- point_t dk; /* direction of k-k1 */
- int a, b, c, d;
-
- SAFE_CALLOC(pivk, n, int);
- SAFE_CALLOC(nc, n, int);
-
- /* initialize the nc data structure. Point from each point to the
- furthest future point to which it is connected by a vertical or
- horizontal segment. We take advantage of the fact that there is
- always a direction change at 0 (due to the path decomposition
- algorithm). But even if this were not so, there is no harm, as
- in practice, correctness does not depend on the word "furthest"
- above. */
- k = 0;
- for (i=n-1; i>=0; i--) {
- if (pt[i].x != pt[k].x && pt[i].y != pt[k].y) {
- k = i+1; /* necessarily i<n-1 in this case */
- }
- nc[i] = k;
- }
-
- SAFE_CALLOC(pp->lon, n, int);
-
- /* determine pivot points: for each i, let pivk[i] be the furthest k
- such that all j with i<j<k lie on a line connecting i,k. */
-
- for (i=n-1; i>=0; i--) {
- ct[0] = ct[1] = ct[2] = ct[3] = 0;
-
- /* keep track of "directions" that have occurred */
- dir = (3+3*(pt[mod(i+1,n)].x-pt[i].x)+(pt[mod(i+1,n)].y-pt[i].y))/2;
- ct[dir]++;
-
- constraint[0].x = 0;
- constraint[0].y = 0;
- constraint[1].x = 0;
- constraint[1].y = 0;
-
- /* find the next k such that no straight line from i to k */
- k = nc[i];
- k1 = i;
- while (1) {
-
- dir = (3+3*sign(pt[k].x-pt[k1].x)+sign(pt[k].y-pt[k1].y))/2;
- ct[dir]++;
-
- /* if all four "directions" have occurred, cut this path */
- if (ct[0] && ct[1] && ct[2] && ct[3]) {
- pivk[i] = k1;
- goto foundk;
- }
-
- cur.x = pt[k].x - pt[i].x;
- cur.y = pt[k].y - pt[i].y;
-
- /* see if current constraint is violated */
- if (xprod(constraint[0], cur) < 0 || xprod(constraint[1], cur) > 0) {
- goto constraint_viol;
- }
-
- /* else, update constraint */
- if (abs(cur.x) <= 1 && abs(cur.y) <= 1) {
- /* no constraint */
- } else {
- off.x = cur.x + ((cur.y>=0 && (cur.y>0 || cur.x<0)) ? 1 : -1);
- off.y = cur.y + ((cur.x<=0 && (cur.x<0 || cur.y<0)) ? 1 : -1);
- if (xprod(constraint[0], off) >= 0) {
- constraint[0] = off;
- }
- off.x = cur.x + ((cur.y<=0 && (cur.y<0 || cur.x<0)) ? 1 : -1);
- off.y = cur.y + ((cur.x>=0 && (cur.x>0 || cur.y<0)) ? 1 : -1);
- if (xprod(constraint[1], off) <= 0) {
- constraint[1] = off;
- }
- }
- k1 = k;
- k = nc[k1];
- if (!cyclic(k,i,k1)) {
- break;
- }
- }
- constraint_viol:
- /* k1 was the last "corner" satisfying the current constraint, and
- k is the first one violating it. We now need to find the last
- point along k1..k which satisfied the constraint. */
- dk.x = sign(pt[k].x-pt[k1].x);
- dk.y = sign(pt[k].y-pt[k1].y);
- cur.x = pt[k1].x - pt[i].x;
- cur.y = pt[k1].y - pt[i].y;
- /* find largest integer j such that xprod(constraint[0], cur+j*dk)
- >= 0 and xprod(constraint[1], cur+j*dk) <= 0. Use bilinearity
- of xprod. */
- a = xprod(constraint[0], cur);
- b = xprod(constraint[0], dk);
- c = xprod(constraint[1], cur);
- d = xprod(constraint[1], dk);
- /* find largest integer j such that a+j*b>=0 and c+j*d<=0. This
- can be solved with integer arithmetic. */
- j = INFTY;
- if (b<0) {
- j = floordiv(a,-b);
- }
- if (d>0) {
- j = min(j, floordiv(-c,d));
- }
- pivk[i] = mod(k1+j,n);
- foundk:
- ;
- } /* for i */
-
- /* clean up: for each i, let lon[i] be the largest k such that for
- all i' with i<=i'<k, i'<k<=pivk[i']. */
-
- j=pivk[n-1];
- pp->lon[n-1]=j;
- for (i=n-2; i>=0; i--) {
- if (cyclic(i+1,pivk[i],j)) {
- j=pivk[i];
- }
- pp->lon[i]=j;
- }
-
- for (i=n-1; cyclic(mod(i+1,n),j,pp->lon[i]); i--) {
- pp->lon[i] = j;
- }
-
- free(pivk);
- free(nc);
- return 0;
-
- calloc_error:
- free(pivk);
- free(nc);
- return 1;
-}
-
-
-/* ---------------------------------------------------------------------- */
-/* Stage 2: calculate the optimal polygon (Sec. 2.2.2-2.2.4). */
-
-/* Auxiliary function: calculate the penalty of an edge from i to j in
- the given path. This needs the "lon" and "sum*" data. */
-
-static double penalty3(privpath_t *pp, int i, int j) {
- int n = pp->len;
- point_t *pt = pp->pt;
- sums_t *sums = pp->sums;
-
- /* assume 0<=i<j<=n */
- double x, y, x2, xy, y2;
- double k;
- double a, b, c, s;
- double px, py, ex, ey;
-
- int r = 0; /* rotations from i to j */
-
- if (j>=n) {
- j -= n;
- r = 1;
- }
-
- /* critical inner loop: the "if" gives a 4.6 percent speedup */
- if (r == 0) {
- x = sums[j+1].x - sums[i].x;
- y = sums[j+1].y - sums[i].y;
- x2 = sums[j+1].x2 - sums[i].x2;
- xy = sums[j+1].xy - sums[i].xy;
- y2 = sums[j+1].y2 - sums[i].y2;
- k = j+1 - i;
- } else {
- x = sums[j+1].x - sums[i].x + sums[n].x;
- y = sums[j+1].y - sums[i].y + sums[n].y;
- x2 = sums[j+1].x2 - sums[i].x2 + sums[n].x2;
- xy = sums[j+1].xy - sums[i].xy + sums[n].xy;
- y2 = sums[j+1].y2 - sums[i].y2 + sums[n].y2;
- k = j+1 - i + n;
- }
-
- px = (pt[i].x + pt[j].x) / 2.0 - pt[0].x;
- py = (pt[i].y + pt[j].y) / 2.0 - pt[0].y;
- ey = (pt[j].x - pt[i].x);
- ex = -(pt[j].y - pt[i].y);
-
- a = ((x2 - 2*x*px) / k + px*px);
- b = ((xy - x*py - y*px) / k + px*py);
- c = ((y2 - 2*y*py) / k + py*py);
-
- s = ex*ex*a + 2*ex*ey*b + ey*ey*c;
-
- return sqrt(s);
-}
-
-/* find the optimal polygon. Fill in the m and po components. Return 1
- on failure with errno set, else 0. Non-cyclic version: assumes i=0
- is in the polygon. Fixme: implement cyclic version. */
-static int bestpolygon(privpath_t *pp)
-{
- int i, j, m, k;
- int n = pp->len;
- double *pen = NULL; /* pen[n+1]: penalty vector */
- int *prev = NULL; /* prev[n+1]: best path pointer vector */
- int *clip0 = NULL; /* clip0[n]: longest segment pointer, non-cyclic */
- int *clip1 = NULL; /* clip1[n+1]: backwards segment pointer, non-cyclic */
- int *seg0 = NULL; /* seg0[m+1]: forward segment bounds, m<=n */
- int *seg1 = NULL; /* seg1[m+1]: backward segment bounds, m<=n */
- double thispen;
- double best;
- int c;
-
- SAFE_CALLOC(pen, n+1, double);
- SAFE_CALLOC(prev, n+1, int);
- SAFE_CALLOC(clip0, n, int);
- SAFE_CALLOC(clip1, n+1, int);
- SAFE_CALLOC(seg0, n+1, int);
- SAFE_CALLOC(seg1, n+1, int);
-
- /* calculate clipped paths */
- for (i=0; i<n; i++) {
- c = mod(pp->lon[mod(i-1,n)]-1,n);
- if (c == i) {
- c = mod(i+1,n);
- }
- if (c < i) {
- clip0[i] = n;
- } else {
- clip0[i] = c;
- }
- }
-
- /* calculate backwards path clipping, non-cyclic. j <= clip0[i] iff
- clip1[j] <= i, for i,j=0..n. */
- j = 1;
- for (i=0; i<n; i++) {
- while (j <= clip0[i]) {
- clip1[j] = i;
- j++;
- }
- }
-
- /* calculate seg0[j] = longest path from 0 with j segments */
- i = 0;
- for (j=0; i<n; j++) {
- seg0[j] = i;
- i = clip0[i];
- }
- seg0[j] = n;
- m = j;
-
- /* calculate seg1[j] = longest path to n with m-j segments */
- i = n;
- for (j=m; j>0; j--) {
- seg1[j] = i;
- i = clip1[i];
- }
- seg1[0] = 0;
-
- /* now find the shortest path with m segments, based on penalty3 */
- /* note: the outer 2 loops jointly have at most n iterations, thus
- the worst-case behavior here is quadratic. In practice, it is
- close to linear since the inner loop tends to be short. */
- pen[0]=0;
- for (j=1; j<=m; j++) {
- for (i=seg1[j]; i<=seg0[j]; i++) {
- best = -1;
- for (k=seg0[j-1]; k>=clip1[i]; k--) {
- thispen = penalty3(pp, k, i) + pen[k];
- if (best < 0 || thispen < best) {
- prev[i] = k;
- best = thispen;
- }
- }
- pen[i] = best;
- }
- }
-
- pp->m = m;
- SAFE_CALLOC(pp->po, m, int);
-
- /* read off shortest path */
- for (i=n, j=m-1; i>0; j--) {
- i = prev[i];
- pp->po[j] = i;
- }
-
- free(pen);
- free(prev);
- free(clip0);
- free(clip1);
- free(seg0);
- free(seg1);
- return 0;
-
- calloc_error:
- free(pen);
- free(prev);
- free(clip0);
- free(clip1);
- free(seg0);
- free(seg1);
- return 1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Stage 3: vertex adjustment (Sec. 2.3.1). */
-
-/* Adjust vertices of optimal polygon: calculate the intersection of
- the two "optimal" line segments, then move it into the unit square
- if it lies outside. Return 1 with errno set on error; 0 on
- success. */
-
-static int adjust_vertices(privpath_t *pp) {
- int m = pp->m;
- int *po = pp->po;
- int n = pp->len;
- point_t *pt = pp->pt;
- int x0 = pp->x0;
- int y0 = pp->y0;
-
- dpoint_t *ctr = NULL; /* ctr[m] */
- dpoint_t *dir = NULL; /* dir[m] */
- quadform_t *q = NULL; /* q[m] */
- double v[3];
- double d;
- int i, j, k, l;
- dpoint_t s;
- int r;
-
- SAFE_CALLOC(ctr, m, dpoint_t);
- SAFE_CALLOC(dir, m, dpoint_t);
- SAFE_CALLOC(q, m, quadform_t);
-
- r = privcurve_init(&pp->curve, m);
- if (r) {
- goto calloc_error;
- }
-
- /* calculate "optimal" point-slope representation for each line
- segment */
- for (i=0; i<m; i++) {
- j = po[mod(i+1,m)];
- j = mod(j-po[i],n)+po[i];
- pointslope(pp, po[i], j, &ctr[i], &dir[i]);
- }
-
- /* represent each line segment as a singular quadratic form; the
- distance of a point (x,y) from the line segment will be
- (x,y,1)Q(x,y,1)^t, where Q=q[i]. */
- for (i=0; i<m; i++) {
- d = sq(dir[i].x) + sq(dir[i].y);
- if (d == 0.0) {
- for (j=0; j<3; j++) {
- for (k=0; k<3; k++) {
- q[i][j][k] = 0;
- }
- }
- } else {
- v[0] = dir[i].y;
- v[1] = -dir[i].x;
- v[2] = - v[1] * ctr[i].y - v[0] * ctr[i].x;
- for (l=0; l<3; l++) {
- for (k=0; k<3; k++) {
- q[i][l][k] = v[l] * v[k] / d;
- }
- }
- }
- }
-
- /* now calculate the "intersections" of consecutive segments.
- Instead of using the actual intersection, we find the point
- within a given unit square which minimizes the square distance to
- the two lines. */
- for (i=0; i<m; i++) {
- quadform_t Q;
- dpoint_t w;
- double dx, dy;
- double det;
- double min, cand; /* minimum and candidate for minimum of quad. form */
- double xmin, ymin; /* coordinates of minimum */
- int z;
-
- /* let s be the vertex, in coordinates relative to x0/y0 */
- s.x = pt[po[i]].x-x0;
- s.y = pt[po[i]].y-y0;
-
- /* intersect segments i-1 and i */
-
- j = mod(i-1,m);
-
- /* add quadratic forms */
- for (l=0; l<3; l++) {
- for (k=0; k<3; k++) {
- Q[l][k] = q[j][l][k] + q[i][l][k];
- }
- }
-
- while(1) {
- /* minimize the quadratic form Q on the unit square */
- /* find intersection */
-
-#ifdef HAVE_GCC_LOOP_BUG
- /* work around gcc bug #12243 */
- free(NULL);
-#endif
-
- det = Q[0][0]*Q[1][1] - Q[0][1]*Q[1][0];
- if (det != 0.0) {
- w.x = (-Q[0][2]*Q[1][1] + Q[1][2]*Q[0][1]) / det;
- w.y = ( Q[0][2]*Q[1][0] - Q[1][2]*Q[0][0]) / det;
- break;
- }
-
- /* matrix is singular - lines are parallel. Add another,
- orthogonal axis, through the center of the unit square */
- if (Q[0][0]>Q[1][1]) {
- v[0] = -Q[0][1];
- v[1] = Q[0][0];
- } else if (Q[1][1]) {
- v[0] = -Q[1][1];
- v[1] = Q[1][0];
- } else {
- v[0] = 1;
- v[1] = 0;
- }
- d = sq(v[0]) + sq(v[1]);
- v[2] = - v[1] * s.y - v[0] * s.x;
- for (l=0; l<3; l++) {
- for (k=0; k<3; k++) {
- Q[l][k] += v[l] * v[k] / d;
- }
- }
- }
- dx = fabs(w.x-s.x);
- dy = fabs(w.y-s.y);
- if (dx <= .5 && dy <= .5) {
- pp->curve.vertex[i].x = w.x+x0;
- pp->curve.vertex[i].y = w.y+y0;
- continue;
- }
-
- /* the minimum was not in the unit square; now minimize quadratic
- on boundary of square */
- min = quadform(Q, s);
- xmin = s.x;
- ymin = s.y;
-
- if (Q[0][0] == 0.0) {
- goto fixx;
- }
- for (z=0; z<2; z++) { /* value of the y-coordinate */
- w.y = s.y-0.5+z;
- w.x = - (Q[0][1] * w.y + Q[0][2]) / Q[0][0];
- dx = fabs(w.x-s.x);
- cand = quadform(Q, w);
- if (dx <= .5 && cand < min) {
- min = cand;
- xmin = w.x;
- ymin = w.y;
- }
- }
- fixx:
- if (Q[1][1] == 0.0) {
- goto corners;
- }
- for (z=0; z<2; z++) { /* value of the x-coordinate */
- w.x = s.x-0.5+z;
- w.y = - (Q[1][0] * w.x + Q[1][2]) / Q[1][1];
- dy = fabs(w.y-s.y);
- cand = quadform(Q, w);
- if (dy <= .5 && cand < min) {
- min = cand;
- xmin = w.x;
- ymin = w.y;
- }
- }
- corners:
- /* check four corners */
- for (l=0; l<2; l++) {
- for (k=0; k<2; k++) {
- w.x = s.x-0.5+l;
- w.y = s.y-0.5+k;
- cand = quadform(Q, w);
- if (cand < min) {
- min = cand;
- xmin = w.x;
- ymin = w.y;
- }
- }
- }
-
- pp->curve.vertex[i].x = xmin + x0;
- pp->curve.vertex[i].y = ymin + y0;
- continue;
- }
-
- free(ctr);
- free(dir);
- free(q);
- return 0;
-
- calloc_error:
- free(ctr);
- free(dir);
- free(q);
- return 1;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Stage 4: smoothing and corner analysis (Sec. 2.3.3) */
-
-/* reverse orientation of a path */
-static void reverse(privcurve_t *curve) {
- int m = curve->n;
- int i, j;
- dpoint_t tmp;
-
- for (i=0, j=m-1; i<j; i++, j--) {
- tmp = curve->vertex[i];
- curve->vertex[i] = curve->vertex[j];
- curve->vertex[j] = tmp;
- }
-}
-
-/* Always succeeds */
-static void smooth(privcurve_t *curve, double alphamax) {
- int m = curve->n;
-
- int i, j, k;
- double dd, denom, alpha;
- dpoint_t p2, p3, p4;
-
- /* examine each vertex and find its best fit */
- for (i=0; i<m; i++) {
- j = mod(i+1, m);
- k = mod(i+2, m);
- p4 = interval(1/2.0, curve->vertex[k], curve->vertex[j]);
-
- denom = ddenom(curve->vertex[i], curve->vertex[k]);
- if (denom != 0.0) {
- dd = dpara(curve->vertex[i], curve->vertex[j], curve->vertex[k]) / denom;
- dd = fabs(dd);
- alpha = dd>1 ? (1 - 1.0/dd) : 0;
- alpha = alpha / 0.75;
- } else {
- alpha = 4/3.0;
- }
- curve->alpha0[j] = alpha; /* remember "original" value of alpha */
-
- if (alpha >= alphamax) { /* pointed corner */
- curve->tag[j] = POTRACE_CORNER;
- curve->c[j][1] = curve->vertex[j];
- curve->c[j][2] = p4;
- } else {
- if (alpha < 0.55) {
- alpha = 0.55;
- } else if (alpha > 1) {
- alpha = 1;
- }
- p2 = interval(.5+.5*alpha, curve->vertex[i], curve->vertex[j]);
- p3 = interval(.5+.5*alpha, curve->vertex[k], curve->vertex[j]);
- curve->tag[j] = POTRACE_CURVETO;
- curve->c[j][0] = p2;
- curve->c[j][1] = p3;
- curve->c[j][2] = p4;
- }
- curve->alpha[j] = alpha; /* store the "cropped" value of alpha */
- curve->beta[j] = 0.5;
- }
- curve->alphacurve = 1;
-
- return;
-}
-
-/* ---------------------------------------------------------------------- */
-/* Stage 5: Curve optimization (Sec. 2.4) */
-
-/* a private type for the result of opti_penalty */
-struct opti_s {
- double pen; /* penalty */
- dpoint_t c[2]; /* curve parameters */
- double t, s; /* curve parameters */
- double alpha; /* curve parameter */
-};
-typedef struct opti_s opti_t;
-
-/* calculate best fit from i+.5 to j+.5. Assume i<j (cyclically).
- Return 0 and set badness and parameters (alpha, beta), if
- possible. Return 1 if impossible. */
-static int opti_penalty(privpath_t *pp, int i, int j, opti_t *res, double opttolerance, int *convc, double *areac) {
- int m = pp->curve.n;
- int k, k1, k2, conv, i1;
- double area, alpha, d, d1, d2;
- dpoint_t p0, p1, p2, p3, pt;
- double A, R, A1, A2, A3, A4;
- double s, t;
-
- /* check convexity, corner-freeness, and maximum bend < 179 degrees */
-
- if (i==j) { /* sanity - a full loop can never be an opticurve */
- return 1;
- }
-
- k = i;
- i1 = mod(i+1, m);
- k1 = mod(k+1, m);
- conv = convc[k1];
- if (conv == 0) {
- return 1;
- }
- d = ddist(pp->curve.vertex[i], pp->curve.vertex[i1]);
- for (k=k1; k!=j; k=k1) {
- k1 = mod(k+1, m);
- k2 = mod(k+2, m);
- if (convc[k1] != conv) {
- return 1;
- }
- if (sign(cprod(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2])) != conv) {
- return 1;
- }
- if (iprod1(pp->curve.vertex[i], pp->curve.vertex[i1], pp->curve.vertex[k1], pp->curve.vertex[k2]) < d * ddist(pp->curve.vertex[k1], pp->curve.vertex[k2]) * COS179) {
- return 1;
- }
- }
-
- /* the curve we're working in: */
- p0 = pp->curve.c[mod(i,m)][2];
- p1 = pp->curve.vertex[mod(i+1,m)];
- p2 = pp->curve.vertex[mod(j,m)];
- p3 = pp->curve.c[mod(j,m)][2];
-
- /* determine its area */
- area = areac[j] - areac[i];
- area -= dpara(pp->curve.vertex[0], pp->curve.c[i][2], pp->curve.c[j][2])/2;
- if (i>=j) {
- area += areac[m];
- }
-
- /* find intersection o of p0p1 and p2p3. Let t,s such that o =
- interval(t,p0,p1) = interval(s,p3,p2). Let A be the area of the
- triangle (p0,o,p3). */
-
- A1 = dpara(p0, p1, p2);
- A2 = dpara(p0, p1, p3);
- A3 = dpara(p0, p2, p3);
- /* A4 = dpara(p1, p2, p3); */
- A4 = A1+A3-A2;
-
- if (A2 == A1) { /* this should never happen */
- return 1;
- }
-
- t = A3/(A3-A4);
- s = A2/(A2-A1);
- A = A2 * t / 2.0;
-
- if (A == 0.0) { /* this should never happen */
- return 1;
- }
-
- R = area / A; /* relative area */
- alpha = 2 - sqrt(4 - R / 0.3); /* overall alpha for p0-o-p3 curve */
-
- res->c[0] = interval(t * alpha, p0, p1);
- res->c[1] = interval(s * alpha, p3, p2);
- res->alpha = alpha;
- res->t = t;
- res->s = s;
-
- p1 = res->c[0];
- p2 = res->c[1]; /* the proposed curve is now (p0,p1,p2,p3) */
-
- res->pen = 0;
-
- /* calculate penalty */
- /* check tangency with edges */
- for (k=mod(i+1,m); k!=j; k=k1) {
- k1 = mod(k+1,m);
- t = tangent(p0, p1, p2, p3, pp->curve.vertex[k], pp->curve.vertex[k1]);
- if (t<-.5) {
- return 1;
- }
- pt = bezier(t, p0, p1, p2, p3);
- d = ddist(pp->curve.vertex[k], pp->curve.vertex[k1]);
- if (d == 0.0) { /* this should never happen */
- return 1;
- }
- d1 = dpara(pp->curve.vertex[k], pp->curve.vertex[k1], pt) / d;
- if (fabs(d1) > opttolerance) {
- return 1;
- }
- if (iprod(pp->curve.vertex[k], pp->curve.vertex[k1], pt) < 0 || iprod(pp->curve.vertex[k1], pp->curve.vertex[k], pt) < 0) {
- return 1;
- }
- res->pen += sq(d1);
- }
-
- /* check corners */
- for (k=i; k!=j; k=k1) {
- k1 = mod(k+1,m);
- t = tangent(p0, p1, p2, p3, pp->curve.c[k][2], pp->curve.c[k1][2]);
- if (t<-.5) {
- return 1;
- }
- pt = bezier(t, p0, p1, p2, p3);
- d = ddist(pp->curve.c[k][2], pp->curve.c[k1][2]);
- if (d == 0.0) { /* this should never happen */
- return 1;
- }
- d1 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pt) / d;
- d2 = dpara(pp->curve.c[k][2], pp->curve.c[k1][2], pp->curve.vertex[k1]) / d;
- d2 *= 0.75 * pp->curve.alpha[k1];
- if (d2 < 0) {
- d1 = -d1;
- d2 = -d2;
- }
- if (d1 < d2 - opttolerance) {
- return 1;
- }
- if (d1 < d2) {
- res->pen += sq(d1 - d2);
- }
- }
-
- return 0;
-}
-
-/* optimize the path p, replacing sequences of Bezier segments by a
- single segment when possible. Return 0 on success, 1 with errno set
- on failure. */
-static int opticurve(privpath_t *pp, double opttolerance) {
- int m = pp->curve.n;
- int *pt = NULL; /* pt[m+1] */
- double *pen = NULL; /* pen[m+1] */
- int *len = NULL; /* len[m+1] */
- opti_t *opt = NULL; /* opt[m+1] */
- int om;
- int i,j,r;
- opti_t o;
- dpoint_t p0;
- int i1;
- double area;
- double alpha;
- double *s = NULL;
- double *t = NULL;
-
- int *convc = NULL; /* conv[m]: pre-computed convexities */
- double *areac = NULL; /* cumarea[m+1]: cache for fast area computation */
-
- SAFE_CALLOC(pt, m+1, int);
- SAFE_CALLOC(pen, m+1, double);
- SAFE_CALLOC(len, m+1, int);
- SAFE_CALLOC(opt, m+1, opti_t);
- SAFE_CALLOC(convc, m, int);
- SAFE_CALLOC(areac, m+1, double);
-
- /* pre-calculate convexity: +1 = right turn, -1 = left turn, 0 = corner */
- for (i=0; i<m; i++) {
- if (pp->curve.tag[i] == POTRACE_CURVETO) {
- convc[i] = sign(dpara(pp->curve.vertex[mod(i-1,m)], pp->curve.vertex[i], pp->curve.vertex[mod(i+1,m)]));
- } else {
- convc[i] = 0;
- }
- }
-
- /* pre-calculate areas */
- area = 0.0;
- areac[0] = 0.0;
- p0 = pp->curve.vertex[0];
- for (i=0; i<m; i++) {
- i1 = mod(i+1, m);
- if (pp->curve.tag[i1] == POTRACE_CURVETO) {
- alpha = pp->curve.alpha[i1];
- area += 0.3*alpha*(4-alpha)*dpara(pp->curve.c[i][2], pp->curve.vertex[i1], pp->curve.c[i1][2])/2;
- area += dpara(p0, pp->curve.c[i][2], pp->curve.c[i1][2])/2;
- }
- areac[i+1] = area;
- }
-
- pt[0] = -1;
- pen[0] = 0;
- len[0] = 0;
-
- /* Fixme: we always start from a fixed point -- should find the best
- curve cyclically */
-
- for (j=1; j<=m; j++) {
- /* calculate best path from 0 to j */
- pt[j] = j-1;
- pen[j] = pen[j-1];
- len[j] = len[j-1]+1;
-
- for (i=j-2; i>=0; i--) {
- r = opti_penalty(pp, i, mod(j,m), &o, opttolerance, convc, areac);
- if (r) {
- break;
- }
- if (len[j] > len[i]+1 || (len[j] == len[i]+1 && pen[j] > pen[i] + o.pen)) {
- pt[j] = i;
- pen[j] = pen[i] + o.pen;
- len[j] = len[i] + 1;
- opt[j] = o;
- }
- }
- }
- om = len[m];
- r = privcurve_init(&pp->ocurve, om);
- if (r) {
- goto calloc_error;
- }
- SAFE_CALLOC(s, om, double);
- SAFE_CALLOC(t, om, double);
-
- j = m;
- for (i=om-1; i>=0; i--) {
- if (pt[j]==j-1) {
- pp->ocurve.tag[i] = pp->curve.tag[mod(j,m)];
- pp->ocurve.c[i][0] = pp->curve.c[mod(j,m)][0];
- pp->ocurve.c[i][1] = pp->curve.c[mod(j,m)][1];
- pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2];
- pp->ocurve.vertex[i] = pp->curve.vertex[mod(j,m)];
- pp->ocurve.alpha[i] = pp->curve.alpha[mod(j,m)];
- pp->ocurve.alpha0[i] = pp->curve.alpha0[mod(j,m)];
- pp->ocurve.beta[i] = pp->curve.beta[mod(j,m)];
- s[i] = t[i] = 1.0;
- } else {
- pp->ocurve.tag[i] = POTRACE_CURVETO;
- pp->ocurve.c[i][0] = opt[j].c[0];
- pp->ocurve.c[i][1] = opt[j].c[1];
- pp->ocurve.c[i][2] = pp->curve.c[mod(j,m)][2];
- pp->ocurve.vertex[i] = interval(opt[j].s, pp->curve.c[mod(j,m)][2], pp->curve.vertex[mod(j,m)]);
- pp->ocurve.alpha[i] = opt[j].alpha;
- pp->ocurve.alpha0[i] = opt[j].alpha;
- s[i] = opt[j].s;
- t[i] = opt[j].t;
- }
- j = pt[j];
- }
-
- /* calculate beta parameters */
- for (i=0; i<om; i++) {
- i1 = mod(i+1,om);
- pp->ocurve.beta[i] = s[i] / (s[i] + t[i1]);
- }
- pp->ocurve.alphacurve = 1;
-
- free(pt);
- free(pen);
- free(len);
- free(opt);
- free(s);
- free(t);
- free(convc);
- free(areac);
- return 0;
-
- calloc_error:
- free(pt);
- free(pen);
- free(len);
- free(opt);
- free(s);
- free(t);
- free(convc);
- free(areac);
- return 1;
-}
-
-/* ---------------------------------------------------------------------- */
-
-#define TRY(x) if (x) goto try_error
-
-/* return 0 on success, 1 on error with errno set. */
-int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress) {
- path_t *p;
- double nn = 0, cn = 0;
-
- if (progress->callback) {
- /* precompute task size for progress estimates */
- nn = 0;
- list_forall (p, plist) {
- nn += p->priv->len;
- }
- cn = 0;
- }
-
- /* call downstream function with each path */
- list_forall (p, plist) {
- TRY(calc_sums(p->priv));
- TRY(calc_lon(p->priv));
- TRY(bestpolygon(p->priv));
- TRY(adjust_vertices(p->priv));
- if (p->sign == '-') { /* reverse orientation of negative paths */
- reverse(&p->priv->curve);
- }
- smooth(&p->priv->curve, param->alphamax);
- if (param->opticurve) {
- TRY(opticurve(p->priv, param->opttolerance));
- p->priv->fcurve = &p->priv->ocurve;
- } else {
- p->priv->fcurve = &p->priv->curve;
- }
- privcurve_to_curve(p->priv->fcurve, &p->curve);
-
- if (progress->callback) {
- cn += p->priv->len;
- progress_update(cn/nn, progress);
- }
- }
-
- progress_update(1.0, progress);
-
- return 0;
-
- try_error:
- return 1;
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/trace.h b/Build/source/libs/potrace/potrace-src/src/trace.h
deleted file mode 100644
index 5976453353b..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/trace.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef TRACE_H
-#define TRACE_H
-
-#include "potracelib.h"
-#include "progress.h"
-#include "curve.h"
-
-int process_path(path_t *plist, const potrace_param_t *param, progress_t *progress);
-
-#endif /* TRACE_H */
diff --git a/Build/source/libs/potrace/potrace-src/src/trans.c b/Build/source/libs/potrace/potrace-src/src/trans.c
deleted file mode 100644
index 287808bb0b8..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/trans.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-/* calculations with coordinate transformations and bounding boxes */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <math.h>
-#include <string.h>
-
-#include "trans.h"
-#include "bbox.h"
-
-/* rotate the coordinate system counterclockwise by alpha degrees. The
- new bounding box will be the smallest box containing the rotated
- old bounding box */
-void trans_rotate(trans_t *r, double alpha) {
- double s, c, x0, x1, y0, y1, o0, o1;
- trans_t t_struct;
- trans_t *t = &t_struct;
-
- memcpy(t, r, sizeof(trans_t));
-
- s = sin(alpha/180*M_PI);
- c = cos(alpha/180*M_PI);
-
- /* apply the transformation matrix to the sides of the bounding box */
- x0 = c * t->bb[0];
- x1 = s * t->bb[0];
- y0 = -s * t->bb[1];
- y1 = c * t->bb[1];
-
- /* determine new bounding box, and origin of old bb within new bb */
- r->bb[0] = fabs(x0) + fabs(y0);
- r->bb[1] = fabs(x1) + fabs(y1);
- o0 = - min(x0,0) - min(y0,0);
- o1 = - min(x1,0) - min(y1,0);
-
- r->orig[0] = o0 + c * t->orig[0] - s * t->orig[1];
- r->orig[1] = o1 + s * t->orig[0] + c * t->orig[1];
- r->x[0] = c * t->x[0] - s * t->x[1];
- r->x[1] = s * t->x[0] + c * t->x[1];
- r->y[0] = c * t->y[0] - s * t->y[1];
- r->y[1] = s * t->y[0] + c * t->y[1];
-}
-
-/* return the standard cartesian coordinate system for an w x h rectangle. */
-void trans_from_rect(trans_t *r, double w, double h) {
- r->bb[0] = w;
- r->bb[1] = h;
- r->orig[0] = 0.0;
- r->orig[1] = 0.0;
- r->x[0] = 1.0;
- r->x[1] = 0.0;
- r->y[0] = 0.0;
- r->y[1] = 1.0;
- r->scalex = 1.0;
- r->scaley = 1.0;
-}
-
-/* rescale the coordinate system r by factor sc >= 0. */
-void trans_rescale(trans_t *r, double sc) {
- r->bb[0] *= sc;
- r->bb[1] *= sc;
- r->orig[0] *= sc;
- r->orig[1] *= sc;
- r->x[0] *= sc;
- r->x[1] *= sc;
- r->y[0] *= sc;
- r->y[1] *= sc;
- r->scalex *= sc;
- r->scaley *= sc;
-}
-
-/* rescale the coordinate system to size w x h */
-void trans_scale_to_size(trans_t *r, double w, double h) {
- double xsc = w/r->bb[0];
- double ysc = h/r->bb[1];
-
- r->bb[0] = w;
- r->bb[1] = h;
- r->orig[0] *= xsc;
- r->orig[1] *= ysc;
- r->x[0] *= xsc;
- r->x[1] *= ysc;
- r->y[0] *= xsc;
- r->y[1] *= ysc;
- r->scalex *= xsc;
- r->scaley *= ysc;
-
- if (w<0) {
- r->orig[0] -= w;
- r->bb[0] = -w;
- }
- if (h<0) {
- r->orig[1] -= h;
- r->bb[1] = -h;
- }
-}
-
-/* adjust the bounding box to the actual vector outline */
-void trans_tighten(trans_t *r, potrace_path_t *plist) {
- interval_t i;
- dpoint_t dir;
- int j;
-
- /* if pathlist is empty, do nothing */
- if (!plist) {
- return;
- }
-
- for (j=0; j<2; j++) {
- dir.x = r->x[j];
- dir.y = r->y[j];
- path_limits(plist, dir, &i);
- if (i.min == i.max) {
- /* make the extent non-zero to avoid later division by zero errors */
- i.max = i.min+0.5;
- i.min = i.min-0.5;
- }
- r->bb[j] = i.max - i.min;
- r->orig[j] = -i.min;
- }
-}
diff --git a/Build/source/libs/potrace/potrace-src/src/trans.h b/Build/source/libs/potrace/potrace-src/src/trans.h
deleted file mode 100644
index 07d93e6d5e6..00000000000
--- a/Build/source/libs/potrace/potrace-src/src/trans.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2001-2017 Peter Selinger.
- This file is part of Potrace. It is free software and it is covered
- by the GNU General Public License. See the file COPYING for details. */
-
-
-#ifndef TRANS_H
-#define TRANS_H
-
-#include "auxiliary.h"
-
-/* structure to hold a coordinate transformation */
-struct trans_s {
- double bb[2]; /* dimensions of bounding box */
- double orig[2]; /* origin relative to bounding box */
- double x[2]; /* basis vector for the "x" direction */
- double y[2]; /* basis vector for the "y" direction */
- double scalex, scaley; /* redundant info for some backends' benefit */
-};
-typedef struct trans_s trans_t;
-
-/* apply a coordinate transformation to a point */
-static inline dpoint_t trans(dpoint_t p, trans_t t) {
- dpoint_t res;
-
- res.x = t.orig[0] + p.x * t.x[0] + p.y * t.y[0];
- res.y = t.orig[1] + p.x * t.x[1] + p.y * t.y[1];
- return res;
-}
-
-void trans_rotate(trans_t *r, double alpha);
-void trans_from_rect(trans_t *r, double w, double h);
-void trans_rescale(trans_t *r, double sc);
-void trans_scale_to_size(trans_t *r, double w, double h);
-void trans_tighten(trans_t *r, potrace_path_t *plist);
-
-#endif /* TRANS_H */
diff --git a/Build/source/libs/potrace/potrace.test b/Build/source/libs/potrace/potrace.test
deleted file mode 100755
index ee5110ba2e5..00000000000
--- a/Build/source/libs/potrace/potrace.test
+++ /dev/null
@@ -1,8 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2017 Karl Berry <tex-live@tug.org>
-# Copyright 2013 Peter Breitenlohner <tex-live@tug.org>
-# You may freely use, modify and/or distribute this file.
-
-./potracetst || exit 1
-
diff --git a/Build/source/libs/potrace/potracetst.c b/Build/source/libs/potrace/potracetst.c
deleted file mode 100644
index 25197c48132..00000000000
--- a/Build/source/libs/potrace/potracetst.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* potracetst.c: Basic test for libpotrace
- *
- * Copyright (C) 2013 Peter Breitenlohner <tex-live@tug.org>
- * You may freely use, modify and/or distribute this file.
- */
-
-#include <stdio.h>
-#include <potracelib.h>
-
-int main (int argc, char **argv)
-{
- printf ("%s: using %s\n", argv[0], potrace_version ());
- return 0;
-}
diff --git a/Build/source/libs/potrace/version.ac b/Build/source/libs/potrace/version.ac
deleted file mode 100644
index 04d0402ee4f..00000000000
--- a/Build/source/libs/potrace/version.ac
+++ /dev/null
@@ -1,11 +0,0 @@
-dnl
-dnl Copyright (C) 2013-2015 Peter Breitenlohner <tex-live@tug.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl --------------------------------------------------------
-dnl
-dnl m4-include this file to define the current potrace version
-m4_define([potrace_version], [1.15])