summaryrefslogtreecommitdiff
path: root/gtk+-mingw/bin
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2018-08-20 20:34:57 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2018-08-20 20:34:57 -0400
commita4460f6d9453bbd7e584937686449cef3e19f052 (patch)
tree037c208f1e20302ed048c0952ef8e3418add9c86 /gtk+-mingw/bin
Initial commit0.0.0
Diffstat (limited to 'gtk+-mingw/bin')
-rw-r--r--gtk+-mingw/bin/autopoint717
-rw-r--r--gtk+-mingw/bin/bmp2tiff.exebin0 -> 418168 bytes
-rw-r--r--gtk+-mingw/bin/cjpeg.exebin0 -> 32588 bytes
-rw-r--r--gtk+-mingw/bin/djpeg.exebin0 -> 30913 bytes
-rw-r--r--gtk+-mingw/bin/envsubst.exebin0 -> 70840 bytes
-rw-r--r--gtk+-mingw/bin/example.exebin0 -> 87054 bytes
-rw-r--r--gtk+-mingw/bin/example_d.exebin0 -> 16398 bytes
-rw-r--r--gtk+-mingw/bin/fax2ps.exebin0 -> 419390 bytes
-rw-r--r--gtk+-mingw/bin/fax2tiff.exebin0 -> 417010 bytes
-rw-r--r--gtk+-mingw/bin/fc-cache.exebin0 -> 75966 bytes
-rw-r--r--gtk+-mingw/bin/fc-cat.exebin0 -> 75603 bytes
-rw-r--r--gtk+-mingw/bin/fc-list.exebin0 -> 68321 bytes
-rw-r--r--gtk+-mingw/bin/fc-match.exebin0 -> 70613 bytes
-rw-r--r--gtk+-mingw/bin/fc-pattern.exebin0 -> 67793 bytes
-rw-r--r--gtk+-mingw/bin/fc-query.exebin0 -> 66853 bytes
-rw-r--r--gtk+-mingw/bin/fc-scan.exebin0 -> 67411 bytes
-rw-r--r--gtk+-mingw/bin/freetype-config160
-rw-r--r--gtk+-mingw/bin/funzip.exebin0 -> 25088 bytes
-rw-r--r--gtk+-mingw/bin/gdbus-codegen41
-rw-r--r--gtk+-mingw/bin/gdbus.exebin0 -> 40403 bytes
-rw-r--r--gtk+-mingw/bin/gdk-pixbuf-csource.exebin0 -> 14905 bytes
-rw-r--r--gtk+-mingw/bin/gdk-pixbuf-pixdata.exebin0 -> 13350 bytes
-rw-r--r--gtk+-mingw/bin/gdk-pixbuf-query-loaders.exebin0 -> 15575 bytes
-rw-r--r--gtk+-mingw/bin/gettext.exebin0 -> 70786 bytes
-rw-r--r--gtk+-mingw/bin/gettext.sh123
-rw-r--r--gtk+-mingw/bin/gettextize1281
-rw-r--r--gtk+-mingw/bin/gif2tiff.exebin0 -> 417135 bytes
-rw-r--r--gtk+-mingw/bin/gio-querymodules.exebin0 -> 13712 bytes
-rw-r--r--gtk+-mingw/bin/glib-compile-resources.exebin0 -> 41147 bytes
-rw-r--r--gtk+-mingw/bin/glib-compile-schemas.exebin0 -> 51078 bytes
-rw-r--r--gtk+-mingw/bin/glib-genmarshal.exebin0 -> 35137 bytes
-rw-r--r--gtk+-mingw/bin/glib-gettextize188
-rw-r--r--gtk+-mingw/bin/glib-mkenums565
-rw-r--r--gtk+-mingw/bin/gobject-query.exebin0 -> 13636 bytes
-rw-r--r--gtk+-mingw/bin/gresource.exebin0 -> 17718 bytes
-rw-r--r--gtk+-mingw/bin/gsettings.exebin0 -> 25390 bytes
-rw-r--r--gtk+-mingw/bin/gspawn-win32-helper-console.exebin0 -> 13932 bytes
-rw-r--r--gtk+-mingw/bin/gspawn-win32-helper.exebin0 -> 14018 bytes
-rw-r--r--gtk+-mingw/bin/gtk-query-immodules-3.0.exebin0 -> 15129 bytes
-rw-r--r--gtk+-mingw/bin/gtk-update-icon-cache.exebin0 -> 31524 bytes
-rw-r--r--gtk+-mingw/bin/gtk-update-icon-cache.exe.manifest17
-rw-r--r--gtk+-mingw/bin/gtk3-demo-application.exebin0 -> 62824 bytes
-rw-r--r--gtk+-mingw/bin/gtk3-demo.exebin0 -> 295566 bytes
-rw-r--r--gtk+-mingw/bin/gtk3-widget-factory.exebin0 -> 88489 bytes
-rw-r--r--gtk+-mingw/bin/iconv.exebin0 -> 62050 bytes
-rw-r--r--gtk+-mingw/bin/intltool-extract1036
-rw-r--r--gtk+-mingw/bin/intltool-merge1510
-rw-r--r--gtk+-mingw/bin/intltool-prepare342
-rw-r--r--gtk+-mingw/bin/intltool-update1303
-rw-r--r--gtk+-mingw/bin/intltoolize259
-rw-r--r--gtk+-mingw/bin/jbgtopbm.exebin0 -> 56020 bytes
-rw-r--r--gtk+-mingw/bin/jbgtopbm85.exebin0 -> 24760 bytes
-rw-r--r--gtk+-mingw/bin/jpegtran.exebin0 -> 33483 bytes
-rw-r--r--gtk+-mingw/bin/libasprintf-0.dllbin0 -> 46714 bytes
-rw-r--r--gtk+-mingw/bin/libatk-1.0-0.dllbin0 -> 122684 bytes
-rw-r--r--gtk+-mingw/bin/libcairo-2.dllbin0 -> 647675 bytes
-rw-r--r--gtk+-mingw/bin/libcairo-gobject-2.dllbin0 -> 52730 bytes
-rw-r--r--gtk+-mingw/bin/libcairo-script-interpreter-2.dllbin0 -> 146313 bytes
-rw-r--r--gtk+-mingw/bin/libcharset-1.dllbin0 -> 36590 bytes
-rw-r--r--gtk+-mingw/bin/libdl.dllbin0 -> 10254 bytes
-rw-r--r--gtk+-mingw/bin/libexpat-1.dllbin0 -> 165573 bytes
-rw-r--r--gtk+-mingw/bin/libffi-6.dllbin0 -> 27945 bytes
-rw-r--r--gtk+-mingw/bin/libfontconfig-1.dllbin0 -> 755842 bytes
-rw-r--r--gtk+-mingw/bin/libfreetype-6.dllbin0 -> 534277 bytes
-rw-r--r--gtk+-mingw/bin/libgailutil-3-0.dllbin0 -> 38083 bytes
-rw-r--r--gtk+-mingw/bin/libgdk-3-0.dllbin0 -> 547812 bytes
-rw-r--r--gtk+-mingw/bin/libgdk_pixbuf-2.0-0.dllbin0 -> 137434 bytes
-rw-r--r--gtk+-mingw/bin/libgettextlib-0-18-1.dllbin0 -> 1193268 bytes
-rw-r--r--gtk+-mingw/bin/libgettextpo-0.dllbin0 -> 324132 bytes
-rw-r--r--gtk+-mingw/bin/libgettextsrc-0-18-1.dllbin0 -> 269029 bytes
-rw-r--r--gtk+-mingw/bin/libgio-2.0-0.dllbin0 -> 1407302 bytes
-rw-r--r--gtk+-mingw/bin/libglib-2.0-0.dllbin0 -> 1088894 bytes
-rw-r--r--gtk+-mingw/bin/libglut-0.dllbin0 -> 222857 bytes
-rw-r--r--gtk+-mingw/bin/libgmodule-2.0-0.dllbin0 -> 20610 bytes
-rw-r--r--gtk+-mingw/bin/libgnurx-0.dllbin0 -> 64485 bytes
-rw-r--r--gtk+-mingw/bin/libgobject-2.0-0.dllbin0 -> 301493 bytes
-rw-r--r--gtk+-mingw/bin/libgthread-2.0-0.dllbin0 -> 11918 bytes
-rw-r--r--gtk+-mingw/bin/libgtk-3-0.dllbin0 -> 4857752 bytes
-rw-r--r--gtk+-mingw/bin/libiconv-2.dllbin0 -> 937864 bytes
-rw-r--r--gtk+-mingw/bin/libintl-8.dllbin0 -> 106093 bytes
-rw-r--r--gtk+-mingw/bin/libjpeg-8.dllbin0 -> 229030 bytes
-rw-r--r--gtk+-mingw/bin/libltdl-7.dllbin0 -> 43363 bytes
-rw-r--r--gtk+-mingw/bin/libpango-1.0-0.dllbin0 -> 279490 bytes
-rw-r--r--gtk+-mingw/bin/libpangocairo-1.0-0.dllbin0 -> 82897 bytes
-rw-r--r--gtk+-mingw/bin/libpangoft2-1.0-0.dllbin0 -> 186437 bytes
-rw-r--r--gtk+-mingw/bin/libpangowin32-1.0-0.dllbin0 -> 79777 bytes
-rw-r--r--gtk+-mingw/bin/libpcre-1.dllbin0 -> 251700 bytes
-rw-r--r--gtk+-mingw/bin/libpcrecpp-0.dllbin0 -> 56964 bytes
-rw-r--r--gtk+-mingw/bin/libpcreposix-0.dllbin0 -> 12589 bytes
-rw-r--r--gtk+-mingw/bin/libpixman-1-0.dllbin0 -> 578981 bytes
-rw-r--r--gtk+-mingw/bin/libpng-config127
-rw-r--r--gtk+-mingw/bin/libpng15-15.dllbin0 -> 183437 bytes
-rw-r--r--gtk+-mingw/bin/libpng15-config127
-rw-r--r--gtk+-mingw/bin/libtiff-4.dllbin0 -> 16487 bytes
-rw-r--r--gtk+-mingw/bin/libtool11019
-rw-r--r--gtk+-mingw/bin/libtoolize2555
-rw-r--r--gtk+-mingw/bin/libxml2-2.dllbin0 -> 1227788 bytes
-rw-r--r--gtk+-mingw/bin/minigzip.exebin0 -> 82958 bytes
-rw-r--r--gtk+-mingw/bin/minigzip_d.exebin0 -> 11790 bytes
-rw-r--r--gtk+-mingw/bin/msgattrib.exebin0 -> 25617 bytes
-rw-r--r--gtk+-mingw/bin/msgcat.exebin0 -> 24942 bytes
-rw-r--r--gtk+-mingw/bin/msgcmp.exebin0 -> 25254 bytes
-rw-r--r--gtk+-mingw/bin/msgcomm.exebin0 -> 24562 bytes
-rw-r--r--gtk+-mingw/bin/msgconv.exebin0 -> 21974 bytes
-rw-r--r--gtk+-mingw/bin/msgen.exebin0 -> 21993 bytes
-rw-r--r--gtk+-mingw/bin/msgexec.exebin0 -> 19892 bytes
-rw-r--r--gtk+-mingw/bin/msgfilter.exebin0 -> 26998 bytes
-rw-r--r--gtk+-mingw/bin/msgfmt.exebin0 -> 67152 bytes
-rw-r--r--gtk+-mingw/bin/msggrep.exebin0 -> 119012 bytes
-rw-r--r--gtk+-mingw/bin/msginit.exebin0 -> 43828 bytes
-rw-r--r--gtk+-mingw/bin/msgmerge.exebin0 -> 51379 bytes
-rw-r--r--gtk+-mingw/bin/msgunfmt.exebin0 -> 32106 bytes
-rw-r--r--gtk+-mingw/bin/msguniq.exebin0 -> 23849 bytes
-rw-r--r--gtk+-mingw/bin/ngettext.exebin0 -> 70820 bytes
-rw-r--r--gtk+-mingw/bin/pal2rgb.exebin0 -> 415888 bytes
-rw-r--r--gtk+-mingw/bin/pango-querymodules.exebin0 -> 41722 bytes
-rw-r--r--gtk+-mingw/bin/pango-view.exebin0 -> 68736 bytes
-rw-r--r--gtk+-mingw/bin/pbmtojbg.exebin0 -> 56672 bytes
-rw-r--r--gtk+-mingw/bin/pbmtojbg85.exebin0 -> 25887 bytes
-rw-r--r--gtk+-mingw/bin/pcre-config122
-rw-r--r--gtk+-mingw/bin/pcre_scanner_unittest.exebin0 -> 19720 bytes
-rw-r--r--gtk+-mingw/bin/pcre_stringpiece_unittest.exebin0 -> 33451 bytes
-rw-r--r--gtk+-mingw/bin/pcrecpp_unittest.exebin0 -> 110071 bytes
-rw-r--r--gtk+-mingw/bin/pcregrep.exebin0 -> 37870 bytes
-rw-r--r--gtk+-mingw/bin/pcretest.exebin0 -> 61063 bytes
-rw-r--r--gtk+-mingw/bin/pkg-config.exebin0 -> 48027 bytes
-rw-r--r--gtk+-mingw/bin/ppm2tiff.exebin0 -> 415675 bytes
-rw-r--r--gtk+-mingw/bin/pthreadGC2.dllbin0 -> 70538 bytes
-rw-r--r--gtk+-mingw/bin/ras2tiff.exebin0 -> 414958 bytes
-rw-r--r--gtk+-mingw/bin/raw2tiff.exebin0 -> 419673 bytes
-rw-r--r--gtk+-mingw/bin/rdjpgcom.exebin0 -> 14504 bytes
-rw-r--r--gtk+-mingw/bin/recode-sr-latin.exebin0 -> 18499 bytes
-rw-r--r--gtk+-mingw/bin/rgb2ycbcr.exebin0 -> 458897 bytes
-rw-r--r--gtk+-mingw/bin/thumbnail.exebin0 -> 417904 bytes
-rw-r--r--gtk+-mingw/bin/tiff2bw.exebin0 -> 416400 bytes
-rw-r--r--gtk+-mingw/bin/tiff2pdf.exebin0 -> 528044 bytes
-rw-r--r--gtk+-mingw/bin/tiff2ps.exebin0 -> 457576 bytes
-rw-r--r--gtk+-mingw/bin/tiff2rgba.exebin0 -> 458352 bytes
-rw-r--r--gtk+-mingw/bin/tiffcmp.exebin0 -> 419502 bytes
-rw-r--r--gtk+-mingw/bin/tiffcp.exebin0 -> 434927 bytes
-rw-r--r--gtk+-mingw/bin/tiffcrop.exebin0 -> 501741 bytes
-rw-r--r--gtk+-mingw/bin/tiffdither.exebin0 -> 415376 bytes
-rw-r--r--gtk+-mingw/bin/tiffdump.exebin0 -> 420835 bytes
-rw-r--r--gtk+-mingw/bin/tiffinfo.exebin0 -> 428407 bytes
-rw-r--r--gtk+-mingw/bin/tiffmedian.exebin0 -> 419984 bytes
-rw-r--r--gtk+-mingw/bin/tiffset.exebin0 -> 411337 bytes
-rw-r--r--gtk+-mingw/bin/tiffsplit.exebin0 -> 412211 bytes
-rw-r--r--gtk+-mingw/bin/tstcodec.exebin0 -> 57533 bytes
-rw-r--r--gtk+-mingw/bin/tstcodec85.exebin0 -> 27674 bytes
-rw-r--r--gtk+-mingw/bin/unzip.exebin0 -> 164864 bytes
-rw-r--r--gtk+-mingw/bin/unzip32.dllbin0 -> 151552 bytes
-rw-r--r--gtk+-mingw/bin/unzipsfx.exebin0 -> 66560 bytes
-rw-r--r--gtk+-mingw/bin/wrjpgcom.exebin0 -> 15014 bytes
-rw-r--r--gtk+-mingw/bin/xgettext.exebin0 -> 203698 bytes
-rw-r--r--gtk+-mingw/bin/xml2-config106
-rw-r--r--gtk+-mingw/bin/xmlcatalog.exebin0 -> 19485 bytes
-rw-r--r--gtk+-mingw/bin/xmllint.exebin0 -> 89097 bytes
-rw-r--r--gtk+-mingw/bin/xmlwfbin0 -> 105997 bytes
-rw-r--r--gtk+-mingw/bin/zlib1.dllbin0 -> 92686 bytes
159 files changed, 21598 insertions, 0 deletions
diff --git a/gtk+-mingw/bin/autopoint b/gtk+-mingw/bin/autopoint
new file mode 100644
index 0000000..f61350c
--- /dev/null
+++ b/gtk+-mingw/bin/autopoint
@@ -0,0 +1,717 @@
+#! /bin/sh
+#
+# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+#
+# 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 3 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, see <http://www.gnu.org/licenses/>.
+#
+
+# This file is meant for authors, maintainers, co-maintainers or installers
+# of packages which are internationalized with the help of GNU gettext. For
+# further information how to use it consult the GNU gettext manual.
+
+progname=$0
+package=gettext-tools
+version=0.18.1
+
+# Set variables
+# - gettext_dir directory where the sources are stored.
+prefix="/MinGW"
+datarootdir="${prefix}/share"
+gettext_dir="${datarootdir}/gettext"
+
+# func_tmpdir
+# creates a temporary directory.
+# Sets variable
+# - tmp pathname of freshly created temporary directory
+func_tmpdir ()
+{
+ # Use the environment variable TMPDIR, falling back to /tmp. This allows
+ # users to specify a different temporary directory, for example, if their
+ # /tmp is filled up or too small.
+ : ${TMPDIR=/tmp}
+ {
+ # Use the mktemp program if available. If not available, hide the error
+ # message.
+ tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+ } ||
+ {
+ # Use a simple mkdir command. It is guaranteed to fail if the directory
+ # already exists. $RANDOM is bash specific and expands to empty in shells
+ # other than bash, ksh and zsh. Its use does not increase security;
+ # rather, it minimizes the probability of failure in a very cluttered /tmp
+ # directory.
+ tmp=$TMPDIR/gt$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+ } ||
+ {
+ echo "$0: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+ }
+}
+
+# Support for relocatability.
+func_find_curr_installdir ()
+{
+ # Determine curr_installdir, even taking into account symlinks.
+ curr_executable="$0"
+ case "$curr_executable" in
+ */* | *\\*) ;;
+ *) # Need to look in the PATH.
+ if test "${PATH_SEPARATOR+set}" != set; then
+ func_tmpdir
+ { echo "#! /bin/sh"; echo "exit 0"; } > "$tmp"/conf.sh
+ chmod +x "$tmp"/conf.sh
+ if (PATH="/nonexistent;$tmp"; conf.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -rf "$tmp"
+ fi
+ save_IFS="$IFS"; IFS="$PATH_SEPARATOR"
+ for dir in $PATH; do
+ IFS="$save_IFS"
+ test -z "$dir" && dir=.
+ for exec_ext in ''; do
+ if test -f "$dir/$curr_executable$exec_ext"; then
+ curr_executable="$dir/$curr_executable$exec_ext"
+ break 2
+ fi
+ done
+ done
+ IFS="$save_IFS"
+ ;;
+ esac
+ # Make absolute.
+ case "$curr_executable" in
+ /* | ?:/* | ?:\\*) ;;
+ *) curr_executable=`pwd`/"$curr_executable" ;;
+ esac
+ # Resolve symlinks.
+ sed_dirname='s,/[^/]*$,,'
+ sed_linkdest='s,^.* -> \(.*\),\1,p'
+ while : ; do
+ lsline=`LC_ALL=C ls -l "$curr_executable"`
+ case "$lsline" in
+ *" -> "*)
+ linkdest=`echo "$lsline" | sed -n -e "$sed_linkdest"`
+ case "$linkdest" in
+ /* | ?:/* | ?:\\*) curr_executable="$linkdest" ;;
+ *) curr_executable=`echo "$curr_executable" | sed -e "$sed_dirname"`/"$linkdest" ;;
+ esac ;;
+ *) break ;;
+ esac
+ done
+ curr_installdir=`echo "$curr_executable" | sed -e 's,/[^/]*$,,'`
+ # Canonicalize.
+ curr_installdir=`cd "$curr_installdir" && pwd`
+}
+func_find_prefixes ()
+{
+ # Compute the original/current installation prefixes by stripping the
+ # trailing directories off the original/current installation directories.
+ orig_installprefix="$orig_installdir"
+ curr_installprefix="$curr_installdir"
+ while true; do
+ orig_last=`echo "$orig_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
+ curr_last=`echo "$curr_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
+ if test -z "$orig_last" || test -z "$curr_last"; then
+ break
+ fi
+ if test "$orig_last" != "$curr_last"; then
+ break
+ fi
+ orig_installprefix=`echo "$orig_installprefix" | sed -e 's,/[^/]*$,,'`
+ curr_installprefix=`echo "$curr_installprefix" | sed -e 's,/[^/]*$,,'`
+ done
+}
+if test "no" = yes; then
+ exec_prefix="${prefix}"
+ bindir="${exec_prefix}/bin"
+ orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables
+ func_find_curr_installdir # determine curr_installdir
+ func_find_prefixes
+ # Relocate the directory variables that we use.
+ gettext_dir=`echo "$gettext_dir/" | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" | sed -e 's,/$,,'`
+fi
+
+# func_usage
+# outputs to stdout the --help usage message.
+func_usage ()
+{
+ echo "\
+Usage: autopoint [OPTION]...
+
+Copies standard gettext infrastructure files into a source package.
+
+Options:
+ --help print this help and exit
+ --version print version information and exit
+ -f, --force force overwriting of files that already exist
+ -n, --dry-run print modifications but don't perform them"
+# echo "\
+# -V version copy the infrastructure of the specified gettext version
+# (dangerous)"
+ echo "
+Report bugs to <bug-gnu-gettext@gnu.org>."
+}
+
+# func_version
+# outputs to stdout the --version message.
+func_version ()
+{
+ echo "$progname (GNU $package) $version"
+ echo "Uses a versions archive in dir format."
+ echo "Copyright (C) 2002-2010 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo "Written by" "Bruno Haible"
+}
+
+# func_fatal_error message
+# outputs to stderr a fatal error message, and terminates the program.
+func_fatal_error ()
+{
+ echo "autopoint: *** $1" 1>&2
+ echo "autopoint: *** Stop." 1>&2
+ exit 1
+}
+
+# Command-line option processing.
+# Removes the OPTIONS from the arguments. Sets the variables:
+# - force yes if --force was given, empty otherwise
+# - ver gettext version if -V was given, empty otherwise
+# - doit false if --dry-run was given, : otherwise
+{
+ force=
+ ver=
+ doit=:
+
+ while test $# -gt 0; do
+ case "$1" in
+ -n | --dry-run | --dry-ru | --dry-r | --dry- | --dry | --dr | --d )
+ shift
+ doit=false ;;
+ -f | --force | --forc | --for | --fo | --f )
+ shift
+ force=yes ;;
+ --help | --hel | --he | --h )
+ func_usage; exit 0 ;;
+# -V ) # Some people put a space between -V and the version number.
+# shift
+# if test $# = 0; then
+# func_usage 1>&2
+# exit 1
+# fi
+# ver=$1;
+# shift ;;
+# -V*) # Some people omit the space between -V and the version number.
+# ver=`echo "X$1" | sed -e 's/^X-V//'`
+# shift ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version
+ exit 0 ;;
+ -- ) # Stop option prcessing
+ shift; break ;;
+ -* )
+ echo "autopoint: unknown option $1" 1>&2
+ echo "Try 'autopoint --help' for more information." 1>&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+ done
+}
+
+# Command-line argument processing.
+# Analyzes the remaining arguments.
+{
+ if test $# -gt 0; then
+ func_usage 1>&2
+ exit 1
+ fi
+}
+
+srcdir=`pwd`
+# The current directory is now $srcdir.
+
+# Check integrity of package: A configure.in/ac must be present. Sets variable
+# - configure_in name of configure.in/ac file.
+if test -f configure.in; then
+ configure_in=configure.in
+else
+ if test -f configure.ac; then
+ configure_in=configure.ac
+ else
+ # KDE specific convention: configure.in.in
+ if test -f configure.in.in; then
+ configure_in=configure.in.in
+ else
+ func_fatal_error "Missing configure.in or configure.ac, please cd to your package first."
+ fi
+ fi
+fi
+
+# Check whether the -V option and the version number in configure.in match.
+# At least one of the two must be given. If both are given, they must agree.
+sed_extract_AM_GNU_GETTEXT_VERSION_argument='s/^AM_GNU_GETTEXT_VERSION(\([^()]*\)).*$/\1/'
+sed_remove_outer_brackets='s/^\[\(.*\)\]$/\1/'
+xver=`cat "$configure_in" | grep '^AM_GNU_GETTEXT_VERSION(' | sed -n -e "$sed_extract_AM_GNU_GETTEXT_VERSION_argument"p | sed -e "$sed_remove_outer_brackets" | sed -e 1q`
+if test -z "$xver" && test -f intl/VERSION; then
+ xver=`cat intl/VERSION | LC_ALL=C sed -n -e 's/^.*gettext-\([-+_.0-9A-Za-z]*\).*$/\1/p'`
+fi
+if test -n "$xver"; then
+ if test -n "$ver"; then
+ if test "X$ver" != "X$xver"; then
+ func_fatal_error "Version mismatch: specified -V $ver but the package uses gettext version $xver"
+ fi
+ else
+ ver="$xver"
+ fi
+else
+ if test -z "$ver"; then
+ func_fatal_error "Missing version: please specify in $configure_in through a line 'AM_GNU_GETTEXT_VERSION(x.yy.zz)' the gettext version the package is using"
+ fi
+fi
+
+# Check whether the version number is supported.
+case "$ver" in
+ 0.10.35 | 0.10.36 | 0.10.37 | 0.10.38 | 0.10.39 | 0.10.40 | \
+ 0.11 | 0.11.1 | 0.11.2 | 0.11.3 | 0.11.4 | 0.11.5 | \
+ 0.12 | 0.12.1 | \
+ 0.13 | 0.13.1 | \
+ 0.14 | 0.14.1 | 0.14.2 | 0.14.3 | 0.14.4 | 0.14.5 | 0.14.6 | \
+ 0.15 | \
+ 0.16 | 0.16.1 | \
+ 0.17 | \
+ 0.18 | 0.18.1 )
+ ;;
+ *)
+ func_fatal_error "The AM_GNU_GETTEXT_VERSION declaration in your $configure_in
+ file requires the infrastructure from gettext-$ver but this version
+ is older. Please upgrade to gettext-$ver or newer."
+ ;;
+esac
+
+# Check in which directory config.rpath, mkinstalldirs etc. belong.
+auxdir=`cat "$configure_in" | grep '^AC_CONFIG_AUX_DIR' | sed -n -e 's/AC_CONFIG_AUX_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
+if test -n "$auxdir"; then
+ auxdir="$auxdir/"
+fi
+
+# Check in which directory the *.m4 macros belong.
+m4dir=m4
+if test -f Makefile.am; then
+ # A package using automake.
+ # Extract the macro directory name from Makefile.am.
+ aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' Makefile.am | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'`
+ m4dir_is_next=
+ for arg in $aclocal_amflags; do
+ if test -n "$m4dir_is_next"; then
+ m4dir="$arg"
+ break
+ else
+ if test "X$arg" = "X-I"; then
+ m4dir_is_next=yes
+ else
+ m4dir_is_next=
+ fi
+ fi
+ done
+fi
+
+# Check whether to omit the intl/ directory.
+omitintl=`cat "$configure_in" | grep '^AM_GNU_GETTEXT' | sed -n -e 's/^AM_GNU_GETTEXT(\([^(),]*\).*$/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
+omitintl=`if test 'external' = "$omitintl"; then echo yes; fi`
+
+# Check in which directory or directories the po/* infrastructure belongs.
+sed_extract_config_files='s,#.*$,,
+s,^dnl .*$,,
+s, dnl .*$,,
+/AC_CONFIG_FILES(/ {
+ ta
+ :a
+ s/)/)/
+ tb
+ s/\\$//
+ N
+ ba
+ :b
+ s,^.*AC_CONFIG_FILES([[ ]*\([^]"$`\\)]*\).*$,\1,p
+}'
+configfiles=`cat "$configure_in" | sed -n -e "$sed_extract_config_files"`
+# PO directories have a Makefile.in generated from Makefile.in.in.
+# Treat a directory as a PO directory if and only if it has a
+# POTFILES.in file. This allows packages to have multiple PO
+# directories under different names or in different locations.
+sed_remove_Makefile_in='s,/Makefile\.in$,,'
+podirs=`for f in $configfiles; do case "$f" in */Makefile.in) echo $f;; esac; done | sed -e "$sed_remove_Makefile_in"`
+if test -z "$podirs"; then
+ # If we cannot get the list of PO directories from configure.ac, assume the
+ # common default.
+ podirs="po"
+fi
+
+# Set up a temporary checkout directory.
+# Set variables
+# - work_dir directory containing the temporary checkout
+work_dir=tmpwrk$$
+mkdir "$work_dir" || {
+ if test -d "$work_dir"; then
+ func_fatal_error "directory $work_dir already exists"
+ else
+ func_fatal_error "cannot create directory $work_dir"
+ fi
+}
+
+# We support three archive formats.
+#
+# Format | Size (KiB) for gettext-0.17 | Extra tools needed |
+# -------+-----------------------------+--------------------+
+# dir | 3000 | -- |
+# cvs | 356 | cvs |
+# git | 484 | git |
+# -------+-----------------------------+--------------------+
+
+case "dir" in
+ dir)
+ # The archive of different versions is very large, but using it does not
+ # require special tools.
+ gzip -d -c < "$gettext_dir/archive.dir.tar.gz" | (cd "$work_dir" && tar xf - "gettext-$ver")
+ if test `find "$work_dir" -type f -print | wc -l` = 0; then
+ rm -rf "$work_dir"
+ func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version"
+ fi
+ mv "$work_dir/gettext-$ver" "$work_dir/archive"
+ ;;
+
+ cvs)
+ # We distributed the many different versions of the files in a CVS
+ # repository. This guaranteed a good compression rate:
+ #
+ # Including version size in KB of
+ # "du autopoint-files/archive"
+ # 0.10.35 240
+ # 0.10.36 428
+ # 0.10.37 436
+ # 0.10.38 488
+ # 0.10.39 500
+ # 0.10.40 528
+ # 0.11 720
+ # 0.11.1 740
+ # 0.11.2 748
+ # 0.11.3 804
+ # 0.11.4 864
+ # 0.11.5 880
+ # 0.12 1032
+ # 0.12.1 1032
+ # 0.13 1220
+ # 0.13.1 1236
+ # 0.14 1296
+ # 0.14.1 1300
+ # 0.14.2 1420
+ # 0.14.3 1428
+ # 0.14.4 1464
+ # 0.14.5 1508
+ # 0.14.6 1580
+ # 0.15 1760
+ # 0.16 1808
+ # 0.16.1 1812
+ # 0.17 2128
+ # 0.18 2656
+ #
+ # The requirement that the user must have the CVS program available is not
+ # a severe restrictions, because most of the people who use autopoint are
+ # users of CVS.
+ #
+ # But the CVS format is now deprecated, because "cvs init" does not work in
+ # all circumstances
+ # (see <http://lists.gnu.org/archive/html/bug-cvs/2010-05/msg00003.html>)
+ # and we are not allowed to distribute the cvs infrastructure files
+ # ourselves
+ # (see <http://lists.gnu.org/archive/html/bug-cvs/2010-06/msg00011.html>).
+ #
+ # Check availability of the CVS program.
+ (cvs -v) >/dev/null 2>/dev/null || func_fatal_error "cvs program not found"
+
+ # Set up a temporary CVS repository.
+ # We need the temporary CVS repository because any checkout needs write
+ # access to the CVSROOT/history file, so it cannot be under $gettext_dir.
+ # We need the temporary checkout directory because when --force was not
+ # given, we need to compare the existing files with the checked out ones.
+ # Set variables
+ # - cvs_dir directory containing the temporary repository
+ cvs_dir=tmpcvs$$
+ # Use an umask of 077, to avoid attacks that work by overwriting files in
+ # the "$CVSROOT"/CVSROOT directory.
+ (umask 077 && mkdir "$cvs_dir") || {
+ if test -d "$cvs_dir"; then
+ func_fatal_error "directory $cvs_dir already exists"
+ else
+ func_fatal_error "cannot create directory $cvs_dir"
+ fi
+ }
+ CVSROOT="$srcdir/$cvs_dir"
+ unset CVS_CLIENT_LOG
+ unset CVS_CLIENT_PORT
+ unset CVS_IGNORE_REMOTE_ROOT
+ unset CVS_LOCAL_BRANCH_NUM
+ unset CVS_NOBASES
+ unset CVS_PASSFILE
+ unset CVS_PASSWORD
+ unset CVS_PROXY_PORT
+ unset CVS_RCMD_PORT
+ unset CVS_RSH
+ unset CVS_SERVER
+ unset CVS_SERVER_SLEEP
+ CVS_SIGN_COMMITS=
+ export CVS_SIGN_COMMITS
+ unset CVS_SSH
+ unset CVS_VERIFY_CHECKOUTS
+ unset CVS_VERIFY_TEMPLATE
+ unset CVSIGNORE
+ unset CVSREAD
+ unset CVSREADONLYFS
+ unset CVSUMASK
+ unset CVSWRAPPERS
+
+ # Need to pass -d "$CVSROOT", because there may be a CVS directory in the
+ # current directory.
+ cvs -d "$CVSROOT" init
+ gzip -d -c < "$gettext_dir/archive.cvs.tar.gz" | (cd "$cvs_dir" && tar xf -)
+
+ cd "$work_dir"
+ cvsver=gettext-`echo "$ver" | sed -e 's/\./_/g'`
+ (cvs -d "$CVSROOT" checkout -r"$cvsver" archive > /dev/null) 2>&1 | grep -v '^cvs checkout: Updating'
+ find archive -name CVS -type d -print | xargs rm -rf
+ cd ..
+ rm -rf "$cvs_dir"
+ # Check that really all CVS directories are gone, otherwise we would overwrite
+ # the contents of the user's CVS directories.
+ if test `find $work_dir/archive -name CVS -type d -print | wc -l` != 0; then
+ rm -rf "$work_dir"
+ func_fatal_error "failed to remove all CVS subdirectories"
+ fi
+ if test `find $work_dir/archive -type f -print | wc -l` = 0; then
+ rm -rf "$work_dir"
+ func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version"
+ fi
+ ;;
+
+ git)
+ # Check availability of the git program.
+ (git --version) >/dev/null 2>/dev/null || func_fatal_error "git program not found"
+ mkdir "$work_dir/archive"
+ gzip -d -c < "$gettext_dir/archive.git.tar.gz" | (cd "$work_dir/archive" && tar xf -)
+ (cd "$work_dir/archive" && git checkout -q "gettext-$ver") || {
+ rm -rf "$work_dir"
+ func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version"
+ }
+ (cd "$work_dir/archive" && rm -rf .git .gitignore)
+ ;;
+esac
+
+# func_destfile file
+# determines the destination file, relative to the package's top level
+# directory, for a given file name, relative to archive.
+# Sets variables
+# - destfile relative destination file name, or
+# empty if the file shall be omitted
+# - sharedowner yes if the file is not only owned by GNU gettext but may
+# be installed by automake or other tools, otherwise empty
+# - allpodirs yes if the file is to be installed in every dir in $podirs
+func_destfile ()
+{
+ # There are five categories of files:
+ # ABOUT_NLS -> top level directory
+ # config.rpath mkinstalldirs -> $auxdir
+ # m4/* -> $m4dir/
+ # intl/* -> intl/
+ # po/* ->
+ sharedowner=
+ allpodirs=
+ case `echo "$1" | sed -e 's,[^/]*$,,'` in
+ "" )
+ case "$1" in
+ config.rpath ) destfile="$auxdir$1" ;;
+ mkinstalldirs ) destfile="$auxdir$1" sharedowner=yes ;;
+ * ) destfile="$1" ;;
+ esac
+ ;;
+ m4/ ) destfile=`echo "$1" | sed -e "s,^m4/,$m4dir/,"` ;;
+ intl/ ) if test -n "$omitintl"; then destfile=""; else destfile="$1"; fi ;;
+ po/ ) destfile=`echo "$1" | sed -e "s,^po/,,"` allpodirs=yes ;;
+ * ) destfile="$1" ;;
+ esac
+}
+
+# func_compare existingfile gettextfile
+# compares the existing file and the file from gettext, and decides whether the
+# existing file should be overwritten with the file from gettext. Returns 0 if
+# it should be overwritten, or 1 if it should be skipped.
+sed_extract_serial='s/^#.* serial \([^ ]*\).*/\1/p
+1q'
+func_compare ()
+{
+ if cmp -s "$1" "$2"; then
+ false
+ else
+ case "$2" in
+ *.m4)
+ # For interoperability with gnulib. gnulib often has newer versions of
+ # the *.m4 files than the latest gettext release. Don't overwrite a
+ # newer version from gnulib with an older version from the gettext
+ # release. The version can be retrieved from the first line, which
+ # looks like this: # file.m4 serial NN ...
+ existing_serial=`sed -n -e "$sed_extract_serial" < "$1"`
+ gettext_serial=`sed -n -e "$sed_extract_serial" < "$2"`
+ if test -n "$existing_serial" && test -n "$gettext_serial" \
+ && test "$existing_serial" -ge "$gettext_serial" 2> /dev/null; then
+ false
+ else
+ true
+ fi
+ ;;
+ *)
+ true
+ ;;
+ esac
+ fi
+}
+
+# If some files have been locally modified and we have not been requested
+# to overwrite them, then bail out. This is better than leaving a source
+# package around where half of the files are locally modified and half are
+# original - too great risk of version mismatch.
+if test -z "$force"; then
+ mismatch=
+ func_tmpdir
+ mismatchfile="$tmp"/autopoint.diff
+ for file in `find "$work_dir/archive" -type f -print | sed -e "s,^$work_dir/archive/,," | LC_ALL=C sort`; do
+ func_destfile "$file"
+ if test -n "$destfile"; then
+ func_compare_to_destfile ()
+ {
+ finaldestfile="$1"
+ if test -f "$finaldestfile"; then
+ if func_compare "$finaldestfile" "$work_dir/archive/$file"; then
+ if test -n "$sharedowner"; then
+ echo "autopoint: warning: File $finaldestfile has been locally modified." 1>&2
+ else
+ echo "autopoint: File $finaldestfile has been locally modified." 1>&2
+ mismatch=yes
+ diff -c "$work_dir/archive/$file" "$finaldestfile" | sed -e "1s,$work_dir/archive/,," >> "$mismatchfile"
+ fi
+ fi
+ fi
+ }
+ if test -n "$allpodirs"; then
+ for dir in $podirs; do
+ func_compare_to_destfile "$dir/$destfile"
+ done
+ else
+ func_compare_to_destfile "$destfile"
+ fi
+ fi
+ done
+ if test -n "$mismatch"; then
+ rm -rf "$work_dir"
+ func_fatal_error "Some files have been locally modified. Not overwriting them because --force has not been specified. For your convenience, you find the local modifications in the file '$mismatchfile'."
+ fi
+ rm -rf "$tmp"
+fi
+
+# func_mkdir_for to
+# ensures the directory that would the given file exists.
+# 'to' is a relative pathname, relative to the current directory.
+func_mkdir_for ()
+{
+ base=`echo "$1" | sed -e 's,/[^/]*$,,'`
+ if test "X$base" != "X$1" && test -n "$base"; then
+ func_mkdir_for "$base"
+ # Recompute base. It was clobbered by the recursive call.
+ base=`echo "$1" | sed -e 's,/[^/]*$,,'`
+ test -d "$base" || { echo "Creating directory $base"; mkdir "$base"; }
+ fi
+}
+
+# func_copy from to
+# copies a file.
+# 'from' is a relative pathname, relative to the current directory.
+# 'to' is a relative pathname, relative to the current directory.
+func_copy ()
+{
+ if $doit; then
+ func_mkdir_for "$2"
+ rm -f "$2"
+ echo "Copying file $2"
+ cp "$1" "$2"
+ else
+ echo "Copy file $2"
+ fi
+}
+
+# func_backup to
+# makes a backup of a file that is about to be overwritten or replaced.
+# 'to' is a relative pathname, relative to the current directory.
+func_backup ()
+{
+ if $doit; then
+ if test -f "$1"; then
+ rm -f "$1~"
+ cp -p "$1" "$1~"
+ fi
+ fi
+}
+
+# Now copy the files.
+for file in `find "$work_dir/archive" -type f -print | sed -e "s,^$work_dir/archive/,," | LC_ALL=C sort`; do
+ func_destfile "$file"
+ if test -n "$destfile"; then
+ func_copy_to_destfile ()
+ {
+ finaldestfile="$1"
+ mustcopy=
+ if test -f "$finaldestfile"; then
+ if func_compare "$finaldestfile" "$work_dir/archive/$file"; then
+ if test -n "$force"; then
+ # Overwrite locally modified file.
+ mustcopy=yes
+ fi
+ # If --force is not specified, don't overwrite locally modified files
+ # for which GNU gettext is a shared owner.
+ fi
+ else
+ mustcopy=yes
+ fi
+ if test -n "$mustcopy"; then
+ func_backup "$finaldestfile"
+ func_copy "$work_dir/archive/$file" "$finaldestfile"
+ fi
+ }
+ if test -n "$allpodirs"; then
+ for dir in $podirs; do
+ func_copy_to_destfile "$dir/$destfile"
+ done
+ else
+ func_copy_to_destfile "$destfile"
+ fi
+ fi
+done
+
+# That's it.
+rm -rf "$work_dir"
+exit 0
diff --git a/gtk+-mingw/bin/bmp2tiff.exe b/gtk+-mingw/bin/bmp2tiff.exe
new file mode 100644
index 0000000..4d3b607
--- /dev/null
+++ b/gtk+-mingw/bin/bmp2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/cjpeg.exe b/gtk+-mingw/bin/cjpeg.exe
new file mode 100644
index 0000000..1cf5894
--- /dev/null
+++ b/gtk+-mingw/bin/cjpeg.exe
Binary files differ
diff --git a/gtk+-mingw/bin/djpeg.exe b/gtk+-mingw/bin/djpeg.exe
new file mode 100644
index 0000000..fdf6cf6
--- /dev/null
+++ b/gtk+-mingw/bin/djpeg.exe
Binary files differ
diff --git a/gtk+-mingw/bin/envsubst.exe b/gtk+-mingw/bin/envsubst.exe
new file mode 100644
index 0000000..9dd2b80
--- /dev/null
+++ b/gtk+-mingw/bin/envsubst.exe
Binary files differ
diff --git a/gtk+-mingw/bin/example.exe b/gtk+-mingw/bin/example.exe
new file mode 100644
index 0000000..39daf97
--- /dev/null
+++ b/gtk+-mingw/bin/example.exe
Binary files differ
diff --git a/gtk+-mingw/bin/example_d.exe b/gtk+-mingw/bin/example_d.exe
new file mode 100644
index 0000000..1058148
--- /dev/null
+++ b/gtk+-mingw/bin/example_d.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fax2ps.exe b/gtk+-mingw/bin/fax2ps.exe
new file mode 100644
index 0000000..50aade2
--- /dev/null
+++ b/gtk+-mingw/bin/fax2ps.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fax2tiff.exe b/gtk+-mingw/bin/fax2tiff.exe
new file mode 100644
index 0000000..61825e8
--- /dev/null
+++ b/gtk+-mingw/bin/fax2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-cache.exe b/gtk+-mingw/bin/fc-cache.exe
new file mode 100644
index 0000000..ac18c3b
--- /dev/null
+++ b/gtk+-mingw/bin/fc-cache.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-cat.exe b/gtk+-mingw/bin/fc-cat.exe
new file mode 100644
index 0000000..221c057
--- /dev/null
+++ b/gtk+-mingw/bin/fc-cat.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-list.exe b/gtk+-mingw/bin/fc-list.exe
new file mode 100644
index 0000000..c78e8de
--- /dev/null
+++ b/gtk+-mingw/bin/fc-list.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-match.exe b/gtk+-mingw/bin/fc-match.exe
new file mode 100644
index 0000000..1ea339d
--- /dev/null
+++ b/gtk+-mingw/bin/fc-match.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-pattern.exe b/gtk+-mingw/bin/fc-pattern.exe
new file mode 100644
index 0000000..fdac24d
--- /dev/null
+++ b/gtk+-mingw/bin/fc-pattern.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-query.exe b/gtk+-mingw/bin/fc-query.exe
new file mode 100644
index 0000000..0914ae3
--- /dev/null
+++ b/gtk+-mingw/bin/fc-query.exe
Binary files differ
diff --git a/gtk+-mingw/bin/fc-scan.exe b/gtk+-mingw/bin/fc-scan.exe
new file mode 100644
index 0000000..d522b2c
--- /dev/null
+++ b/gtk+-mingw/bin/fc-scan.exe
Binary files differ
diff --git a/gtk+-mingw/bin/freetype-config b/gtk+-mingw/bin/freetype-config
new file mode 100644
index 0000000..3158afc
--- /dev/null
+++ b/gtk+-mingw/bin/freetype-config
@@ -0,0 +1,160 @@
+#! /bin/sh
+#
+# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+
+prefix=/MinGW
+exec_prefix=${prefix}
+exec_prefix_set=no
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+enable_shared=
+wl=-Wl,
+hardcode_libdir_flag_spec='-L$libdir'
+
+usage()
+{
+ cat <<EOF
+Usage: freetype-config [OPTION]...
+Get FreeType compilation and linking information.
+
+Options:
+ --prefix display \`--prefix' value used for building the
+ FreeType library
+ --prefix=PREFIX override \`--prefix' value with PREFIX
+ --exec-prefix display \`--exec-prefix' value used for building
+ the FreeType library
+ --exec-prefix=EPREFIX override \`--exec-prefix' value with EPREFIX
+ --version display libtool version of the FreeType library
+ --ftversion display FreeType version number
+ --libs display flags for linking with the FreeType library
+ --libtool display library name for linking with libtool
+ --cflags display flags for compiling with the FreeType
+ library
+EOF
+ exit $1
+}
+
+if test $# -eq 0 ; then
+ usage 1 1>&2
+fi
+
+while test $# -gt 0 ; do
+ case "$1" in
+ -*=*)
+ optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
+ ;;
+ *)
+ optarg=
+ ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ local_prefix=yes
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ exec_prefix_set=yes
+ local_prefix=yes
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --version)
+ echo 15.0.9
+ exit 0
+ ;;
+ --ftversion)
+ echo_ft_version=yes
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ --libtool)
+ echo_libtool=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+if test "$local_prefix" = "yes" ; then
+ if test "$exec_prefix_set" != "yes" ; then
+ exec_prefix=$prefix
+ fi
+fi
+
+if test "$echo_prefix" = "yes" ; then
+ echo ${SYSROOT}$prefix
+fi
+
+if test "$echo_exec_prefix" = "yes" ; then
+ echo ${SYSROOT}$exec_prefix
+fi
+
+if test "$exec_prefix_set" = "yes" ; then
+ libdir=$exec_prefix/lib
+else
+ if test "$local_prefix" = "yes" ; then
+ includedir=$prefix/include
+ libdir=$prefix/lib
+ fi
+fi
+
+if test "$echo_ft_version" = "yes" ; then
+ major=`grep define ${SYSROOT}$includedir/freetype2/freetype/freetype.h \
+ | grep FREETYPE_MAJOR \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ minor=`grep define ${SYSROOT}$includedir/freetype2/freetype/freetype.h \
+ | grep FREETYPE_MINOR \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ patch=`grep define ${SYSROOT}$includedir/freetype2/freetype/freetype.h \
+ | grep FREETYPE_PATCH \
+ | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'`
+ echo $major.$minor.$patch
+fi
+
+if test "$echo_cflags" = "yes" ; then
+ cflags="-I${SYSROOT}$includedir/freetype2"
+ if test "${SYSROOT}$includedir" != "/usr/include" ; then
+ echo $cflags -I${SYSROOT}$includedir
+ else
+ echo $cflags
+ fi
+fi
+
+if test "$echo_libs" = "yes" ; then
+ rpath=
+ if test "$enable_shared" = "yes" ; then
+ eval "rpath=\"$hardcode_libdir_flag_spec\""
+ fi
+ libs="-lfreetype -lz "
+ if test "${SYSROOT}$libdir" != "/usr/lib" && test "${SYSROOT}$libdir" != "/usr/lib64"; then
+ echo -L${SYSROOT}$libdir $libs
+ else
+ echo $libs
+ fi
+fi
+
+if test "$echo_libtool" = "yes" ; then
+ convlib="libfreetype.la"
+ echo ${SYSROOT}$libdir/$convlib
+fi
+
+# EOF
diff --git a/gtk+-mingw/bin/funzip.exe b/gtk+-mingw/bin/funzip.exe
new file mode 100644
index 0000000..617bc7e
--- /dev/null
+++ b/gtk+-mingw/bin/funzip.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gdbus-codegen b/gtk+-mingw/bin/gdbus-codegen
new file mode 100644
index 0000000..02c74b0
--- /dev/null
+++ b/gtk+-mingw/bin/gdbus-codegen
@@ -0,0 +1,41 @@
+#!/c/Python27/python
+
+# GDBus - GLib D-Bus Library
+#
+# Copyright (C) 2008-2011 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General
+# Public License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+# Author: David Zeuthen <davidz@redhat.com>
+
+
+import os
+import sys
+
+srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None)
+
+if srcdir is not None:
+ path = os.path.join(srcdir, 'gio', 'gdbus-2.0')
+elif os.name == 'nt':
+ # Makes gdbus-codegen 'relocatable' at runtime on Windows.
+ path = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gdbus-2.0')
+else:
+ path = os.path.join('/MinGW/lib', 'gdbus-2.0')
+
+sys.path.insert(0, os.path.abspath(path))
+from codegen import codegen_main
+
+sys.exit(codegen_main.codegen_main())
diff --git a/gtk+-mingw/bin/gdbus.exe b/gtk+-mingw/bin/gdbus.exe
new file mode 100644
index 0000000..42bfd62
--- /dev/null
+++ b/gtk+-mingw/bin/gdbus.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gdk-pixbuf-csource.exe b/gtk+-mingw/bin/gdk-pixbuf-csource.exe
new file mode 100644
index 0000000..933529d
--- /dev/null
+++ b/gtk+-mingw/bin/gdk-pixbuf-csource.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gdk-pixbuf-pixdata.exe b/gtk+-mingw/bin/gdk-pixbuf-pixdata.exe
new file mode 100644
index 0000000..032b83c
--- /dev/null
+++ b/gtk+-mingw/bin/gdk-pixbuf-pixdata.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gdk-pixbuf-query-loaders.exe b/gtk+-mingw/bin/gdk-pixbuf-query-loaders.exe
new file mode 100644
index 0000000..8d9d437
--- /dev/null
+++ b/gtk+-mingw/bin/gdk-pixbuf-query-loaders.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gettext.exe b/gtk+-mingw/bin/gettext.exe
new file mode 100644
index 0000000..4b76ca9
--- /dev/null
+++ b/gtk+-mingw/bin/gettext.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gettext.sh b/gtk+-mingw/bin/gettext.sh
new file mode 100644
index 0000000..2369ab5
--- /dev/null
+++ b/gtk+-mingw/bin/gettext.sh
@@ -0,0 +1,123 @@
+#! /bin/sh
+#
+# Copyright (C) 2003, 2005-2007 Free Software Foundation, Inc.
+#
+# This program 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, 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 Library 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.
+#
+
+# Find a way to echo strings without interpreting backslash.
+if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ echo='echo'
+else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ echo='echo_func'
+ fi
+fi
+
+# This script is primarily a shell function library. In order for
+# ". gettext.sh" to find it, we install it in $PREFIX/bin (that is usually
+# contained in $PATH), rather than in some other location such as
+# $PREFIX/share/sh-scripts or $PREFIX/share/gettext. In order to not violate
+# the Filesystem Hierarchy Standard when doing so, this script is executable.
+# Therefore it needs to support the standard --help and --version.
+if test -z "$ZSH_VERSION"; then
+ # zsh is not POSIX compliant: By default, while ". gettext.sh" is executed,
+ # it sets $0 to "gettext.sh", defeating the purpose of this test. But
+ # fortunately we know that when running under zsh, this script is always
+ # being sourced, not executed, because hardly anyone is crazy enough to
+ # install zsh as /bin/sh.
+ case "$0" in
+ gettext.sh | */gettext.sh | *\\gettext.sh)
+ progname=$0
+ package=gettext-runtime
+ version=0.18.1
+ # func_usage
+ # outputs to stdout the --help usage message.
+ func_usage ()
+ {
+ echo "GNU gettext shell script function library version $version"
+ echo "Usage: . gettext.sh"
+ }
+ # func_version
+ # outputs to stdout the --version message.
+ func_version ()
+ {
+ echo "$progname (GNU $package) $version"
+ echo "Copyright (C) 2003-2007 Free Software Foundation, Inc.
+License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo "Written by" "Bruno Haible"
+ }
+ if test $# = 1; then
+ case "$1" in
+ --help | --hel | --he | --h )
+ func_usage; exit 0 ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version; exit 0 ;;
+ esac
+ fi
+ func_usage 1>&2
+ exit 1
+ ;;
+ esac
+fi
+
+# eval_gettext MSGID
+# looks up the translation of MSGID and substitutes shell variables in the
+# result.
+eval_gettext () {
+ gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1")
+}
+
+# eval_ngettext MSGID MSGID-PLURAL COUNT
+# looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes
+# shell variables in the result.
+eval_ngettext () {
+ ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2")
+}
+
+# Note: This use of envsubst is much safer than using the shell built-in 'eval'
+# would be.
+# 1) The security problem with Chinese translations that happen to use a
+# character such as \xe0\x60 is avoided.
+# 2) The security problem with malevolent translators who put in command lists
+# like "$(...)" or "`...`" is avoided.
+# 3) The translations can only refer to shell variables that are already
+# mentioned in MSGID or MSGID-PLURAL.
+#
+# Note: "export PATH" above is a dummy; this is for the case when
+# `envsubst --variables ...` returns nothing.
+#
+# Note: In eval_ngettext above, "$1 $2" means a string whose variables set is
+# the union of the variables set of "$1" and "$2".
+#
+# Note: The minimal use of backquote above ensures that trailing newlines are
+# not dropped, not from the gettext invocation and not from the value of any
+# shell variable.
+#
+# Note: Field splitting on the `envsubst --variables ...` result is desired,
+# since envsubst outputs the variables, separated by newlines. Pathname
+# wildcard expansion or tilde expansion has no effect here, since the words
+# output by "envsubst --variables ..." consist solely of alphanumeric
+# characters and underscore.
diff --git a/gtk+-mingw/bin/gettextize b/gtk+-mingw/bin/gettextize
new file mode 100644
index 0000000..0df2d58
--- /dev/null
+++ b/gtk+-mingw/bin/gettextize
@@ -0,0 +1,1281 @@
+#! /bin/sh
+#
+# Copyright (C) 1995-1998, 2000-2010 Free Software Foundation, Inc.
+#
+# 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 3 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, see <http://www.gnu.org/licenses/>.
+#
+
+# This file is meant for authors or maintainers which want to
+# internationalize their package with the help of GNU gettext. For
+# further information how to use it consult the GNU gettext manual.
+
+progname=$0
+package=gettext-tools
+version=0.18.1
+
+# Set variables
+# - gettext_dir directory where the sources are stored.
+prefix="/MinGW"
+datarootdir="${prefix}/share"
+gettext_dir="${datarootdir}/gettext"
+
+# func_tmpdir
+# creates a temporary directory.
+# Sets variable
+# - tmp pathname of freshly created temporary directory
+func_tmpdir ()
+{
+ # Use the environment variable TMPDIR, falling back to /tmp. This allows
+ # users to specify a different temporary directory, for example, if their
+ # /tmp is filled up or too small.
+ : ${TMPDIR=/tmp}
+ {
+ # Use the mktemp program if available. If not available, hide the error
+ # message.
+ tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+ } ||
+ {
+ # Use a simple mkdir command. It is guaranteed to fail if the directory
+ # already exists. $RANDOM is bash specific and expands to empty in shells
+ # other than bash, ksh and zsh. Its use does not increase security;
+ # rather, it minimizes the probability of failure in a very cluttered /tmp
+ # directory.
+ tmp=$TMPDIR/gt$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+ } ||
+ {
+ echo "$0: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+ }
+}
+
+# Support for relocatability.
+func_find_curr_installdir ()
+{
+ # Determine curr_installdir, even taking into account symlinks.
+ curr_executable="$0"
+ case "$curr_executable" in
+ */* | *\\*) ;;
+ *) # Need to look in the PATH.
+ if test "${PATH_SEPARATOR+set}" != set; then
+ func_tmpdir
+ { echo "#! /bin/sh"; echo "exit 0"; } > "$tmp"/conf.sh
+ chmod +x "$tmp"/conf.sh
+ if (PATH="/nonexistent;$tmp"; conf.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -rf "$tmp"
+ fi
+ save_IFS="$IFS"; IFS="$PATH_SEPARATOR"
+ for dir in $PATH; do
+ IFS="$save_IFS"
+ test -z "$dir" && dir=.
+ for exec_ext in ''; do
+ if test -f "$dir/$curr_executable$exec_ext"; then
+ curr_executable="$dir/$curr_executable$exec_ext"
+ break 2
+ fi
+ done
+ done
+ IFS="$save_IFS"
+ ;;
+ esac
+ # Make absolute.
+ case "$curr_executable" in
+ /* | ?:/* | ?:\\*) ;;
+ *) curr_executable=`pwd`/"$curr_executable" ;;
+ esac
+ # Resolve symlinks.
+ sed_dirname='s,/[^/]*$,,'
+ sed_linkdest='s,^.* -> \(.*\),\1,p'
+ while : ; do
+ lsline=`LC_ALL=C ls -l "$curr_executable"`
+ case "$lsline" in
+ *" -> "*)
+ linkdest=`echo "$lsline" | sed -n -e "$sed_linkdest"`
+ case "$linkdest" in
+ /* | ?:/* | ?:\\*) curr_executable="$linkdest" ;;
+ *) curr_executable=`echo "$curr_executable" | sed -e "$sed_dirname"`/"$linkdest" ;;
+ esac ;;
+ *) break ;;
+ esac
+ done
+ curr_installdir=`echo "$curr_executable" | sed -e 's,/[^/]*$,,'`
+ # Canonicalize.
+ curr_installdir=`cd "$curr_installdir" && pwd`
+}
+func_find_prefixes ()
+{
+ # Compute the original/current installation prefixes by stripping the
+ # trailing directories off the original/current installation directories.
+ orig_installprefix="$orig_installdir"
+ curr_installprefix="$curr_installdir"
+ while true; do
+ orig_last=`echo "$orig_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
+ curr_last=`echo "$curr_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'`
+ if test -z "$orig_last" || test -z "$curr_last"; then
+ break
+ fi
+ if test "$orig_last" != "$curr_last"; then
+ break
+ fi
+ orig_installprefix=`echo "$orig_installprefix" | sed -e 's,/[^/]*$,,'`
+ curr_installprefix=`echo "$curr_installprefix" | sed -e 's,/[^/]*$,,'`
+ done
+}
+if test "no" = yes; then
+ exec_prefix="${prefix}"
+ bindir="${exec_prefix}/bin"
+ orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables
+ func_find_curr_installdir # determine curr_installdir
+ func_find_prefixes
+ # Relocate the directory variables that we use.
+ gettext_dir=`echo "$gettext_dir/" | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" | sed -e 's,/$,,'`
+fi
+
+# func_usage
+# outputs to stdout the --help usage message.
+func_usage ()
+{
+ echo "\
+Usage: gettextize [OPTION]... [package-dir]
+
+Prepares a source package to use gettext.
+
+Options:
+ --help print this help and exit
+ --version print version information and exit
+ -f, --force force writing of new files even if old exist
+ --intl install libintl in a subdirectory (deprecated)
+ --po-dir=DIR specify directory with PO files
+ --no-changelog don't update or create ChangeLog files
+ --symlink make symbolic links instead of copying files
+ -n, --dry-run print modifications but don't perform them
+
+Report bugs to <bug-gnu-gettext@gnu.org>."
+}
+
+# func_version
+# outputs to stdout the --version message.
+func_version ()
+{
+ echo "$progname (GNU $package) $version"
+ echo "Copyright (C) 1995-1998, 2000-2010 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo "Written by" "Ulrich Drepper"
+}
+
+# func_fatal_error message
+# outputs to stderr a fatal error message, and terminates the program.
+func_fatal_error ()
+{
+ echo "gettextize: *** $1" 1>&2
+ echo "gettextize: *** Stop." 1>&2
+ exit 1
+}
+
+# Nuisances.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Command-line option processing.
+# Removes the OPTIONS from the arguments. Sets the variables:
+# - force 1 if --force was given, 0 otherwise
+# - intldir yes if --intl was given, empty otherwise
+# - podirs list of directories specified with --po-dir
+# - try_ln_s : if --symlink was given, false otherwise
+# - do_changelog false if --no-changelog was given, : otherwise
+# - doit false if --dry-run was given, : otherwise
+{
+ force=0
+ intldir=
+ podirs=
+ try_ln_s=false
+ do_changelog=:
+ doit=:
+
+ while test $# -gt 0; do
+ case "$1" in
+ -c | --copy | --cop | --co | --c ) # accepted for backward compatibility
+ shift ;;
+ -n | --dry-run | --dry-ru | --dry-r | --dry- | --dry | --dr | --d )
+ shift
+ doit=false ;;
+ -f | --force | --forc | --for | --fo | --f )
+ shift
+ force=1 ;;
+ --help | --hel | --he | --h )
+ func_usage; exit 0 ;;
+ --intl | --int | --in | --i )
+ shift
+ intldir=yes ;;
+ --po-dir | --po-di | --po-d | --po- | --po | --p )
+ shift
+ if test $# = 0; then
+ func_fatal_error "missing argument for --po-dir"
+ fi
+ case "$1" in
+ -*) func_fatal_error "missing argument for --po-dir" ;;
+ esac
+ podirs="$podirs $1"
+ shift ;;
+ --po-dir=* )
+ arg=`echo "X$1" | sed -e 's/^X--po-dir=//'`
+ podirs="$podirs $arg"
+ shift ;;
+ --no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c )
+ shift
+ do_changelog=false ;;
+ --symlink | --symlin | --symli | --syml | --sym | --sy | --s )
+ shift
+ try_ln_s=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version
+ exit 0 ;;
+ -- ) # Stop option prcessing
+ shift; break ;;
+ -* )
+ echo "gettextize: unknown option $1" 1>&2
+ echo "Try 'gettextize --help' for more information." 1>&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+ done
+ # podirs defaults to "po".
+ test -n "$podirs" || podirs="po"
+}
+
+# Warn about deprecated options.
+if test -n "$intldir"; then
+ echo "gettextize: warning: the option '--intl' is deprecated and will be removed" 1>&2
+fi
+
+# Command-line argument processing.
+# Analyzes the remaining arguments.
+# Sets the variables
+# - origdir to the original directory,
+# - srcdir to the package directory, and cd-s into it.
+{
+ if test $# -gt 1; then
+ func_usage 1>&2
+ exit 1
+ fi
+ origdir=`pwd`
+ if test $# -eq 1; then
+ srcdir=$1
+ if cd "$srcdir"; then
+ srcdir=`pwd`
+ else
+ func_fatal_error "Cannot change directory to '$srcdir'."
+ fi
+ else
+ srcdir=$origdir
+ fi
+}
+
+# The current directory is now $srcdir.
+
+# Check integrity of package: A configure.in/ac must be present. Sets variable
+# - configure_in name of configure.in/ac file.
+test -f configure.in || test -f configure.ac ||
+ func_fatal_error "Missing configure.in or configure.ac, please cd to your package first."
+configure_in=NONE
+if test -f configure.in; then
+ configure_in=configure.in
+else
+ if test -f configure.ac; then
+ configure_in=configure.ac
+ fi
+fi
+
+# Check whether the --force option is needed but has not been specified.
+if test $force -eq 0; then
+ if test -d intl; then
+ func_fatal_error "intl/ subdirectory exists: use option -f if you really want to delete it."
+ fi
+ for podir in $podirs; do
+ if test -f "$podir/Makefile.in.in"; then
+ func_fatal_error "$podir/Makefile.in.in exists: use option -f if you really want to delete it."
+ fi
+ done
+ if test -f ABOUT-NLS; then
+ func_fatal_error "ABOUT-NLS exists: use option -f if you really want to delete it."
+ fi
+fi
+
+# Check in which directory config.rpath etc. belong.
+auxdir=`cat "$configure_in" | grep '^AC_CONFIG_AUX_DIR' | sed -n -e 's/AC_CONFIG_AUX_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
+if test -n "$auxdir"; then
+ auxdir="$auxdir/"
+fi
+
+# For simplicity we change to the gettext source directory.
+cd "$gettext_dir" ||
+ func_fatal_error "gettext source directory '${gettext_dir}' doesn't exist"
+
+# Variables which keep track what has been modified.
+added_directories=
+removed_directory=
+added_extradist=
+added_acoutput=
+removed_acoutput=" intl/intlh.inst"
+
+# Variable:
+# - please accumulates instructions for the user.
+please=
+
+# Variable:
+# - date current date, for use in ChangeLog entries.
+date=`date +%Y-%m-%d`
+
+# func_copy from to
+# copies a file.
+# 'from' is a relative pathname, relative to the current directory.
+# 'to' is a relative pathname, relative to $srcdir.
+func_copy ()
+{
+ if $doit; then
+ rm -f "$srcdir/$2"
+ echo "Copying file $2"
+ cp "$1" "$srcdir/$2"
+ else
+ echo "Copy file $2"
+ fi
+}
+
+# func_linkorcopy from absfrom to
+# links or copies a file.
+# 'from' is a relative pathname, relative to the current directory.
+# 'absfrom' is the corresponding absolute pathname.
+# 'to' is a relative pathname, relative to $srcdir.
+func_linkorcopy ()
+{
+ if $doit; then
+ rm -f "$srcdir/$3"
+ ($try_ln_s && ln -s "$2" "$srcdir/$3" && echo "Symlinking file $3") 2>/dev/null ||
+ { echo "Copying file $3"; cp "$1" "$srcdir/$3"; }
+ else
+ if $try_ln_s; then
+ echo "Symlink file $3"
+ else
+ echo "Copy file $3"
+ fi
+ fi
+}
+
+# func_backup to
+# makes a backup of a file that is about to be overwritten or replaced.
+# 'to' is a relative pathname, relative to $srcdir.
+func_backup ()
+{
+ if $doit; then
+ if test -f "$srcdir/$1"; then
+ rm -f "$srcdir/$1~"
+ cp -p "$srcdir/$1" "$srcdir/$1~"
+ fi
+ fi
+}
+
+# func_remove to
+# removes a file.
+# 'to' is a relative pathname, relative to $srcdir.
+func_remove ()
+{
+ if $doit; then
+ echo "Removing $1"
+ rm -f "$srcdir/$1"
+ else
+ echo "Remove $1"
+ fi
+}
+
+# func_ChangeLog_init
+# func_ChangeLog_add_entry line
+# func_ChangeLog_finish
+# manage the ChangeLog file, relative to $srcdir.
+func_ChangeLog_init ()
+{
+ modified_ChangeLog=
+}
+func_ChangeLog_add_entry ()
+{
+ if $doit; then
+ if test -z "$modified_ChangeLog"; then
+ echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/ChangeLog.tmp"
+ echo >> "$srcdir/ChangeLog.tmp"
+ modified_ChangeLog=yes
+ fi
+ echo "$1" >> "$srcdir/ChangeLog.tmp"
+ else
+ modified_ChangeLog=yes
+ fi
+}
+func_ChangeLog_finish ()
+{
+ if test -n "$modified_ChangeLog"; then
+ if $doit; then
+ echo >> "$srcdir/ChangeLog.tmp"
+ if test -f "$srcdir/ChangeLog"; then
+ echo "Adding an entry to ChangeLog (backup is in ChangeLog~)"
+ cat "$srcdir/ChangeLog" >> "$srcdir/ChangeLog.tmp"
+ rm -f "$srcdir/ChangeLog~"
+ cp -p "$srcdir/ChangeLog" "$srcdir/ChangeLog~"
+ else
+ echo "Creating ChangeLog"
+ fi
+ cp "$srcdir/ChangeLog.tmp" "$srcdir/ChangeLog"
+ rm -f "$srcdir/ChangeLog.tmp"
+ else
+ if test -f "$srcdir/ChangeLog"; then
+ echo "Add an entry to ChangeLog"
+ else
+ echo "Create ChangeLog"
+ fi
+ fi
+ fi
+}
+
+# func_poChangeLog_init
+# func_poChangeLog_add_entry line
+# func_poChangeLog_finish
+# manage the $podir/ChangeLog file, relative to $srcdir.
+func_poChangeLog_init ()
+{
+ modified_poChangeLog=
+}
+func_poChangeLog_add_entry ()
+{
+ if $doit; then
+ if test -z "$modified_poChangeLog"; then
+ echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/$podir/ChangeLog.tmp"
+ echo >> "$srcdir/$podir/ChangeLog.tmp"
+ modified_poChangeLog=yes
+ fi
+ echo "$1" >> "$srcdir/$podir/ChangeLog.tmp"
+ else
+ modified_poChangeLog=yes
+ fi
+}
+func_poChangeLog_finish ()
+{
+ if test -n "$modified_poChangeLog"; then
+ if $doit; then
+ echo >> "$srcdir/$podir/ChangeLog.tmp"
+ if test -f "$srcdir/$podir/ChangeLog"; then
+ echo "Adding an entry to $podir/ChangeLog (backup is in $podir/ChangeLog~)"
+ cat "$srcdir/$podir/ChangeLog" >> "$srcdir/$podir/ChangeLog.tmp"
+ rm -f "$srcdir/$podir/ChangeLog~"
+ cp -p "$srcdir/$podir/ChangeLog" "$srcdir/$podir/ChangeLog~"
+ else
+ echo "Creating $podir/ChangeLog"
+ fi
+ cp "$srcdir/$podir/ChangeLog.tmp" "$srcdir/$podir/ChangeLog"
+ rm -f "$srcdir/$podir/ChangeLog.tmp"
+ else
+ if test -f "$srcdir/$podir/ChangeLog"; then
+ echo "Add an entry to $podir/ChangeLog"
+ else
+ echo "Create $podir/ChangeLog"
+ fi
+ fi
+ fi
+}
+
+# func_m4ChangeLog_init
+# func_m4ChangeLog_add_entry line
+# func_m4ChangeLog_finish
+# manage the $m4dir/ChangeLog file, relative to $srcdir.
+func_m4ChangeLog_init ()
+{
+ if test -n "$using_m4ChangeLog"; then
+ modified_m4ChangeLog=
+ created_m4ChangeLog=
+ fi
+}
+func_m4ChangeLog_add_entry ()
+{
+ if test -n "$using_m4ChangeLog"; then
+ if $doit; then
+ if test -z "$modified_m4ChangeLog"; then
+ echo "$date gettextize <bug-gnu-gettext@gnu.org>" > "$srcdir/$m4dir/ChangeLog.tmp"
+ echo >> "$srcdir/$m4dir/ChangeLog.tmp"
+ modified_m4ChangeLog=yes
+ fi
+ echo "$1" >> "$srcdir/$m4dir/ChangeLog.tmp"
+ else
+ modified_m4ChangeLog=yes
+ fi
+ else
+ line="$1"
+ line=`echo "$line" | sed -e "s%^ \\* % * $m4dir/%"`
+ func_ChangeLog_add_entry "$line"
+ fi
+}
+func_m4ChangeLog_finish ()
+{
+ if test -n "$using_m4ChangeLog"; then
+ if test -n "$modified_m4ChangeLog"; then
+ if $doit; then
+ echo >> "$srcdir/$m4dir/ChangeLog.tmp"
+ if test -f "$srcdir/$m4dir/ChangeLog"; then
+ echo "Adding an entry to $m4dir/ChangeLog (backup is in $m4dir/ChangeLog~)"
+ cat "$srcdir/$m4dir/ChangeLog" >> "$srcdir/$m4dir/ChangeLog.tmp"
+ rm -f "$srcdir/$m4dir/ChangeLog~"
+ cp -p "$srcdir/$m4dir/ChangeLog" "$srcdir/$m4dir/ChangeLog~"
+ else
+ echo "Creating $m4dir/ChangeLog"
+ created_m4ChangeLog=yes
+ fi
+ cp "$srcdir/$m4dir/ChangeLog.tmp" "$srcdir/$m4dir/ChangeLog"
+ rm -f "$srcdir/$m4dir/ChangeLog.tmp"
+ else
+ if test -f "$srcdir/$m4dir/ChangeLog"; then
+ echo "Add an entry to $m4dir/ChangeLog"
+ else
+ echo "Create $m4dir/ChangeLog"
+ created_m4ChangeLog=yes
+ fi
+ fi
+ fi
+ fi
+}
+using_m4ChangeLog=yes
+
+if test ! -f "$srcdir/intl/Makefile.in" && test -n "$intldir"; then
+ added_acoutput="$added_acoutput intl/Makefile"
+fi
+if test -f "$srcdir/intl/Makefile.in" && test -z "$intldir"; then
+ removed_acoutput="$removed_acoutput intl/Makefile"
+fi
+if test -d "$srcdir/intl"; then
+ # Remove everything inside intl except for RCS and CVS subdirs and invisible
+ # files.
+ if $doit; then
+ echo "Wiping out intl/ subdirectory"
+ (cd "$srcdir/intl" &&
+ for f in *; do
+ if test CVS != "$f" && test RCS != "$f"; then
+ rm -rf "$f"
+ fi
+ done)
+ else
+ echo "Wipe out intl/ subdirectory"
+ fi
+ if test -z "$intldir"; then
+ removed_directory=intl
+ fi
+else
+ if test -n "$intldir"; then
+ if $doit; then
+ echo "Creating intl/ subdirectory"
+ mkdir "$srcdir/intl" || func_fatal_error "failed to create intl/ subdirectory"
+ else
+ echo "Create intl/ subdirectory"
+ fi
+ added_directories="$added_directories intl"
+ fi
+fi
+
+$do_changelog && func_ChangeLog_init
+
+for podir in $podirs; do
+ test -d "$srcdir/$podir" || {
+ if $doit; then
+ echo "Creating $podir/ subdirectory"
+ mkdir "$srcdir/$podir" || func_fatal_error "failed to create $podir/ subdirectory"
+ else
+ echo "Create $podir/ subdirectory"
+ fi
+ added_directories="$added_directories $podir"
+ }
+done
+
+# Create the directory for config.rpath, if needed.
+# This is for consistency with autoreconf and automake.
+# Note that $auxdir is either empty or ends in a slash.
+test -d "$srcdir/$auxdir" || {
+ if $doit; then
+ echo "Creating $auxdir subdirectory"
+ mkdir "$srcdir/$auxdir" || func_fatal_error "failed to create $auxdir subdirectory"
+ else
+ echo "Create $auxdir subdirectory"
+ fi
+}
+
+# Now copy all files. Take care for the destination directories.
+for file in *; do
+ case $file in
+ ABOUT-NLS)
+ func_linkorcopy $file "$gettext_dir/$file" $file
+ ;;
+ config.rpath)
+ if test -f "$srcdir/$auxdir$file"; then
+ :
+ else
+ added_extradist="$added_extradist $auxdir$file"
+ fi
+ func_linkorcopy $file "$gettext_dir/$file" "$auxdir$file"
+ ;;
+ esac
+done
+
+# Copy files to intl/ subdirectory.
+if test -n "$intldir"; then
+ cd intl
+ for file in *; do
+ if test $file != COPYING.LIB-2.0 && test $file != COPYING.LIB-2.1; then
+ if test $file != plural.c; then
+ func_linkorcopy $file "$gettext_dir/intl/$file" intl/$file
+ else
+ # plural.c is a generated file; it must be copied and touched.
+ func_copy $file intl/$file
+ if $doit; then
+ (sleep 2; touch "$srcdir/intl/$file") &
+ fi
+ fi
+ fi
+ done
+ cd ..
+else
+ echo "Not copying intl/ directory."
+ # Tell the user what to put into configure.ac, if it is not already there.
+ if grep '^AM_GNU_GETTEXT([[]\?external[]]\?[ ]*[,)]' "$srcdir/$configure_in" > /dev/null; then
+ :
+ else
+ please="$please
+Please use AM_GNU_GETTEXT([external]) in order to cause autoconfiguration
+to look for an external libintl.
+"
+ fi
+fi
+
+# Copy files to po/ subdirectory.
+cd po
+for podir in $podirs; do
+ $do_changelog && func_poChangeLog_init
+ for file in Makefile.in.in; do
+ same=no
+ if test -f "$srcdir/$podir/$file"; then
+ if cmp -s $file "$srcdir/$podir/$file"; then
+ same=yes
+ fi
+ else
+ added_acoutput="$added_acoutput $podir/Makefile.in"
+ fi
+ if $do_changelog && test $same = no; then
+ if test -f "$srcdir/$podir/$file"; then
+ func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
+ else
+ func_poChangeLog_add_entry " * $file: New file, from gettext-${version}."
+ fi
+ fi
+ func_backup "$podir/$file"
+ func_linkorcopy $file "$gettext_dir/po/$file" "$podir/$file"
+ done
+ for file in *; do
+ case $file in
+ Makefile.in.in)
+ # Already handled above.
+ ;;
+ Makevars.template)
+ func_linkorcopy Makevars.template "$gettext_dir/po/Makevars.template" "$podir/Makevars.template"
+ if test -f "$srcdir/po/Makevars"; then
+ LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp1"
+ LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars.template" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp2"
+ missingvars=`LC_ALL=C comm -13 "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"`
+ rm -f "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"
+ if test -n "$missingvars"; then
+ please="$please
+Please update $podir/Makevars so that it defines all the variables mentioned
+in $podir/Makevars.template.
+You can then remove $podir/Makevars.template.
+"
+ fi
+ else
+ please="$please
+Please create $podir/Makevars from the template in $podir/Makevars.template.
+You can then remove $podir/Makevars.template.
+"
+ fi
+ ;;
+ *)
+ same=no
+ if test -f "$srcdir/$podir/$file"; then
+ if cmp -s $file "$srcdir/$podir/$file"; then
+ same=yes
+ fi
+ fi
+ if $do_changelog && test $same = no; then
+ if test -f "$srcdir/$podir/$file"; then
+ func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
+ else
+ func_poChangeLog_add_entry " * $file: New file, from gettext-${version}."
+ fi
+ fi
+ func_backup "$podir/$file"
+ func_linkorcopy $file "$gettext_dir/po/$file" "$podir/$file"
+ ;;
+ esac
+ done
+ if test -f "$srcdir/$podir/cat-id-tbl.c"; then
+ func_remove "$podir/cat-id-tbl.c"
+ $do_changelog && func_poChangeLog_add_entry " * cat-id-tbl.c: Remove file."
+ fi
+ if test -f "$srcdir/$podir/stamp-cat-id"; then
+ func_remove "$podir/stamp-cat-id"
+ $do_changelog && func_poChangeLog_add_entry " * stamp-cat-id: Remove file."
+ fi
+ if test ! -f "$srcdir/$podir/POTFILES.in"; then
+ if $doit; then
+ echo "Creating initial $podir/POTFILES.in"
+ echo '# List of source files which contain translatable strings.' > "$srcdir/$podir/POTFILES.in"
+ else
+ echo "Create initial $podir/POTFILES.in"
+ fi
+ $do_changelog && func_poChangeLog_add_entry " * POTFILES.in: New file."
+ please="$please
+Please fill $podir/POTFILES.in as described in the documentation.
+"
+ fi
+ $do_changelog && func_poChangeLog_finish
+done
+
+# Determine whether we can assume automake 1.9 or newer.
+have_automake19=
+if (aclocal --version) >/dev/null 2>/dev/null; then
+ aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'`
+ case $aclocal_version in
+ 1.9* | 1.[1-9][0-9]* | [2-9]*) have_automake19=yes ;;
+ esac
+fi
+
+m4filelist='gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4
+ po.m4 progtest.m4'
+# With aclocal versions < 1.9 we need all m4 files, otherwise "aclocal -I m4"
+# might give an error. (aclocal < 1.9 didn't know which macros are really
+# needed, it looked which macros are potentially needed.)
+min_automake_version=1.9
+if test -n "$intldir" || test -z "$have_automake19"; then
+ # Add intldir.m4, intl.m4 and its dependencies.
+ m4filelist=$m4filelist' codeset.m4 fcntl-o.m4 glibc2.m4 glibc21.m4 intdiv0.m4
+ intl.m4 intldir.m4 intlmacosx.m4 intmax.m4 inttypes_h.m4 inttypes-pri.m4
+ lcmessage.m4 lock.m4 longlong.m4 printf-posix.m4 size_max.m4 stdint_h.m4
+ threadlib.m4 uintmax_t.m4 visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4'
+ min_automake_version=1.8
+fi
+
+# All sorts of bugs could occur if the configure file was remade with the wrong
+# version of gettext.m4 et al. (because then the configure and the po/Makefile.in.in
+# don't fit together). It is therefore important that the package carries the
+# right versions of gettext.m4 et al. with it.
+if test -f "$srcdir/Makefile.am"; then
+ # A package using automake.
+
+ # Determine whether it's using automake 1.8 or newer.
+ have_automake18=
+ if (aclocal --version) >/dev/null 2>/dev/null; then
+ aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'`
+ case $aclocal_version in
+ 1.[8-9]* | 1.[1-9][0-9]* | [2-9]*) have_automake18=yes ;;
+ esac
+ fi
+
+ # Extract the macro directory name from Makefile.am.
+ aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'`
+ m4dir=m4
+ m4dir_defaulted=yes
+ m4dir_is_next=
+ for arg in $aclocal_amflags; do
+ if test -n "$m4dir_is_next"; then
+ # Ignore absolute directory pathnames, like /usr/local/share/aclocal.
+ case "$arg" in
+ /*) ;;
+ *)
+ m4dir="$arg"
+ m4dir_defaulted=
+ break
+ ;;
+ esac
+ m4dir_is_next=
+ else
+ if test "X$arg" = "X-I"; then
+ m4dir_is_next=yes
+ else
+ m4dir_is_next=
+ fi
+ fi
+ done
+
+ # Decide whether to use $m4dir/ChangeLog, or to use ChangeLog instead.
+ if test -d "$srcdir/$m4dir" && test -f "$srcdir/ChangeLog" && test ! -f "$srcdir/$m4dir/ChangeLog"; then
+ # The programmer has no $m4dir/ChangeLog so far. Don't introduce one.
+ using_m4ChangeLog=
+ fi
+
+ # Update the *.m4 files and the corresponding Makefile.am.
+ $do_changelog && func_m4ChangeLog_init
+ added_m4dir=
+ added_m4files=
+ if test -d "$srcdir/$m4dir"; then
+ :
+ else
+ if $doit; then
+ echo "Creating directory $m4dir"
+ mkdir "$srcdir/$m4dir"
+ else
+ echo "Create directory $m4dir"
+ fi
+ added_m4dir=yes
+ fi
+ for file in $m4filelist; do
+ same=no
+ if test -f "$srcdir/$m4dir/$file"; then
+ if cmp -s "${datarootdir}/aclocal/$file" "$srcdir/$m4dir/$file"; then
+ same=yes
+ fi
+ else
+ added_m4files="$added_m4files $file"
+ fi
+ if $do_changelog && test $same = no; then
+ if test -f "$srcdir/$m4dir/$file"; then
+ func_m4ChangeLog_add_entry " * $file: Upgrade to gettext-${version}."
+ else
+ func_m4ChangeLog_add_entry " * $file: New file, from gettext-${version}."
+ fi
+ fi
+ func_backup "$m4dir/$file"
+ func_linkorcopy "${datarootdir}/aclocal/$file" "${datarootdir}/aclocal/$file" "$m4dir/$file"
+ done
+ missing_m4Makefileam=
+ if test -n "$added_m4files"; then
+ if test -f "$srcdir/$m4dir/Makefile.am"; then
+ if $doit; then
+ echo "Updating EXTRA_DIST in $m4dir/Makefile.am (backup is in $m4dir/Makefile.am~)"
+ func_backup "$m4dir/Makefile.am"
+ rm -f "$srcdir/$m4dir/Makefile.am"
+ if grep '^EXTRA_DIST[ ]*=' "$srcdir/$m4dir/Makefile.am~" > /dev/null; then
+ sed -e "s%^\(EXTRA_DIST[ ]*=\) \\?%\\1$added_m4files %" < "$srcdir/$m4dir/Makefile.am~" > "$srcdir/$m4dir/Makefile.am"
+ $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): Add the new files."
+ else
+ (cat "$srcdir/$m4dir/Makefile.am~"; echo; echo "EXTRA_DIST =$added_m4files") > "$srcdir/$m4dir/Makefile.am"
+ $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): New variable."
+ fi
+ else
+ echo "Update EXTRA_DIST in $m4dir/Makefile.am"
+ $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST)."
+ fi
+ else
+ # $m4dir/Makefile.am is not needed any more when aclocal 1.8 or newer
+ # is used.
+ if test -z "$have_automake18"; then
+ if $doit; then
+ echo "Creating $m4dir/Makefile.am"
+ echo "EXTRA_DIST =$added_m4files" > "$srcdir/$m4dir/Makefile.am"
+ else
+ echo "Create $m4dir/Makefile.am"
+ fi
+ $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am: New file."
+ added_acoutput="$added_acoutput $m4dir/Makefile"
+ else
+ missing_m4Makefileam=yes
+ fi
+ fi
+ fi
+ if test -n "$added_m4dir" && test -z "$missing_m4Makefileam"; then
+ added_directories="$added_directories $m4dir"
+ fi
+ $do_changelog && func_m4ChangeLog_finish
+ # automake will arrange for $m4dir/ChangeLog to be distributed if a
+ # $m4dir/Makefile.am exists. If not, we need to add it to Makefile.am's
+ # EXTRA_DIST explicitly.
+ if test -n "$created_m4ChangeLog" && test -n "$missing_m4Makefileam"; then
+ added_extradist="$added_extradist $m4dir/ChangeLog"
+ fi
+
+ # Update the top-level Makefile.am.
+ modified_Makefile_am=
+ # func_modify_Makefile_am changelog_comment
+ # assumes a modified copy of $srcdir/Makefile.am in $srcdir/Makefile.am.tmp
+ # and replaces the original Makefile.am file with the modified one if
+ # the two files differ. Then it removes the modified copy.
+ func_modify_Makefile_am ()
+ {
+ if cmp -s "$srcdir/Makefile.am" "$srcdir/Makefile.am.tmp"; then
+ :
+ else
+ if test -z "$modified_Makefile_am"; then
+ if $doit; then
+ echo "Updating Makefile.am (backup is in Makefile.am~)"
+ func_backup Makefile.am
+ else
+ echo "Update Makefile.am"
+ fi
+ fi
+ if $doit; then
+ rm -f "$srcdir/Makefile.am"
+ cp "$srcdir/Makefile.am.tmp" "$srcdir/Makefile.am"
+ fi
+ if $do_changelog; then
+ if test -z "$modified_Makefile_am"; then
+ func_ChangeLog_add_entry " * Makefile.am $1"
+ else
+ func_ChangeLog_add_entry " $1"
+ fi
+ fi
+ modified_Makefile_am=yes
+ fi
+ rm -f "$srcdir/Makefile.am.tmp"
+ }
+
+ if test -n "$added_directories"; then
+ if grep '^SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
+ sed -e "s%^\(SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'`
+ func_modify_Makefile_am "(SUBDIRS): Add $added_directories_pretty."
+ else
+ (cat "$srcdir/Makefile.am"; echo; echo "SUBDIRS =$added_directories") > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(SUBDIRS): New variable."
+ fi
+ fi
+ if test -n "$removed_directory"; then
+ sed -e '/^SUBDIRS[ ]*=/ {
+ :a
+ s%\([ ]\)'"$removed_directory"'[ ]%\1%
+ s%[ ]'"$removed_directory"'$%%
+ tb
+ :b
+ s%\\$%\\%
+ tc
+ bd
+ :c
+ n
+ ba
+ :d
+ }' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(SUBDIRS): Remove $removed_directory."
+ fi
+ if test -n "$added_directories"; then
+ if grep '^DIST_SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
+ sed -e "s%^\(DIST_SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'`
+ func_modify_Makefile_am "(DIST_SUBDIRS): Add $added_directories_pretty."
+ fi
+ fi
+ if test -n "$removed_directory"; then
+ sed -e '/^DIST_SUBDIRS[ ]*=/ {
+ :a
+ s%\([ ]\)'"$removed_directory"'[ ]%\1%
+ s%[ ]'"$removed_directory"'$%%
+ tb
+ :b
+ s%\\$%\\%
+ tc
+ bd
+ :c
+ n
+ ba
+ :d
+ }' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(DIST_SUBDIRS): Remove $removed_directory."
+ fi
+ if test -n "$m4dir_defaulted"; then
+ if grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
+ sed -e "s%^\(ACLOCAL_AMFLAGS[ ]*=\) \\?%\\1 -I $m4dir %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(ACLOCAL_AMFLAGS): Add -I $m4dir."
+ else
+ (cat "$srcdir/Makefile.am"; echo; echo "ACLOCAL_AMFLAGS = -I $m4dir") > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(ACLOCAL_AMFLAGS): New variable."
+ fi
+ # Also update Makefile.in and, if existent, Makefile. Otherwise they
+ # would take into account the new flags only after a few rounds of
+ # "./configure", "make", "touch configure.in", "make distclean".
+ if $doit; then
+ for file in Makefile.in Makefile; do
+ if test -f "$srcdir/$file"; then
+ func_backup $file
+ rm -f "$srcdir/$file"
+ sed -e "s%(ACLOCAL)%(ACLOCAL) -I $m4dir%" < "$srcdir/$file~" > "$srcdir/$file"
+ fi
+ done
+ fi
+ fi
+ if test -n "$added_extradist"; then
+ if grep '^EXTRA_DIST[ ]*=' "$srcdir/Makefile.am" > /dev/null; then
+ sed -e "s%^\(EXTRA_DIST[ ]*=\)%\\1$added_extradist %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp"
+ added_extradist_pretty=`echo $added_extradist | sed -e 's/ /, /g'`
+ func_modify_Makefile_am "(EXTRA_DIST): Add $added_extradist_pretty."
+ else
+ (cat "$srcdir/Makefile.am"; echo; echo "EXTRA_DIST =$added_extradist") > "$srcdir/Makefile.am.tmp"
+ func_modify_Makefile_am "(EXTRA_DIST): New variable."
+ fi
+ fi
+ # Extract the aclocal options name from Makefile.am.
+ aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'`
+ aclocal_options=
+ m4dir_is_next=
+ for arg in $aclocal_amflags; do
+ if test -n "$m4dir_is_next"; then
+ aclocal_options="$aclocal_options -I $arg"
+ m4dir_is_next=
+ else
+ if test "X$arg" = "X-I"; then
+ m4dir_is_next=yes
+ else
+ m4dir_is_next=
+ fi
+ fi
+ done
+ please="$please
+Please run 'aclocal$aclocal_options' to regenerate the aclocal.m4 file.
+You need aclocal from GNU automake $min_automake_version (or newer) to do this.
+Then run 'autoconf' to regenerate the configure file.
+"
+
+ # Also create $m4dir/Makefile.in from $m4dir/Makefile.am, because automake
+ # doesn't do it by itself.
+ if $doit; then
+ case "$added_acoutput" in
+ *" $m4dir/Makefile")
+ (cd "$srcdir" && automake "$m4dir/Makefile") 2>/dev/null ||
+ please="$please
+Please run 'automake $m4dir/Makefile' to create $m4dir/Makefile.in
+"
+ ;;
+ esac
+ fi
+else
+ please="$please
+Please add the files
+$m4filelist
+from the ${datarootdir}/aclocal directory to your aclocal.m4 file.
+"
+fi
+
+modified_configure_in=
+# func_modify_configure_in changelog_comment
+# assumes a modified copy of $srcdir/$configure_in in $srcdir/$configure_in.tmp
+# and replaces the original configure.in/ac file with the modified one if
+# the two files differ. Then it removes the modified copy.
+func_modify_configure_in ()
+{
+ if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
+ :
+ else
+ if test -z "$modified_configure_in"; then
+ if $doit; then
+ echo "Updating $configure_in (backup is in $configure_in~)"
+ func_backup $configure_in
+ else
+ echo "Update $configure_in"
+ fi
+ fi
+ if $doit; then
+ rm -f "$srcdir/$configure_in"
+ cp "$srcdir/$configure_in.tmp" "$srcdir/$configure_in"
+ fi
+ if $do_changelog; then
+ if test -z "$modified_configure_in"; then
+ func_ChangeLog_add_entry " * $configure_in $1"
+ else
+ func_ChangeLog_add_entry " $1"
+ fi
+ fi
+ modified_configure_in=yes
+ fi
+ rm -f "$srcdir/$configure_in.tmp"
+}
+
+if test -n "$added_acoutput"; then
+ if grep '^AC_CONFIG_FILES(' "$srcdir/$configure_in" > /dev/null; then
+ sedprog='
+ta
+b
+:a
+n
+ba'
+ sed -e "s%^\\(AC_CONFIG_FILES([^])\\,]*\\)%\\1$added_acoutput%$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+ added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'`
+ func_modify_configure_in "(AC_CONFIG_FILES): Add $added_acoutput_pretty."
+ else
+ if grep '^AC_OUTPUT(' "$srcdir/$configure_in" > /dev/null; then
+ sed -e "s%^\\(AC_OUTPUT([^])\\,]*\\)%\\1$added_acoutput%" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+ added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'`
+ func_modify_configure_in "(AC_OUTPUT): Add $added_acoutput_pretty."
+ else
+ please="$please
+Please add$added_acoutput to the AC_OUTPUT or AC_CONFIG_FILES invocation in the $configure_in file.
+"
+ fi
+ fi
+fi
+if test -n "$removed_acoutput"; then
+ for file in $removed_acoutput; do
+ tag=
+ sedprog='{
+ s%\([[ ]\)'"$file"'[ ]%\1%
+ s%\([[ ]\)'"$file"'\([]),]\)%\1\2%
+ s%[[ ]'"$file"'$%%
+ :a
+ tb
+ :b
+ s%\\$%\\%
+ tc
+ bd
+ :c
+ n
+ s%\([ ]\)'"$file"'[ ]%\1%
+ s%\([ ]\)'"$file"'\([]),]\)%\1\2%
+ s%[ ]'"$file"'$%%
+ ba
+ :d
+ }'
+ sed -e '/^AC_CONFIG_FILES(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+ if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
+ sed -e '/^AC_OUTPUT(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+ if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then
+ :
+ else
+ tag=AC_OUTPUT
+ fi
+ else
+ tag=AC_CONFIG_FILES
+ fi
+ if test -n "$tag"; then
+ func_modify_configure_in "($tag): Remove $file."
+ else
+ rm -f "$srcdir/$configure_in.tmp"
+ if test "$file" != intl/intlh.inst; then
+ please="$please
+Please remove $file from the AC_OUTPUT or AC_CONFIG_FILES invocation
+in the $configure_in file.
+"
+ fi
+ fi
+ done
+fi
+sed -e 's%sed -e "/POTFILES =/r po/POTFILES" po/Makefile\.in > po/Makefile *;* *%%' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile."
+sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+func_modify_configure_in "(AC_LINK_FILES): Remove invocation."
+sed -e 's/^AM_GNU_GETTEXT_VERSION([^()]*)/AM_GNU_GETTEXT_VERSION(['"$version"'])/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp"
+func_modify_configure_in "(AM_GNU_GETTEXT_VERSION): Bump to $version."
+$do_changelog && func_ChangeLog_finish
+
+# Recommend replacement for deprecated Makefile variables.
+use_libtool=`cat "$srcdir/$configure_in" | grep '^A[CM]_PROG_LIBTOOL'`
+for file in `(cd "$srcdir"; find . -name Makefile.am -print; find . -name Makefile.in -print) | sed -e 's,^\./,,'`; do
+ if test -f "$srcdir/$file"; then
+ if test `echo "$file" | sed -e 's,^.*/,,'` = Makefile.in && grep automake "$srcdir/$file" >/dev/null 2>&1; then
+ continue;
+ fi
+ # INTLLIBS is deprecated because it doesn't distinguish the two
+ # cases: with libtool, without libtool.
+ if grep '@''INTLLIBS''@' "$srcdir/$file" >/dev/null 2>&1; then
+ if test -n "$use_libtool"; then
+ please="$please
+Please change $file to use @""LTLIBINTL""@ or @""LIBINTL""@ instead of
+@""INTLLIBS""@. Which one, depends whether it is used with libtool or not.
+@""INTLLIBS""@ will go away.
+"
+ else
+ please="$please
+Please change $file to use @""LIBINTL""@ instead of @""INTLLIBS""@.
+@""INTLLIBS""@ will go away.
+"
+ fi
+ fi
+ # DATADIRNAME is deprecated because we install only .gmo files nowadays,
+ # which can be stored in the platform independent $prefix/share hierarchy.
+ if grep '@''DATADIRNAME''@' "$srcdir/$file" >/dev/null 2>&1; then
+ please="$please
+Please change $file to use the constant string \"share\" instead of
+@""DATADIRNAME""@. @""DATADIRNAME""@ will go away.
+"
+ fi
+ # INSTOBJEXT is deprecated because we install only .gmo files nowadays,
+ # no catgets .cat catalogs.
+ if grep '@''INSTOBJEXT''@' "$srcdir/$file" >/dev/null 2>&1; then
+ please="$please
+Please change $file to use the constant string \".mo\" instead of
+@""INSTOBJEXT""@. @""INSTOBJEXT""@ will go away.
+"
+ fi
+ # GENCAT is deprecated because we install no catgets catalogs anymore.
+ if grep '@''GENCAT''@' "$srcdir/$file" >/dev/null 2>&1; then
+ please="$please
+Please change $file to use the constant string \"gencat\" instead of
+@""GENCAT""@. @""GENCAT""@ will go away. Maybe you don't even need it any more?
+"
+ fi
+ # POSUB is deprecated because it causes "./configure --disable-nls", "make",
+ # "make dist" to create a buggy tarfile.
+ if grep '@''POSUB''@' "$srcdir/$file" >/dev/null 2>&1; then
+ please="$please
+Please change $file to use the constant string \"po\" instead of
+@""POSUB""@. @""POSUB""@ will go away.
+"
+ fi
+ fi
+done
+
+# Recommend replacement for deprecated configure variables.
+if grep '\$nls_cv_header_' "$srcdir/$configure_in" >/dev/null 2>&1; then
+ please="$please
+Please stop using \$nls_cv_header_intl or \$nls_cv_header_libgt in the
+$configure_in file. Both will go away. Use <libintl.h> or \"gettext.h\" instead.
+"
+fi
+
+# Recommend fetching config.guess and config.sub.
+if test -f "$srcdir/$auxdir"config.guess && test -f "$srcdir/$auxdir"config.sub; then
+ :
+else
+ please="$please
+You will also need config.guess and config.sub, which you can get from the CVS
+of the 'config' project at http://savannah.gnu.org/. The commands to fetch them
+are
+\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess'
+\$ wget 'http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub'
+"
+fi
+
+if $doit; then
+ echo "$please"
+ echo "You might also want to copy the convenience header file gettext.h"
+ echo "from the $gettext_dir directory into your package."
+ echo "It is a wrapper around <libintl.h> that implements the configure --disable-nls"
+ echo "option."
+ echo
+ count=`echo "$please" | grep '^$' | wc -l`
+ count=`echo "$count" | sed -e 's/[ ]//g'`
+ case "$count" in
+ 1) count="paragraph";;
+ 2) count="two paragraphs";;
+ 3) count="three paragraphs";;
+ 4) count="four paragraphs";;
+ 5) count="five paragraphs";;
+ *) count="$count paragraphs";;
+ esac
+ echo "Press Return to acknowledge the previous $count."
+ # Read from /dev/tty, not stdin, so that gettextize cannot be abused by
+ # non-interactive tools.
+ read dummy < /dev/tty
+fi
+
+exit 0
diff --git a/gtk+-mingw/bin/gif2tiff.exe b/gtk+-mingw/bin/gif2tiff.exe
new file mode 100644
index 0000000..cc064b8
--- /dev/null
+++ b/gtk+-mingw/bin/gif2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gio-querymodules.exe b/gtk+-mingw/bin/gio-querymodules.exe
new file mode 100644
index 0000000..e737fc7
--- /dev/null
+++ b/gtk+-mingw/bin/gio-querymodules.exe
Binary files differ
diff --git a/gtk+-mingw/bin/glib-compile-resources.exe b/gtk+-mingw/bin/glib-compile-resources.exe
new file mode 100644
index 0000000..6f55240
--- /dev/null
+++ b/gtk+-mingw/bin/glib-compile-resources.exe
Binary files differ
diff --git a/gtk+-mingw/bin/glib-compile-schemas.exe b/gtk+-mingw/bin/glib-compile-schemas.exe
new file mode 100644
index 0000000..5526a5d
--- /dev/null
+++ b/gtk+-mingw/bin/glib-compile-schemas.exe
Binary files differ
diff --git a/gtk+-mingw/bin/glib-genmarshal.exe b/gtk+-mingw/bin/glib-genmarshal.exe
new file mode 100644
index 0000000..a1578ae
--- /dev/null
+++ b/gtk+-mingw/bin/glib-genmarshal.exe
Binary files differ
diff --git a/gtk+-mingw/bin/glib-gettextize b/gtk+-mingw/bin/glib-gettextize
new file mode 100644
index 0000000..766ddf2
--- /dev/null
+++ b/gtk+-mingw/bin/glib-gettextize
@@ -0,0 +1,188 @@
+#! /bin/sh
+#
+# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+#
+# 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# - Modified in October 2001 by jacob berkman <jacob@ximian.com> to
+# work with glib's Makefile.in.in and po2tbl.sed.in, to not copy in
+# intl/, and to not add ChangeLog entries to po/ChangeLog
+
+# This file is meant for authors or maintainers which want to
+# internationalize their package with the help of GNU gettext. For
+# further information how to use it consult the GNU gettext manual.
+
+echo=echo
+progname=$0
+force=0
+configstatus=0
+origdir=`pwd`
+usage="\
+Usage: glib-gettextize [OPTION]... [package-dir]
+ --help print this help and exit
+ --version print version information and exit
+ -c, --copy copy files instead of making symlinks
+ -f, --force force writing of new files even if old exist
+Report bugs to http://bugzilla.gnome.org/."
+package=glib
+version=2.33.8
+try_ln_s=:
+
+# Directory where the sources are stored.
+prefix=/MinGW
+case `uname` in
+MINGW32*)
+ prefix="`dirname $0`/.."
+ ;;
+esac
+
+datarootdir=${prefix}/share
+datadir=${datarootdir}
+
+gettext_dir=$prefix/share/glib-2.0/gettext
+
+while test $# -gt 0; do
+ case "$1" in
+ -c | --copy | --c* )
+ shift
+ try_ln_s=false ;;
+ -f | --force | --f* )
+ shift
+ force=1 ;;
+ -r | --run | --r* )
+ shift
+ configstatus=1 ;;
+ --help | --h* )
+ $echo "$usage"; exit 0 ;;
+ --version | --v* )
+ echo "$progname (GNU $package) $version"
+ $echo "Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ $echo "Written by" "Ulrich Drepper"
+ exit 0 ;;
+ -- ) # Stop option prcessing
+ shift; break ;;
+ -* )
+ $echo "glib-gettextize: unknown option $1"
+ $echo "Try \`glib-gettextize --help' for more information."; exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# -gt 1; then
+ $echo "$usage"
+ exit 1
+fi
+
+# Fill in the command line options value.
+if test $# -eq 1; then
+ srcdir=$1
+ if cd "$srcdir"; then
+ srcdir=`pwd`
+ else
+ $echo "Cannot change directory to \`$srcdir'"
+ exit 1
+ fi
+else
+ srcdir=$origdir
+fi
+
+test -f configure.in || test -f configure.ac || {
+ $echo "Missing configure.in or configure.ac, please cd to your package first."
+ exit 1
+}
+
+configure_in=NONE
+if test -f configure.in; then
+ configure_in=configure.in
+else
+ if test -f configure.ac; then
+ configure_in=configure.ac
+ fi
+fi
+# Check in which directory config.rpath, mkinstalldirs etc. belong.
+auxdir=`cat "$configure_in" | grep '^AC_CONFIG_AUX_DIR' | sed -n -e 's/AC_CONFIG_AUX_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
+if test -n "$auxdir"; then
+ auxdir="$auxdir/"
+fi
+
+if test -f po/Makefile.in.in && test $force -eq 0; then
+ $echo "\
+po/Makefile.in.in exists: use option -f if you really want to delete it."
+ exit 1
+fi
+
+test -d po || {
+ $echo "Creating po/ subdirectory"
+ mkdir po || {
+ $echo "failed to create po/ subdirectory"
+ exit 1
+ }
+}
+
+# For simplicity we changed to the gettext source directory.
+cd $gettext_dir || {
+ $echo "gettext source directory '${gettext_dir}' doesn't exist"
+ exit 1
+}
+
+# Now copy all files. Take care for the destination directories.
+for file in *; do
+ case $file in
+ intl | po)
+ ;;
+ mkinstalldirs)
+ rm -f "$srcdir/$auxdir$file"
+ ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$auxdir$file" && $echo "Symlinking file $file") 2>/dev/null ||
+ { $echo "Copying file $file"; cp $file "$srcdir/$auxdir$file"; }
+ ;;
+ *)
+ rm -f "$srcdir/$file"
+ ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$file" && $echo "Symlinking file $file") 2>/dev/null ||
+ { $echo "Copying file $file"; cp $file "$srcdir/$file"; }
+ ;;
+ esac
+done
+
+# Copy files to po/ subdirectory.
+cd po
+for file in *; do
+ rm -f "$srcdir/po/$file"
+ ($try_ln_s && ln -s $gettext_dir/po/$file "$srcdir/po/$file" && $echo "Symlinking file po/$file") 2>/dev/null ||
+ { $echo "Copying file po/$file"; cp $file "$srcdir/po/$file"; }
+done
+if test -f "$srcdir/po/cat-id-tbl.c"; then
+ $echo "Removing po/cat-id-tbl.c"
+ rm -f "$srcdir/po/cat-id-tbl.c"
+fi
+if test -f "$srcdir/po/stamp-cat-id"; then
+ $echo "Removing po/stamp-cat-id"
+ rm -f "$srcdir/po/stamp-cat-id"
+fi
+
+echo
+echo "Please add the files"
+echo " codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4"
+echo " progtest.m4"
+echo "from the $datadir/aclocal directory to your autoconf macro directory"
+echo "or directly to your aclocal.m4 file."
+echo "You will also need config.guess and config.sub, which you can get from"
+echo "ftp://ftp.gnu.org/pub/gnu/config/."
+echo
+
+exit 0
diff --git a/gtk+-mingw/bin/glib-mkenums b/gtk+-mingw/bin/glib-mkenums
new file mode 100644
index 0000000..2171e6a
--- /dev/null
+++ b/gtk+-mingw/bin/glib-mkenums
@@ -0,0 +1,565 @@
+#! /bin/perl
+
+use warnings;
+use File::Basename;
+use Safe;
+
+# glib-mkenums.pl
+# Information about the current enumeration
+my $flags; # Is enumeration a bitmask?
+my $option_underscore_name; # Overriden underscore variant of the enum name
+ # for example to fix the cases we don't get the
+ # mixed-case -> underscorized transform right.
+my $option_lowercase_name; # DEPRECATED. A lower case name to use as part
+ # of the *_get_type() function, instead of the
+ # one that we guess. For instance, when an enum
+ # uses abnormal capitalization and we can not
+ # guess where to put the underscores.
+my $seenbitshift; # Have we seen bitshift operators?
+my $enum_prefix; # Prefix for this enumeration
+my $enumname; # Name for this enumeration
+my $enumshort; # $enumname without prefix
+my $enumname_prefix; # prefix of $enumname
+my $enumindex = 0; # Global enum counter
+my $firstenum = 1; # Is this the first enumeration per file?
+my @entries; # [ $name, $val ] for each entry
+my $sandbox = Safe->new; # sandbox for safe evaluation of expressions
+
+sub parse_trigraph {
+ my $opts = shift;
+ my @opts;
+
+ for $opt (split /\s*,\s*/, $opts) {
+ $opt =~ s/^\s*//;
+ $opt =~ s/\s*$//;
+ my ($key,$val) = $opt =~ /(\w+)(?:=(.+))?/;
+ defined $val or $val = 1;
+ push @opts, $key, $val;
+ }
+ @opts;
+}
+sub parse_entries {
+ my $file = shift;
+ my $file_name = shift;
+ my $looking_for_name = 0;
+
+ while (<$file>) {
+ # read lines until we have no open comments
+ while (m@/\*([^*]|\*(?!/))*$@) {
+ my $new;
+ defined ($new = <$file>) || die "Unmatched comment in $ARGV";
+ $_ .= $new;
+ }
+ # strip comments w/o options
+ s@/\*(?!<)
+ ([^*]+|\*(?!/))*
+ \*/@@gx;
+
+ # strip newlines
+ s@\n@ @;
+
+ # skip empty lines
+ next if m@^\s*$@;
+
+ if ($looking_for_name) {
+ if (/^\s*(\w+)/) {
+ $enumname = $1;
+ return 1;
+ }
+ }
+
+ # Handle include files
+ if (/^\#include\s*<([^>]*)>/ ) {
+ my $file= "../$1";
+ open NEWFILE, $file or die "Cannot open include file $file: $!\n";
+
+ if (parse_entries (\*NEWFILE, $NEWFILE)) {
+ return 1;
+ } else {
+ next;
+ }
+ }
+
+ if (/^\s*\}\s*(\w+)/) {
+ $enumname = $1;
+ $enumindex++;
+ return 1;
+ }
+
+ if (/^\s*\}/) {
+ $enumindex++;
+ $looking_for_name = 1;
+ next;
+ }
+
+ if (m@^\s*
+ (\w+)\s* # name
+ (?:=( # value
+ \s*\w+\s*\(.*\)\s* # macro with multiple args
+ | # OR
+ (?:[^,/]|/(?!\*))* # anything but a comma or comment
+ ))?,?\s*
+ (?:/\*< # options
+ (([^*]|\*(?!/))*)
+ >\s*\*/)?,?
+ \s*$
+ @x) {
+ my ($name, $value, $options) = ($1,$2,$3);
+
+ if (!defined $flags && defined $value && $value =~ /<</) {
+ $seenbitshift = 1;
+ }
+
+ if (defined $options) {
+ my %options = parse_trigraph($options);
+ if (!defined $options{skip}) {
+ push @entries, [ $name, $value, $options{nick} ];
+ }
+ } else {
+ push @entries, [ $name, $value ];
+ }
+ } elsif (m@^\s*\#@) {
+ # ignore preprocessor directives
+ } else {
+ print STDERR "$0: $file_name:$.: Failed to parse `$_'\n";
+ }
+ }
+
+ return 0;
+}
+
+sub version {
+ print "glib-mkenums version glib-2.33.8\n";
+ print "glib-mkenums comes with ABSOLUTELY NO WARRANTY.\n";
+ print "You may redistribute copies of glib-mkenums under the terms of\n";
+ print "the GNU General Public License which can be found in the\n";
+ print "GLib source package. Sources, examples and contact\n";
+ print "information are available at http://www.gtk.org\n";
+ exit 0;
+}
+sub usage {
+ print "Usage:\n";
+ print " glib-mkenums [OPTION...] [FILES...]\n\n";
+ print "Help Options:\n";
+ print " -h, --help Show this help message\n\n";
+ print "Utility Options:\n";
+ print " --identifier-prefix <text> Identifier prefix\n";
+ print " --symbol-prefix <text> Symbol prefix\n";
+ print " --fhead <text> Output file header\n";
+ print " --fprod <text> Per input file production\n";
+ print " --ftail <text> Output file trailer\n";
+ print " --eprod <text> Per enum text (produced prior to value itarations)\n";
+ print " --vhead <text> Value header, produced before iterating over enum values\n";
+ print " --vprod <text> Value text, produced for each enum value\n";
+ print " --vtail <text> Value tail, produced after iterating over enum values\n";
+ print " --comments <text> Comment structure\n";
+ print " --template file Template file\n";
+ print " -v, --version Print version informations\n\n";
+ print "Production text substitutions:\n";
+ print " \@EnumName\@ PrefixTheXEnum\n";
+ print " \@enum_name\@ prefix_the_xenum\n";
+ print " \@ENUMNAME\@ PREFIX_THE_XENUM\n";
+ print " \@ENUMSHORT\@ THE_XENUM\n";
+ print " \@ENUMPREFIX\@ PREFIX\n";
+ print " \@VALUENAME\@ PREFIX_THE_XVALUE\n";
+ print " \@valuenick\@ the-xvalue\n";
+ print " \@valuenum\@ the integer value (limited support, Since: 2.26)\n";
+ print " \@type\@ either enum or flags\n";
+ print " \@Type\@ either Enum or Flags\n";
+ print " \@TYPE\@ either ENUM or FLAGS\n";
+ print " \@filename\@ name of current input file\n";
+ print " \@basename\@ base name of the current input file (Since: 2.22)\n";
+ exit 0;
+}
+
+# production variables:
+my $idprefix = ""; # "G", "Gtk", etc
+my $symprefix = ""; # "g", "gtk", etc, if not just lc($idprefix)
+my $fhead = ""; # output file header
+my $fprod = ""; # per input file production
+my $ftail = ""; # output file trailer
+my $eprod = ""; # per enum text (produced prior to value itarations)
+my $vhead = ""; # value header, produced before iterating over enum values
+my $vprod = ""; # value text, produced for each enum value
+my $vtail = ""; # value tail, produced after iterating over enum values
+my $comment_tmpl = ""; # comment template
+
+sub read_template_file {
+ my ($file) = @_;
+ my %tmpl = ('file-header', $fhead,
+ 'file-production', $fprod,
+ 'file-tail', $ftail,
+ 'enumeration-production', $eprod,
+ 'value-header', $vhead,
+ 'value-production', $vprod,
+ 'value-tail', $vtail,
+ 'comment', $comment_tmpl);
+ my $in = 'junk';
+ open (FILE, $file) || die "Can't open $file: $!\n";
+ while (<FILE>) {
+ if (/^\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\//) {
+ if (($in eq 'junk') && ($1 eq 'BEGIN') && (exists($tmpl{$2}))) {
+ $in = $2;
+ next;
+ }
+ elsif (($in eq $2) && ($1 eq 'END') && (exists($tmpl{$2}))) {
+ $in = 'junk';
+ next;
+ } else {
+ die "Malformed template file $file\n";
+ }
+ }
+ if (!($in eq 'junk')) {
+ $tmpl{$in} .= $_;
+ }
+ }
+ close (FILE);
+ if (!($in eq 'junk')) {
+ die "Malformed template file $file\n";
+ }
+ $fhead = $tmpl{'file-header'};
+ $fprod = $tmpl{'file-production'};
+ $ftail = $tmpl{'file-tail'};
+ $eprod = $tmpl{'enumeration-production'};
+ $vhead = $tmpl{'value-header'};
+ $vprod = $tmpl{'value-production'};
+ $vtail = $tmpl{'value-tail'};
+ $comment_tmpl = $tmpl{'comment'};
+
+ # default to C-style comments
+ $comment_tmpl = "/* \@comment\@ */" if $comment_tmpl eq "";
+}
+
+if (!defined $ARGV[0]) {
+ usage;
+}
+while ($_=$ARGV[0],/^-/) {
+ shift;
+ last if /^--$/;
+ if (/^--template$/) { read_template_file (shift); }
+ elsif (/^--identifier-prefix$/) { $idprefix = shift }
+ elsif (/^--symbol-prefix$/) { $symprefix = shift }
+ elsif (/^--fhead$/) { $fhead = $fhead . shift }
+ elsif (/^--fprod$/) { $fprod = $fprod . shift }
+ elsif (/^--ftail$/) { $ftail = $ftail . shift }
+ elsif (/^--eprod$/) { $eprod = $eprod . shift }
+ elsif (/^--vhead$/) { $vhead = $vhead . shift }
+ elsif (/^--vprod$/) { $vprod = $vprod . shift }
+ elsif (/^--vtail$/) { $vtail = $vtail . shift }
+ elsif (/^--comments$/) { $comment_tmpl = shift }
+ elsif (/^--help$/ || /^-h$/ || /^-\?$/) { usage; }
+ elsif (/^--version$/ || /^-v$/) { version; }
+ else { usage; }
+ last if not defined($ARGV[0]);
+}
+
+# put auto-generation comment
+{
+ my $comment = $comment_tmpl;
+ $comment =~ s/\@comment\@/Generated data (by glib-mkenums)/;
+ print "\n" . $comment . "\n\n";
+}
+
+if (length($fhead)) {
+ my $prod = $fhead;
+ my $base = basename ($ARGV[0]);
+
+ $prod =~ s/\@filename\@/$ARGV[0]/g;
+ $prod =~ s/\@basename\@/$base/g;
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+}
+
+while (<>) {
+ if (eof) {
+ close (ARGV); # reset line numbering
+ $firstenum = 1; # Flag to print filename at next enum
+ }
+
+ # read lines until we have no open comments
+ while (m@/\*([^*]|\*(?!/))*$@) {
+ my $new;
+ defined ($new = <>) || die "Unmatched comment in $ARGV";
+ $_ .= $new;
+ }
+ # strip comments w/o options
+ s@/\*(?!<)
+ ([^*]+|\*(?!/))*
+ \*/@@gx;
+
+ # ignore forward declarations
+ next if /^\s*typedef\s+enum.*;/;
+
+ if (m@^\s*typedef\s+enum\s*
+ ({)?\s*
+ (?:/\*<
+ (([^*]|\*(?!/))*)
+ >\s*\*/)?
+ \s*({)?
+ @x) {
+ if (defined $2) {
+ my %options = parse_trigraph ($2);
+ next if defined $options{skip};
+ $enum_prefix = $options{prefix};
+ $flags = $options{flags};
+ $option_lowercase_name = $options{lowercase_name};
+ $option_underscore_name = $options{underscore_name};
+ } else {
+ $enum_prefix = undef;
+ $flags = undef;
+ $option_lowercase_name = undef;
+ $option_underscore_name = undef;
+ }
+ if (defined $option_lowercase_name) {
+ if (defined $option_underscore_name) {
+ print STDERR "$0: $ARGV:$.: lowercase_name overriden with underscore_name\n";
+ $option_lowercase_name = undef;
+ } else {
+ print STDERR "$0: $ARGV:$.: lowercase_name is deprecated, use underscore_name\n";
+ }
+ }
+ # Didn't have trailing '{' look on next lines
+ if (!defined $1 && !defined $4) {
+ while (<>) {
+ if (eof) {
+ die "Hit end of file while parsing enum in $ARGV";
+ }
+ if (s/^\s*\{//) {
+ last;
+ }
+ }
+ }
+
+ $seenbitshift = 0;
+ @entries = ();
+
+ # Now parse the entries
+ parse_entries (\*ARGV, $ARGV);
+
+ # figure out if this was a flags or enums enumeration
+ if (!defined $flags) {
+ $flags = $seenbitshift;
+ }
+
+ # Autogenerate a prefix
+ if (!defined $enum_prefix) {
+ for (@entries) {
+ my $nick = $_->[2];
+ if (!defined $nick) {
+ my $name = $_->[0];
+ if (defined $enum_prefix) {
+ my $tmp = ~ ($name ^ $enum_prefix);
+ ($tmp) = $tmp =~ /(^\xff*)/;
+ $enum_prefix = $enum_prefix & $tmp;
+ } else {
+ $enum_prefix = $name;
+ }
+ }
+ }
+ if (!defined $enum_prefix) {
+ $enum_prefix = "";
+ } else {
+ # Trim so that it ends in an underscore
+ $enum_prefix =~ s/_[^_]*$/_/;
+ }
+ } else {
+ # canonicalize user defined prefixes
+ $enum_prefix = uc($enum_prefix);
+ $enum_prefix =~ s/-/_/g;
+ $enum_prefix =~ s/(.*)([^_])$/$1$2_/;
+ }
+
+ for $entry (@entries) {
+ my ($name,$num,$nick) = @{$entry};
+ if (!defined $nick) {
+ ($nick = $name) =~ s/^$enum_prefix//;
+ $nick =~ tr/_/-/;
+ $nick = lc($nick);
+ @{$entry} = ($name, $num, $nick);
+ }
+ }
+
+
+ # Spit out the output
+ if (defined $option_underscore_name) {
+ $enumlong = uc $option_underscore_name;
+ $enumsym = lc $option_underscore_name;
+ $enumshort = $enumlong;
+ $enumshort =~ s/^[A-Z][A-Z0-9]*_//;
+
+ $enumname_prefix = $enumlong;
+ $enumname_prefix =~ s/_$enumshort$//;
+ } elsif (!$symprefix && !$idprefix) {
+ # enumname is e.g. GMatchType
+ $enspace = $enumname;
+ $enspace =~ s/^([A-Z][a-z]*).*$/$1/;
+
+ $enumshort = $enumname;
+ $enumshort =~ s/^[A-Z][a-z]*//;
+ $enumshort =~ s/([^A-Z])([A-Z])/$1_$2/g;
+ $enumshort =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
+ $enumshort = uc($enumshort);
+
+ $enumname_prefix = $enumname;
+ $enumname_prefix =~ s/^([A-Z][a-z]*).*$/$1/;
+ $enumname_prefix = uc($enumname_prefix);
+
+ $enumlong = uc($enspace) . "_" . $enumshort;
+ $enumsym = lc($enspace) . "_" . lc($enumshort);
+
+ if (defined($option_lowercase_name)) {
+ $enumsym = $option_lowercase_name;
+ }
+ } else {
+ $enumshort = $enumname;
+ if ($idprefix) {
+ $enumshort =~ s/^${idprefix}//;
+ } else {
+ $enumshort =~ s/^[A-Z][a-z]*//;
+ }
+ $enumshort =~ s/([^A-Z])([A-Z])/$1_$2/g;
+ $enumshort =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
+ $enumshort = uc($enumshort);
+
+ $enumname_prefix = $symprefix && uc($symprefix) || uc($idprefix);
+
+ $enumlong = $enumname_prefix . "_" . $enumshort;
+ $enumsym = lc($enumlong);
+ }
+
+ if ($firstenum) {
+ $firstenum = 0;
+
+ if (length($fprod)) {
+ my $prod = $fprod;
+ my $base = basename ($ARGV);
+
+ $prod =~ s/\@filename\@/$ARGV/g;
+ $prod =~ s/\@basename\@/$base/g;
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+ }
+ }
+
+ if (length($eprod)) {
+ my $prod = $eprod;
+
+ $prod =~ s/\@enum_name\@/$enumsym/g;
+ $prod =~ s/\@EnumName\@/$enumname/g;
+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g;
+ $prod =~ s/\@ENUMNAME\@/$enumlong/g;
+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g;
+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; }
+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; }
+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; }
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+ }
+
+ if (length($vhead)) {
+ my $prod = $vhead;
+
+ $prod =~ s/\@enum_name\@/$enumsym/g;
+ $prod =~ s/\@EnumName\@/$enumname/g;
+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g;
+ $prod =~ s/\@ENUMNAME\@/$enumlong/g;
+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g;
+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; }
+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; }
+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; }
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+ }
+
+ if (length($vprod)) {
+ my $prod = $vprod;
+ my $next_num = 0;
+
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ for (@entries) {
+ my ($name,$num,$nick) = @{$_};
+ my $tmp_prod = $prod;
+
+ if ($prod =~ /\@valuenum\@/) {
+ # only attempt to eval the value if it is requested
+ # this prevents us from throwing errors otherwise
+ if (defined $num) {
+ # use sandboxed perl evaluation as a reasonable
+ # approximation to C constant folding
+ $num = $sandbox->reval ($num);
+
+ # make sure it parsed to an integer
+ if (!defined $num or $num !~ /^-?\d+$/) {
+ die "Unable to parse enum value '$num'";
+ }
+ } else {
+ $num = $next_num;
+ }
+
+ $tmp_prod =~ s/\@valuenum\@/$num/g;
+ $next_num = $num + 1;
+ }
+
+ $tmp_prod =~ s/\@VALUENAME\@/$name/g;
+ $tmp_prod =~ s/\@valuenick\@/$nick/g;
+ if ($flags) { $tmp_prod =~ s/\@type\@/flags/g; } else { $tmp_prod =~ s/\@type\@/enum/g; }
+ if ($flags) { $tmp_prod =~ s/\@Type\@/Flags/g; } else { $tmp_prod =~ s/\@Type\@/Enum/g; }
+ if ($flags) { $tmp_prod =~ s/\@TYPE\@/FLAGS/g; } else { $tmp_prod =~ s/\@TYPE\@/ENUM/g; }
+ chomp ($tmp_prod);
+
+ print "$tmp_prod\n";
+ }
+ }
+
+ if (length($vtail)) {
+ my $prod = $vtail;
+
+ $prod =~ s/\@enum_name\@/$enumsym/g;
+ $prod =~ s/\@EnumName\@/$enumname/g;
+ $prod =~ s/\@ENUMSHORT\@/$enumshort/g;
+ $prod =~ s/\@ENUMNAME\@/$enumlong/g;
+ $prod =~ s/\@ENUMPREFIX\@/$enumname_prefix/g;
+ if ($flags) { $prod =~ s/\@type\@/flags/g; } else { $prod =~ s/\@type\@/enum/g; }
+ if ($flags) { $prod =~ s/\@Type\@/Flags/g; } else { $prod =~ s/\@Type\@/Enum/g; }
+ if ($flags) { $prod =~ s/\@TYPE\@/FLAGS/g; } else { $prod =~ s/\@TYPE\@/ENUM/g; }
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+ }
+ }
+}
+
+if (length($ftail)) {
+ my $prod = $ftail;
+ my $base = basename ($ARGV);
+
+ $prod =~ s/\@filename\@/$ARGV/g;
+ $prod =~ s/\@basename\@/$base/g;
+ $prod =~ s/\\a/\a/g; $prod =~ s/\\b/\b/g; $prod =~ s/\\t/\t/g; $prod =~ s/\\n/\n/g;
+ $prod =~ s/\\f/\f/g; $prod =~ s/\\r/\r/g;
+ chomp ($prod);
+
+ print "$prod\n";
+}
+
+# put auto-generation comment
+{
+ my $comment = $comment_tmpl;
+ $comment =~ s/\@comment\@/Generated data ends here/;
+ print "\n" . $comment . "\n\n";
+}
diff --git a/gtk+-mingw/bin/gobject-query.exe b/gtk+-mingw/bin/gobject-query.exe
new file mode 100644
index 0000000..5bf217c
--- /dev/null
+++ b/gtk+-mingw/bin/gobject-query.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gresource.exe b/gtk+-mingw/bin/gresource.exe
new file mode 100644
index 0000000..b2e19ae
--- /dev/null
+++ b/gtk+-mingw/bin/gresource.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gsettings.exe b/gtk+-mingw/bin/gsettings.exe
new file mode 100644
index 0000000..42217c4
--- /dev/null
+++ b/gtk+-mingw/bin/gsettings.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gspawn-win32-helper-console.exe b/gtk+-mingw/bin/gspawn-win32-helper-console.exe
new file mode 100644
index 0000000..e27d938
--- /dev/null
+++ b/gtk+-mingw/bin/gspawn-win32-helper-console.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gspawn-win32-helper.exe b/gtk+-mingw/bin/gspawn-win32-helper.exe
new file mode 100644
index 0000000..6c93880
--- /dev/null
+++ b/gtk+-mingw/bin/gspawn-win32-helper.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gtk-query-immodules-3.0.exe b/gtk+-mingw/bin/gtk-query-immodules-3.0.exe
new file mode 100644
index 0000000..a147d0c
--- /dev/null
+++ b/gtk+-mingw/bin/gtk-query-immodules-3.0.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gtk-update-icon-cache.exe b/gtk+-mingw/bin/gtk-update-icon-cache.exe
new file mode 100644
index 0000000..687d2fb
--- /dev/null
+++ b/gtk+-mingw/bin/gtk-update-icon-cache.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gtk-update-icon-cache.exe.manifest b/gtk+-mingw/bin/gtk-update-icon-cache.exe.manifest
new file mode 100644
index 0000000..fe8b6e6
--- /dev/null
+++ b/gtk+-mingw/bin/gtk-update-icon-cache.exe.manifest
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0"
+ processorArchitecture="X86"
+ name="gtk-update-icon-cache.exe"
+ type="win32"/>
+ <!-- Identify the application security requirements. -->
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="asInvoker"
+ uiAccess="false"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
diff --git a/gtk+-mingw/bin/gtk3-demo-application.exe b/gtk+-mingw/bin/gtk3-demo-application.exe
new file mode 100644
index 0000000..d075cfe
--- /dev/null
+++ b/gtk+-mingw/bin/gtk3-demo-application.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gtk3-demo.exe b/gtk+-mingw/bin/gtk3-demo.exe
new file mode 100644
index 0000000..fa588df
--- /dev/null
+++ b/gtk+-mingw/bin/gtk3-demo.exe
Binary files differ
diff --git a/gtk+-mingw/bin/gtk3-widget-factory.exe b/gtk+-mingw/bin/gtk3-widget-factory.exe
new file mode 100644
index 0000000..4a4939d
--- /dev/null
+++ b/gtk+-mingw/bin/gtk3-widget-factory.exe
Binary files differ
diff --git a/gtk+-mingw/bin/iconv.exe b/gtk+-mingw/bin/iconv.exe
new file mode 100644
index 0000000..07ff97f
--- /dev/null
+++ b/gtk+-mingw/bin/iconv.exe
Binary files differ
diff --git a/gtk+-mingw/bin/intltool-extract b/gtk+-mingw/bin/intltool-extract
new file mode 100644
index 0000000..36f29f7
--- /dev/null
+++ b/gtk+-mingw/bin/intltool-extract
@@ -0,0 +1,1036 @@
+#!/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+
+#
+# The Intltool Message Extractor
+#
+# Copyright (C) 2000-2001, 2003 Free Software Foundation.
+#
+# Intltool 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.
+#
+# Intltool 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# Authors: Kenneth Christiansen <kenneth@gnu.org>
+# Darin Adler <darin@bentspoon.com>
+#
+
+## Release information
+my $PROGRAM = "intltool-extract";
+my $PACKAGE = "intltool";
+my $VERSION = "0.50.2";
+
+## Loaded modules
+use strict;
+use File::Basename;
+use Getopt::Long;
+
+## Scalars used by the option stuff
+my $TYPE_ARG = "0";
+my $LOCAL_ARG = "0";
+my $HELP_ARG = "0";
+my $VERSION_ARG = "0";
+my $UPDATE_ARG = "0";
+my $QUIET_ARG = "0";
+my $SRCDIR_ARG = ".";
+my $NOMSGCTXT_ARG = "0";
+
+my $FILE;
+my $OUTFILE;
+
+my $gettext_type = "";
+my $input;
+my %messages = ();
+my @messages_sorted = ();
+my %loc = ();
+my %count = ();
+my %comments = ();
+my $strcount = 0;
+
+my $XMLCOMMENT = "";
+
+## Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+## Always print first
+$| = 1;
+
+## Handle options
+GetOptions (
+ "type=s" => \$TYPE_ARG,
+ "local|l" => \$LOCAL_ARG,
+ "help|h" => \$HELP_ARG,
+ "version|v" => \$VERSION_ARG,
+ "update" => \$UPDATE_ARG,
+ "quiet|q" => \$QUIET_ARG,
+ "srcdir=s" => \$SRCDIR_ARG,
+ "nomsgctxt" => \$NOMSGCTXT_ARG,
+ ) or &error;
+
+&split_on_argument;
+
+
+## Check for options.
+## This section will check for the different options.
+
+sub split_on_argument {
+
+ if ($VERSION_ARG) {
+ &version;
+
+ } elsif ($HELP_ARG) {
+ &help;
+
+ } elsif ($LOCAL_ARG) {
+ &place_local;
+ &extract;
+
+ } elsif ($UPDATE_ARG) {
+ &place_normal;
+ &extract;
+
+ } elsif (@ARGV > 0) {
+ &place_normal;
+ &message;
+ &extract;
+
+ } else {
+ &help;
+
+ }
+}
+
+sub place_normal {
+ $FILE = $ARGV[0];
+ $OUTFILE = "$FILE.h";
+
+ my $dirname = dirname ($OUTFILE);
+ if (! -d "$dirname" && $dirname ne "") {
+ system ("mkdir -p $dirname");
+ }
+}
+
+sub place_local {
+ $FILE = $ARGV[0];
+ $OUTFILE = fileparse($FILE, ());
+ if (!-e "tmp/") {
+ system("mkdir tmp/");
+ }
+ $OUTFILE = "./tmp/$OUTFILE.h"
+}
+
+sub determine_type {
+ if ($TYPE_ARG =~ /^gettext\/(.*)/) {
+ $gettext_type=$1
+ }
+}
+
+## Sub for printing release information
+sub version{
+ print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+Written by Kenneth Christiansen, 2000.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+ exit;
+}
+
+## Sub for printing usage information
+sub help {
+ print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... [FILENAME]
+Generates a header file from an XML source file.
+
+It grabs all strings between <_translatable_node> and its end tag in
+XML files. Read manpage (man ${PROGRAM}) for more info.
+
+ --type=TYPE Specify the file type of FILENAME. Currently supports:
+ "gettext/glade", "gettext/ini", "gettext/keys"
+ "gettext/rfc822deb", "gettext/schemas",
+ "gettext/gsettings", "gettext/xml", "gettext/quoted",
+ "gettext/quotedxml", "gettext/tlk"
+ -l, --local Writes output into current working directory
+ (conflicts with --update)
+ --update Writes output into the same directory the source file
+ reside (conflicts with --local)
+ --srcdir Root of the source tree
+ -v, --version Output version information and exit
+ -h, --help Display this help and exit
+ -q, --quiet Quiet mode
+
+Report bugs to http://bugs.launchpad.net/intltool
+_EOF_
+ exit;
+}
+
+## Sub for printing error messages
+sub error{
+ print STDERR "Try `${PROGRAM} --help' for more information.\n";
+ exit;
+}
+
+sub message {
+ print "Generating C format header file for translation.\n" unless $QUIET_ARG;
+}
+
+sub extract {
+ &determine_type;
+
+ &convert;
+
+ open OUT, ">$OUTFILE";
+ binmode (OUT) if $^O eq 'MSWin32';
+ &msg_write;
+ close OUT;
+
+ print "Wrote $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub convert {
+
+ ## Reading the file
+ {
+ local (*IN);
+ local $/; #slurp mode
+ open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!";
+ binmode (IN);
+ $input = <IN>;
+ close IN;
+ }
+
+ &type_ini if $gettext_type eq "ini";
+ &type_keys if $gettext_type eq "keys";
+ &type_xml if $gettext_type eq "xml";
+ &type_glade if $gettext_type eq "glade";
+ &type_gsettings if $gettext_type eq "gsettings";
+ &type_schemas if $gettext_type eq "schemas";
+ &type_rfc822deb if $gettext_type eq "rfc822deb";
+ &type_quoted if $gettext_type eq "quoted";
+ &type_quotedxml if $gettext_type eq "quotedxml";
+ &type_tlk if $gettext_type eq "tlk";
+}
+
+sub entity_decode_minimal
+{
+ local ($_) = @_;
+
+ s/&apos;/'/g; # '
+ s/&quot;/"/g; # "
+ s/&amp;/&/g;
+
+ return $_;
+}
+
+sub entity_decode
+{
+ local ($_) = @_;
+
+ s/&apos;/'/g; # '
+ s/&quot;/"/g; # "
+ s/&lt;/</g;
+ s/&gt;/>/g;
+ s/&amp;/&/g;
+
+ return $_;
+}
+
+sub escape_char
+{
+ return '\"' if $_ eq '"';
+ return '\n' if $_ eq "\n";
+ return '\\\\' if $_ eq '\\';
+
+ return $_;
+}
+
+sub escape
+{
+ my ($string) = @_;
+ return join "", map &escape_char, split //, $string;
+}
+
+sub add_message
+{
+ my ($string) = @_;
+ push @messages_sorted, $string if !defined $messages{$string};
+ $messages{$string} = [];
+}
+
+sub type_ini {
+ ### For generic translatable desktop files ###
+ while ($input =~ /^(#(.+)\n)?^_.*=(.*)$/mg) {
+ if (defined($2)) {
+ $comments{$3} = $2;
+ }
+ add_message($3);
+ }
+}
+
+sub type_keys {
+ ### For generic translatable mime/keys files ###
+ while ($input =~ /^\s*_\w+=(.*)$/mg) {
+ add_message($1);
+ }
+}
+
+sub type_xml {
+ ### For generic translatable XML files ###
+ my $tree = readXml($input);
+ parseTree(0, $tree);
+}
+
+sub print_var {
+ my $var = shift;
+ my $vartype = ref $var;
+
+ if ($vartype =~ /ARRAY/) {
+ my @arr = @{$var};
+ print "[ ";
+ foreach my $el (@arr) {
+ print_var($el);
+ print ", ";
+ }
+ print "] ";
+ } elsif ($vartype =~ /HASH/) {
+ my %hash = %{$var};
+ print "{ ";
+ foreach my $key (keys %hash) {
+ print "$key => ";
+ print_var($hash{$key});
+ print ", ";
+ }
+ print "} ";
+ } else {
+ print $var;
+ }
+}
+
+# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment)
+sub getAttributeString
+{
+ my $sub = shift;
+ my $do_translate = shift || 1;
+ my $language = shift || "";
+ my $translate = shift;
+ my $result = "";
+ foreach my $e (reverse(sort(keys %{ $sub }))) {
+ my $key = $e;
+ my $string = $sub->{$e};
+ my $quote = '"';
+
+ $string =~ s/^[\s]+//;
+ $string =~ s/[\s]+$//;
+
+ if ($string =~ /^'.*'$/)
+ {
+ $quote = "'";
+ }
+ $string =~ s/^['"]//g;
+ $string =~ s/['"]$//g;
+
+ ## differences from intltool-merge.in.in
+ if ($key =~ /^_/) {
+ $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT;
+ add_message(entity_decode($string));
+ $$translate = 2;
+ }
+ ## differences end here from intltool-merge.in.in
+ $result .= " $key=$quote$string$quote";
+ }
+ return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub getXMLstring
+{
+ my $ref = shift;
+ my $spacepreserve = shift || 0;
+ my @list = @{ $ref };
+ my $result = "";
+
+ my $count = scalar(@list);
+ my $attrs = $list[0];
+ my $index = 1;
+
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+ while ($index < $count) {
+ my $type = $list[$index];
+ my $content = $list[$index+1];
+ if (! $type ) {
+ # We've got CDATA
+ if ($content) {
+ # lets strip the whitespace here, and *ONLY* here
+ $content =~ s/\s+/ /gs if (!$spacepreserve);
+ $result .= $content;
+ }
+ } elsif ( "$type" ne "1" ) {
+ # We've got another element
+ $result .= "<$type";
+ $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+ if ($content) {
+ my $subresult = getXMLstring($content, $spacepreserve);
+ if ($subresult) {
+ $result .= ">".$subresult . "</$type>";
+ } else {
+ $result .= "/>";
+ }
+ } else {
+ $result .= "/>";
+ }
+ }
+ $index += 2;
+ }
+ return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+ my $fh = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $singlelang = shift || 0;
+ my $spacepreserve = shift || 0;
+
+ my @nodes = @{ $content };
+
+ my $count = scalar(@nodes);
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $nodes[$index];
+ my $rest = $nodes[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+}
+
+# Based on traverse() in intltool-merge.in.in
+sub traverse
+{
+ my $fh = shift; # unused, to allow us to sync code between -merge and -extract
+ my $nodename = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $spacepreserve = shift || 0;
+
+ if ($nodename && "$nodename" eq "1") {
+ $XMLCOMMENT = $content;
+ } elsif ($nodename) {
+ # element
+ my @all = @{ $content };
+ my $attrs = shift @all;
+ my $translate = 0;
+ my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+ if ($nodename =~ /^_/) {
+ $translate = 1;
+ $nodename =~ s/^_//;
+ }
+ my $lookup = '';
+
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ if ($translate) {
+ $lookup = getXMLstring($content, $spacepreserve);
+ if (!$spacepreserve) {
+ $lookup =~ s/^\s+//s;
+ $lookup =~ s/\s+$//s;
+ }
+ if (exists $attrs->{"msgctxt"}) {
+ my $context = entity_decode ($attrs->{"msgctxt"});
+ $context =~ s/^["'](.*)["']/$1/;
+ $lookup = "$context\004$lookup";
+ }
+
+ if ($lookup && $translate != 2) {
+ $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT;
+ add_message($lookup);
+ } elsif ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ }
+ } else {
+ $XMLCOMMENT = "";
+ my $count = scalar(@all);
+ if ($count > 0) {
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $all[$index];
+ my $rest = $all[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+ }
+ }
+ $XMLCOMMENT = "";
+ }
+}
+
+
+# Verbatim copy from intltool-merge.in.in, $fh for compatibility
+sub parseTree
+{
+ my $fh = shift;
+ my $ref = shift;
+ my $language = shift || "";
+
+ my $name = shift @{ $ref };
+ my $cont = shift @{ $ref };
+
+ while (!$name || "$name" eq "1") {
+ $name = shift @{ $ref };
+ $cont = shift @{ $ref };
+ }
+
+ my $spacepreserve = 0;
+ my $attrs = @{$cont}[0];
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_comment
+{
+ my $expat = shift;
+ my $data = $expat->original_string();
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ $data =~ s/^<!--//s;
+ $data =~ s/-->$//s;
+ push @$clist, 1 => $data;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdatastart
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 0 => $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdataend
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ $clist->[$pos] .= $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_char
+{
+ my $expat = shift;
+ my $text = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ # Use original_string so that we retain escaped entities
+ # in CDATA sections.
+ #
+ if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+ $clist->[$pos] .= $expat->original_string();
+ } else {
+ push @$clist, 0 => $expat->original_string();
+ }
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_start
+{
+ my $expat = shift;
+ my $tag = shift;
+ my @origlist = ();
+
+ # Use original_string so that we retain escaped entities
+ # in attribute values. We must convert the string to an
+ # @origlist array to conform to the structure of the Tree
+ # Style.
+ #
+ my @original_array = split /\x/, $expat->original_string();
+ my $source = $expat->original_string();
+
+ # Remove leading tag.
+ #
+ $source =~ s|^\s*<\s*(\S+)||s;
+
+ # Grab attribute key/value pairs and push onto @origlist array.
+ #
+ while ($source)
+ {
+ if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+ push @origlist, $1;
+ push @origlist, '"' . $2 . '"';
+ }
+ elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+ push @origlist, $1;
+ push @origlist, "'" . $2 . "'";
+ }
+ else
+ {
+ last;
+ }
+ }
+
+ my $ol = [ { @origlist } ];
+
+ push @{ $expat->{Lists} }, $expat->{Curlist};
+ push @{ $expat->{Curlist} }, $tag => $ol;
+ $expat->{Curlist} = $ol;
+}
+
+# Copied from intltool-merge.in.in and added comment handler.
+sub readXml
+{
+ my $xmldoc = shift || return;
+ my $ret = eval 'require XML::Parser';
+ if(!$ret) {
+ die "You must have XML::Parser installed to run $0\n\n";
+ }
+ my $xp = new XML::Parser(Style => 'Tree');
+ $xp->setHandlers(Char => \&intltool_tree_char);
+ $xp->setHandlers(Start => \&intltool_tree_start);
+ $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+ $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+
+ ## differences from intltool-merge.in.in
+ $xp->setHandlers(Comment => \&intltool_tree_comment);
+ ## differences end here from intltool-merge.in.in
+
+ my $tree = $xp->parse($xmldoc);
+
+# <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar,
+# [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ]
+
+ return $tree;
+}
+
+sub type_schemas {
+ ### For schemas XML files ###
+
+ # FIXME: We should handle escaped < (less than)
+ while ($input =~ /
+ <locale\ name="C">\s*
+ (<default>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/default>\s*)?
+ (<short>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/short>\s*)?
+ (<long>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/long>\s*)?
+ <\/locale>
+ /sgx) {
+ my @totranslate = ($3,$6,$9);
+ my @eachcomment = ($2,$5,$8);
+ foreach (@totranslate) {
+ my $currentcomment = shift @eachcomment;
+ next if !$_;
+ s/\s+/ /g;
+ add_message(entity_decode_minimal($_));
+ $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment));
+ }
+ }
+}
+
+# Parse the tree as returned by readXml() for gschema.xml files.
+sub traverse_gsettings {
+ sub cleanup {
+ s/^\s+//;
+ s/\s+$//;
+ s/\s+/ /g;
+ return $_;
+ }
+
+ my $nodename = shift;
+ my $content = shift;
+ my $comment = shift || 0;
+ my @list = @{ $content };
+ my $attrs_ref = shift @list;
+ my %attrs = %{ $attrs_ref };
+ if (($nodename eq 'default' and $attrs{'l10n'}) or
+ ($nodename eq 'summary') or ($nodename eq 'description')) {
+ # preserve whitespace. deal with it ourselves, below.
+ my $message = getXMLstring($content, 1);
+
+ if ($nodename eq 'default') {
+ # for <default> we strip leading and trailing whitespace but
+ # preserve (possibly quoted) whitespace within
+ $message =~ s/^\s+//;
+ $message =~ s/\s+$//;
+ } else {
+ # for <summary> and <description>, we normalise all
+ # whitespace while preserving paragraph boundaries
+ $message = join "\n\n", map &cleanup, split/\n\s*\n+/, $message;
+ }
+
+ my $context = $attrs{'context'};
+ $context =~ s/^["'](.*)["']/$1/ if $context;
+ $message = $context . "\004" . $message if $context;
+ add_message($message);
+ $comments{$message} = $comment if $comment;
+ } else {
+ my $index = 0;
+ my $comment;
+ while (scalar(@list) > 1) {
+ my $type = shift @list;
+ my $content = shift @list;
+ if (!$type || "$type" eq "1") {
+ if ($type == 1) {
+ $comment = $content;
+ }
+ next;
+ } else {
+ traverse_gsettings($type, $content, $comment);
+ $comment = 0;
+ }
+ }
+ }
+}
+
+sub type_gsettings {
+ my $tree = readXml($input);
+ my @tree_nodes = @{ $tree };
+ my $node = shift @tree_nodes;
+ while (!$node || "$node" eq "1") {
+ shift @tree_nodes;
+ $node = shift @tree_nodes;
+ }
+ my $content = shift @tree_nodes;
+ traverse_gsettings($node, $content);
+}
+
+sub type_rfc822deb {
+ ### For rfc822-style Debian configuration files ###
+
+ my $lineno = 1;
+ my $type = '';
+ while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg)
+ {
+ my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5);
+ while ($pre =~ m/\n/g)
+ {
+ $lineno ++;
+ }
+ $lineno += length($newline);
+ my @str_list = rfc822deb_split(length($underscore), $text);
+ for my $str (@str_list)
+ {
+ $strcount++;
+ add_message($str);
+ $loc{$str} = $lineno;
+ $count{$str} = $strcount;
+ my $usercomment = '';
+ while($pre =~ s/(^|\n)#([^\n]*)$//s)
+ {
+ $usercomment = "\n" . $2 . $usercomment;
+ }
+ $comments{$str} = $tag . $usercomment;
+ }
+ $lineno += ($text =~ s/\n//g);
+ }
+}
+
+sub rfc822deb_split {
+ # Debian defines a special way to deal with rfc822-style files:
+ # when a value contain newlines, it consists of
+ # 1. a short form (first line)
+ # 2. a long description, all lines begin with a space,
+ # and paragraphs are separated by a single dot on a line
+ # This routine returns an array of all paragraphs, and reformat
+ # them.
+ # When first argument is 2, the string is a comma separated list of
+ # values.
+ my $type = shift;
+ my $text = shift;
+ $text =~ s/^[ \t]//mg;
+ return (split(/, */, $text, 0)) if $type ne 1;
+ return ($text) if $text !~ /\n/;
+
+ $text =~ s/([^\n]*)\n//;
+ my @list = ($1);
+ my $str = '';
+ for my $line (split (/\n/, $text))
+ {
+ chomp $line;
+ if ($line =~ /^\.\s*$/)
+ {
+ # New paragraph
+ $str =~ s/\s*$//;
+ push(@list, $str);
+ $str = '';
+ }
+ elsif ($line =~ /^\s/)
+ {
+ # Line which must not be reformatted
+ $str .= "\n" if length ($str) && $str !~ /\n$/;
+ $line =~ s/\s+$//;
+ $str .= $line."\n";
+ }
+ else
+ {
+ # Continuation line, remove newline
+ $str .= " " if length ($str) && $str !~ /\n$/;
+ $str .= $line;
+ }
+ }
+ $str =~ s/\s*$//;
+ push(@list, $str) if length ($str);
+ return @list;
+}
+
+sub type_quoted {
+ while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) {
+ my $message = $1;
+ my $before = $`;
+ $message =~ s/\\\"/\"/g;
+ $before =~ s/[^\n]//g;
+ add_message($message);
+ $loc{$message} = length ($before) + 2;
+ }
+}
+
+sub type_quotedxml {
+ while ($input =~ /\"(([^\"]|\\\")*[^\\\"])\"/g) {
+ my $message = $1;
+ my $before = $`;
+ $message =~ s/\\\"/\"/g;
+ $message = entity_decode($message);
+ $before =~ s/[^\n]//g;
+ add_message($message);
+ $loc{$message} = length ($before) + 2;
+ }
+}
+
+sub type_glade {
+ ### For translatable Glade XML files ###
+
+ my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message";
+
+ while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) {
+ # Glade sometimes uses tags that normally mark translatable things for
+ # little bits of non-translatable content. We work around this by not
+ # translating strings that only includes something like label4 or window1.
+ add_message(entity_decode($2)) unless $2 =~ /^(window|label|dialog)[0-9]+$/;
+ }
+
+ while ($input =~ /<items>(..[^<]*)<\/items>/sg) {
+ for my $item (split (/\n/, $1)) {
+ add_message(entity_decode($item));
+ }
+ }
+
+ ## handle new glade files
+ while ($input =~ /<(\w+)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*context\s*=\s*"([^"]*)")?(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) {
+ if (!($4 =~ /^(window|label)[0-9]+$/)) {
+ my $message = entity_decode($4);
+ if (defined($2)) {
+ $message = entity_decode($2) . "\004" . $message;
+ }
+ add_message($message);
+ if (defined($3)) {
+ $comments{$message} = entity_decode($3) ;
+ }
+ }
+ }
+ while ($input =~ /<atkaction\s+action_name="([^>]*)"\s+description="([^>]+)"\/>/sg) {
+ add_message(entity_decode_minimal($2));
+ }
+}
+
+sub type_tlk {
+ my ($ftype, $fvers, $langid, $strcount, $stroff);
+ my $count = 0;
+ my $pos = 0;
+ my @inputa = split (//, $input, 21);
+ my $foo;
+ my $strdata;
+
+ $ftype = substr ($input, 0, 3);
+ $fvers = substr ($input, 4, 7);
+ $langid = unpack ("L", $inputa[8] . $inputa[9] .
+ $inputa[10] . $inputa[11]);
+ $strcount = unpack ("L", $inputa[12] . $inputa[13] .
+ $inputa[14] . $inputa[15]);
+ $stroff = unpack ("L", $inputa[16] . $inputa[17] .
+ $inputa[18] . $inputa[19]);
+
+ use bytes;
+ $strdata = bytes::substr ($input, $stroff);
+
+ my $sinpos = 20;
+
+ $foo = $inputa[$sinpos];
+ $sinpos = 40 * 2000;
+ @inputa = split (//, $foo, $sinpos + 1);
+
+ $pos = 0;
+ while ($count < $strcount) {
+ my ($flags, $soundref, $volvar, $pitch, $offset, $strsize, $sndlen) = 0;
+
+ if ($count > 0 && $count % 2000 == 0) {
+ $foo = $inputa[$sinpos];
+ my $numleft = ($strcount - $count);
+ if ($numleft > 2000) {
+ $sinpos = 40 * 2000;
+ } else {
+ $sinpos = 40 * $numleft;
+ }
+ @inputa = split (//, $foo, $sinpos + 1);
+ my $numbytes = @inputa;
+ $pos = 0;
+ }
+
+
+ $flags = unpack ("L", $inputa[$pos] . $inputa[$pos + 1] .
+ $inputa[$pos + 2] . $inputa[$pos + 3]);
+ $pos += 4;
+ if ($flags & 0x0002) {
+ $soundref = join ('', @inputa[$pos..$pos + 15]);
+ $soundref =~ s/\0//g;
+ }
+ $pos += 16;
+# According to the Bioware Aurora Talk Table Format documentation
+# the VolumeVariance and PitchVariance DWORDs are not used
+# We increment the pos counter, but do not read the data, here
+# $volvar = unpack ("L", $inputa[$pos] . $inputa[$pos + 1] .
+# $inputa[$pos + 2] . $inputa[$pos + 3]);
+ $pos += 4;
+# $pitch = unpack ("L", $inputa[$pos] . $inputa[$pos + 1] .
+# $inputa[$pos + 2] . $inputa[$pos + 3]);
+ $pos += 4;
+ $offset = unpack ("L", $inputa[$pos] . $inputa[$pos + 1] .
+ $inputa[$pos + 2] . $inputa[$pos + 3])
+ if ($flags & 0x0001);
+ $pos += 4;
+ $strsize = unpack ("L", $inputa[$pos] . $inputa[$pos + 1] .
+ $inputa[$pos + 2] . $inputa[$pos + 3])
+ if ($flags & 0x0001);
+ $pos += 4;
+ $sndlen = unpack ("d", $inputa[$pos] . $inputa[$pos + 1] .
+ $inputa[$pos + 2] . $inputa[$pos + 3])
+ if ($flags & 0x0004);
+ $pos += 4;
+
+ if (defined $strsize && $strsize > 0) {
+ my $message = substr ($strdata, $offset, $strsize);
+ if (defined $message) {
+ use Encode;
+ Encode::from_to ($message, "iso-8859-1", "UTF-8");
+ add_message($message);
+ if ($message =~ /^Bad Strref$/ ) {
+ $comments{$message} = "DO NOT Translate this Entry.";
+ $comments{$message} .= "\nTLK:position=$count";
+ } else {
+ $comments{$message} = "TLK:position=$count";
+ $comments{$message} .= "; TLK:sndresref=$soundref"
+ if (defined $soundref && $soundref ne "");
+ $comments{$message} .= "; TLK:sndlen=$sndlen"
+ if (defined $sndlen && $sndlen != 0);
+ }
+ } else {
+ print STDERR "Missing message? ID: $count\n";
+ }
+ }
+ $count++;
+ }
+}
+
+sub msg_write {
+ my @msgids;
+ if (%count)
+ {
+ @msgids = sort { $count{$a} <=> $count{$b} } keys %count;
+ }
+ else
+ {
+ @msgids = @messages_sorted;
+ }
+ for my $message (@msgids)
+ {
+ my $offsetlines = 1;
+ my $context = undef;
+ $offsetlines++ if $message =~ /%/;
+ if (defined ($comments{$message}))
+ {
+ while ($comments{$message} =~ m/\n/g)
+ {
+ $offsetlines++;
+ }
+ }
+ print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n"
+ if defined $loc{$message};
+ print OUT "/* ".$comments{$message}." */\n"
+ if defined $comments{$message};
+ print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/;
+
+ if ($message =~ /(.*)\004(.*)/s) {
+ $context = $1;
+ $message = $2;
+ }
+ my @lines = split (/\n/, $message, -1);
+ for (my $n = 0; $n < @lines; $n++)
+ {
+ if ($n == 0)
+ {
+ if (defined $context)
+ {
+ if ($NOMSGCTXT_ARG)
+ {
+ print OUT "char *s = N_(\"", $context, "|";
+ }
+ else
+ {
+ print OUT "char *s = C_(\"", $context, "\", \"";
+ }
+ }
+ else
+ {
+ print OUT "char *s = N_(\"";
+ }
+ }
+ else
+ {
+ print OUT " \"";
+ }
+
+ print OUT escape($lines[$n]);
+
+ if ($n < @lines - 1)
+ {
+ print OUT "\\n\"\n";
+ }
+ else
+ {
+ print OUT "\");\n";
+ }
+ }
+ }
+}
+
diff --git a/gtk+-mingw/bin/intltool-merge b/gtk+-mingw/bin/intltool-merge
new file mode 100644
index 0000000..9cd929d
--- /dev/null
+++ b/gtk+-mingw/bin/intltool-merge
@@ -0,0 +1,1510 @@
+#!/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+
+#
+# The Intltool Message Merger
+#
+# Copyright (C) 2000, 2003 Free Software Foundation.
+# Copyright (C) 2000, 2001 Eazel, Inc
+#
+# Intltool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# version 2 published by the Free Software Foundation.
+#
+# Intltool 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# Authors: Maciej Stachowiak <mjs@noisehavoc.org>
+# Kenneth Christiansen <kenneth@gnu.org>
+# Darin Adler <darin@bentspoon.com>
+#
+# Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov@calixo.net>
+#
+
+## Release information
+my $PROGRAM = "intltool-merge";
+my $PACKAGE = "intltool";
+my $VERSION = "0.50.2";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use Text::Wrap;
+use File::Basename;
+use Encode;
+
+my $must_end_tag = -1;
+my $last_depth = -1;
+my $translation_depth = -1;
+my @tag_stack = ();
+my @entered_tag = ();
+my @translation_strings = ();
+my $leading_space = "";
+
+## Scalars used by the option stuff
+my $HELP_ARG = 0;
+my $VERSION_ARG = 0;
+my $BA_STYLE_ARG = 0;
+my $XML_STYLE_ARG = 0;
+my $KEYS_STYLE_ARG = 0;
+my $DESKTOP_STYLE_ARG = 0;
+my $SCHEMAS_STYLE_ARG = 0;
+my $RFC822DEB_STYLE_ARG = 0;
+my $QUOTED_STYLE_ARG = 0;
+my $QUOTEDXML_STYLE_ARG = 0;
+my $QUIET_ARG = 0;
+my $PASS_THROUGH_ARG = 0;
+my $UTF8_ARG = 0;
+my $MULTIPLE_OUTPUT = 0;
+my $NO_TRANSLATIONS_ARG = 0;
+my $cache_file;
+
+## Handle options
+GetOptions
+(
+ "help" => \$HELP_ARG,
+ "version" => \$VERSION_ARG,
+ "quiet|q" => \$QUIET_ARG,
+ "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility
+ "ba-style|b" => \$BA_STYLE_ARG,
+ "xml-style|x" => \$XML_STYLE_ARG,
+ "keys-style|k" => \$KEYS_STYLE_ARG,
+ "desktop-style|d" => \$DESKTOP_STYLE_ARG,
+ "schemas-style|s" => \$SCHEMAS_STYLE_ARG,
+ "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG,
+ "quoted-style" => \$QUOTED_STYLE_ARG,
+ "quotedxml-style" => \$QUOTEDXML_STYLE_ARG,
+ "pass-through|p" => \$PASS_THROUGH_ARG,
+ "utf8|u" => \$UTF8_ARG,
+ "multiple-output|m" => \$MULTIPLE_OUTPUT,
+ "no-translations" => \$NO_TRANSLATIONS_ARG,
+ "cache|c=s" => \$cache_file
+ ) or &error;
+
+my $PO_DIR;
+my $FILE;
+my $OUTFILE;
+
+my %po_files_by_lang = ();
+my %translations = ();
+
+# Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+# XML quoted string contents
+my $q = "[^\\\"]*";
+
+## Check for options.
+
+if ($VERSION_ARG)
+{
+ &print_version;
+}
+elsif ($HELP_ARG)
+{
+ &print_help;
+}
+elsif ($BA_STYLE_ARG && @ARGV > 2)
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &ba_merge_translations;
+ &finalize;
+}
+elsif ($XML_STYLE_ARG && (@ARGV > 2 || ($NO_TRANSLATIONS_ARG && @ARGV > 1)))
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &xml_merge_output;
+ &finalize;
+}
+elsif ($KEYS_STYLE_ARG && @ARGV > 2)
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &keys_merge_translations;
+ &finalize;
+}
+elsif ($DESKTOP_STYLE_ARG && @ARGV > 2)
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &desktop_merge_translations;
+ &finalize;
+}
+elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2)
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &schemas_merge_translations;
+ &finalize;
+}
+elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2)
+{
+ &preparation;
+ &print_message;
+ &rfc822deb_merge_translations;
+ &finalize;
+}
+elsif (($QUOTED_STYLE_ARG || $QUOTEDXML_STYLE_ARG) && @ARGV > 2)
+{
+ &utf8_sanity_check;
+ &preparation;
+ &print_message;
+ &quoted_merge_translations($QUOTEDXML_STYLE_ARG);
+ &finalize;
+}
+else
+{
+ &print_help;
+}
+
+exit;
+
+## Sub for printing release information
+sub print_version
+{
+ print <<_EOF_;
+${PROGRAM} (${PACKAGE}) ${VERSION}
+Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+Copyright (C) 2000-2001 Eazel, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+ exit;
+}
+
+## Sub for printing usage information
+sub print_help
+{
+ print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE
+Generates an output file that includes some localized attributes from an
+untranslated source file.
+
+Mandatory options: (exactly one must be specified)
+ -b, --ba-style includes translations in the bonobo-activation style
+ -d, --desktop-style includes translations in the desktop style
+ -k, --keys-style includes translations in the keys style
+ -s, --schemas-style includes translations in the schemas style
+ -r, --rfc822deb-style includes translations in the RFC822 style
+ --quoted-style includes translations in the quoted string style
+ --quotedxml-style includes translations in the quoted xml string style
+ -x, --xml-style includes translations in the standard xml style
+
+Other options:
+ -u, --utf8 convert all strings to UTF-8 before merging
+ (default for everything except RFC822 style)
+ -p, --pass-through deprecated, does nothing and issues a warning
+ -m, --multiple-output output one localized file per locale, instead of
+ a single file containing all localized elements
+ --no-translations do not merge any translations: only generates the
+ unlocalised (English) version -- applies only
+ to XML merging
+ -c, --cache=FILE specify cache file name
+ (usually \$top_builddir/po/.intltool-merge-cache)
+ -q, --quiet suppress most messages
+ --help display this help and exit
+ --version output version information and exit
+
+Report bugs to http://bugs.launchpad.net/intltool
+_EOF_
+ exit;
+}
+
+
+## Sub for printing error messages
+sub print_error
+{
+ print STDERR "Try `${PROGRAM} --help' for more information.\n";
+ exit;
+}
+
+
+sub print_message
+{
+ print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG;
+}
+
+
+sub preparation
+{
+ if (!$XML_STYLE_ARG || !$NO_TRANSLATIONS_ARG) {
+ $PO_DIR = $ARGV[0];
+ $FILE = $ARGV[1];
+ $OUTFILE = $ARGV[2];
+
+ &gather_po_files;
+ &get_translation_database;
+ } else {
+ $FILE = $ARGV[0];
+ $OUTFILE = $ARGV[1];
+ }
+}
+
+# General-purpose code for looking up translations in .po files
+
+sub po_file2lang
+{
+ my ($tmp) = @_;
+ $tmp =~ s/^.*\/(.*)\.po$/$1/;
+ return $tmp;
+}
+
+sub gather_po_files
+{
+ if (my $linguas = $ENV{"LINGUAS"})
+ {
+ for my $lang (split / /, $linguas) {
+ my $po_file = $PO_DIR . "/" . $lang . ".po";
+ if (-e $po_file) {
+ $po_files_by_lang{$lang} = $po_file;
+ }
+ }
+ }
+ else
+ {
+ if (open LINGUAS_FILE, "$PO_DIR/LINGUAS")
+ {
+ while (<LINGUAS_FILE>)
+ {
+ next if /^#/;
+
+ for my $lang (split)
+ {
+ chomp ($lang);
+ my $po_file = $PO_DIR . "/" . $lang . ".po";
+ if (-e $po_file) {
+ $po_files_by_lang{$lang} = $po_file;
+ }
+ }
+ }
+
+ close LINGUAS_FILE;
+ }
+ else
+ {
+ for my $po_file (glob "$PO_DIR/*.po") {
+ $po_files_by_lang{po_file2lang($po_file)} = $po_file;
+ }
+ }
+ }
+}
+
+sub get_po_encoding
+{
+ my ($in_po_file) = @_;
+ my $encoding = "";
+
+ open IN_PO_FILE, $in_po_file or die;
+ while (<IN_PO_FILE>)
+ {
+ ## example: "Content-Type: text/plain; charset=ISO-8859-1\n"
+ if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/)
+ {
+ $encoding = $1;
+ last;
+ }
+ }
+ close IN_PO_FILE;
+
+ if (!$encoding)
+ {
+ print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG;
+ $encoding = "ISO-8859-1";
+ }
+
+ return $encoding
+}
+
+sub utf8_sanity_check
+{
+ print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG;
+ $UTF8_ARG = 1;
+}
+
+sub get_translation_database
+{
+ if ($cache_file) {
+ &get_cached_translation_database;
+ } else {
+ &create_translation_database;
+ }
+}
+
+sub get_newest_po_age
+{
+ my $newest_age;
+
+ foreach my $file (values %po_files_by_lang)
+ {
+ my $file_age = -M $file;
+ $newest_age = $file_age if !$newest_age || $file_age < $newest_age;
+ }
+
+ $newest_age = 0 if !$newest_age;
+
+ return $newest_age;
+}
+
+sub create_cache
+{
+ print "Generating and caching the translation database\n" unless $QUIET_ARG;
+
+ &create_translation_database;
+
+ open CACHE, ">$cache_file" || die;
+ print CACHE join "\x01", %translations;
+ close CACHE;
+}
+
+sub load_cache
+{
+ print "Found cached translation database\n" unless $QUIET_ARG;
+
+ my $contents;
+ open CACHE, "<$cache_file" || die;
+ {
+ local $/;
+ $contents = <CACHE>;
+ }
+ close CACHE;
+ %translations = split "\x01", $contents;
+}
+
+sub get_cached_translation_database
+{
+ my $cache_file_age = -M $cache_file;
+ if (defined $cache_file_age)
+ {
+ if ($cache_file_age <= &get_newest_po_age)
+ {
+ &load_cache;
+ return;
+ }
+ print "Found too-old cached translation database\n" unless $QUIET_ARG;
+ }
+
+ &create_cache;
+}
+
+sub add_translation
+{
+ my ($lang, $encoding, $msgctxt, $msgid, $msgstr) = @_;
+
+ return if !($msgid && $msgstr);
+
+ if ($msgctxt) {
+ $msgid = "$msgctxt\004$msgid";
+ }
+ if (uc $encoding ne "UTF-8") {
+ Encode::from_to ($msgid, $encoding, "UTF-8");
+ Encode::from_to ($msgstr, $encoding, "UTF-8");
+ }
+ $translations{$lang, $msgid} = $msgstr;
+}
+
+sub create_translation_database
+{
+ for my $lang (keys %po_files_by_lang)
+ {
+ my $po_file = $po_files_by_lang{$lang};
+ my $encoding = "UTF-8";
+
+ if ($UTF8_ARG)
+ {
+ $encoding = get_po_encoding ($po_file);
+ if (uc $encoding ne "UTF-8") {
+ print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;;
+ }
+ }
+ open PO_FILE, "<$po_file";
+
+ my $nextfuzzy = 0;
+ my $inmsgctxt = 0;
+ my $inmsgid = 0;
+ my $inmsgstr = 0;
+ my $msgctxt = "";
+ my $msgid = "";
+ my $msgstr = "";
+
+ while (<PO_FILE>)
+ {
+ $nextfuzzy = 1 if /^#, fuzzy/;
+
+ if (/^msgctxt "((\\.|[^\\]+)*)"/ )
+ {
+ if ($inmsgstr) {
+ add_translation ($lang, $encoding,
+ $msgctxt, $msgid, $msgstr);
+ $msgctxt = "";
+ $msgid = "";
+ $msgstr = "";
+ }
+
+ $msgctxt = unescape_po_string($1);
+ $inmsgctxt = 1;
+ $inmsgid = 0;
+ $inmsgstr = 0;
+ }
+
+ if (/^msgid "((\\.|[^\\]+)*)"/ )
+ {
+ if ($inmsgstr) {
+ add_translation ($lang, $encoding,
+ $msgctxt, $msgid, $msgstr);
+ $msgctxt = "";
+ $msgid = "";
+ $msgstr = "";
+ }
+
+ if ($nextfuzzy) {
+ $inmsgid = 0;
+ $nextfuzzy = 0;
+ } else {
+ $msgid = unescape_po_string($1);
+ $inmsgid = 1;
+ }
+ $inmsgctxt = 0;
+ $inmsgstr = 0;
+ }
+
+ if (/^msgstr "((\\.|[^\\]+)*)"/)
+ {
+ $msgstr = unescape_po_string($1);
+ $inmsgstr = 1;
+ $inmsgctxt = 0;
+ $inmsgid = 0;
+ }
+
+ if (/^"((\\.|[^\\]+)*)"/)
+ {
+ $msgctxt .= unescape_po_string($1) if $inmsgctxt;
+ $msgid .= unescape_po_string($1) if $inmsgid;
+ $msgstr .= unescape_po_string($1) if $inmsgstr;
+ }
+ }
+ add_translation ($lang, $encoding, $msgctxt, $msgid, $msgstr)
+ if ($inmsgstr);
+ }
+}
+
+sub finalize
+{
+}
+
+sub unescape_one_sequence
+{
+ my ($sequence) = @_;
+
+ return "\\" if $sequence eq "\\\\";
+ return "\"" if $sequence eq "\\\"";
+ return "\n" if $sequence eq "\\n";
+ return "\r" if $sequence eq "\\r";
+ return "\t" if $sequence eq "\\t";
+ return "\b" if $sequence eq "\\b";
+ return "\f" if $sequence eq "\\f";
+ return "\a" if $sequence eq "\\a";
+ return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7)
+
+ return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/);
+ return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/);
+
+ # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489
+
+ return $sequence;
+}
+
+sub unescape_po_string
+{
+ my ($string) = @_;
+
+ $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg;
+
+ return $string;
+}
+
+sub entity_decode
+{
+ local ($_) = @_;
+
+ s/&apos;/'/g; # '
+ s/&quot;/"/g; # "
+ s/&lt;/</g;
+ s/&gt;/>/g;
+ s/&amp;/&/g;
+
+ return $_;
+}
+
+# entity_encode: (string)
+#
+# Encode the given string to XML format (encode '<' etc).
+
+sub entity_encode
+{
+ my ($pre_encoded) = @_;
+
+ my @list_of_chars = unpack ('C*', $pre_encoded);
+
+ # with UTF-8 we only encode minimalistic
+ return join ('', map (&entity_encode_int_minimalist, @list_of_chars));
+}
+
+sub entity_encode_int_minimalist
+{
+ return "&quot;" if $_ == 34;
+ return "&amp;" if $_ == 38;
+ return "&apos;" if $_ == 39;
+ return "&lt;" if $_ == 60;
+ return "&gt;" if $_ == 62;
+ return chr $_;
+}
+
+sub entity_encoded_translation
+{
+ my ($lang, $string) = @_;
+
+ my $translation = $translations{$lang, $string};
+ return $string if !$translation;
+ return entity_encode ($translation);
+}
+
+## XML (bonobo-activation specific) merge code
+
+sub ba_merge_translations
+{
+ my $source;
+
+ {
+ local $/; # slurp mode
+ open INPUT, "<$FILE" or die "can't open $FILE: $!";
+ $source = <INPUT>;
+ close INPUT;
+ }
+
+ open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+ # Binmode so that selftest works ok if using a native Win32 Perl...
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+
+ while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s)
+ {
+ print OUTPUT $1;
+
+ my $node = $2 . "\n";
+
+ my @strings = ();
+ $_ = $node;
+ while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) {
+ push @strings, entity_decode($3);
+ }
+ print OUTPUT;
+
+ my %langs;
+ for my $string (@strings)
+ {
+ for my $lang (keys %po_files_by_lang)
+ {
+ $langs{$lang} = 1 if $translations{$lang, $string};
+ }
+ }
+
+ for my $lang (sort keys %langs)
+ {
+ $_ = $node;
+ s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s;
+ s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg;
+ print OUTPUT;
+ }
+ }
+
+ print OUTPUT $source;
+
+ close OUTPUT;
+}
+
+
+## XML (non-bonobo-activation) merge code
+
+
+# Process tag attributes
+# Only parameter is a HASH containing attributes -> values mapping
+sub getAttributeString
+{
+ my $sub = shift;
+ my $do_translate = shift || 0;
+ my $language = shift || "";
+ my $result = "";
+ my $translate = shift;
+ foreach my $e (reverse(sort(keys %{ $sub }))) {
+ my $key = $e;
+ my $string = $sub->{$e};
+ my $quote = '"';
+
+ $string =~ s/^[\s]+//;
+ $string =~ s/[\s]+$//;
+
+ if ($string =~ /^'.*'$/)
+ {
+ $quote = "'";
+ }
+ $string =~ s/^['"]//g;
+ $string =~ s/['"]$//g;
+
+ if ($do_translate && $key =~ /^_/) {
+ $key =~ s|^_||g;
+ if ($language) {
+ # Handle translation
+ my $decode_string = entity_decode($string);
+ my $translation = $translations{$language, $decode_string};
+ if ($translation) {
+ $translation = entity_encode($translation);
+ $string = $translation;
+ }
+ $$translate = 2;
+ } else {
+ $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate
+ }
+ }
+
+ $result .= " $key=$quote$string$quote";
+ }
+ return $result;
+}
+
+# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree
+sub getXMLstring
+{
+ my $ref = shift;
+ my $spacepreserve = shift || 0;
+ my @list = @{ $ref };
+ my $result = "";
+
+ my $count = scalar(@list);
+ my $attrs = $list[0];
+ my $index = 1;
+
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+ while ($index < $count) {
+ my $type = $list[$index];
+ my $content = $list[$index+1];
+ if (! $type ) {
+ # We've got CDATA
+ if ($content) {
+ # lets strip the whitespace here, and *ONLY* here
+ $content =~ s/\s+/ /gs if (!$spacepreserve);
+ $result .= $content;
+ }
+ } elsif ( "$type" ne "1" ) {
+ # We've got another element
+ $result .= "<$type";
+ $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+ if ($content) {
+ my $subresult = getXMLstring($content, $spacepreserve);
+ if ($subresult) {
+ $result .= ">".$subresult . "</$type>";
+ } else {
+ $result .= "/>";
+ }
+ } else {
+ $result .= "/>";
+ }
+ }
+ $index += 2;
+ }
+ return $result;
+}
+
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+ my $fh = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $singlelang = shift || 0;
+ my $spacepreserve = shift || 0;
+
+ my @nodes = @{ $content };
+
+ my $count = scalar(@nodes);
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $nodes[$index];
+ my $rest = $nodes[$index+1];
+ if ($singlelang) {
+ my $oldMO = $MULTIPLE_OUTPUT;
+ $MULTIPLE_OUTPUT = 1;
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $MULTIPLE_OUTPUT = $oldMO;
+ } else {
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ }
+ $index += 2;
+ }
+}
+
+sub isWellFormedXmlFragment
+{
+ my $ret = eval 'require XML::Parser';
+ if(!$ret) {
+ die "You must have XML::Parser installed to run $0\n\n";
+ }
+
+ my $fragment = shift;
+ return 0 if (!$fragment);
+
+ $fragment = "<root>$fragment</root>";
+ my $xp = new XML::Parser(Style => 'Tree');
+ my $tree = 0;
+ eval { $tree = $xp->parse($fragment); };
+ return $tree;
+}
+
+sub traverse
+{
+ my $fh = shift;
+ my $nodename = shift;
+ my $content = shift;
+ my $language = shift || "";
+ my $spacepreserve = shift || 0;
+
+ if (!$nodename) {
+ if ($content =~ /^[\s]*$/) {
+ $leading_space .= $content;
+ }
+ print $fh $content;
+ } else {
+ # element
+ my @all = @{ $content };
+ my $attrs = shift @all;
+ my $translate = 0;
+ my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+ if ($nodename =~ /^_/) {
+ $translate = 1;
+ $nodename =~ s/^_//;
+ }
+ my $lookup = '';
+
+ $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ print $fh "<$nodename", $outattr;
+ if ($translate) {
+ $content = getXMLstring($content, $spacepreserve);
+ if (!$spacepreserve) {
+ $content =~ s/^\s+//s;
+ $content =~ s/\s+$//s;
+ }
+ if (exists $attrs->{"msgctxt"}) {
+ my $context = entity_decode ($attrs->{"msgctxt"});
+ $context =~ s/^["'](.*)["']/$1/;
+ $lookup = "$context\004$content";
+ } else {
+ $lookup = $content;
+ }
+
+ if ($lookup || $translate == 2) {
+ my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup});
+ if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) {
+ $translation = $content if (!$translation);
+ print $fh " xml:lang=\"", $language, "\"" if $language;
+ print $fh ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ } else {
+ print $fh $translation;
+ }
+ print $fh "</$nodename>";
+
+ return; # this means there will be no same translation with xml:lang="$language"...
+ # if we want them both, just remove this "return"
+ } else {
+ print $fh ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+ } else {
+ print $fh $content;
+ }
+ print $fh "</$nodename>";
+ }
+ } else {
+ print $fh "/>";
+ }
+
+ for my $lang (sort keys %po_files_by_lang) {
+ if ($MULTIPLE_OUTPUT && $lang ne "$language") {
+ next;
+ }
+ if ($lang) {
+ # Handle translation
+ #
+ my $translate = 0;
+ my $localattrs = getAttributeString($attrs, 1, $lang, \$translate);
+ my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup});
+ if ($translate && !$translation) {
+ $translation = $content;
+ }
+
+ if ($translation || $translate) {
+ print $fh "\n";
+ $leading_space =~ s/.*\n//g;
+ print $fh $leading_space;
+ print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">";
+ if ($translate == 2) {
+ translate_subnodes($fh, \@all, $lang, 1, $spacepreserve);
+ } else {
+ print $fh $translation;
+ }
+ print $fh "</$nodename>";
+ }
+ }
+ }
+
+ } else {
+ my $count = scalar(@all);
+ if ($count > 0) {
+ print $fh ">";
+ my $index = 0;
+ while ($index < $count) {
+ my $type = $all[$index];
+ my $rest = $all[$index+1];
+ traverse($fh, $type, $rest, $language, $spacepreserve);
+ $index += 2;
+ }
+ print $fh "</$nodename>";
+ } else {
+ print $fh "/>";
+ }
+ }
+ }
+}
+
+sub intltool_tree_comment
+{
+ my $expat = shift;
+ my $data = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 1 => $data;
+}
+
+sub intltool_tree_cdatastart
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ push @$clist, 0 => $expat->original_string();
+}
+
+sub intltool_tree_cdataend
+{
+ my $expat = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ $clist->[$pos] .= $expat->original_string();
+}
+
+sub intltool_tree_char
+{
+ my $expat = shift;
+ my $text = shift;
+ my $clist = $expat->{Curlist};
+ my $pos = $#$clist;
+
+ # Use original_string so that we retain escaped entities
+ # in CDATA sections.
+ #
+ if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+ $clist->[$pos] .= $expat->original_string();
+ } else {
+ push @$clist, 0 => $expat->original_string();
+ }
+}
+
+sub intltool_tree_start
+{
+ my $expat = shift;
+ my $tag = shift;
+ my @origlist = ();
+
+ # Use original_string so that we retain escaped entities
+ # in attribute values. We must convert the string to an
+ # @origlist array to conform to the structure of the Tree
+ # Style.
+ #
+ my @original_array = split /\x/, $expat->original_string();
+ my $source = $expat->original_string();
+
+ # Remove leading tag.
+ #
+ $source =~ s|^\s*<\s*(\S+)||s;
+
+ # Grab attribute key/value pairs and push onto @origlist array.
+ #
+ while ($source)
+ {
+ if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+ push @origlist, $1;
+ push @origlist, '"' . $2 . '"';
+ }
+ elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+ {
+ $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+ push @origlist, $1;
+ push @origlist, "'" . $2 . "'";
+ }
+ else
+ {
+ last;
+ }
+ }
+
+ my $ol = [ { @origlist } ];
+
+ push @{ $expat->{Lists} }, $expat->{Curlist};
+ push @{ $expat->{Curlist} }, $tag => $ol;
+ $expat->{Curlist} = $ol;
+}
+
+sub readXml
+{
+ my $filename = shift || return;
+ if(!-f $filename) {
+ die "ERROR Cannot find filename: $filename\n";
+ }
+
+ my $ret = eval 'require XML::Parser';
+ if(!$ret) {
+ die "You must have XML::Parser installed to run $0\n\n";
+ }
+ my $xp = new XML::Parser(Style => 'Tree');
+ $xp->setHandlers(Char => \&intltool_tree_char);
+ $xp->setHandlers(Start => \&intltool_tree_start);
+ $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+ $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+ my $tree = $xp->parsefile($filename);
+
+# <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{},
+# 0, "Howdy", ref, [{}]], 0, "do" ] ]
+
+ return $tree;
+}
+
+sub print_header
+{
+ my $infile = shift;
+ my $fh = shift;
+ my $source;
+
+ if(!-f $infile) {
+ die "ERROR Cannot find filename: $infile\n";
+ }
+
+ print $fh qq{<?xml version="1.0" encoding="UTF-8"?>\n};
+ {
+ local $/;
+ open DOCINPUT, "<${FILE}" or die;
+ $source = <DOCINPUT>;
+ close DOCINPUT;
+ }
+ if ($source =~ /(<!DOCTYPE.*\[.*\]\s*>)/s)
+ {
+ print $fh "$1\n";
+ }
+ elsif ($source =~ /(<!DOCTYPE[^>]*>)/s)
+ {
+ print $fh "$1\n";
+ }
+}
+
+sub parseTree
+{
+ my $fh = shift;
+ my $ref = shift;
+ my $language = shift || "";
+
+ my $name = shift @{ $ref };
+ my $cont = shift @{ $ref };
+
+ while (!$name || "$name" eq "1") {
+ $name = shift @{ $ref };
+ $cont = shift @{ $ref };
+ }
+
+ my $spacepreserve = 0;
+ my $attrs = @{$cont}[0];
+ $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+ traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+sub xml_merge_output
+{
+ my $source;
+
+ if ($MULTIPLE_OUTPUT) {
+ for my $lang (sort keys %po_files_by_lang) {
+ if ( ! -d $lang ) {
+ mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n";
+ }
+ open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+ my $tree = readXml($FILE);
+ print_header($FILE, \*OUTPUT);
+ parseTree(\*OUTPUT, $tree, $lang);
+ close OUTPUT;
+ print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG;
+ }
+ if ( ! -d "C" ) {
+ mkdir "C" or -d "C" or die "Cannot create subdirectory C: $!\n";
+ }
+ open OUTPUT, ">C/$OUTFILE" or die "Cannot open C/$OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+ my $tree = readXml($FILE);
+ print_header($FILE, \*OUTPUT);
+ parseTree(\*OUTPUT, $tree);
+ close OUTPUT;
+ print "CREATED C/$OUTFILE\n" unless $QUIET_ARG;
+ } else {
+ open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+ my $tree = readXml($FILE);
+ print_header($FILE, \*OUTPUT);
+ parseTree(\*OUTPUT, $tree);
+ close OUTPUT;
+ print "CREATED $OUTFILE\n" unless $QUIET_ARG;
+ }
+}
+
+sub keys_merge_translation
+{
+ my ($lang) = @_;
+
+ if ( ! -d $lang && $MULTIPLE_OUTPUT)
+ {
+ mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n";
+ }
+
+ open INPUT, "<${FILE}" or die "Cannot open ${FILE}: $!\n";
+ open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+
+ while (<INPUT>)
+ {
+ if (s/^(\s*)_(\w+=(.*))/$1$2/)
+ {
+ my $string = $3;
+
+ if (!$MULTIPLE_OUTPUT)
+ {
+ print OUTPUT;
+
+ my $non_translated_line = $_;
+
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ my $translation = $translations{$lang, $string};
+ next if !$translation;
+
+ $_ = $non_translated_line;
+ s/(\w+)=.*/[$lang]$1=$translation/;
+ print OUTPUT;
+ }
+ }
+ else
+ {
+ my $non_translated_line = $_;
+ my $translation = $translations{$lang, $string};
+ $translation = $string if !$translation;
+
+ $_ = $non_translated_line;
+ s/(\w+)=.*/$1=$translation/;
+ print OUTPUT;
+ }
+ }
+ else
+ {
+ print OUTPUT;
+ }
+ }
+
+ close OUTPUT;
+ close INPUT;
+
+ print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub keys_merge_translations
+{
+ if ($MULTIPLE_OUTPUT)
+ {
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ keys_merge_translation ($lang);
+ }
+ keys_merge_translation ("C");
+ }
+ else
+ {
+ keys_merge_translation (".");
+ }
+}
+
+sub desktop_merge_translations
+{
+ open INPUT, "<${FILE}" or die;
+ open OUTPUT, ">${OUTFILE}" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+
+ while (<INPUT>)
+ {
+ if (s/^(\s*)_([A-Za-z0-9\-]+=(.*))/$1$2/)
+ {
+ my $string = $3;
+
+ print OUTPUT;
+
+ my $non_translated_line = $_;
+
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ my $translation = $translations{$lang, $string};
+ next if !$translation;
+
+ $_ = $non_translated_line;
+ s/(\w+)=.*/${1}[$lang]=$translation/;
+ print OUTPUT;
+ }
+ }
+ else
+ {
+ print OUTPUT;
+ }
+ }
+
+ close OUTPUT;
+ close INPUT;
+}
+
+sub schemas_merge_translations
+{
+ my $source;
+
+ {
+ local $/; # slurp mode
+ open INPUT, "<$FILE" or die "can't open $FILE: $!";
+ $source = <INPUT>;
+ close INPUT;
+ }
+
+ open OUTPUT, ">$OUTFILE" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+
+ # FIXME: support attribute translations
+
+ # Empty nodes never need translation, so unmark all of them.
+ # For example, <_foo/> is just replaced by <foo/>.
+ $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
+
+ while ($source =~ s/
+ (.*?)
+ (\s+)(<locale\ name="C">(\s*)
+ (<default>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/default>)?(\s*)
+ (<short>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/short>)?(\s*)
+ (<long>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/long>)?(\s*)
+ <\/locale>)
+ //sx)
+ {
+ print OUTPUT $1;
+
+ my $locale_start_spaces = $2 ? $2 : '';
+ my $default_spaces = $4 ? $4 : '';
+ my $short_spaces = $7 ? $7 : '';
+ my $long_spaces = $10 ? $10 : '';
+ my $locale_end_spaces = $13 ? $13 : '';
+ my $c_default_block = $3 ? $3 : '';
+ my $default_string = $6 ? $6 : '';
+ my $short_string = $9 ? $9 : '';
+ my $long_string = $12 ? $12 : '';
+
+ print OUTPUT "$locale_start_spaces$c_default_block";
+
+ $default_string =~ s/\s+/ /g;
+ $default_string = entity_decode($default_string);
+ $short_string =~ s/\s+/ /g;
+ $short_string = entity_decode($short_string);
+ $long_string =~ s/\s+/ /g;
+ $long_string = entity_decode($long_string);
+
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ my $default_translation = $translations{$lang, $default_string};
+ my $short_translation = $translations{$lang, $short_string};
+ my $long_translation = $translations{$lang, $long_string};
+
+ next if (!$default_translation && !$short_translation &&
+ !$long_translation);
+
+ print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+
+ print OUTPUT "$default_spaces";
+
+ if ($default_translation)
+ {
+ $default_translation = entity_encode($default_translation);
+ print OUTPUT "<default>$default_translation</default>";
+ }
+
+ print OUTPUT "$short_spaces";
+
+ if ($short_translation)
+ {
+ $short_translation = entity_encode($short_translation);
+ print OUTPUT "<short>$short_translation</short>";
+ }
+
+ print OUTPUT "$long_spaces";
+
+ if ($long_translation)
+ {
+ $long_translation = entity_encode($long_translation);
+ print OUTPUT "<long>$long_translation</long>";
+ }
+
+ print OUTPUT "$locale_end_spaces</locale>";
+ }
+ }
+
+ print OUTPUT $source;
+
+ close OUTPUT;
+}
+
+sub rfc822deb_merge_translations
+{
+ my %encodings = ();
+ for my $lang (keys %po_files_by_lang) {
+ $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang}));
+ }
+
+ my $source;
+
+ $Text::Wrap::huge = 'overflow';
+ $Text::Wrap::break = qr/\n|\s(?=\S)/;
+
+ {
+ local $/; # slurp mode
+ open INPUT, "<$FILE" or die "can't open $FILE: $!";
+ $source = <INPUT>;
+ close INPUT;
+ }
+
+ open OUTPUT, ">${OUTFILE}" or die;
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+
+ while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg)
+ {
+ my $sep = $1;
+ my $non_translated_line = $3.$4;
+ my $string = $5;
+ my $underscore = length($2);
+ next if $underscore eq 0 && $non_translated_line =~ /^#/;
+ # Remove [] dummy strings
+ my $stripped = $string;
+ $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2;
+ $stripped =~ s/\[\s[^\[\]]*\]$//;
+ $non_translated_line .= $stripped;
+
+ print OUTPUT $sep.$non_translated_line;
+
+ if ($underscore)
+ {
+ my @str_list = rfc822deb_split($underscore, $string);
+
+ for my $lang (sort keys %po_files_by_lang)
+ {
+ my $is_translated = 1;
+ my $str_translated = '';
+ my $first = 1;
+
+ for my $str (@str_list)
+ {
+ my $translation = $translations{$lang, $str};
+
+ if (!$translation)
+ {
+ $is_translated = 0;
+ last;
+ }
+
+ # $translation may also contain [] dummy
+ # strings, mostly to indicate an empty string
+ $translation =~ s/\[\s[^\[\]]*\]$//;
+
+ if ($first)
+ {
+ if ($underscore eq 2)
+ {
+ $str_translated .= $translation;
+ }
+ else
+ {
+ $str_translated .=
+ Text::Tabs::expand($translation) .
+ "\n";
+ }
+ }
+ else
+ {
+ if ($underscore eq 2)
+ {
+ $str_translated .= ', ' . $translation;
+ }
+ else
+ {
+ $str_translated .= Text::Tabs::expand(
+ Text::Wrap::wrap(' ', ' ', $translation)) .
+ "\n .\n";
+ }
+ }
+ $first = 0;
+
+ # To fix some problems with Text::Wrap::wrap
+ $str_translated =~ s/(\n )+\n/\n .\n/g;
+ }
+ next unless $is_translated;
+
+ $str_translated =~ s/\n \.\n$//;
+ $str_translated =~ s/\s+$//;
+
+ $_ = $non_translated_line;
+ s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s;
+ print OUTPUT;
+ }
+ }
+ }
+ print OUTPUT "\n";
+
+ close OUTPUT;
+ close INPUT;
+}
+
+sub rfc822deb_split
+{
+ # Debian defines a special way to deal with rfc822-style files:
+ # when a value contain newlines, it consists of
+ # 1. a short form (first line)
+ # 2. a long description, all lines begin with a space,
+ # and paragraphs are separated by a single dot on a line
+ # This routine returns an array of all paragraphs, and reformat
+ # them.
+ # When first argument is 2, the string is a comma separated list of
+ # values.
+ my $type = shift;
+ my $text = shift;
+ $text =~ s/^[ \t]//mg;
+ return (split(/, */, $text, 0)) if $type ne 1;
+ return ($text) if $text !~ /\n/;
+
+ $text =~ s/([^\n]*)\n//;
+ my @list = ($1);
+ my $str = '';
+
+ for my $line (split (/\n/, $text))
+ {
+ chomp $line;
+ if ($line =~ /^\.\s*$/)
+ {
+ # New paragraph
+ $str =~ s/\s*$//;
+ push(@list, $str);
+ $str = '';
+ }
+ elsif ($line =~ /^\s/)
+ {
+ # Line which must not be reformatted
+ $str .= "\n" if length ($str) && $str !~ /\n$/;
+ $line =~ s/\s+$//;
+ $str .= $line."\n";
+ }
+ else
+ {
+ # Continuation line, remove newline
+ $str .= " " if length ($str) && $str !~ /\n$/;
+ $str .= $line;
+ }
+ }
+
+ $str =~ s/\s*$//;
+ push(@list, $str) if length ($str);
+
+ return @list;
+}
+
+sub quoted_translation
+{
+ my ($xml_mode, $lang, $string) = @_;
+
+ $string = entity_decode($string) if $xml_mode;
+ $string =~ s/\\\"/\"/g;
+
+ my $translation = $translations{$lang, $string};
+ $translation = $string if !$translation;
+ $translation = entity_encode($translation) if $xml_mode;
+ $translation =~ s/\"/\\\"/g;
+ return $translation
+}
+
+sub quoted_merge_translations
+{
+ my ($xml_mode) = @_;
+
+ if (!$MULTIPLE_OUTPUT) {
+ print "Quoted only supports Multiple Output.\n";
+ exit(1);
+ }
+
+ for my $lang (sort keys %po_files_by_lang) {
+ if ( ! -d $lang ) {
+ mkdir $lang or -d $lang or die "Cannot create subdirectory $lang: $!\n";
+ }
+ open INPUT, "<${FILE}" or die;
+ open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+ binmode (OUTPUT) if $^O eq 'MSWin32';
+ while (<INPUT>)
+ {
+ s/\"(([^\"]|\\\")*[^\\\"])\"/"\"" . &quoted_translation($xml_mode, $lang, $1) . "\""/ge;
+ print OUTPUT;
+ }
+ close OUTPUT;
+ close INPUT;
+ }
+}
diff --git a/gtk+-mingw/bin/intltool-prepare b/gtk+-mingw/bin/intltool-prepare
new file mode 100644
index 0000000..5ca3508
--- /dev/null
+++ b/gtk+-mingw/bin/intltool-prepare
@@ -0,0 +1,342 @@
+#!/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+
+# Intltool .desktop, .directory Prepare Tool
+#
+# Copyright (C) 2001 Free Software Foundation.
+#
+# Intltool 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.
+#
+# Intltool 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# Author(s): Gediminas Paulauskas <menesis@delfi.lt>
+# Kenneth Christiansen <kenneth@gnu.org>
+
+## Release information
+my $PROGRAM = "intltool-prepare";
+my $PACKAGE = "intltool";
+my $VERSION = "0.50.2";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use File::Find;
+
+## Scalars used by the option stuff
+my $HELP_ARG = "0";
+my $VERSION_ARG = "0";
+my $VERBOSE = "0";
+
+my @languages;
+my @desktop_files;
+my $new;
+my $file;
+
+my $desktop_extension = "(desktop|soundlist|keys|directory)";
+
+my $keywords = "Name|Comment|GenericName|SwallowTitle|description";
+
+## Always print as the first thing
+$| = 1;
+
+## Handle options
+GetOptions (
+ "help|h" => \$HELP_ARG,
+ "version|v" => \$VERSION_ARG,
+ "verbose|x" => \$VERBOSE
+ ) or &invalid_option;
+
+
+## Use the supplied arguments
+## Check for options.
+## This section will check for the different options.
+
+sub split_on_argument {
+
+ if ($VERSION_ARG) {
+ &version;
+
+ } elsif ($HELP_ARG) {
+ &help;
+
+ } else {
+ &main;
+ }
+}
+
+&split_on_argument;
+
+sub main
+{
+ print "Working, please wait...\n" if (! $VERBOSE);
+ &find_desktop_files;
+ &append_keywords;
+ &add_to_potfiles;
+ &perform_rescue;
+ &add_to_cvsignore;
+ &fix_makefiles;
+ &generate_empty;
+}
+
+sub version {
+ print <<_EOF_;
+${PROGRAM} ${PACKAGE} $VERSION
+Written by Gediminas Paulauskas <menesis\@delfi.lt>, 2000.
+
+Copyright (C) 2000 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+ exit;
+}
+
+sub help
+{
+ print <<_EOF_;
+Usage: ${PROGRAM} [OPTION] KEYWORD...
+Automates preparation steps before software make use of intltool.
+KEYWORD is a list of additional key other than "Name", "Comment"
+and "description".
+
+ -h, --help shows this help page
+ -v, --version shows the version
+ -x, --verbose show lots of feedback
+
+Report bugs to http://bugs.launchpad.net/intltool
+_EOF_
+ exit;
+}
+
+sub invalid_option
+{
+ ## Handle invalid arguments
+ ## my $opt = $ARGV[0];
+ ## print "$PROGRAM: invalid option -- $opt\n";
+ print STDERR "Try `$PROGRAM --help' for more information.\n";
+ exit 1;
+}
+
+sub append_keywords
+{
+ my $arg;
+ foreach $arg (@ARGV) {
+ $keywords .= "|$arg";
+ }
+}
+
+sub add_to_potfiles
+{
+ open FILE, ">>po/POTFILES.in";
+ my $intro = 0;
+ foreach my $desktop (@desktop_files) {
+ next if contains("po/POTFILES.in", "$desktop.in");
+ # Print explanation comment only once
+ unless ($intro) {
+ print FILE "# files added by intltool-prepare\n";
+ $intro = 1;
+ }
+ print FILE "$desktop.in\n";
+ }
+ close FILE;
+}
+
+sub perform_rescue
+{
+ foreach $file (@desktop_files) {
+ &rescue_file($file);
+ }
+}
+
+sub rescue_file
+{
+ my ($filename) = @_;
+ my ($msgid, $line, $lang);
+
+ print "Rescuing translations from $filename ...\n" if $VERBOSE;
+
+ open ORIG, "<$filename";
+ $line = 1;
+ENTRY: while (<ORIG>) {
+ chomp;
+ $line++;
+ my $entry = $_;
+ if (($entry =~ /^($keywords)=(.*)$/) ||
+ ($entry =~ /^(\s*description)=(.*)$/)) {
+ $msgid = $2;
+ $msgid =~ s/\\/\\\\/g;
+ $msgid =~ s/\"/\\"/g;
+ } elsif (($entry =~ /^($keywords)\[(.*?)\]=(.*)$/) ||
+ ($entry =~ /^(\s*\[)(.*?)\]description=(.*)$/)) {
+ $lang = $2;
+
+ my $msgstr = $3;
+ $msgstr =~ s/\\/\\\\/g;
+ $msgstr =~ s/"/\\"/g;
+
+ $line--;
+ if ((-s "po/$lang.po") &&
+ (contains("po/$lang.po", "msgid \"$msgid\""))) {
+ next ENTRY;
+ }
+
+ open POFILE, ">>po/$lang.po";
+
+ print POFILE "\n#: $filename.in:$line\n";
+ print POFILE "msgid \"$msgid\"\n";
+ print POFILE "msgstr \"$msgstr\"\n";
+
+ close POFILE;
+ }
+ }
+}
+
+sub generate_empty
+{
+ my $all = ' ';
+ foreach my $full (@desktop_files) {
+ $new = "$full.in";
+ $all .= "$new ";
+ print "Generating empty $new ...\n" if $VERBOSE;
+ open FULL, "<$full";
+ open NEW, ">$new";
+
+ while (<FULL>) {
+ unless (
+ (/^($keywords)\[.*?\]=.*$/) ||
+ (/^\s*\[(.*?)\]description=.*$/)
+ ) {
+ if (/^($keywords)=.*$/) {
+ print NEW "_$_";
+ } elsif (/^(\s*)(description=.*)$/) {
+ print NEW "$1_$2\n";
+ } else {
+ print NEW;
+ }
+ }
+ }
+
+ close NEW;
+ }
+ unless ($all eq ' ') {
+ print "*** Please add these files to CVS by following command: ***\n"
+ . "cvs add$all\n";
+ }
+}
+
+sub add_to_cvsignore
+{
+ my $all = ' ';
+ my $ign;
+ foreach $file (@desktop_files) {
+ $file =~ /^(.*\/)?(.+?\.$desktop_extension$)$/;
+ if ($1) {
+ $ign = "$1.cvsignore";
+ } else {
+ $ign = ".cvsignore";
+ }
+ my $basename = $2;
+
+ next if contains($ign, $basename);
+
+ print "Appending $basename to $ign\n" if $VERBOSE;
+ open FILE, ">>$ign";
+ print FILE "$basename\n";
+ $all .= "$file ";
+ }
+ close FILE;
+ unless ($all eq ' ') {
+ print "*** Please remove files from CVS by following command: ***\n"
+ . "cvs remove -f$all\n";
+ }
+}
+
+sub fix_makefiles
+{
+ my $file;
+ foreach $file (@desktop_files) {
+ my ($makefile, $line);
+
+ $file =~ /^(.*\/)?(.+?\.$desktop_extension$)$/;
+ if ($1) {
+ $makefile = "$1Makefile.am";
+ } else {
+ $makefile = "Makefile.am";
+ }
+ my $basename = $2;
+ print "Fixing $basename entry in $makefile\n" if $VERBOSE;
+
+ open MAKE, $makefile;
+ open NEWMAKE, ">$makefile.new";
+ my $extra = 0;
+ while ($line = <MAKE>) {
+ $extra = 1 if $line =~ /^EXTRA_DIST/;
+ if ($extra) {
+ if (($line =~ /$basename/) &&
+ !($line =~ /$basename\.in/)) {
+ $line =~ s/$basename/$basename\.in/;
+ }
+ $extra = 0 unless $line =~ /\\\s*$/
+ } else {
+ if ($line =~ /^(\w+)_DATA\s*=\s*$basename\s*$/) {
+ my $name = $1;
+ $line =~ s/^$name\_DATA/$name\_in_files/;
+ $line =~ s/$basename/$basename\.in/;
+ $basename =~ /\.($desktop_extension)$/;
+ my $ext = $1;
+ $line .= "$name\_DATA = \$($name\_in_files:.$ext.in=.$ext)\n";
+ $ext =~ tr/a-z/A-Z/;
+ if (!contains($makefile, "\@INTLTOOL_$ext\_RULE\@")) {
+ $line .= "\@INTLTOOL_$ext\_RULE\@\n";
+ }
+ }
+ }
+ print NEWMAKE $line;
+ }
+ close NEWMAKE;
+ rename "$makefile.new", $makefile;
+ }
+}
+
+sub contains
+{
+ my ($name, $str) = @_;
+ open CONT, "<$name";
+ while (<CONT>) {
+ chomp;
+ return 1 if $_ eq $str;
+ }
+ return 0;
+}
+
+sub find_desktop_files
+{
+ if ($VERBOSE) {
+ print "Found these interesting files:\n";
+ } else {
+ print "Finding interesting files...";
+ }
+ find (\&wanted, '.');
+ print "done\n" unless $VERBOSE;
+}
+
+sub wanted
+{
+ if (/\.$desktop_extension$/) {
+ my $file = $File::Find::name;
+ $file =~ s/\.\///;
+ push @desktop_files, $file;
+ print "$file\n" if $VERBOSE;
+ }
+}
+
+# vim: ts=4 sw=4 expandtab
diff --git a/gtk+-mingw/bin/intltool-update b/gtk+-mingw/bin/intltool-update
new file mode 100644
index 0000000..ca45608
--- /dev/null
+++ b/gtk+-mingw/bin/intltool-update
@@ -0,0 +1,1303 @@
+#!/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+
+#
+# The Intltool Message Updater
+#
+# Copyright (C) 2000-2003 Free Software Foundation.
+#
+# Intltool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# version 2 published by the Free Software Foundation.
+#
+# Intltool 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# Authors: Kenneth Christiansen <kenneth@gnu.org>
+# Maciej Stachowiak
+# Darin Adler <darin@bentspoon.com>
+
+## Release information
+my $PROGRAM = "intltool-update";
+my $VERSION = "0.50.2";
+my $PACKAGE = "intltool";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use Cwd;
+use File::Copy;
+use File::Find;
+
+## Scalars used by the option stuff
+my $HELP_ARG = 0;
+my $VERSION_ARG = 0;
+my $DIST_ARG = 0;
+my $POT_ARG = 0;
+my $HEADERS_ARG = 0;
+my $MAINTAIN_ARG = 0;
+my $REPORT_ARG = 0;
+my $VERBOSE = 0;
+my $GETTEXT_PACKAGE = "";
+my $OUTPUT_FILE = "";
+
+my @languages;
+my %varhash = ();
+my %po_files_by_lang = ();
+
+# Regular expressions to categorize file types.
+# FIXME: Please check if the following is correct
+
+my $xml_support =
+"xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required)
+"ui|". # Bonobo specific - User Interface desc. files
+"lang|". # ?
+"glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required)
+"oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files
+"etspec|". # ?
+"server(?:\\.in)+|". # Bonobo specific
+"sheet(?:\\.in)+|". # ?
+"schemas(?:\\.in)+|". # GConf specific
+"gschema.xml|". # GLib schema (ie: GSettings) specific
+"pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer.
+"kbd(?:\\.in)+|". # GOK specific.
+"policy(?:\\.in)+"; # PolicyKit files
+
+my $ini_support =
+"icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec
+"desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec
+"caves(?:\\.in)+|". # GNOME Games specific
+"directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec
+"soundlist(?:\\.in)+|". # GNOME specific
+"keys(?:\\.in)+|". # GNOME Mime database specific
+"theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec
+"service(?:\\.in)+"; # DBus specific
+
+my $tlk_support =
+"tlk(?:\\.in)+"; # Bioware Aurora Talk Table Format
+
+my $buildin_gettext_support =
+"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py|scm(?:\\.in)*";
+
+## Always flush buffer when printing
+$| = 1;
+
+## Sometimes the source tree will be rooted somewhere else.
+my $SRCDIR = $ENV{"srcdir"} || ".";
+my $POTFILES_in;
+
+$POTFILES_in = "<$SRCDIR/POTFILES.in";
+
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+## Handle options
+GetOptions
+(
+ "help" => \$HELP_ARG,
+ "version" => \$VERSION_ARG,
+ "dist|d" => \$DIST_ARG,
+ "pot|p" => \$POT_ARG,
+ "headers|s" => \$HEADERS_ARG,
+ "maintain|m" => \$MAINTAIN_ARG,
+ "report|r" => \$REPORT_ARG,
+ "verbose|x" => \$VERBOSE,
+ "gettext-package|g=s" => \$GETTEXT_PACKAGE,
+ "output-file|o=s" => \$OUTPUT_FILE,
+ ) or &Console_WriteError_InvalidOption;
+
+&Console_Write_IntltoolHelp if $HELP_ARG;
+&Console_Write_IntltoolVersion if $VERSION_ARG;
+
+my $arg_count = ($DIST_ARG > 0)
+ + ($POT_ARG > 0)
+ + ($HEADERS_ARG > 0)
+ + ($MAINTAIN_ARG > 0)
+ + ($REPORT_ARG > 0);
+
+&Console_Write_IntltoolHelp if $arg_count > 1;
+
+my $MODULE = $GETTEXT_PACKAGE || FindPackageName() || "unknown";
+
+if ($POT_ARG)
+{
+ &GenerateHeaders;
+ &GeneratePOTemplate;
+}
+elsif ($HEADERS_ARG)
+{
+ &GenerateHeaders;
+}
+elsif ($MAINTAIN_ARG)
+{
+ &FindLeftoutFiles;
+}
+elsif ($REPORT_ARG)
+{
+ &GenerateHeaders;
+ &GeneratePOTemplate;
+ &Console_Write_CoverageReport;
+}
+elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
+{
+ my $lang = $ARGV[0];
+
+ ## Report error if the language file supplied
+ ## to the command line is non-existent
+ &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+ if ! -s "$SRCDIR/$lang.po";
+
+ if (!$DIST_ARG)
+ {
+ print "Working, please wait..." if $VERBOSE;
+ &GenerateHeaders;
+ &GeneratePOTemplate;
+ }
+ &POFile_Update ($lang, $OUTPUT_FILE);
+ &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE);
+}
+else
+{
+ &Console_Write_IntltoolHelp;
+}
+
+exit;
+
+#########
+
+sub Console_Write_IntltoolVersion
+{
+ print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+ exit;
+}
+
+sub Console_Write_IntltoolHelp
+{
+ print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... LANGCODE
+Updates PO template files and merge them with the translations.
+
+Mode of operation (only one is allowed):
+ -p, --pot generate the PO template only
+ -s, --headers generate the header files in POTFILES.in
+ -m, --maintain search for left out files from POTFILES.in
+ -r, --report display a status report for the module
+ -d, --dist merge LANGCODE.po with existing PO template
+
+Extra options:
+ -g, --gettext-package=NAME override PO template name, useful with --pot
+ -o, --output-file=FILE write merged translation to FILE
+ -x, --verbose display lots of feedback
+ --help display this help and exit
+ --version output version information and exit
+
+Examples of use:
+${PROGRAM} --pot just create a new PO template
+${PROGRAM} xy create new PO template and merge xy.po with it
+
+Report bugs to http://bugs.launchpad.net/intltool
+_EOF_
+ exit;
+}
+
+sub echo_n
+{
+ my $str = shift;
+ my $ret = `echo "$str"`;
+
+ $ret =~ s/\n$//; # do we need the "s" flag?
+
+ return $ret;
+}
+
+sub POFile_DetermineType ($)
+{
+ my $type = $_;
+ my $gettext_type;
+
+ my $xml_regex = "(?:" . $xml_support . ")";
+ my $ini_regex = "(?:" . $ini_support . ")";
+ my $tlk_regex = "(?:" . $tlk_support . ")";
+ my $buildin_regex = "(?:" . $buildin_gettext_support . ")";
+
+ if ($type =~ /\[type: gettext\/([^\]].*)]/)
+ {
+ $gettext_type=$1;
+ }
+ elsif ($type =~ /gschema.xml$/)
+ {
+ $gettext_type="gsettings";
+ }
+ elsif ($type =~ /schemas(\.in)+$/)
+ {
+ $gettext_type="schemas";
+ }
+ elsif ($type =~ /glade2?(\.in)*$/)
+ {
+ $gettext_type="glade";
+ }
+ elsif ($type =~ /scm(\.in)*$/)
+ {
+ $gettext_type="scheme";
+ }
+ elsif ($type =~ /keys(\.in)+$/)
+ {
+ $gettext_type="keys";
+ }
+
+ # bucket types
+
+ elsif ($type =~ /$xml_regex$/)
+ {
+ $gettext_type="xml";
+ }
+ elsif ($type =~ /$ini_regex$/)
+ {
+ $gettext_type="ini";
+ }
+ elsif ($type =~ /$tlk_regex$/)
+ {
+ $gettext_type="tlk";
+ }
+ elsif ($type =~ /$buildin_regex$/)
+ {
+ $gettext_type="buildin";
+ }
+ else
+ {
+ $gettext_type="unknown";
+ }
+
+ return "gettext\/$gettext_type";
+}
+
+sub TextFile_DetermineEncoding ($)
+{
+ my $gettext_code="UTF-8"; # All files are UTF-8 by default
+ my $filetype=`file $_ | cut -d ' ' -f 2`;
+
+ if ($? eq "0")
+ {
+ if ($filetype =~ /^(ISO|UTF)/)
+ {
+ chomp ($gettext_code = $filetype);
+ }
+ elsif ($filetype =~ /^XML/)
+ {
+ $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8
+ }
+ }
+
+ return $gettext_code;
+}
+
+sub isNotValidMissing
+{
+ my ($file) = @_;
+ my $package_name = "";
+ my $version = "";
+ $package_name = $varhash{"PACKAGE"} if (defined $varhash{"PACKAGE"});
+ $version = $varhash{"VERSION"} if (defined $varhash{"VERSION"});
+
+ return if $file =~ /^\{arch\}\/.*$/;
+ return if $file =~ /^$package_name-$version\/.*$/;
+}
+
+sub removeFromArray
+{
+ my ($file, @array) = @_;
+
+ my $i = 0;
+ foreach my $potfile (@array) {
+ delete $array[$i] if $potfile =~ m/$file/;
+ $i++;
+ }
+}
+
+sub AddFileToListIfMissing
+{
+ my ($file, $list) = @_;
+
+ my $name_pattern;
+ if ($file =~ /^\.\.\//) {
+ $name_pattern = "x3 A*";
+ } else {
+ $name_pattern = "A*";
+ }
+
+ my $file_name = unpack($name_pattern, $file);
+ if (defined isNotValidMissing ($file_name)) {
+ ## Remove the first 3 chars if needed and add newline
+ push @$list, $file_name . "\n";
+ }
+}
+
+sub FindLeftoutFiles
+{
+ my (@buf_i18n_plain,
+ @buf_i18n_xml,
+ @buf_i18n_xml_unmarked,
+ @buf_i18n_ini,
+ @buf_potfiles,
+ @buf_potfiles_ignore,
+ @buf_allfiles,
+ @buf_allfiles_sorted,
+ @buf_potfiles_sorted,
+ @buf_potfiles_ignore_sorted
+ );
+
+ ## Search and find all translatable files
+ find sub {
+ # Ignore hidden files
+ return if "$File::Find::name" =~ /\/\./;
+ push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/;
+ push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/;
+ push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/;
+ push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+ }, "..";
+ find sub {
+ # Ignore hidden files
+ return if "$File::Find::name" =~ /\/\.[^.]/;
+ push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/;
+ push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/;
+ push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/;
+ push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+ }, "$SRCDIR/.." if "$SRCDIR" ne ".";
+
+ open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n";
+ @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>;
+ close POTFILES;
+
+ foreach (@buf_potfiles) {
+ s/^\[.*]\s*//;
+ }
+
+ print "Searching for missing translatable files...\n" if $VERBOSE;
+
+ ## Check if we should ignore some found files, when
+ ## comparing with POTFILES.in
+ foreach my $ignore ("POTFILES.skip", "POTFILES.ignore")
+ {
+ (-s "$SRCDIR/$ignore") or next;
+
+ if ("$ignore" eq "POTFILES.ignore")
+ {
+ print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n".
+ "content of this file to POTFILES.skip.\n";
+ }
+
+ print "Found $ignore: Ignoring files...\n" if $VERBOSE;
+ open FILE, "<$SRCDIR/$ignore" or die "ERROR: Failed to open $SRCDIR/$ignore!\n";
+
+ while (<FILE>)
+ {
+ next if (/^$/);
+ next if (/^(#|\s*$)/);
+
+ my $skipdir = "../$_";
+ $skipdir = "$SRCDIR/../$_" if "$SRCDIR" ne ".";
+ $skipdir =~ s/\n//g;
+
+ my @dirignored;
+
+ if (-d "$skipdir")
+ {
+ find sub {
+ push @dirignored, "$File::Find::name" if /\.($buildin_gettext_support)$/;
+ push @dirignored, "$File::Find::name" if /\.($xml_support)$/;
+ push @dirignored, "$File::Find::name" if /\.($ini_support)$/;
+ push @dirignored, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+ }, "$skipdir";
+ foreach my $ignored (@dirignored)
+ {
+ $ignored =~ s/^$SRCDIR\///g;
+ $ignored =~ s/^..\///g;
+ $ignored =~ s/$/\n/g;
+
+ removeFromArray ($ignored, @buf_i18n_plain);
+ removeFromArray ($ignored, @buf_i18n_xml);
+ removeFromArray ($ignored, @buf_i18n_ini);
+ removeFromArray ($ignored, @buf_i18n_xml_unmarked);
+ push @buf_potfiles_ignore, $ignored;
+ }
+ next;
+ }
+ removeFromArray ($_, @buf_i18n_plain);
+ removeFromArray ($_, @buf_i18n_xml);
+ removeFromArray ($_, @buf_i18n_ini);
+ removeFromArray ($_, @buf_i18n_xml_unmarked);
+ push @buf_potfiles_ignore, $_;
+ }
+ close FILE;
+
+ @buf_potfiles_ignore_sorted = sort (@buf_potfiles_ignore);
+ }
+
+ foreach my $file (@buf_i18n_plain)
+ {
+ my $in_comment = 0;
+ my $in_macro = 0;
+ my $in_string = 0;
+ my @multiline_quotes;
+ if ($file =~ /\.scm/) {
+ @multiline_quotes = ('"');
+ } else {
+ @multiline_quotes = ("'''", '"""');
+ }
+
+ open FILE, "<$file";
+ while (<FILE>)
+ {
+ if ($file =~ /\.scm/) {
+ # Strip single quotes from .scm files.
+ s-\'--g;
+ }
+
+ # Handle continued multi-line comment.
+ if ($in_comment)
+ {
+ next unless s-.*\*/--;
+ $in_comment = 0;
+ }
+
+ # Handle continued multi-line string.
+ if ($in_string)
+ {
+ my $pattern = join '|', @multiline_quotes;
+ if (!s/.*$pattern//) {
+ s///s;
+ next;
+ };
+ $in_string = 0;
+ }
+
+ # Handle continued macro.
+ if ($in_macro)
+ {
+ $in_macro = 0 unless /\\$/;
+ next;
+ }
+
+ # Handle start of macro (or any preprocessor directive).
+ if (/^\s*\#/)
+ {
+ $in_macro = 1 if /^([^\\]|\\.)*\\$/;
+ next;
+ }
+
+ # Handle comments and quoted text.
+ while (m-(/\*|//|\'\'\'|\"\"\"|\'|\")-) # \' and \" keep emacs perl mode happy
+ {
+ my $match = $1;
+ if ($match eq "/*")
+ {
+ if (!s-/\*.*?\*/--)
+ {
+ s-/\*.*--;
+ $in_comment = 1;
+ }
+ }
+ elsif ($match eq "//")
+ {
+ s-//.*--;
+ }
+ elsif (grep($match, @multiline_quotes))
+ {
+ if (!s-$match(\\$match|[^$match])*$match-QUOTEDTEXT-g)
+ {
+ s-$match.*-QUOTEDTEXT-s;
+ $in_string = 1;
+ }
+ }
+ else # ' or "
+ {
+ s-$match(\\$match|[^$match])*$match-QUOTEDTEXT-g;
+
+ # Handle inline # comments.
+ s/^([^$match]+)\#.*/$1/;
+
+ if (m-$match-)
+ {
+ warn "mismatched quotes at line $. in $file\n";
+ s-$match.*--;
+ }
+ }
+ }
+
+ if (/\w\.GetString *\(QUOTEDTEXT/)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ last;
+ }
+
+ ## C_ N_ NC_ Q_ and _ are the macros defined in gi8n.h
+ if (/(NC_|[NCQ]_|[^_]_|(^|$)[_]) *\(?QUOTEDTEXT/m)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ last;
+ }
+
+ # Check for direct calls to the glib gettext wrappers
+ if (/g_d[np]?gettext[2]? *\(QUOTEDTEXT/)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ last;
+ }
+ }
+ close FILE;
+ }
+
+ foreach my $file (@buf_i18n_xml)
+ {
+ open FILE, "<$file";
+
+ while (<FILE>)
+ {
+ # FIXME: share the pattern matching code with intltool-extract
+ if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ last;
+ }
+ }
+ close FILE;
+ }
+
+ foreach my $file (@buf_i18n_ini)
+ {
+ open FILE, "<$file";
+ while (<FILE>)
+ {
+ if (/_(.*)=/)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ last;
+ }
+ }
+ close FILE;
+ }
+
+ foreach my $file (@buf_i18n_xml_unmarked)
+ {
+ AddFileToListIfMissing($file, \@buf_allfiles);
+ }
+
+
+ @buf_allfiles_sorted = sort (@buf_allfiles);
+ @buf_potfiles_sorted = sort (@buf_potfiles);
+
+ my %in2;
+ foreach (@buf_potfiles_sorted)
+ {
+ s#^$SRCDIR/../##;
+ s#^$SRCDIR/##;
+ $in2{$_} = 1;
+ }
+
+ foreach (@buf_potfiles_ignore_sorted)
+ {
+ s#^$SRCDIR/../##;
+ s#^$SRCDIR/##;
+ $in2{$_} = 1;
+ }
+
+ my @result;
+
+ foreach (@buf_allfiles_sorted)
+ {
+ my $dummy = $_;
+ my $srcdir = $SRCDIR;
+
+ $srcdir =~ s#^../##;
+ $dummy =~ s#^$srcdir/../##;
+ $dummy =~ s#^$srcdir/##;
+ $dummy =~ s#_build/##;
+ if (!exists($in2{$dummy}))
+ {
+ push @result, $dummy
+ }
+ }
+
+ my @buf_potfiles_notexist;
+
+ foreach (@buf_potfiles_sorted)
+ {
+ chomp (my $dummy = $_);
+ if ("$dummy" ne "" and !(-f "$SRCDIR/../$dummy" or -f "../$dummy"))
+ {
+ push @buf_potfiles_notexist, $_;
+ }
+ }
+
+ ## Save file with information about the files missing
+ ## if any, and give information about this procedure.
+ if (@result + @buf_potfiles_notexist > 0)
+ {
+ if (@result)
+ {
+ print "\n" if $VERBOSE;
+ unlink "missing";
+ open OUT, ">missing";
+ print OUT @result;
+ close OUT;
+ warn "The following files contain translations and are currently not in use. Please\n".
+ "consider adding these to the POTFILES.in file, located in the po/ directory.\n\n";
+ print STDERR @result, "\n";
+ warn "If some of these files are left out on purpose then please add them to\n".
+ "POTFILES.skip instead of POTFILES.in. A file 'missing' containing this list\n".
+ "of left out files has been written in the current directory.\n";
+ warn "Please report to ". $varhash{"PACKAGE_BUGREPORT"} ."\n" if (defined $varhash{"PACKAGE_BUGREPORT"});
+ }
+ if (@buf_potfiles_notexist)
+ {
+ unlink "notexist";
+ open OUT, ">notexist";
+ print OUT @buf_potfiles_notexist;
+ close OUT;
+ warn "\n" if ($VERBOSE or @result);
+ warn "The following files do not exist anymore:\n\n";
+ warn @buf_potfiles_notexist, "\n";
+ warn "Please remove them from POTFILES.in. A file 'notexist'\n".
+ "containing this list of absent files has been written in the current directory.\n";
+ warn "Please report to ". $varhash{"PACKAGE_BUGREPORT"} ."\n" if (defined $varhash{"PACKAGE_BUGREPORT"});
+ }
+ }
+
+ ## If there is nothing to complain about, notify the user
+ else {
+ print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE;
+ }
+}
+
+sub Console_WriteError_InvalidOption
+{
+ ## Handle invalid arguments
+ print STDERR "Try `${PROGRAM} --help' for more information.\n";
+ exit 1;
+}
+
+sub isProgramInPath
+{
+ my ($file) = @_;
+ # If a file is executable (or exists on Windows),
+ # or when it returns 0 exit status.
+ return 1 if (
+ ((-x $file) or ($^O eq 'MSWin32' and (-e $file))) or
+ (system("$file --version >$devnull") == 0));
+ return 0;
+}
+
+sub isGNUGettextTool
+{
+ my ($file) = @_;
+ # Check that we are using GNU gettext tools
+ if (isProgramInPath ($file))
+ {
+ my $version = `$file --version`;
+ return 1 if ($version =~ m/.*\(GNU .*\).*/);
+ }
+ return 0;
+}
+
+sub GenerateHeaders
+{
+ my $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} || "intltool-extract";
+
+ ## Generate the .h header files, so we can allow glade and
+ ## xml translation support
+ if (! isProgramInPath ("$EXTRACT"))
+ {
+ print STDERR "\n *** The intltool-extract script wasn't found!"
+ ."\n *** Without it, intltool-update can not generate files.\n";
+ exit;
+ }
+ else
+ {
+ open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n";
+
+ while (<FILE>)
+ {
+ chomp;
+ next if /^\[\s*encoding/;
+
+ ## Find xml files in POTFILES.in and generate the
+ ## files with help from the extract script
+
+ my $gettext_type= &POFile_DetermineType ($1);
+
+ if (/\.($xml_support|$ini_support|$tlk_support)$/ || /^\[/)
+ {
+ s/^\[[^\[].*]\s*//;
+
+ my @cmd = ($EXTRACT, "--update", "--type=$gettext_type",
+ "--srcdir=$SRCDIR");
+
+ unshift (@cmd, $^X) if ($^O eq 'MSWin32' && !($EXTRACT =~ /perl/));
+
+ push (@cmd, "--quiet") if (! $VERBOSE);
+ push (@cmd, "../$_");
+
+ system (@cmd);
+ }
+ }
+ close FILE;
+ }
+}
+
+#
+# Generate .pot file from POTFILES.in
+#
+sub GeneratePOTemplate
+{
+ my $XGETTEXT = $ENV{"XGETTEXT"} || "xgettext";
+ my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
+ chomp $XGETTEXT;
+
+ if (! isGNUGettextTool ("$XGETTEXT"))
+ {
+ print STDERR " *** GNU xgettext is not found on this system!\n".
+ " *** Without it, intltool-update can not extract strings.\n";
+ exit;
+ }
+
+ print "Building $MODULE.pot...\n" if $VERBOSE;
+
+ open INFILE, $POTFILES_in;
+ unlink "POTFILES.in.temp";
+ open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing");
+
+ my $gettext_support_nonascii = 0;
+
+ # checks for GNU gettext >= 0.12
+ my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
+ if ($? == 0)
+ {
+ $gettext_support_nonascii = 1;
+ }
+ else
+ {
+ # require gnu gettext >= 0.12
+ die "$PROGRAM: GNU gettext >= 0.12 is required for intltool\n";
+ }
+
+ my $encoding = "UTF-8";
+ my $forced_gettext_code;
+ my @temp_headers;
+ my $encoding_problem_is_reported = 0;
+
+ while (<INFILE>)
+ {
+ next if (/^#/ or /^\s*$/);
+
+ chomp;
+
+ my $gettext_code;
+
+ if (/^\[\s*encoding:\s*(.*)\s*\]/)
+ {
+ $forced_gettext_code=$1;
+ }
+ elsif (/\.($xml_support|$ini_support|$tlk_support)$/ || /^\[/)
+ {
+ s/^\[.*]\s*//;
+ print OUTFILE "../$_.h\n";
+ push @temp_headers, "../$_.h";
+ $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+ }
+ else
+ {
+ print OUTFILE "$SRCDIR/../$_\n";
+ $gettext_code = &TextFile_DetermineEncoding ("$SRCDIR/../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+ }
+
+ next if (! $gettext_support_nonascii);
+
+ if (defined $forced_gettext_code)
+ {
+ $encoding=$forced_gettext_code;
+ }
+ elsif (defined $gettext_code and "$encoding" ne "$gettext_code")
+ {
+ if ($encoding eq "ASCII")
+ {
+ $encoding=$gettext_code;
+ }
+ elsif ($gettext_code ne "ASCII")
+ {
+ # Only report once because the message is quite long
+ if (! $encoding_problem_is_reported)
+ {
+ print STDERR "WARNING: You should use the same file encoding for all your project files,\n".
+ " but $PROGRAM thinks that most of the source files are in\n".
+ " $encoding encoding, while \"$_\" is (likely) in\n".
+ " $gettext_code encoding. If you are sure that all translatable strings\n".
+ " are in same encoding (say UTF-8), please *prepend* the following\n".
+ " line to POTFILES.in:\n\n".
+ " [encoding: UTF-8]\n\n".
+ " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n".
+ "(such warning message will only be reported once.)\n";
+ $encoding_problem_is_reported = 1;
+ }
+ }
+ }
+ }
+
+ close OUTFILE;
+ close INFILE;
+
+ unlink "$MODULE.pot";
+ my @xgettext_argument=("$XGETTEXT",
+ "--add-comments",
+ "--directory\=.",
+ "--default-domain\=$MODULE",
+ "--flag\=g_strdup_printf:1:c-format",
+ "--flag\=g_string_printf:2:c-format",
+ "--flag\=g_string_append_printf:2:c-format",
+ "--flag\=g_error_new:3:c-format",
+ "--flag\=g_set_error:4:c-format",
+ "--flag\=g_markup_printf_escaped:1:c-format",
+ "--flag\=g_log:3:c-format",
+ "--flag\=g_print:1:c-format",
+ "--flag\=g_printerr:1:c-format",
+ "--flag\=g_printf:1:c-format",
+ "--flag\=g_fprintf:2:c-format",
+ "--flag\=g_sprintf:2:c-format",
+ "--flag\=g_snprintf:3:c-format",
+ "--flag\=g_scanner_error:2:c-format",
+ "--flag\=g_scanner_warn:2:c-format",
+ "--output\=$MODULE\.pot",
+ "--files-from\=\.\/POTFILES\.in\.temp");
+ my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
+ push @xgettext_argument, $XGETTEXT_KEYWORDS;
+ my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress;
+ push @xgettext_argument, "--msgid-bugs-address\=\"$MSGID_BUGS_ADDRESS\"" if $MSGID_BUGS_ADDRESS;
+ push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii);
+ push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS;
+ my $xgettext_command = join ' ', @xgettext_argument;
+
+ # intercept xgettext error message
+ print "Running $xgettext_command\n" if $VERBOSE;
+ my $xgettext_error_msg = `$xgettext_command 2>\&1`;
+ my $command_failed = $?;
+
+ unlink "POTFILES.in.temp";
+
+ print "Removing generated header (.h) files..." if $VERBOSE;
+ unlink foreach (@temp_headers);
+ print "done.\n" if $VERBOSE;
+
+ if (! $command_failed)
+ {
+ if (! -e "$MODULE.pot")
+ {
+ print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE;
+ }
+ else
+ {
+ print "Wrote $MODULE.pot\n" if $VERBOSE;
+ }
+ }
+ else
+ {
+ if ($xgettext_error_msg =~ /--from-code/)
+ {
+ my $errlocation = "unknown";
+
+ if ($xgettext_error_msg =~ /Non-ASCII string at (.*)\..*/)
+ {
+ $errlocation = $1;
+ }
+ print STDERR "ERROR: xgettext failed to generate PO tempalte file because the following \n".
+ " file contains strings marked for translation, not encoded in UTF-8. \n".
+ " Please ensure all strings marked for translation are UTF-8 encoded. \n\n".
+ " $errlocation\n\n";
+ }
+ else
+ {
+ print STDERR "$xgettext_error_msg";
+ if (-e "$MODULE.pot")
+ {
+ # is this possible?
+ print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n".
+ " Please consult error message above if there is any.\n";
+ }
+ else
+ {
+ print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n".
+ " error message above if there is any.\n";
+ }
+ }
+ exit (1);
+ }
+}
+
+sub POFile_Update
+{
+ -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
+
+ my $MSGMERGE = $ENV{"MSGMERGE"} || "msgmerge";
+ my ($lang, $outfile) = @_;
+
+ if (! isGNUGettextTool ("$MSGMERGE"))
+ {
+ print STDERR " *** GNU msgmerge is not found on this system!\n".
+ " *** Without it, intltool-update can not extract strings.\n";
+ exit;
+ }
+
+ print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
+
+ my $infile = "$SRCDIR/$lang.po";
+ $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
+
+ # I think msgmerge won't overwrite old file if merge is not successful
+ system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
+}
+
+sub Console_WriteError_NotExisting
+{
+ my ($file) = @_;
+
+ ## Report error if supplied language file is non-existing
+ print STDERR "$PROGRAM: $file does not exist!\n";
+ print STDERR "Try '$PROGRAM --help' for more information.\n";
+ exit;
+}
+
+sub GatherPOFiles
+{
+ my @po_files = glob ("./*.po");
+
+ @languages = map (&POFile_GetLanguage, @po_files);
+
+ foreach my $lang (@languages)
+ {
+ $po_files_by_lang{$lang} = shift (@po_files);
+ }
+}
+
+sub POFile_GetLanguage ($)
+{
+ s/^(.*\/)?(.+)\.po$/$2/;
+ return $_;
+}
+
+sub Console_Write_TranslationStatus
+{
+ my ($lang, $output_file) = @_;
+ my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt";
+
+ if (! isGNUGettextTool ("$MSGFMT"))
+ {
+ print STDERR " *** GNU msgfmt is not found on this system!\n".
+ " *** Without it, intltool-update can not extract strings.\n";
+ exit;
+ }
+
+ $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
+
+ system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
+}
+
+sub Console_Write_CoverageReport
+{
+ my $MSGFMT = $ENV{"MSGFMT"} || "msgfmt";
+
+ if (! isGNUGettextTool ("$MSGFMT"))
+ {
+ print STDERR " *** GNU msgfmt is not found on this system!\n".
+ " *** Without it, intltool-update can not extract strings.\n";
+ exit;
+ }
+
+ &GatherPOFiles;
+
+ foreach my $lang (@languages)
+ {
+ print STDERR "$lang: ";
+ &POFile_Update ($lang, "");
+ }
+
+ print STDERR "\n\n * Current translation support in $MODULE \n\n";
+
+ foreach my $lang (@languages)
+ {
+ print STDERR "$lang: ";
+ system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
+ }
+}
+
+sub SubstituteVariable
+{
+ my ($str) = @_;
+
+ # always need to rewind file whenever it has been accessed
+ seek (CONF, 0, 0);
+
+ # cache each variable. varhash is global to we can add
+ # variables elsewhere.
+ while (<CONF>)
+ {
+ if (/^(\w+)=(.*)$/)
+ {
+ ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/;
+ }
+ }
+
+ if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
+ {
+ my $rest = $3;
+ my $untouched = $1;
+ my $sub = "";
+ # Ignore recursive definitions of variables
+ $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+
+ return SubstituteVariable ("$untouched$sub$rest");
+ }
+
+ # We're using Perl backticks ` and "echo -n" here in order to
+ # expand any shell escapes (such as backticks themselves) in every variable
+ return echo_n ($str);
+}
+
+sub CONF_Handle_Open
+{
+ my $base_dirname = getcwd();
+ $base_dirname =~ s@.*/@@;
+
+ my ($conf_in, $src_dir);
+
+ if ($base_dirname =~ /^po(-.+)?$/)
+ {
+ if (-f "Makevars")
+ {
+ my $makefile_source;
+
+ local (*IN);
+ open (IN, "<Makevars") || die "can't open Makevars: $!";
+
+ while (<IN>)
+ {
+ if (/^top_builddir[ \t]*=/)
+ {
+ $src_dir = $_;
+ $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+ chomp $src_dir;
+ if (-f "$src_dir" . "/configure.ac") {
+ $conf_in = "$src_dir" . "/configure.ac" . "\n";
+ } else {
+ $conf_in = "$src_dir" . "/configure.in" . "\n";
+ }
+ last;
+ }
+ }
+ close IN;
+
+ $conf_in || die "Cannot find top_builddir in Makevars.";
+ }
+ elsif (-f "$SRCDIR/../configure.ac")
+ {
+ $conf_in = "$SRCDIR/../configure.ac";
+ }
+ elsif (-f "$SRCDIR/../configure.in")
+ {
+ $conf_in = "$SRCDIR/../configure.in";
+ }
+ else
+ {
+ my $makefile_source;
+
+ local (*IN);
+ open (IN, "<Makefile") || return;
+
+ while (<IN>)
+ {
+ if (/^top_srcdir[ \t]*=/)
+ {
+ $src_dir = $_;
+ $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+ chomp $src_dir;
+ $conf_in = "$src_dir" . "/configure.in" . "\n";
+
+ last;
+ }
+ }
+ close IN;
+
+ $conf_in || die "Cannot find top_srcdir in Makefile.";
+ }
+
+ open (CONF, "<$conf_in");
+ }
+ else
+ {
+ print STDERR "$PROGRAM: Unable to proceed.\n" .
+ "Make sure to run this script inside the po directory.\n";
+ exit;
+ }
+}
+
+sub FindPackageName
+{
+ my $version;
+ my $domain = &FindMakevarsDomain;
+ my $name = $domain || "untitled";
+ my $bugurl;
+
+ &CONF_Handle_Open;
+
+ my $conf_source; {
+ local (*IN);
+ open (IN, "<&CONF") || return $name;
+ seek (IN, 0, 0);
+ local $/; # slurp mode
+ $conf_source = <IN>;
+ close IN;
+ }
+
+ # priority for getting package name:
+ # 1. GETTEXT_PACKAGE
+ # 2. first argument of AC_INIT (with >= 2 arguments)
+ # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument)
+
+ # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m
+ # the \s makes this not work, why?
+ if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
+ {
+ ($name, $version) = ($1, $2);
+ $name =~ s/[\[\]\s]//g;
+ $version =~ s/[\[\]\s]//g;
+ $name =~ s/\(+$//g;
+ $version =~ s/\(+$//g;
+
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+ }
+
+ if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m)
+ {
+ ($name, $version) = ($1, $2);
+ $bugurl = $3 if (defined $3);
+
+ # Handle m4_esyscmd
+ # FIXME: We should do this in a more generic way that works for all vars
+ if ($version =~ /m4_esyscmd\([\[]?([^\)\]]+)/)
+ {
+ my $cwd = getcwd ();
+ chdir ("$SRCDIR/..");
+ $version = qx($1);
+ chdir ($cwd);
+ }
+
+
+ $name =~ s/[\[\]\s]//g;
+ $version =~ s/[\[\]\s]//g;
+ $bugurl =~ s/[\[\]\s]//g if (defined $bugurl);
+ $name =~ s/\(+$//g;
+ $version =~ s/\(+$//g;
+ $bugurl =~ s/\(+$//g if (defined $bugurl);
+
+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+ $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+ $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+ $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/);
+ }
+
+ # \s makes this not work, why?
+ $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m;
+
+ # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value
+ # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables.
+ $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g;
+
+ $name = $domain if $domain;
+
+ $name = SubstituteVariable ($name);
+ $name =~ s/^["'](.*)["']$/$1/;
+
+ return $name if $name;
+}
+
+
+sub FindPOTKeywords
+{
+
+ my $keywords = "--keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=Q_ --keyword=g_dgettext:2 --keyword=g_dngettext:2,3 --keyword=g_dpgettext:2 --keyword=g_dpgettext2=2c,3";
+ my $varname = "XGETTEXT_OPTIONS";
+ my $make_source; {
+ local (*IN);
+ open (IN, "<Makevars") || (open(IN, "<Makefile.in.in") && ($varname = "XGETTEXT_KEYWORDS")) || return $keywords;
+ seek (IN, 0, 0);
+ local $/; # slurp mode
+ $make_source = <IN>;
+ close IN;
+ }
+
+ # unwrap lines split with a trailing \
+ $make_source =~ s/\\ $ \n/ /mxg;
+ $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m;
+
+ return $keywords;
+}
+
+sub FindMakevarsDomain
+{
+
+ my $domain = "";
+ my $makevars_source; {
+ local (*IN);
+ open (IN, "<Makevars") || return $domain;
+ seek (IN, 0, 0);
+ local $/; # slurp mode
+ $makevars_source = <IN>;
+ close IN;
+ }
+
+ $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m;
+ $domain =~ s/^\s+//;
+ $domain =~ s/\s+$//;
+
+ return $domain;
+}
+
+sub FindMakevarsBugAddress
+{
+
+ my $address = "";
+ my $makevars_source; {
+ local (*IN);
+ open (IN, "<Makevars") || return undef;
+ seek (IN, 0, 0);
+ local $/; # slurp mode
+ $makevars_source = <IN>;
+ close IN;
+ }
+
+ $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m;
+ $address =~ s/^\s+//;
+ $address =~ s/\s+$//;
+
+ return $address;
+}
diff --git a/gtk+-mingw/bin/intltoolize b/gtk+-mingw/bin/intltoolize
new file mode 100644
index 0000000..7b14755
--- /dev/null
+++ b/gtk+-mingw/bin/intltoolize
@@ -0,0 +1,259 @@
+#! /bin/sh
+# intltoolize - Prepare a package to use intltool.
+# intltoolize. Generated from intltoolize.in by configure.
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Copyright (C) 2001 Eazel, Inc.
+#
+# Originally based on libtoolize by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# Modified for xml-i18n-tools by Maciej Stachowiak <mjs@noisehavoc.org>
+#
+# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# The name of this program.
+progname=`echo "$0" | sed 's%^.*/%%'`
+
+# Constants.
+PROGRAM=intltoolize
+PACKAGE=intltool
+VERSION=0.50.2
+
+# Directory names.
+prefix=/MinGW
+
+case "`uname`" in
+MINGW32*)
+ # Assume intltoolize is in $prefix/bin. Strip off the script name and the "bin"
+ prefix=`dirname $0`
+ prefix=`dirname $prefix`
+ ;;
+esac
+
+datarootdir=${prefix}/share
+datadir=${datarootdir}
+pkgdatadir=${datadir}/intltool
+
+aclocaldir=${datadir}/aclocal
+intltool_m4="${aclocaldir}/intltool.m4"
+
+dry_run=no
+help="Try '$progname --help' for more information."
+rm="rm -f"
+rm_rec="rm -rf"
+ln_s="ln -s"
+cp="cp -f"
+mkdir="mkdir"
+mkinstalldirs="mkinstalldirs"
+
+# Global variables.
+automake=
+copy=
+force=
+status=0
+
+for arg
+do
+ case "$arg" in
+ --help)
+ cat <<EOF
+Usage: $progname [OPTION]...
+
+Prepare a package to use intltool.
+
+ --automake work silently, and assume that Automake is in use
+-c, --copy copy files rather than symlinking them
+ --debug enable verbose shell tracing
+-n, --dry-run print commands rather than running them
+-f, --force replace existing files
+ --help display this message and exit
+ --version print version information and exit
+
+You must 'cd' to the top directory of your package before you run
+'$progname'.
+EOF
+ exit 0
+ ;;
+
+ --version)
+ echo "$PROGRAM (GNU $PACKAGE) $VERSION"
+ exit 0
+ ;;
+
+ --automake)
+ automake=yes
+ ;;
+
+ -c | --copy)
+ ln_s=
+ ;;
+
+ --debug)
+ echo "$progname: enabling shell trace mode"
+ set -x
+ ;;
+
+ -n | --dry-run)
+ if test "$dry_run" != yes; then
+ dry_run=yes
+ rm="echo $rm"
+ rm_rec="echo $rm_rec"
+ test -n "$ln_s" && ln_s="echo $ln_s"
+ cp="echo $cp"
+ mkdir="echo mkdir"
+ mkinstalldirs="echo $mkinstalldirs"
+ fi
+ ;;
+
+ -f | --force)
+ force=yes
+ ;;
+
+ -*)
+ echo "$progname: unrecognized option '$arg'" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ ;;
+
+ *)
+ echo "$progname: too many arguments" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ ;;
+ esac
+done
+
+if test -f configure.ac; then
+ configure="configure.ac"
+else
+ if test -f configure.in; then
+ configure="configure.in"
+ else
+ echo "$progname: neither 'configure.ac' nor 'configure.in' exists" 1>&2
+ echo "$help" 1>&2
+ exit 1
+ fi
+fi
+
+
+files='po/Makefile.in.in'
+
+if test -z "$automake"; then
+ if egrep '^(AC|IT)_PROG_INTLTOOL' $configure >/dev/null 2>&1; then :
+ else
+ echo "ERROR: 'IT_PROG_INTLTOOL' must appear in $configure for intltool to work."
+ exit 1
+ fi
+
+ if grep 'generated automatically by aclocal' aclocal.m4 >/dev/null 2>&1; then
+ updatemsg="update your 'aclocal.m4' by running aclocal"
+ else
+ updatemsg="add the contents of '$intltool_m4' to 'aclocal.m4'"
+ fi
+
+ if egrep '^AC_DEFUN\(\[IT_PROG_INTLTOOL\]' aclocal.m4 >/dev/null 2>&1; then
+ # Check the version number on intltool.m4 and the one used in aclocal.m4.
+ instserial=`grep '^# serial ' $intltool_m4 | grep 'IT_PROG_INTLTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
+
+ if test -z "$instserial"; then
+ echo "$progname: warning: no serial number on '$intltool_m4'" 1>&2
+ else
+ # If the local macro has no serial number, we assume it's ancient.
+ localserial=`grep '^# serial ' aclocal.m4 | grep 'IT_PROG_INTLTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
+
+ test -z "$localserial" && localserial=0
+
+ if test "$localserial" -lt "$instserial"; then
+ echo "You should $updatemsg."
+ elif test "$localserial" -gt "$instserial"; then
+ echo "$progname: '$intltool_m4' is serial $instserial, less than $localserial in 'aclocal.m4'" 1>&2
+ if test -z "$force"; then
+ echo "Use '--force' to replace newer intltool files with this version." 1>&2
+ exit 1
+ fi
+ echo "To remain compatible, you should $updatemsg."
+ fi
+ fi
+ else
+ echo "You should $updatemsg."
+ fi
+fi
+
+
+# Copy or symlink the Makefile.in.in
+(
+for file in $files; do
+ if test -f "$file" && test -z "$force"; then
+ test -z "$automake" && echo "$progname: '$file' exists: use '--force' to overwrite" 1>&2
+ continue
+ fi
+
+ $rm $file
+ if test -n "$ln_s" && $ln_s $pkgdatadir/`basename $file` $file; then :
+ elif $cp $pkgdatadir/`basename $file` $file; then :
+ else
+ echo "$progname: cannot copy '$pkgdatadir/`basename $file`' to '$file'" 1>&2
+ status=1
+ fi
+# Touch script names for backward compatibility
+ for script in intltool-extract.in intltool-merge.in intltool-update.in; do
+ # Always remove the script files now
+ rm -f $script
+ if egrep $script Makefile.am >/dev/null 2>&1; then
+ touch $script
+ fi
+ done
+done
+
+exit $status
+# make sure this subshell exits with the exit value if it failed
+) || exit $?
+
+
+# If the AC_CONFIG_MACRO_DIR() macro is used, copy intltool.m4 from our
+# prefix to that directory. This makes sure that the M4 macro used
+# matches the intltool scripts we install.
+# If AC_CONFIG_MACRO_DIR is not used, things will behave as before (aclocal
+# will be used to pull in the macro.
+m4dir=`cat "$configure" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
+if test -n "$m4dir"; then
+ rm -f $m4dir/intltool.m4
+ if test -n "$ln_s" && $ln_s $intltool_m4 $m4dir/intltool.m4; then :
+ elif $cp $intltool_m4 $m4dir/intltool.m4; then :
+ else
+ echo "$progname: cannot copy '$intltool_m4' to '$m4dir/intltool.m4'" 1>&2
+ exit 1
+ fi
+fi
+
+
+# FIXME: This probably does not work w/ builddir != srcdir because it
+# gets at source files relative to the current directory.
+
+grep INTLTOOL_MAKEFILE po/Makefile.in.in >/dev/null || {
+ echo "$progname: 'po/Makefile.in.in' is out of date: use '--force' to overwrite"
+ exit 1
+}
+
+exit $status
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/gtk+-mingw/bin/jbgtopbm.exe b/gtk+-mingw/bin/jbgtopbm.exe
new file mode 100644
index 0000000..e84de0a
--- /dev/null
+++ b/gtk+-mingw/bin/jbgtopbm.exe
Binary files differ
diff --git a/gtk+-mingw/bin/jbgtopbm85.exe b/gtk+-mingw/bin/jbgtopbm85.exe
new file mode 100644
index 0000000..55036ea
--- /dev/null
+++ b/gtk+-mingw/bin/jbgtopbm85.exe
Binary files differ
diff --git a/gtk+-mingw/bin/jpegtran.exe b/gtk+-mingw/bin/jpegtran.exe
new file mode 100644
index 0000000..649c45c
--- /dev/null
+++ b/gtk+-mingw/bin/jpegtran.exe
Binary files differ
diff --git a/gtk+-mingw/bin/libasprintf-0.dll b/gtk+-mingw/bin/libasprintf-0.dll
new file mode 100644
index 0000000..48d12e0
--- /dev/null
+++ b/gtk+-mingw/bin/libasprintf-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libatk-1.0-0.dll b/gtk+-mingw/bin/libatk-1.0-0.dll
new file mode 100644
index 0000000..4fa90ad
--- /dev/null
+++ b/gtk+-mingw/bin/libatk-1.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libcairo-2.dll b/gtk+-mingw/bin/libcairo-2.dll
new file mode 100644
index 0000000..a78cd59
--- /dev/null
+++ b/gtk+-mingw/bin/libcairo-2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libcairo-gobject-2.dll b/gtk+-mingw/bin/libcairo-gobject-2.dll
new file mode 100644
index 0000000..557ea62
--- /dev/null
+++ b/gtk+-mingw/bin/libcairo-gobject-2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libcairo-script-interpreter-2.dll b/gtk+-mingw/bin/libcairo-script-interpreter-2.dll
new file mode 100644
index 0000000..cd274a9
--- /dev/null
+++ b/gtk+-mingw/bin/libcairo-script-interpreter-2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libcharset-1.dll b/gtk+-mingw/bin/libcharset-1.dll
new file mode 100644
index 0000000..fe354ef
--- /dev/null
+++ b/gtk+-mingw/bin/libcharset-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libdl.dll b/gtk+-mingw/bin/libdl.dll
new file mode 100644
index 0000000..aba13a0
--- /dev/null
+++ b/gtk+-mingw/bin/libdl.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libexpat-1.dll b/gtk+-mingw/bin/libexpat-1.dll
new file mode 100644
index 0000000..08ef66c
--- /dev/null
+++ b/gtk+-mingw/bin/libexpat-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libffi-6.dll b/gtk+-mingw/bin/libffi-6.dll
new file mode 100644
index 0000000..171ff43
--- /dev/null
+++ b/gtk+-mingw/bin/libffi-6.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libfontconfig-1.dll b/gtk+-mingw/bin/libfontconfig-1.dll
new file mode 100644
index 0000000..b147b38
--- /dev/null
+++ b/gtk+-mingw/bin/libfontconfig-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libfreetype-6.dll b/gtk+-mingw/bin/libfreetype-6.dll
new file mode 100644
index 0000000..5f85463
--- /dev/null
+++ b/gtk+-mingw/bin/libfreetype-6.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgailutil-3-0.dll b/gtk+-mingw/bin/libgailutil-3-0.dll
new file mode 100644
index 0000000..6dcece7
--- /dev/null
+++ b/gtk+-mingw/bin/libgailutil-3-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgdk-3-0.dll b/gtk+-mingw/bin/libgdk-3-0.dll
new file mode 100644
index 0000000..0277aac
--- /dev/null
+++ b/gtk+-mingw/bin/libgdk-3-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgdk_pixbuf-2.0-0.dll b/gtk+-mingw/bin/libgdk_pixbuf-2.0-0.dll
new file mode 100644
index 0000000..4c69ea8
--- /dev/null
+++ b/gtk+-mingw/bin/libgdk_pixbuf-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgettextlib-0-18-1.dll b/gtk+-mingw/bin/libgettextlib-0-18-1.dll
new file mode 100644
index 0000000..315b8be
--- /dev/null
+++ b/gtk+-mingw/bin/libgettextlib-0-18-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgettextpo-0.dll b/gtk+-mingw/bin/libgettextpo-0.dll
new file mode 100644
index 0000000..de07735
--- /dev/null
+++ b/gtk+-mingw/bin/libgettextpo-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgettextsrc-0-18-1.dll b/gtk+-mingw/bin/libgettextsrc-0-18-1.dll
new file mode 100644
index 0000000..317d42c
--- /dev/null
+++ b/gtk+-mingw/bin/libgettextsrc-0-18-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgio-2.0-0.dll b/gtk+-mingw/bin/libgio-2.0-0.dll
new file mode 100644
index 0000000..7e77794
--- /dev/null
+++ b/gtk+-mingw/bin/libgio-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libglib-2.0-0.dll b/gtk+-mingw/bin/libglib-2.0-0.dll
new file mode 100644
index 0000000..c88c2e2
--- /dev/null
+++ b/gtk+-mingw/bin/libglib-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libglut-0.dll b/gtk+-mingw/bin/libglut-0.dll
new file mode 100644
index 0000000..605a251
--- /dev/null
+++ b/gtk+-mingw/bin/libglut-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgmodule-2.0-0.dll b/gtk+-mingw/bin/libgmodule-2.0-0.dll
new file mode 100644
index 0000000..2b80711
--- /dev/null
+++ b/gtk+-mingw/bin/libgmodule-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgnurx-0.dll b/gtk+-mingw/bin/libgnurx-0.dll
new file mode 100644
index 0000000..7fd9240
--- /dev/null
+++ b/gtk+-mingw/bin/libgnurx-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgobject-2.0-0.dll b/gtk+-mingw/bin/libgobject-2.0-0.dll
new file mode 100644
index 0000000..17f5c93
--- /dev/null
+++ b/gtk+-mingw/bin/libgobject-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgthread-2.0-0.dll b/gtk+-mingw/bin/libgthread-2.0-0.dll
new file mode 100644
index 0000000..75d67ac
--- /dev/null
+++ b/gtk+-mingw/bin/libgthread-2.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libgtk-3-0.dll b/gtk+-mingw/bin/libgtk-3-0.dll
new file mode 100644
index 0000000..73762ac
--- /dev/null
+++ b/gtk+-mingw/bin/libgtk-3-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libiconv-2.dll b/gtk+-mingw/bin/libiconv-2.dll
new file mode 100644
index 0000000..1ceb4ce
--- /dev/null
+++ b/gtk+-mingw/bin/libiconv-2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libintl-8.dll b/gtk+-mingw/bin/libintl-8.dll
new file mode 100644
index 0000000..313c2aa
--- /dev/null
+++ b/gtk+-mingw/bin/libintl-8.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libjpeg-8.dll b/gtk+-mingw/bin/libjpeg-8.dll
new file mode 100644
index 0000000..ccc2075
--- /dev/null
+++ b/gtk+-mingw/bin/libjpeg-8.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libltdl-7.dll b/gtk+-mingw/bin/libltdl-7.dll
new file mode 100644
index 0000000..50d58b4
--- /dev/null
+++ b/gtk+-mingw/bin/libltdl-7.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpango-1.0-0.dll b/gtk+-mingw/bin/libpango-1.0-0.dll
new file mode 100644
index 0000000..f15d225
--- /dev/null
+++ b/gtk+-mingw/bin/libpango-1.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpangocairo-1.0-0.dll b/gtk+-mingw/bin/libpangocairo-1.0-0.dll
new file mode 100644
index 0000000..4853c76
--- /dev/null
+++ b/gtk+-mingw/bin/libpangocairo-1.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpangoft2-1.0-0.dll b/gtk+-mingw/bin/libpangoft2-1.0-0.dll
new file mode 100644
index 0000000..8004dc0
--- /dev/null
+++ b/gtk+-mingw/bin/libpangoft2-1.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpangowin32-1.0-0.dll b/gtk+-mingw/bin/libpangowin32-1.0-0.dll
new file mode 100644
index 0000000..e7fabed
--- /dev/null
+++ b/gtk+-mingw/bin/libpangowin32-1.0-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpcre-1.dll b/gtk+-mingw/bin/libpcre-1.dll
new file mode 100644
index 0000000..9e5a2e5
--- /dev/null
+++ b/gtk+-mingw/bin/libpcre-1.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpcrecpp-0.dll b/gtk+-mingw/bin/libpcrecpp-0.dll
new file mode 100644
index 0000000..17cadf4
--- /dev/null
+++ b/gtk+-mingw/bin/libpcrecpp-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpcreposix-0.dll b/gtk+-mingw/bin/libpcreposix-0.dll
new file mode 100644
index 0000000..21beba9
--- /dev/null
+++ b/gtk+-mingw/bin/libpcreposix-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpixman-1-0.dll b/gtk+-mingw/bin/libpixman-1-0.dll
new file mode 100644
index 0000000..668ba5d
--- /dev/null
+++ b/gtk+-mingw/bin/libpixman-1-0.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpng-config b/gtk+-mingw/bin/libpng-config
new file mode 100644
index 0000000..d4a9e19
--- /dev/null
+++ b/gtk+-mingw/bin/libpng-config
@@ -0,0 +1,127 @@
+#! /bin/sh
+
+# libpng-config
+# provides configuration info for libpng.
+
+# Copyright (C) 2002, 2004, 2006, 2007 Glenn Randers-Pehrson
+
+# This code is released under the libpng license.
+# For conditions of distribution and use, see the disclaimer
+# and license in png.h
+
+# Modeled after libxml-config.
+
+version="1.5.12"
+prefix="/MinGW"
+exec_prefix="${prefix}"
+libdir="${exec_prefix}/lib"
+includedir="${prefix}/include/libpng15"
+libs="-lpng15"
+all_libs="-lpng15 -lz "
+I_opts="-I${includedir}"
+L_opts="-L${libdir}"
+R_opts=""
+cppflags=""
+ccopts=""
+ldopts=""
+
+usage()
+{
+ cat <<EOF
+Usage: $0 [OPTION] ...
+
+Known values for OPTION are:
+
+ --prefix print libpng prefix
+ --libdir print path to directory containing library
+ --libs print library linking information
+ --ccopts print compiler options
+ --cppflags print pre-processor flags
+ --cflags print preprocessor flags, I_opts, and compiler options
+ --I_opts print "-I" include options
+ --L_opts print linker "-L" flags for dynamic linking
+ --R_opts print dynamic linker "-R" or "-rpath" flags
+ --ldopts print linker options
+ --ldflags print linker flags (ldopts, L_opts, R_opts, and libs)
+ --static revise subsequent outputs for static linking
+ --help print this help and exit
+ --version print version information
+EOF
+
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1
+fi
+
+while test $# -gt 0; do
+ case "$1" in
+
+ --prefix)
+ echo ${prefix}
+ ;;
+
+ --version)
+ echo ${version}
+ exit 0
+ ;;
+
+ --help)
+ usage 0
+ ;;
+
+ --ccopts)
+ echo ${ccopts}
+ ;;
+
+ --cppflags)
+ echo ${cppflags}
+ ;;
+
+ --cflags)
+ echo ${I_opts} ${cppflags} ${ccopts}
+ ;;
+
+ --libdir)
+ echo ${libdir}
+ ;;
+
+ --libs)
+ echo ${libs}
+ ;;
+
+ --I_opts)
+ echo ${I_opts}
+ ;;
+
+ --L_opts)
+ echo ${L_opts}
+ ;;
+
+ --R_opts)
+ echo ${R_opts}
+ ;;
+
+ --ldopts)
+ echo ${ldopts}
+ ;;
+
+ --ldflags)
+ echo ${ldopts} ${L_opts} ${R_opts} ${libs}
+ ;;
+
+ --static)
+ R_opts=""
+ libs=${all_libs}
+ ;;
+
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+exit 0
diff --git a/gtk+-mingw/bin/libpng15-15.dll b/gtk+-mingw/bin/libpng15-15.dll
new file mode 100644
index 0000000..5416532
--- /dev/null
+++ b/gtk+-mingw/bin/libpng15-15.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libpng15-config b/gtk+-mingw/bin/libpng15-config
new file mode 100644
index 0000000..d4a9e19
--- /dev/null
+++ b/gtk+-mingw/bin/libpng15-config
@@ -0,0 +1,127 @@
+#! /bin/sh
+
+# libpng-config
+# provides configuration info for libpng.
+
+# Copyright (C) 2002, 2004, 2006, 2007 Glenn Randers-Pehrson
+
+# This code is released under the libpng license.
+# For conditions of distribution and use, see the disclaimer
+# and license in png.h
+
+# Modeled after libxml-config.
+
+version="1.5.12"
+prefix="/MinGW"
+exec_prefix="${prefix}"
+libdir="${exec_prefix}/lib"
+includedir="${prefix}/include/libpng15"
+libs="-lpng15"
+all_libs="-lpng15 -lz "
+I_opts="-I${includedir}"
+L_opts="-L${libdir}"
+R_opts=""
+cppflags=""
+ccopts=""
+ldopts=""
+
+usage()
+{
+ cat <<EOF
+Usage: $0 [OPTION] ...
+
+Known values for OPTION are:
+
+ --prefix print libpng prefix
+ --libdir print path to directory containing library
+ --libs print library linking information
+ --ccopts print compiler options
+ --cppflags print pre-processor flags
+ --cflags print preprocessor flags, I_opts, and compiler options
+ --I_opts print "-I" include options
+ --L_opts print linker "-L" flags for dynamic linking
+ --R_opts print dynamic linker "-R" or "-rpath" flags
+ --ldopts print linker options
+ --ldflags print linker flags (ldopts, L_opts, R_opts, and libs)
+ --static revise subsequent outputs for static linking
+ --help print this help and exit
+ --version print version information
+EOF
+
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1
+fi
+
+while test $# -gt 0; do
+ case "$1" in
+
+ --prefix)
+ echo ${prefix}
+ ;;
+
+ --version)
+ echo ${version}
+ exit 0
+ ;;
+
+ --help)
+ usage 0
+ ;;
+
+ --ccopts)
+ echo ${ccopts}
+ ;;
+
+ --cppflags)
+ echo ${cppflags}
+ ;;
+
+ --cflags)
+ echo ${I_opts} ${cppflags} ${ccopts}
+ ;;
+
+ --libdir)
+ echo ${libdir}
+ ;;
+
+ --libs)
+ echo ${libs}
+ ;;
+
+ --I_opts)
+ echo ${I_opts}
+ ;;
+
+ --L_opts)
+ echo ${L_opts}
+ ;;
+
+ --R_opts)
+ echo ${R_opts}
+ ;;
+
+ --ldopts)
+ echo ${ldopts}
+ ;;
+
+ --ldflags)
+ echo ${ldopts} ${L_opts} ${R_opts} ${libs}
+ ;;
+
+ --static)
+ R_opts=""
+ libs=${all_libs}
+ ;;
+
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+exit 0
diff --git a/gtk+-mingw/bin/libtiff-4.dll b/gtk+-mingw/bin/libtiff-4.dll
new file mode 100644
index 0000000..6962802
--- /dev/null
+++ b/gtk+-mingw/bin/libtiff-4.dll
Binary files differ
diff --git a/gtk+-mingw/bin/libtool b/gtk+-mingw/bin/libtool
new file mode 100644
index 0000000..acd9eb7
--- /dev/null
+++ b/gtk+-mingw/bin/libtool
@@ -0,0 +1,11019 @@
+#! /bin/sh
+
+# libtool - Provide generalized library-building support services.
+# Generated automatically by config.status (libtool) 2.4.2
+# Libtool was configured on host äøá-PC:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX F77 FC GO GCJ RC "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=2.4.2
+macro_revision=1.3337
+
+# Assembler program.
+AS="as"
+
+# DLL creation program.
+DLLTOOL="dlltool"
+
+# Object dumper program.
+OBJDUMP="objdump"
+
+# Whether or not to build shared libraries.
+build_libtool_libs=yes
+
+# Whether or not to build static libraries.
+build_old_libs=yes
+
+# What type of objects to build.
+pic_mode=default
+
+# Whether or not to optimize for fast installation.
+fast_install=needless
+
+# Shell to use when invoking shell scripts.
+SHELL="/bin/sh"
+
+# An echo program that protects backslashes.
+ECHO="printf %s\\n"
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=":"
+
+# The host system.
+host_alias=
+host=i686-pc-mingw32
+host_os=mingw32
+
+# The build system.
+build_alias=
+build=i686-pc-mingw32
+build_os=mingw32
+
+# A sed program that does not truncate output.
+SED="/bin/sed"
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP="/bin/grep"
+
+# An ERE matcher.
+EGREP="/bin/grep -E"
+
+# A literal string matcher.
+FGREP="/bin/grep -F"
+
+# A BSD- or MS-compatible name lister.
+NM="/mingw/bin/nm"
+
+# Whether we need soft or hard links.
+LN_S="cp -p"
+
+# What is the maximum length of a command?
+max_cmd_len=8192
+
+# Object file suffix (normally "o").
+objext=o
+
+# Executable file suffix (normally "").
+exeext=
+
+# whether the shell understands "unset".
+lt_unset=unset
+
+# turn spaces into newlines.
+SP2NL="tr \\040 \\012"
+
+# turn newlines into spaces.
+NL2SP="tr \\015\\012 \\040\\040"
+
+# convert $build file names to $host format.
+to_host_file_cmd=func_convert_file_msys_to_w32
+
+# convert $build files to toolchain format.
+to_tool_file_cmd=func_convert_file_msys_to_w32
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method="file_magic ^x86 archive import|^x86 DLL"
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd="func_win32_libid"
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=""
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob="yes"
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd="func_cygming_dll_for_implib"
+
+# The archiver.
+AR="ar"
+
+# Flags to create an archive.
+AR_FLAGS="cru"
+
+# How to feed a file listing to the archiver.
+archiver_list_spec="@"
+
+# A symbol stripping program.
+STRIP="strip"
+
+# Commands used to install an old-style archive.
+RANLIB="ranlib"
+old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib"
+old_postuninstall_cmds=""
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=no
+
+# A C compiler.
+LTCC="gcc"
+
+# LTCC compiler flags.
+LTCFLAGS="-g -O2"
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*_\\([_A-Za-z][_A-Za-z0-9]*\\)\\{0,1\\}\$/\\1 _\\2 \\2/p' | sed '/ __gnu_lto/d'"
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p'"
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\)[ ]*\$/ {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/ {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/ {\"lib\\2\", (void *) \\&\\2},/p'"
+
+# Specify filename containing input files for $NM.
+nm_file_list_spec="@"
+
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=
+
+# The name of the directory that contains temporary libtool files.
+objdir=.libs
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=file
+
+# Must we lock files when doing compilation?
+need_locks="no"
+
+# Manifest tool.
+MANIFEST_TOOL=":"
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=""
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=""
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=""
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=""
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=""
+
+# Old archive suffix (normally "a").
+libext=a
+
+# Shared library suffix (normally ".so").
+shrext_cmds=".dll"
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=""
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink="PATH PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=no
+
+# Do we need a version for libraries?
+need_version=no
+
+# Library versioning type.
+version_type=windows
+
+# Shared library runtime path variable.
+runpath_var=LD_RUN_PATH
+
+# Shared library path variable.
+shlibpath_var=PATH
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=yes
+
+# Format of library name prefix.
+libname_spec="lib\$name"
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec="\$libname.dll.a"
+
+# The coded name of the library, if different from the real name.
+soname_spec="\${libname}\`echo \${release} | \$SED -e s/[.]/-/g\`\${versuffix}\${shared_ext}"
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=""
+
+# Command to use after installation of a shared archive.
+postinstall_cmds="base_file=\\\`basename \\\${file}\\\`~
+ dlpath=\\\`\$SHELL 2>&1 -c '. \$dir/'\\\${base_file}'i; echo \\\$dlname'\\\`~
+ dldir=\$destdir/\\\`dirname \\\$dlpath\\\`~
+ test -d \\\$dldir || mkdir -p \\\$dldir~
+ \$install_prog \$dir/\$dlname \\\$dldir/\$dlname~
+ chmod a+x \\\$dldir/\$dlname~
+ if test -n '\$stripme' && test -n '\$striplib'; then
+ eval '\$striplib \\\$dldir/\$dlname' || exit \\\$?;
+ fi"
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds="dldll=\\\`\$SHELL 2>&1 -c '. \$file; echo \\\$dlname'\\\`~
+ dlpath=\$dir/\\\$dldll~
+ \$RM \\\$dlpath"
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=""
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=""
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=no
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec="c:/mingw/lib/gcc/mingw32/4.6.2 c:/mingw/lib/gcc c:/mingw/mingw32/lib c:/mingw/lib /mingw/lib "
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+# Whether dlopen is supported.
+dlopen_support=yes
+
+# Whether dlopen of programs is supported.
+dlopen_self=unknown
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=unknown
+
+# Commands to strip libraries.
+old_striplib="strip --strip-debug"
+striplib="strip --strip-unneeded"
+
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="gcc"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -DDLL_EXPORT -DPIC"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=yes
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=yes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-all-symbols"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+archive_expsym_cmds="if test \\\"x\\\`\$SED 1q \$export_symbols\\\`\\\" = xEXPORTS; then
+ cp \$export_symbols \$output_objdir/\$soname.def;
+ else
+ echo EXPORTS > \$output_objdir/\$soname.def;
+ cat \$export_symbols >> \$output_objdir/\$soname.def;
+ fi~
+ \$CC -shared \$output_objdir/\$soname.def \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="unsupported"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="-L\$libdir"
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=unknown
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/s/.*[ ]\\\\([^ ]*\\\\)/\\\\1 DATA/;s/^.*[ ]__nm__\\\\([^ ]*\\\\)[ ][^ ]*/\\\\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL CONFIG
+
+
+# libtool (GNU libtool) 2.4.2
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+# --config show all configuration variables
+# --debug enable verbose shell tracing
+# -n, --dry-run display commands without modifying any files
+# --features display basic configuration information and exit
+# --mode=MODE use operation mode MODE
+# --preserve-dup-deps don't remove duplicate dependency libraries
+# --quiet, --silent don't print informational messages
+# --no-quiet, --no-silent
+# print informational messages (default)
+# --no-warn don't display warning messages
+# --tag=TAG use configuration variables from tag TAG
+# -v, --verbose print more informational messages than default
+# --no-verbose don't print the extra informational messages
+# --version print version information
+# -h, --help, --help-all print short, long, or detailed help message
+#
+# MODE must be one of the following:
+#
+# clean remove files from the build directory
+# compile compile a source file into a libtool object
+# execute automatically set library path, then run a program
+# finish complete the installation of libtool libraries
+# install install libraries or executables
+# link create a library or an executable
+# uninstall remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE. When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+# host-triplet: $host
+# shell: $SHELL
+# compiler: $LTCC
+# compiler flags: $LTCFLAGS
+# linker: $LD (gnu? $with_gnu_ld)
+# $progname: (GNU libtool) 2.4.2
+# automake: $automake_version
+# autoconf: $autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4.2
+TIMESTAMP=""
+package_revision=1.3337
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs 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
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# NLS nuisances: We save the old values to restore during execute mode.
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test \"\${$lt_var+set}\" = set; then
+ save_$lt_var=\$$lt_var
+ $lt_var=C
+ export $lt_var
+ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+ fi"
+done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
+
+$lt_unset CDPATH
+
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+
+
+: ${CP="cp -f"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+} # Extended-shell func_dirname implementation
+
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+} # Extended-shell func_basename implementation
+
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+} # Extended-shell func_dirname_and_basename implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+} # Extended-shell func_stripname implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+ s@/\./@/@g
+ t dotsl
+ s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+# value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+ # Start from root dir and reassemble the path.
+ func_normal_abspath_result=
+ func_normal_abspath_tpath=$1
+ func_normal_abspath_altnamespace=
+ case $func_normal_abspath_tpath in
+ "")
+ # Empty path, that just means $cwd.
+ func_stripname '' '/' "`pwd`"
+ func_normal_abspath_result=$func_stripname_result
+ return
+ ;;
+ # The next three entries are used to spot a run of precisely
+ # two leading slashes without using negated character classes;
+ # we take advantage of case's first-match behaviour.
+ ///*)
+ # Unusual form of absolute path, do nothing.
+ ;;
+ //*)
+ # Not necessarily an ordinary path; POSIX reserves leading '//'
+ # and for example Cygwin uses it to access remote file shares
+ # over CIFS/SMB, so we conserve a leading double slash if found.
+ func_normal_abspath_altnamespace=/
+ ;;
+ /*)
+ # Absolute path, do nothing.
+ ;;
+ *)
+ # Relative path, prepend $cwd.
+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+ ;;
+ esac
+ # Cancel out all the simple stuff to save iterations. We also want
+ # the path to end with a slash for ease of parsing, so make sure
+ # there is one (and only one) here.
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+ while :; do
+ # Processed it all yet?
+ if test "$func_normal_abspath_tpath" = / ; then
+ # If we ascended to the root using ".." the result may be empty now.
+ if test -z "$func_normal_abspath_result" ; then
+ func_normal_abspath_result=/
+ fi
+ break
+ fi
+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcar"`
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcdr"`
+ # Figure out what to do with it
+ case $func_normal_abspath_tcomponent in
+ "")
+ # Trailing empty path component, ignore it.
+ ;;
+ ..)
+ # Parent dir; strip last assembled component from result.
+ func_dirname "$func_normal_abspath_result"
+ func_normal_abspath_result=$func_dirname_result
+ ;;
+ *)
+ # Actual path component, append it.
+ func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+ ;;
+ esac
+ done
+ # Restore leading double-slash if one was found on entry.
+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+# value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+ func_relative_path_result=
+ func_normal_abspath "$1"
+ func_relative_path_tlibdir=$func_normal_abspath_result
+ func_normal_abspath "$2"
+ func_relative_path_tbindir=$func_normal_abspath_result
+
+ # Ascend the tree starting from libdir
+ while :; do
+ # check if we have found a prefix of bindir
+ case $func_relative_path_tbindir in
+ $func_relative_path_tlibdir)
+ # found an exact match
+ func_relative_path_tcancelled=
+ break
+ ;;
+ $func_relative_path_tlibdir*)
+ # found a matching prefix
+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+ func_relative_path_tcancelled=$func_stripname_result
+ if test -z "$func_relative_path_result"; then
+ func_relative_path_result=.
+ fi
+ break
+ ;;
+ *)
+ func_dirname $func_relative_path_tlibdir
+ func_relative_path_tlibdir=${func_dirname_result}
+ if test "x$func_relative_path_tlibdir" = x ; then
+ # Have to descend all the way to the root!
+ func_relative_path_result=../$func_relative_path_result
+ func_relative_path_tcancelled=$func_relative_path_tbindir
+ break
+ fi
+ func_relative_path_result=../$func_relative_path_result
+ ;;
+ esac
+ done
+
+ # Now calculate path; take care to avoid doubling-up slashes.
+ func_stripname '' '/' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ func_stripname '/' '/' "$func_relative_path_tcancelled"
+ if test "x$func_stripname_result" != x ; then
+ func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+ fi
+
+ # Normalisation. If bindir is libdir, return empty string,
+ # else relative path ending with a slash; either way, target
+ # file name can be directly appended.
+ if test ! -z "$func_relative_path_result"; then
+ func_stripname './' '' "$func_relative_path_result/"
+ func_relative_path_result=$func_stripname_result
+ fi
+}
+
+# The name of this program:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+ [\\/]*|[A-Za-z]:\\*) ;;
+ *[\\/]*)
+ progdir=$func_dirname_result
+ progdir=`cd "$progdir" && pwd`
+ progpath="$progdir/$progname"
+ ;;
+ *)
+ save_IFS="$IFS"
+ IFS=${PATH_SEPARATOR-:}
+ for progdir in $PATH; do
+ IFS="$save_IFS"
+ test -x "$progdir/$progname" && break
+ done
+ IFS="$save_IFS"
+ test -n "$progdir" || progdir=`pwd`
+ progpath="$progdir/$progname"
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes. A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+ s/$bs4/&\\
+/g
+ s/^$bs2$dollar/$bs&/
+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+ s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+ $opt_verbose && func_echo ${1+"$@"}
+
+ # A bug in bash halts the script if the last line of a function
+ # fails when set -e is in force, so we need another command to
+ # work around that:
+ :
+}
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+
+ # bash bug again:
+ :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+ func_error ${1+"$@"}
+ func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information." ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+ $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+ my_directory_path="$1"
+ my_dir_list=
+
+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+ # Protect directory names starting with `-'
+ case $my_directory_path in
+ -*) my_directory_path="./$my_directory_path" ;;
+ esac
+
+ # While some portion of DIR does not yet exist...
+ while test ! -d "$my_directory_path"; do
+ # ...make a list in topmost first order. Use a colon delimited
+ # list incase some portion of path contains whitespace.
+ my_dir_list="$my_directory_path:$my_dir_list"
+
+ # If the last portion added has no slash in it, the list is done
+ case $my_directory_path in */*) ;; *) break ;; esac
+
+ # ...otherwise throw away the child directory and loop
+ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+ done
+ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+
+ save_mkdir_p_IFS="$IFS"; IFS=':'
+ for my_dir in $my_dir_list; do
+ IFS="$save_mkdir_p_IFS"
+ # mkdir can fail with a `File exist' error if two processes
+ # try to create one of the directories concurrently. Don't
+ # stop in that case!
+ $MKDIR "$my_dir" 2>/dev/null || :
+ done
+ IFS="$save_mkdir_p_IFS"
+
+ # Bail out if we (or some other process) failed to create a directory.
+ test -d "$my_directory_path" || \
+ func_fatal_error "Failed to create \`$1'"
+ fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$opt_dry_run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || \
+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+ fi
+
+ $ECHO "$my_tmpdir"
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+ case $1 in
+ *[\\\`\"\$]*)
+ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
+ *)
+ func_quote_for_eval_unquoted_result="$1" ;;
+ esac
+
+ case $func_quote_for_eval_unquoted_result in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and and variable
+ # expansion for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+ ;;
+ *)
+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+ esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+ case $1 in
+ *[\\\`\"]*)
+ my_arg=`$ECHO "$1" | $SED \
+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+ *)
+ my_arg="$1" ;;
+ esac
+
+ case $my_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting and command substitution for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ my_arg="\"$my_arg\""
+ ;;
+ esac
+
+ func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$my_cmd"
+ my_status=$?
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$lt_user_locale
+ $my_cmd"
+ my_status=$?
+ eval "$lt_safe_locale"
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result. All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+ case $1 in
+ [0-9]* | *[!a-zA-Z0-9_]*)
+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+ ;;
+ * )
+ func_tr_sh_result=$1
+ ;;
+ esac
+}
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+ $opt_debug
+
+ $SED -n '/(C)/!b go
+ :more
+ /\./!{
+ N
+ s/\n# / /
+ b more
+ }
+ :go
+ /^# '$PROGRAM' (GNU /,/# warranty; / {
+ s/^# //
+ s/^# *$//
+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+ p
+ }' < "$progpath"
+ exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/^# *.*--help/ {
+ s/^# //
+ s/^# *$//
+ s/\$progname/'$progname'/
+ p
+ }' < "$progpath"
+ echo
+ $ECHO "run \`$progname --help | more' for full usage"
+ exit $?
+}
+
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
+func_help ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/# Report bugs to/ {
+ :print
+ s/^# //
+ s/^# *$//
+ s*\$progname*'$progname'*
+ s*\$host*'"$host"'*
+ s*\$SHELL*'"$SHELL"'*
+ s*\$LTCC*'"$LTCC"'*
+ s*\$LTCFLAGS*'"$LTCFLAGS"'*
+ s*\$LD*'"$LD"'*
+ s/\$with_gnu_ld/'"$with_gnu_ld"'/
+ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
+ p
+ d
+ }
+ /^# .* home page:/b print
+ /^# General help using/b print
+ ' < "$progpath"
+ ret=$?
+ if test -z "$1"; then
+ exit $ret
+ fi
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+ $opt_debug
+
+ func_error "missing argument for $1."
+ exit_cmd=exit
+}
+
+
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+ func_split_short_opt_arg=${1#??}
+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+} # Extended-shell func_split_short_opt implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+ func_split_long_opt_name=${1%%=*}
+ func_split_long_opt_arg=${1#*=}
+} # Extended-shell func_split_long_opt implementation
+
+exit_cmd=:
+
+
+
+
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+nonopt=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "${1}+=\${2}"
+} # Extended-shell func_append implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+ func_quote_for_eval "${2}"
+ eval "${1}+=\\ \$func_quote_for_eval_result"
+} # Extended-shell func_append_quoted implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+} # Extended-shell func_arith implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+} # Extended-shell func_len implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+} # Extended-shell func_lo2o implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+} # Extended-shell func_xform implementation
+
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+ func_error ${1+"$@"}
+ func_error "See the $PACKAGE documentation for more information."
+ func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+ re_begincf='^# ### BEGIN LIBTOOL'
+ re_endcf='^# ### END LIBTOOL'
+
+ # Default configuration.
+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+ done
+
+ exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+ echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+
+ exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+ # Global variable:
+ tagname="$1"
+
+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+ sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+ # Validate tagname.
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ func_fatal_error "invalid tag name: $tagname"
+ ;;
+ esac
+
+ # Don't test for the "default" C tag, as we know it's
+ # there but not specially marked.
+ case $tagname in
+ CC) ;;
+ *)
+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+ taglist="$taglist $tagname"
+
+ # Evaluate the configuration. Be careful to quote the path
+ # and the sed script, to avoid splitting on whitespace, but
+ # also don't use non-portable quotes within backquotes within
+ # quotes we have to do it in 2 steps:
+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+ eval "$extractedcf"
+ else
+ func_error "ignoring unknown tag $tagname"
+ fi
+ ;;
+ esac
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+ if test "$package_revision" != "$macro_revision"; then
+ if test "$VERSION" != "$macro_version"; then
+ if test -z "$macro_version"; then
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ fi
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+ fi
+
+ exit $EXIT_MISMATCH
+ fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+ shift; set dummy --mode clean ${1+"$@"}; shift
+ ;;
+compile|compil|compi|comp|com|co|c)
+ shift; set dummy --mode compile ${1+"$@"}; shift
+ ;;
+execute|execut|execu|exec|exe|ex|e)
+ shift; set dummy --mode execute ${1+"$@"}; shift
+ ;;
+finish|finis|fini|fin|fi|f)
+ shift; set dummy --mode finish ${1+"$@"}; shift
+ ;;
+install|instal|insta|inst|ins|in|i)
+ shift; set dummy --mode install ${1+"$@"}; shift
+ ;;
+link|lin|li|l)
+ shift; set dummy --mode link ${1+"$@"}; shift
+ ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+ shift; set dummy --mode uninstall ${1+"$@"}; shift
+ ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
+
+
+# Parse options once, thoroughly. This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+ # this just eases exit handling
+ while test $# -gt 0; do
+ opt="$1"
+ shift
+ case $opt in
+ --debug|-x) opt_debug='set -x'
+ func_echo "enabling shell trace mode"
+ $opt_debug
+ ;;
+ --dry-run|--dryrun|-n)
+ opt_dry_run=:
+ ;;
+ --config)
+ opt_config=:
+func_config
+ ;;
+ --dlopen|-dlopen)
+ optarg="$1"
+ opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
+ shift
+ ;;
+ --preserve-dup-deps)
+ opt_preserve_dup_deps=:
+ ;;
+ --features)
+ opt_features=:
+func_features
+ ;;
+ --finish)
+ opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+ ;;
+ --help)
+ opt_help=:
+ ;;
+ --help-all)
+ opt_help_all=:
+opt_help=': help-all'
+ ;;
+ --mode)
+ test $# = 0 && func_missing_arg $opt && break
+ optarg="$1"
+ opt_mode="$optarg"
+case $optarg in
+ # Valid mode arguments:
+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+ # Catch anything else as an error
+ *) func_error "invalid argument for $opt"
+ exit_cmd=exit
+ break
+ ;;
+esac
+ shift
+ ;;
+ --no-silent|--no-quiet)
+ opt_silent=false
+preserve_args+=" $opt"
+ ;;
+ --no-warning|--no-warn)
+ opt_warning=false
+preserve_args+=" $opt"
+ ;;
+ --no-verbose)
+ opt_verbose=false
+preserve_args+=" $opt"
+ ;;
+ --silent|--quiet)
+ opt_silent=:
+preserve_args+=" $opt"
+ opt_verbose=false
+ ;;
+ --verbose|-v)
+ opt_verbose=:
+preserve_args+=" $opt"
+opt_silent=false
+ ;;
+ --tag)
+ test $# = 0 && func_missing_arg $opt && break
+ optarg="$1"
+ opt_tag="$optarg"
+preserve_args+=" $opt $optarg"
+func_enable_tag "$optarg"
+ shift
+ ;;
+
+ -\?|-h) func_usage ;;
+ --help) func_help ;;
+ --version) func_version ;;
+
+ # Separate optargs to long options:
+ --*=*)
+ func_split_long_opt "$opt"
+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate non-argument short options:
+ -\?*|-h*|-n*|-v*)
+ func_split_short_opt "$opt"
+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ --) break ;;
+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
+ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
+ # Validate options:
+
+ # save first non-option argument
+ if test "$#" -gt 0; then
+ nonopt="$opt"
+ shift
+ fi
+
+ # preserve --debug
+ test "$opt_debug" = : || preserve_args+=" --debug"
+
+ case $host in
+ *cygwin* | *mingw* | *pw32* | *cegcc*)
+ # don't eliminate duplications in $postdeps and $predeps
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
+
+ $opt_help || {
+ # Sanity checks first:
+ func_check_version_match
+
+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ func_fatal_configuration "not configured to build any kind of library"
+ fi
+
+ # Darwin sucks
+ eval std_shrext=\"$shrext_cmds\"
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+ func_error "unrecognized option \`-dlopen'"
+ $ECHO "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$progname --help --mode=$opt_mode' for more information."
+ }
+
+
+ # Bail if the options were screwed
+ $exit_cmd $EXIT_FAILURE
+}
+
+
+
+
+## ----------- ##
+## Main. ##
+## ----------- ##
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+ test -f "$1" &&
+ $SED -e 4q "$1" 2>/dev/null \
+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs. To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway. Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+ lalib_p=no
+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+ for lalib_p_l in 1 2 3 4
+ do
+ read lalib_p_line
+ case "$lalib_p_line" in
+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+ esac
+ done
+ exec 0<&5 5<&-
+ fi
+ test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+ func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+ func_ltwrapper_exec_suffix=
+ case $1 in
+ *.exe) ;;
+ *) func_ltwrapper_exec_suffix=.exe ;;
+ esac
+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+ func_dirname_and_basename "$1" "" "."
+ func_stripname '' '.exe' "$func_basename_result"
+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+ $opt_debug
+ save_ifs=$IFS; IFS='~'
+ for cmd in $1; do
+ IFS=$save_ifs
+ eval cmd=\"$cmd\"
+ func_show_eval "$cmd" "${2-:}"
+ done
+ IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)! Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+ $opt_debug
+ case $1 in
+ */* | *\\*) . "$1" ;;
+ *) . "./$1" ;;
+ esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot. Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+ func_resolve_sysroot_result=$1
+ case $func_resolve_sysroot_result in
+ =*)
+ func_stripname '=' '' "$func_resolve_sysroot_result"
+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+ ;;
+ esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+ case "$lt_sysroot:$1" in
+ ?*:"$lt_sysroot"*)
+ func_stripname "$lt_sysroot" '' "$1"
+ func_replace_sysroot_result="=$func_stripname_result"
+ ;;
+ *)
+ # Including no sysroot.
+ func_replace_sysroot_result=$1
+ ;;
+ esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ $opt_debug
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case "$@ " in
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ func_echo "unable to infer tagged configuration"
+ func_fatal_error "specify a tag with \`--tag'"
+# else
+# func_verbose "using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+ write_libobj=${1}
+ if test "$build_libtool_libs" = yes; then
+ write_lobj=\'${2}\'
+ else
+ write_lobj=none
+ fi
+
+ if test "$build_old_libs" = yes; then
+ write_oldobj=\'${3}\'
+ else
+ write_oldobj=none
+ fi
+
+ $opt_dry_run || {
+ cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+ $MV "${write_libobj}T" "${write_libobj}"
+ }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+ $opt_debug
+ func_convert_core_file_wine_to_w32_result="$1"
+ if test -n "$1"; then
+ # Unfortunately, winepath does not exit with a non-zero error code, so we
+ # are forced to check the contents of stdout. On the other hand, if the
+ # command is not found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both error code of
+ # zero AND non-empty stdout, which explains the odd construction:
+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+ $SED -e "$lt_sed_naive_backslashify"`
+ else
+ func_convert_core_file_wine_to_w32_result=
+ fi
+ fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+ $opt_debug
+ # unfortunately, winepath doesn't convert paths, only file names
+ func_convert_core_path_wine_to_w32_result=""
+ if test -n "$1"; then
+ oldIFS=$IFS
+ IFS=:
+ for func_convert_core_path_wine_to_w32_f in $1; do
+ IFS=$oldIFS
+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+ if test -z "$func_convert_core_path_wine_to_w32_result"; then
+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+ else
+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+ fi
+ fi
+ done
+ IFS=$oldIFS
+ fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+ $opt_debug
+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+ if test "$?" -ne 0; then
+ # on failure, ensure result is empty
+ func_cygpath_result=
+ fi
+ else
+ func_cygpath_result=
+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+ fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format. Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+ $opt_debug
+ # awkward: cmd appends spaces to result
+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+ $opt_debug
+ if test -z "$2" && test -n "$1" ; then
+ func_error "Could not determine host file name corresponding to"
+ func_error " \`$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback:
+ func_to_host_file_result="$1"
+ fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+ $opt_debug
+ if test -z "$4" && test -n "$3"; then
+ func_error "Could not determine the host path corresponding to"
+ func_error " \`$3'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback. This is a deliberately simplistic "conversion" and
+ # should not be "improved". See libtool.info.
+ if test "x$1" != "x$2"; then
+ lt_replace_pathsep_chars="s|$1|$2|g"
+ func_to_host_path_result=`echo "$3" |
+ $SED -e "$lt_replace_pathsep_chars"`
+ else
+ func_to_host_path_result="$3"
+ fi
+ fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+ $opt_debug
+ case $4 in
+ $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+ ;;
+ esac
+ case $4 in
+ $2 ) func_to_host_path_result+="$3"
+ ;;
+ esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+ $opt_debug
+ $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result. If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+ $opt_debug
+ case ,$2, in
+ *,"$to_tool_file_cmd",*)
+ func_to_tool_file_result=$1
+ ;;
+ *)
+ $to_tool_file_cmd "$1"
+ func_to_tool_file_result=$func_to_host_file_result
+ ;;
+ esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+ func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+ # LT_CYGPATH in this case.
+ func_to_host_file_result=`cygpath -m "$1"`
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format. Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_file_wine_to_w32 "$1"
+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_msys_to_w32_result"
+ func_to_host_file_result="$func_cygpath_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_file_result="$1"
+ if test -n "$1"; then
+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+ func_convert_core_file_wine_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+ func_to_host_file_result="$func_cygpath_result"
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format. If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+# file name conversion function : func_convert_file_X_to_Y ()
+# path conversion function : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same. If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+ $opt_debug
+ if test -z "$to_host_path_cmd"; then
+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+ to_host_path_cmd="func_convert_path_${func_stripname_result}"
+ fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+ $opt_debug
+ func_init_to_host_path_cmd
+ $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+ func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from ARG. MSYS
+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+ # and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format. Requires a wine environment and
+# a working winepath. Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+ func_to_host_path_result="$func_cygpath_result"
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+ $opt_debug
+ func_to_host_path_result="$1"
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from
+ # ARG. msys behavior is inconsistent here, cygpath turns them
+ # into '.;' and ';.', and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+ func_to_host_path_result="$func_cygpath_result"
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+ $opt_debug
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+ pie_flag=
+
+ for arg
+ do
+ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ test -n "$libobj" && \
+ func_fatal_error "you cannot specify \`-o' more than once"
+ arg_mode=target
+ continue
+ ;;
+
+ -pie | -fpie | -fPIE)
+ pie_flag+=" $arg"
+ continue
+ ;;
+
+ -shared | -static | -prefer-pic | -prefer-non-pic)
+ later+=" $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+ func_append_quoted lastarg "$arg"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$lastarg"
+ lastarg=$func_stripname_result
+
+ # Add the arguments to base_compile.
+ base_compile+=" $lastarg"
+ continue
+ ;;
+
+ *)
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ func_append_quoted base_compile "$lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ func_fatal_error "you must specify an argument for -Xcompile"
+ ;;
+ target)
+ func_fatal_error "you must specify a target with \`-o'"
+ ;;
+ *)
+ # Get the name of the library object.
+ test -z "$libobj" && {
+ func_basename "$srcfile"
+ libobj="$func_basename_result"
+ }
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ case $libobj in
+ *.[cCFSifmso] | \
+ *.ada | *.adb | *.ads | *.asm | \
+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+ func_xform "$libobj"
+ libobj=$func_xform_result
+ ;;
+ esac
+
+ case $libobj in
+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+ *)
+ func_fatal_error "cannot determine name of library object from \`$libobj'"
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -shared)
+ test "$build_libtool_libs" != yes && \
+ func_fatal_configuration "can not build a shared library"
+ build_old_libs=no
+ continue
+ ;;
+
+ -static)
+ build_libtool_libs=no
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ func_quote_for_eval "$libobj"
+ test "X$libobj" != "X$func_quote_for_eval_result" \
+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && func_warning "libobj name \`$libobj' may not contain shell special characters."
+ func_dirname_and_basename "$obj" "/" ""
+ objname="$func_basename_result"
+ xdir="$func_dirname_result"
+ lobj=${xdir}$objdir/$objname
+
+ test -z "$base_compile" && \
+ func_fatal_help "you must specify a compilation command"
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+ removelist+=" $output_obj"
+ $ECHO "$srcfile" > "$lockfile"
+ fi
+
+ $opt_dry_run || $RM $removelist
+ removelist+=" $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+ srcfile=$func_to_tool_file_result
+ func_quote_for_eval "$srcfile"
+ qsrcfile=$func_quote_for_eval_result
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ func_mkdir_p "$xdir$objdir"
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ command+=" -o $lobj"
+ fi
+
+ func_show_eval_locale "$command" \
+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ func_show_eval '$MV "$output_obj" "$lobj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile$pie_flag"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command+=" -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command+="$suppress_output"
+ func_show_eval_locale "$command" \
+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ func_show_eval '$MV "$output_obj" "$obj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+ fi
+
+ $opt_dry_run || {
+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ removelist=$lockfile
+ $RM "$lockfile"
+ fi
+ }
+
+ exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+ # We need to display help for each of the modes.
+ case $opt_mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+ func_help
+ ;;
+
+ clean)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ compile)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -no-suppress do not suppress compiler output for multiple passes
+ -prefer-pic try to build PIC objects only
+ -prefer-non-pic try to build non-PIC objects only
+ -shared do not build a \`.o' file suitable for static linking
+ -static only build a \`.o' file suitable for static linking
+ -Wc,FLAG pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+ execute)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+ finish)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+ install)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+ link)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -bindir BINDIR specify path to binaries directory (for systems where
+ libraries must be found in the PATH setting at runtime)
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -shared only do dynamic linking of libtool libraries
+ -shrext SUFFIX override the standard shared library file extension
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+ -weak LIBNAME declare that the target provides the LIBNAME interface
+ -Wc,FLAG
+ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
+ -Wl,FLAG
+ -Xlinker FLAG pass linker-specific FLAG directly to the linker
+ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+ uninstall)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ *)
+ func_fatal_help "invalid operation mode \`$opt_mode'"
+ ;;
+ esac
+
+ echo
+ $ECHO "Try \`$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+ if test "$opt_help" = :; then
+ func_mode_help
+ else
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ func_mode_help
+ done
+ } | sed -n '1p; 2,$s/^Usage:/ or: /p'
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ echo
+ func_mode_help
+ done
+ } |
+ sed '1d
+ /^When reporting/,/^Report/{
+ H
+ d
+ }
+ $x
+ /information about other modes/d
+ /more detailed .*MODE/d
+ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+ fi
+ exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+ $opt_debug
+ # The first argument is the command name.
+ cmd="$nonopt"
+ test -z "$cmd" && \
+ func_fatal_help "you must specify a COMMAND"
+
+ # Handle -dlopen flags immediately.
+ for file in $opt_dlopen; do
+ test -f "$file" \
+ || func_fatal_help "\`$file' is not a file"
+
+ dir=
+ case $file in
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+ func_source "$file"
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && \
+ func_warning "\`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir+="/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+ ;;
+
+ *)
+ func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -* | *.la | *.lo ) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if func_ltwrapper_script_p "$file"; then
+ func_source "$file"
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ elif func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ func_source "$func_ltwrapper_scriptname_result"
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ func_append_quoted args "$file"
+ done
+
+ if test "X$opt_dry_run" = Xfalse; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ do
+ eval "if test \"\${save_$lt_var+set}\" = set; then
+ $lt_var=\$save_$lt_var; export $lt_var
+ else
+ $lt_unset $lt_var
+ fi"
+ done
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+ echo "export $shlibpath_var"
+ fi
+ $ECHO "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+ $opt_debug
+ libs=
+ libdirs=
+ admincmds=
+
+ for opt in "$nonopt" ${1+"$@"}
+ do
+ if test -d "$opt"; then
+ libdirs+=" $opt"
+
+ elif test -f "$opt"; then
+ if func_lalib_unsafe_p "$opt"; then
+ libs+=" $opt"
+ else
+ func_warning "\`$opt' is not a valid libtool archive"
+ fi
+
+ else
+ func_fatal_error "invalid argument \`$opt'"
+ fi
+ done
+
+ if test -n "$libs"; then
+ if test -n "$lt_sysroot"; then
+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+ else
+ sysroot_cmd=
+ fi
+
+ # Remove sysroot references
+ if $opt_dry_run; then
+ for lib in $libs; do
+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+ done
+ else
+ tmpdir=`func_mktempdir`
+ for lib in $libs; do
+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+ > $tmpdir/tmp-la
+ mv -f $tmpdir/tmp-la $lib
+ done
+ ${RM}r "$tmpdir"
+ fi
+ fi
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $opt_dry_run || eval "$cmds" || admincmds+="
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ $opt_silent && exit $EXIT_SUCCESS
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $ECHO " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $ECHO " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $ECHO " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ echo
+
+ echo "See any operating system documentation about shared libraries for"
+ case $host in
+ solaris2.[6789]|solaris2.1[0-9])
+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+ echo "pages."
+ ;;
+ *)
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ ;;
+ esac
+ echo "----------------------------------------------------------------------"
+ fi
+ exit $EXIT_SUCCESS
+}
+
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+ $opt_debug
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ case $nonopt in *shtool*) :;; *) false;; esac; then
+ # Aesthetically quote it.
+ func_quote_for_eval "$nonopt"
+ install_prog="$func_quote_for_eval_result "
+ arg=$1
+ shift
+ else
+ install_prog=
+ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ func_quote_for_eval "$arg"
+ install_prog+="$func_quote_for_eval_result"
+ install_shared_prog=$install_prog
+ case " $install_prog " in
+ *[\\\ /]cp\ *) install_cp=: ;;
+ *) install_cp=false ;;
+ esac
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ no_mode=:
+ for arg
+ do
+ arg2=
+ if test -n "$dest"; then
+ files+=" $dest"
+ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f)
+ if $install_cp; then :; else
+ prev=$arg
+ fi
+ ;;
+ -g | -m | -o)
+ prev=$arg
+ ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*)
+ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ if test "x$prev" = x-m && test -n "$install_override_mode"; then
+ arg2=$install_override_mode
+ no_mode=false
+ fi
+ prev=
+ else
+ dest=$arg
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ func_quote_for_eval "$arg"
+ install_prog+=" $func_quote_for_eval_result"
+ if test -n "$arg2"; then
+ func_quote_for_eval "$arg2"
+ fi
+ install_shared_prog+=" $func_quote_for_eval_result"
+ done
+
+ test -z "$install_prog" && \
+ func_fatal_help "you must specify an install program"
+
+ test -n "$prev" && \
+ func_fatal_help "the \`$prev' option requires an argument"
+
+ if test -n "$install_override_mode" && $no_mode; then
+ if $install_cp; then :; else
+ func_quote_for_eval "$install_override_mode"
+ install_shared_prog+=" -m $func_quote_for_eval_result"
+ fi
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ func_fatal_help "no file or destination specified"
+ else
+ func_fatal_help "you must specify a destination"
+ fi
+ fi
+
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$dest"
+ dest=$func_stripname_result
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ func_dirname_and_basename "$dest" "" "."
+ destdir="$func_dirname_result"
+ destname="$func_basename_result"
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files; shift
+ test "$#" -gt 1 && \
+ func_fatal_help "\`$dest' is not a directory"
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ func_fatal_help "\`$destdir' must be an absolute directory name"
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs+=" $file"
+ ;;
+
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$file' is not a valid libtool archive"
+
+ library_names=
+ old_library=
+ relink_command=
+ func_source "$file"
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs+=" $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs+=" $libdir" ;;
+ esac
+ fi
+
+ func_dirname "$file" "/" ""
+ dir="$func_dirname_result"
+ dir+="$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ test "$inst_prefix_dir" = "$destdir" && \
+ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ func_warning "relinking \`$file'"
+ func_show_eval "$relink_command" \
+ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names; shift
+ if test -n "$1"; then
+ realname="$1"
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+ 'exit $?'
+ tstripme="$stripme"
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $realname in
+ *.dll.a)
+ tstripme=""
+ ;;
+ esac
+ ;;
+ esac
+ if test -n "$tstripme" && test -n "$striplib"; then
+ func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ # Try `ln -sf' first, because the `ln' binary might depend on
+ # the symlink we replace! Solaris /bin/ln does not understand -f,
+ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ test "$linkname" != "$realname" \
+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ func_execute_cmds "$postinstall_cmds" 'exit $?'
+ fi
+
+ # Install the pseudo-library for information purposes.
+ func_basename "$file"
+ name="$func_basename_result"
+ instname="$dir/$name"i
+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs+=" $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ func_basename "$file"
+ destfile="$func_basename_result"
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ func_lo2o "$destfile"
+ staticdest=$func_lo2o_result
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ func_fatal_help "cannot copy a libtool object to \`$destfile'"
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ test -n "$destfile" && \
+ func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ func_lo2o "$file"
+ staticobj=$func_lo2o_result
+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ func_basename "$file"
+ destfile="$func_basename_result"
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin* | *mingw*)
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ wrapper=$func_ltwrapper_scriptname_result
+ else
+ func_stripname '' '.exe' "$file"
+ wrapper=$func_stripname_result
+ fi
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if func_ltwrapper_script_p "$wrapper"; then
+ notinst_deplibs=
+ relink_command=
+
+ func_source "$wrapper"
+
+ # Check the variables that should have been set.
+ test -z "$generated_by_libtool_version" && \
+ func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ func_source "$lib"
+ fi
+ libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ func_warning "\`$lib' has not been installed in \`$libdir'"
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ func_source "$wrapper"
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ $opt_dry_run || {
+ if test "$finalize" = yes; then
+ tmpdir=`func_mktempdir`
+ func_basename "$file$stripped_ext"
+ file="$func_basename_result"
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $opt_silent || {
+ func_quote_for_expand "$relink_command"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ if eval "$relink_command"; then :
+ else
+ func_error "error: relink \`$file' with the above command before installing it"
+ $opt_dry_run || ${RM}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ func_warning "cannot relink \`$file'"
+ fi
+ }
+ else
+ # Install the binary that we compiled earlier.
+ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ func_stripname '' '.exe' "$destfile"
+ destfile=$func_stripname_result
+ ;;
+ esac
+ ;;
+ esac
+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+ $opt_dry_run || if test -n "$outputname"; then
+ ${RM}r "$tmpdir"
+ fi
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ func_basename "$file"
+ name="$func_basename_result"
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+
+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+ fi
+
+ # Do each command in the postinstall commands.
+ func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+ done
+
+ test -n "$future_libdirs" && \
+ func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+ $opt_debug
+ my_outputname="$1"
+ my_originator="$2"
+ my_pic_p="${3-no}"
+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+ my_dlsyms=
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ my_dlsyms="${my_outputname}S.c"
+ else
+ func_error "not configured to extract global symbols from dlpreopened files"
+ fi
+ fi
+
+ if test -n "$my_dlsyms"; then
+ case $my_dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${my_outputname}.nm"
+
+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+ # Parse the name list into a source file.
+ func_verbose "creating $output_objdir/$my_dlsyms"
+
+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ func_verbose "generating symbol list for \`$output'"
+
+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ for progfile in $progfiles; do
+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $opt_dry_run || {
+ $RM $export_symbols
+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ fi
+ fi
+
+ for dlprefile in $dlprefiles; do
+ func_verbose "extracting global C symbols from \`$dlprefile'"
+ func_basename "$dlprefile"
+ name="$func_basename_result"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ # if an import library, we need to obtain dlname
+ if func_win32_import_lib_p "$dlprefile"; then
+ func_tr_sh "$dlprefile"
+ eval "curr_lafile=\$libfile_$func_tr_sh_result"
+ dlprefile_dlbasename=""
+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+ # Use subshell, to avoid clobbering current variable values
+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+ if test -n "$dlprefile_dlname" ; then
+ func_basename "$dlprefile_dlname"
+ dlprefile_dlbasename="$func_basename_result"
+ else
+ # no lafile. user explicitly requested -dlpreopen <import library>.
+ $sharedlib_from_linklib_cmd "$dlprefile"
+ dlprefile_dlbasename=$sharedlib_from_linklib_result
+ fi
+ fi
+ $opt_dry_run || {
+ if test -n "$dlprefile_dlbasename" ; then
+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+ else
+ func_warning "Could not compute DLL name from $name"
+ eval '$ECHO ": $name " >> "$nlist"'
+ fi
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+ }
+ else # not an import lib
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ fi
+ ;;
+ *)
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ ;;
+ esac
+ done
+
+ $opt_dry_run || {
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $MV "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if $GREP -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ $GREP -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+ fi
+
+ echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols. */
+typedef struct {
+ const char *name;
+ void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+ { \"$my_originator\", (void *) 0 },"
+
+ case $need_lib_prefix in
+ no)
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ *)
+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ esac
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ } # !$opt_dry_run
+
+ pic_flag_for_symtable=
+ case "$compile_command " in
+ *" -static "*) ;;
+ *)
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+ *-*-hpux*)
+ pic_flag_for_symtable=" $pic_flag" ;;
+ *)
+ if test "X$my_pic_p" != Xno; then
+ pic_flag_for_symtable=" $pic_flag"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ symtab_cflags=
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+ *) symtab_cflags+=" $arg" ;;
+ esac
+ done
+
+ # Now compile the dynamic symbol file.
+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+ # Clean up the generated files.
+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+ # Transform the symbol file into the correct name.
+ symfileobj="$output_objdir/${my_outputname}S.$objext"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ if test -f "$output_objdir/$my_outputname.def"; then
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ else
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ fi
+ ;;
+ *)
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ ;;
+ esac
+ ;;
+ *)
+ func_fatal_error "unknown suffix for \`$my_dlsyms'"
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+ fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+ $opt_debug
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+ $SED -n -e '
+ 1,100{
+ / I /{
+ s,.*,import,
+ p
+ q
+ }
+ }'`
+ case $win32_nmres in
+ import*) win32_libid_type="x86 archive import";;
+ *) win32_libid_type="x86 archive static";;
+ esac
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+ $opt_debug
+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+ $opt_debug
+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+ $SED '/^Contents of section '"$match_literal"':/{
+ # Place marker at beginning of archive member dllname section
+ s/.*/====MARK====/
+ p
+ d
+ }
+ # These lines can sometimes be longer than 43 characters, but
+ # are always uninteresting
+ /:[ ]*file format pe[i]\{,1\}-/d
+ /^In archive [^:]*:/d
+ # Ensure marker is printed
+ /^====MARK====/p
+ # Remove all lines with less than 43 characters
+ /^.\{43\}/!d
+ # From remaining lines, remove first 43 characters
+ s/^.\{43\}//' |
+ $SED -n '
+ # Join marker and all lines until next marker into a single line
+ /^====MARK====/ b para
+ H
+ $ b para
+ b
+ :para
+ x
+ s/\n//g
+ # Remove the marker
+ s/^====MARK====//
+ # Remove trailing dots and whitespace
+ s/[\. \t]*$//
+ # Print
+ /./p' |
+ # we now have a list, one entry per line, of the stringified
+ # contents of the appropriate section of all members of the
+ # archive which possess that section. Heuristic: eliminate
+ # all those which have a first or second character that is
+ # a '.' (that is, objdump's representation of an unprintable
+ # character.) This should work for all archives with less than
+ # 0x302f exports -- but will fail for DLLs whose name actually
+ # begins with a literal '.' or a single character followed by
+ # a '.'.
+ #
+ # Of those that remain, print the first one.
+ $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+ $opt_debug
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+ test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+ $opt_debug
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+ test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+ $opt_debug
+ if func_cygming_gnu_implib_p "$1" ; then
+ # binutils import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+ elif func_cygming_ms_implib_p "$1" ; then
+ # ms-generated import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+ else
+ # unknown
+ sharedlib_from_linklib_result=""
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ $opt_debug
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+ if test "$lock_old_archive_extraction" = yes; then
+ lockfile=$f_ex_an_ar_oldlib.lock
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ fi
+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+ 'stat=$?; rm -f "$lockfile"; exit $stat'
+ if test "$lock_old_archive_extraction" = yes; then
+ $opt_dry_run || rm -f "$lockfile"
+ fi
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+ fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ $opt_debug
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ func_basename "$my_xlib"
+ my_xlib="$func_basename_result"
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ func_arith $extracted_serial + 1
+ extracted_serial=$func_arith_result
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib_u"
+
+ func_mkdir_p "$my_xdir"
+
+ case $host in
+ *-darwin*)
+ func_verbose "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ $opt_dry_run || {
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`basename "$darwin_archive"`
+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd $darwin_orig_dir
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ } # !$opt_dry_run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result="$my_oldobjs"
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable. Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take. If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory. This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+ func_emit_wrapper_arg1=${1-no}
+
+ $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs 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
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='$macro_version'
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$ECHO are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ file=\"\$0\""
+
+ qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+ $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+ ECHO=\"$qECHO\"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=\$0
+ shift
+ for lt_opt
+ do
+ case \"\$lt_opt\" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+ cat \"\$lt_dump_D/\$lt_dump_F\"
+ exit 0
+ ;;
+ --lt-*)
+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n \"\$lt_option_debug\"; then
+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2* | *-cegcc*)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $ECHO "\
+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case \" \$* \" in
+ *\\ --lt-*)
+ for lt_wr_arg
+ do
+ case \$lt_wr_arg in
+ --lt-*) ;;
+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core \${1+\"\$@\"}
+}
+
+ # Parse options
+ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+ # special case for '.'
+ if test \"\$thisdir\" = \".\"; then
+ thisdir=\`pwd\`
+ fi
+ # remove .libs from thisdir
+ case \"\$thisdir\" in
+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+ $objdir ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $ECHO "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" ||
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $MKDIR \"\$progdir\"
+ else
+ $RM \"\$progdir/\$file\"
+ fi"
+
+ $ECHO "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $ECHO \"\$relink_command_output\" >&2
+ $RM \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $RM \"\$progdir/\$program\";
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $RM \"\$progdir/\$file\"
+ fi"
+ else
+ $ECHO "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $ECHO "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # fixup the dll searchpath if we need to.
+ #
+ # Fix the DLL searchpath if we need to. Do this before prepending
+ # to shlibpath, because on Windows, both are PATH and uninstalled
+ # libraries must come first.
+ if test -n "$dllsearchpath"; then
+ $ECHO "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ $ECHO "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+ func_exec_program \${1+\"\$@\"}
+ fi
+ else
+ # The program doesn't exist.
+ \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+ cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+*/
+EOF
+ cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+# define _INTPTR_T_DEFINED
+# define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+# define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+# define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+ cat <<EOF
+volatile const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_path "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test "$fast_install" = yes; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ intptr_t rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ newargz = XMALLOC (char *, argc + 1);
+
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp (argv[i], dumpscript_opt) == 0)
+ {
+EOF
+ case "$host" in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ lt_dump_script (stdout);
+ return 0;
+ }
+ if (strcmp (argv[i], debug_opt) == 0)
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ newargz = prepare_spawn (newargz);
+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) failed to launch target \"%s\": %s\n",
+ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void *p = (void *) malloc (num);
+ if (!p)
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+ string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable (const char *path)
+{
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0)
+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ return 1;
+ else
+ return 0;
+}
+
+int
+make_executable (const char *path)
+{
+ int rval = 0;
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if (stat (path, &st) >= 0)
+ {
+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+ }
+ return rval;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise
+ Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+ int has_slash = 0;
+ const char *p;
+ const char *p_next;
+ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
+ int tmp_len;
+ char *concat_name;
+
+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+ nonempty (wrapper));
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+
+ /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ else
+ {
+#endif
+ if (IS_DIR_SEPARATOR (wrapper[0]))
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ }
+#endif
+
+ for (p = wrapper; *p; p++)
+ if (*p == '/')
+ {
+ has_slash = 1;
+ break;
+ }
+ if (!has_slash)
+ {
+ /* no slashes; search PATH */
+ const char *path = getenv ("PATH");
+ if (path != NULL)
+ {
+ for (p = path; *p; p = p_next)
+ {
+ const char *q;
+ size_t p_len;
+ for (q = p; *q; q++)
+ if (IS_PATH_SEPARATOR (*q))
+ break;
+ p_len = q - p;
+ p_next = (*q == '\0' ? q : q + 1);
+ if (p_len == 0)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name =
+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+ }
+ else
+ {
+ concat_name =
+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, p, p_len);
+ concat_name[p_len] = '/';
+ strcpy (concat_name + p_len + 1, wrapper);
+ }
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ }
+ /* not found in PATH; assume curdir */
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+ return xstrdup (pathspec);
+#else
+ char buf[LT_PATHMAX];
+ struct stat s;
+ char *tmp_pathspec = xstrdup (pathspec);
+ char *p;
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+ lt_debugprintf (__FILE__, __LINE__,
+ "checking path component for symlinks: %s\n",
+ tmp_pathspec);
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+ {
+ has_symlinks = 1;
+ break;
+ }
+
+ /* search backwards for last DIR_SEPARATOR */
+ p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ p--;
+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ {
+ /* no more DIR_SEPARATORS left */
+ break;
+ }
+ *p = '\0';
+ }
+ else
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "error accessing file \"%s\": %s",
+ tmp_pathspec, nonnull (strerror (errno)));
+ }
+ }
+ XFREE (tmp_pathspec);
+
+ if (!has_symlinks)
+ {
+ return xstrdup (pathspec);
+ }
+
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert (str != NULL);
+ assert (pat != NULL);
+
+ len = strlen (str);
+ patlen = strlen (pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp (str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+ va_list args;
+ if (lt_debug)
+ {
+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+ va_start (args, fmt);
+ (void) vfprintf (stderr, fmt, args);
+ va_end (args);
+ }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+ int line, const char *mode,
+ const char *message, va_list ap)
+{
+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+ va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+ return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+ return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_setenv) setting '%s' to '%s'\n",
+ nonnull (name), nonnull (value));
+ {
+#ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+ char *str = xstrdup (value);
+ setenv (name, str, 1);
+#else
+ int len = strlen (name) + 1 + strlen (value) + 1;
+ char *str = XMALLOC (char, len);
+ sprintf (str, "%s=%s", name, value);
+ if (putenv (str) != EXIT_SUCCESS)
+ {
+ XFREE (str);
+ }
+#endif
+ }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+ char *new_value;
+ if (orig_value && *orig_value)
+ {
+ int orig_value_len = strlen (orig_value);
+ int add_len = strlen (add);
+ new_value = XMALLOC (char, add_len + orig_value_len + 1);
+ if (to_end)
+ {
+ strcpy (new_value, orig_value);
+ strcpy (new_value + orig_value_len, add);
+ }
+ else
+ {
+ strcpy (new_value, add);
+ strcpy (new_value + add_len, orig_value);
+ }
+ }
+ else
+ {
+ new_value = xstrdup (add);
+ }
+ return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ /* some systems can't cope with a ':'-terminated path #' */
+ int len = strlen (new_value);
+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+ {
+ new_value[len-1] = '\0';
+ }
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+EOF
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+ Note that spawn() does not by itself call the command interpreter
+ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&v);
+ v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+ }) ? "cmd.exe" : "command.com").
+ Instead it simply concatenates the arguments, separated by ' ', and calls
+ CreateProcess(). We must quote the arguments since Win32 CreateProcess()
+ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+ special way:
+ - Space and tab are interpreted as delimiters. They are not treated as
+ delimiters if they are surrounded by double quotes: "...".
+ - Unescaped double quotes are removed from the input. Their only effect is
+ that within double quotes, space and tab are treated like normal
+ characters.
+ - Backslashes not followed by double quotes are not special.
+ - But 2*n+1 backslashes followed by a double quote become
+ n backslashes followed by a double quote (n >= 0):
+ \" -> "
+ \\\" -> \"
+ \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+ size_t argc;
+ char **new_argv;
+ size_t i;
+
+ /* Count number of arguments. */
+ for (argc = 0; argv[argc] != NULL; argc++)
+ ;
+
+ /* Allocate new argument vector. */
+ new_argv = XMALLOC (char *, argc + 1);
+
+ /* Put quoted arguments into the new argument vector. */
+ for (i = 0; i < argc; i++)
+ {
+ const char *string = argv[i];
+
+ if (string[0] == '\0')
+ new_argv[i] = xstrdup ("\"\"");
+ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+ {
+ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+ size_t length;
+ unsigned int backslashes;
+ const char *s;
+ char *quoted_string;
+ char *p;
+
+ length = 0;
+ backslashes = 0;
+ if (quote_around)
+ length++;
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ length += backslashes + 1;
+ length++;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ length += backslashes + 1;
+
+ quoted_string = XMALLOC (char, length + 1);
+
+ p = quoted_string;
+ backslashes = 0;
+ if (quote_around)
+ *p++ = '"';
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ {
+ unsigned int j;
+ for (j = backslashes + 1; j > 0; j--)
+ *p++ = '\\';
+ }
+ *p++ = c;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ {
+ unsigned int j;
+ for (j = backslashes; j > 0; j--)
+ *p++ = '\\';
+ *p++ = '"';
+ }
+ *p = '\0';
+
+ new_argv[i] = quoted_string;
+ }
+ else
+ new_argv[i] = (char *) string;
+ }
+ new_argv[argc] = NULL;
+
+ return new_argv;
+}
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+ func_emit_wrapper yes |
+ $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/ fputs ("\1", f);/p
+g
+D'
+ cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+ $opt_debug
+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+ *import*) : ;;
+ *) false ;;
+ esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+ $opt_debug
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args=$nonopt
+ base_compile="$nonopt $@"
+ compile_command=$nonopt
+ finalize_command=$nonopt
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+ new_inherited_linker_flags=
+
+ avoid_version=no
+ bindir=
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+ weak_libs=
+ single_module="${wl}-single_module"
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -shared)
+ test "$build_libtool_libs" != yes && \
+ func_fatal_configuration "can not build a shared library"
+ build_old_libs=no
+ break
+ ;;
+ -all-static | -static | -static-libtool-libs)
+ case $arg in
+ -all-static)
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ func_warning "complete static linking is impossible in this configuration"
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ -static)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=built
+ ;;
+ -static-libtool-libs)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ esac
+ build_libtool_libs=no
+ build_old_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ func_quote_for_eval "$arg"
+ qarg=$func_quote_for_eval_unquoted_result
+ libtool_args+=" $func_quote_for_eval_result"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command+=" @OUTPUT@"
+ finalize_command+=" @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ bindir)
+ bindir="$arg"
+ prev=
+ continue
+ ;;
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command+=" @SYMFILE@"
+ finalize_command+=" @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles+=" $arg"
+ else
+ dlprefiles+=" $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ test -f "$arg" \
+ || func_fatal_error "symbol file \`$arg' does not exist"
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ framework)
+ case $host in
+ *-*-darwin*)
+ case "$deplibs " in
+ *" $qarg.ltframework "*) ;;
+ *) deplibs+=" $qarg.ltframework" # this is fixed later
+ ;;
+ esac
+ ;;
+ esac
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat "$save_arg"`
+ do
+# moreargs+=" $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none &&
+ test "$non_pic_object" = none; then
+ func_fatal_error "cannot find name of object for \`$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles+=" $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles+=" $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs+=" $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects+=" $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ non_pic_objects+=" $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ libobjs+=" $pic_object"
+ non_pic_objects+=" $non_pic_object"
+ else
+ func_fatal_error "\`$arg' is not a valid libtool object"
+ fi
+ fi
+ done
+ else
+ func_fatal_error "link input file \`$arg' does not exist"
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath+=" $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath+=" $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ weak)
+ weak_libs+=" $arg"
+ prev=
+ continue
+ ;;
+ xcclinker)
+ linker_flags+=" $qarg"
+ compiler_flags+=" $qarg"
+ prev=
+ compile_command+=" $qarg"
+ finalize_command+=" $qarg"
+ continue
+ ;;
+ xcompiler)
+ compiler_flags+=" $qarg"
+ prev=
+ compile_command+=" $qarg"
+ finalize_command+=" $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags+=" $qarg"
+ compiler_flags+=" $wl$qarg"
+ prev=
+ compile_command+=" $wl$qarg"
+ finalize_command+=" $wl$qarg"
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ # See comment for -static flag below, for more details.
+ compile_command+=" $link_static_flag"
+ finalize_command+=" $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -bindir)
+ prev=bindir
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ func_fatal_error "more than one -exported-symbols argument is not allowed"
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=framework
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ func_stripname "-L" '' "$arg"
+ if test -z "$func_stripname_result"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between \`-L' and \`$1'"
+ else
+ func_fatal_error "need path for \`-L' option"
+ fi
+ fi
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ test -z "$absdir" && \
+ func_fatal_error "cannot determine absolute directory name of \`$dir'"
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "* | *" $arg "*)
+ # Will only happen for absolute or sysroot arguments
+ ;;
+ *)
+ # Preserve sysroot, but never include relative directories
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]* | =*) deplibs+=" $arg" ;;
+ *) deplibs+=" -L$dir" ;;
+ esac
+ lib_search_path+=" $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
+ *) dllsearchpath+=":$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) dllsearchpath+=":$testbindir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ deplibs+=" System.ltframework"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ test "X$arg" = "X-lc" && continue
+ ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs+=" $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ # Darwin uses the -arch flag to determine output architecture.
+ -model|-arch|-isysroot|--sysroot)
+ compiler_flags+=" $arg"
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ compiler_flags+=" $arg"
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+ * ) new_inherited_linker_flags+=" $arg" ;;
+ esac
+ continue
+ ;;
+
+ -multi_module)
+ single_module="${wl}-multi_module"
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # and Darwin in order for the loader to find any dlls it needs.
+ func_warning "\`-no-install' is ignored for $host"
+ func_warning "assuming \`-no-fast-install' instead"
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ func_stripname '-R' '' "$arg"
+ dir=$func_stripname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ =*)
+ func_stripname '=' '' "$dir"
+ dir=$lt_sysroot$func_stripname_result
+ ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath+=" $dir" ;;
+ esac
+ continue
+ ;;
+
+ -shared)
+ # The effects of -shared are defined in a previous loop.
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -static | -static-libtool-libs)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -weak)
+ prev=weak
+ continue
+ ;;
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+ arg+=" $func_quote_for_eval_result"
+ compiler_flags+=" $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Wl,*)
+ func_stripname '-Wl,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+ arg+=" $wl$func_quote_for_eval_result"
+ compiler_flags+=" $wl$func_quote_for_eval_result"
+ linker_flags+=" $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # -msg_* for osf cc
+ -msg_*)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+
+ # Flags to be passed through unchanged, with rationale:
+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
+ # -r[0-9][0-9]* specify processor for the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+ # +DA*, +DD* enable 64-bit mode for the HP compiler
+ # -q* compiler args for the IBM compiler
+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+ # -F/path path to uninstalled frameworks, gcc on darwin
+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
+ # @file GCC response files
+ # -tp=* Portland pgcc target processor selection
+ # --sysroot=* for sysroot support
+ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ compiler_flags+=" $arg"
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+
+ *.$objext)
+ # A standard object.
+ objs+=" $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none &&
+ test "$non_pic_object" = none; then
+ func_fatal_error "cannot find name of object for \`$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles+=" $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles+=" $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs+=" $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects+=" $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object="$pic_object"
+ non_pic_objects+=" $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir="$func_dirname_result"
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ libobjs+=" $pic_object"
+ non_pic_objects+=" $non_pic_object"
+ else
+ func_fatal_error "\`$arg' is not a valid libtool object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs+=" $arg"
+ old_deplibs+=" $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ func_resolve_sysroot "$arg"
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles+=" $func_resolve_sysroot_result"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles+=" $func_resolve_sysroot_result"
+ prev=
+ else
+ deplibs+=" $func_resolve_sysroot_result"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ fi
+ done # argument parsing loop
+
+ test -n "$prev" && \
+ func_fatal_help "the \`$prevarg' option requires an argument"
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command+=" $arg"
+ finalize_command+=" $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ func_basename "$output"
+ outputname="$func_basename_result"
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ func_dirname "$output" "/" ""
+ output_objdir="$func_dirname_result$objdir"
+ func_to_tool_file "$output_objdir/"
+ tool_output_objdir=$func_to_tool_file_result
+ # Create the object directory.
+ func_mkdir_p "$output_objdir"
+
+ # Determine the type of output
+ case $output in
+ "")
+ func_fatal_help "you must specify an output file"
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if $opt_preserve_dup_deps ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs+=" $deplib" ;;
+ esac
+ fi
+ libs+=" $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if $opt_duplicate_compiler_generated_deps; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) specialdeplibs+=" $pre_post_deps" ;;
+ esac
+ pre_post_deps+=" $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+
+ case $linkmode in
+ lib)
+ passes="conv dlpreopen link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+
+ for pass in $passes; do
+ # The preopen pass in lib mode reverses $deplibs; put it back here
+ # so that -L comes before libs that need it for instance...
+ if test "$linkmode,$pass" = "lib,link"; then
+ ## FIXME: Find the place where the list is rebuilt in the wrong
+ ## order, and fix it there properly
+ tmp_deplibs=
+ for deplib in $deplibs; do
+ tmp_deplibs="$deplib $tmp_deplibs"
+ done
+ deplibs="$tmp_deplibs"
+ fi
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$linkmode,$pass" = "lib,dlpreopen"; then
+ # Collect and forward deplibs of preopened libtool libs
+ for lib in $dlprefiles; do
+ # Ignore non-libtool-libs
+ dependency_libs=
+ func_resolve_sysroot "$lib"
+ case $lib in
+ *.la) func_source "$func_resolve_sysroot_result" ;;
+ esac
+
+ # Collect preopened libtool deplibs, except any this library
+ # has declared as weak libs
+ for deplib in $dependency_libs; do
+ func_basename "$deplib"
+ deplib_base=$func_basename_result
+ case " $weak_libs " in
+ *" $deplib_base "*) ;;
+ *) deplibs+=" $deplib" ;;
+ esac
+ done
+ done
+ libs="$dlprefiles"
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ compiler_flags+=" $deplib"
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) new_inherited_linker_flags+=" $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ func_warning "\`-l' is ignored for archives/objects"
+ continue
+ fi
+ func_stripname '-l' '' "$deplib"
+ name=$func_stripname_result
+ if test "$linkmode" = lib; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if func_lalib_p "$lib"; then
+ library_names=
+ old_library=
+ func_source "$lib"
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ func_dirname "$lib" "" "."
+ ladir="$func_dirname_result"
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ *.ltframework)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) new_inherited_linker_flags+=" $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ newlib_search_path+=" $func_resolve_sysroot_result"
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ newlib_search_path+=" $func_resolve_sysroot_result"
+ ;;
+ *)
+ func_warning "\`-L' is ignored for archives/objects"
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ func_stripname '-R' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath+=" $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ lib=$func_resolve_sysroot_result
+ ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ # Linking convenience modules into shared libraries is allowed,
+ # but linking other static libraries is non-portable.
+ case " $dlpreconveniencelibs " in
+ *" $deplib "*) ;;
+ *)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ echo
+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not use here."
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the"
+ $ECHO "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ ;;
+ esac
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles+=" $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles+=" $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+ fi
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$lib" \
+ || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+ func_dirname "$lib" "" "."
+ ladir="$func_dirname_result"
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ inherited_linker_flags=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+ *) new_inherited_linker_flags+=" $tmp_inherited_linker_flag";;
+ esac
+ done
+ fi
+ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && dlfiles+=" $dlopen"
+ test -n "$dlpreopen" && dlprefiles+=" $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience+=" $ladir/$objdir/$old_library"
+ old_convenience+=" $ladir/$objdir/$old_library"
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ func_fatal_error "\`$lib' is not a convenience library"
+ fi
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs+=" $deplib" ;;
+ esac
+ fi
+ tmp_libs+=" $deplib"
+ done
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ if test -n "$old_library" &&
+ { test "$prefer_static_libs" = yes ||
+ test "$prefer_static_libs,$installed" = "built,no"; }; then
+ linklib=$old_library
+ else
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ fi
+ if test -z "$linklib"; then
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ dlprefiles+=" $lib $dependency_libs"
+ else
+ newdlfiles+=" $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ func_warning "cannot determine absolute directory name of \`$ladir'"
+ func_warning "passing it literally to the linker, although it might fail"
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ func_basename "$lib"
+ laname="$func_basename_result"
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ func_warning "library \`$lib' was moved."
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$lt_sysroot$libdir"
+ absdir="$lt_sysroot$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ notinst_path+=" $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path+=" $abs_ladir"
+ fi
+ fi # $installed = yes
+ func_stripname 'lib' '.la' "$laname"
+ name=$func_stripname_result
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir" && test "$linkmode" = prog; then
+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+ fi
+ case "$host" in
+ # special handling for platforms with PE-DLLs.
+ *cygwin* | *mingw* | *cegcc* )
+ # Linker will automatically link against shared library if both
+ # static and shared are present. Therefore, ensure we extract
+ # symbols from the import library if a shared library is present
+ # (otherwise, the dlopen module name will be incorrect). We do
+ # this by putting the import library name into $newdlprefiles.
+ # We recover the dlopen module name by 'saving' the la file
+ # name in a special purpose variable, and (later) extracting the
+ # dlname from the la file.
+ if test -n "$dlname"; then
+ func_tr_sh "$dir/$linklib"
+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+ newdlprefiles+=" $dir/$linklib"
+ else
+ newdlprefiles+=" $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ dlpreconveniencelibs+=" $dir/$old_library"
+ fi
+ ;;
+ * )
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles+=" $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ dlpreconveniencelibs+=" $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles+=" $dir/$dlname"
+ else
+ newdlprefiles+=" $dir/$linklib"
+ fi
+ ;;
+ esac
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path+=" $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ newlib_search_path+=" $func_resolve_sysroot_result"
+ ;;
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs+=" $deplib" ;;
+ esac
+ fi
+ tmp_libs+=" $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { { test "$prefer_static_libs" = no ||
+ test "$prefer_static_libs,$installed" = "built,yes"; } ||
+ test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath:" in
+ *"$absdir:"*) ;;
+ *) temp_rpath+="$absdir:" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath+=" $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath+=" $libdir" ;;
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test "$use_static_libs" = built && test "$installed" = yes; then
+ use_static_libs=no
+ fi
+ if test -n "$library_names" &&
+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
+ case $host in
+ *cygwin* | *mingw* | *cegcc*)
+ # No point in relinking DLLs because paths are not encoded
+ notinst_deplibs+=" $lib"
+ need_relink=no
+ ;;
+ *)
+ if test "$installed" = no; then
+ notinst_deplibs+=" $lib"
+ need_relink=yes
+ fi
+ ;;
+ esac
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on some
+ # systems (darwin). Don't bleat about dlopened modules though!
+ dlopenmodule=""
+ for dlpremoduletest in $dlprefiles; do
+ if test "X$dlpremoduletest" = "X$lib"; then
+ dlopenmodule="$dlpremoduletest"
+ break
+ fi
+ done
+ if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+ echo
+ if test "$linkmode" = prog; then
+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $ECHO "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath+=" $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath+=" $libdir" ;;
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ shift
+ realname="$1"
+ shift
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw* | *cegcc*)
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ func_basename "$soroot"
+ soname="$func_basename_result"
+ func_stripname 'lib' '.dll' "$soname"
+ newlib=libimp-$func_stripname_result.a
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ func_verbose "extracting exported symbol list from \`$soname'"
+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ func_verbose "generating import library for \`$soname'"
+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$opt_mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+ *-*-unixware7*) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a (non-dlopened) module then we can not
+ # link against it, someone is ignoring the earlier warnings
+ if /usr/bin/file -L $add 2> /dev/null |
+ $GREP ": [^:]* bundle" >/dev/null ; then
+ if test "X$dlopenmodule" != "X$lib"; then
+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ echo
+ echo "*** And there doesn't seem to be a static archive available"
+ echo "*** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ elif test -n "$old_library"; then
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes &&
+ test "$hardcode_direct_absolute" = no; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$absdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ add_dir+=" -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ func_fatal_configuration "unsupported hardcode properties"
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath+="$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes &&
+ test "$hardcode_minus_L" != yes &&
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath+="$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$opt_mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes &&
+ test "$hardcode_direct_absolute" = no; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath+="$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ add_dir+=" -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ echo
+ $ECHO "*** Warning: This system can not link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) func_stripname '-R' '' "$libdir"
+ temp_xrpath=$func_stripname_result
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath+=" $temp_xrpath";;
+ esac;;
+ *) temp_deplibs+=" $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path+=" $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result";;
+ *) func_resolve_sysroot "$deplib" ;;
+ esac
+ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+ *" $func_resolve_sysroot_result "*)
+ specialdeplibs+=" $func_resolve_sysroot_result" ;;
+ esac
+ fi
+ tmp_libs+=" $func_resolve_sysroot_result"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ path=
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ deplib=$func_resolve_sysroot_result
+ func_dirname "$deplib" "" "."
+ dir=$func_dirname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ func_warning "cannot determine absolute directory name of \`$dir'"
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if $GREP "^installed=no" $deplib > /dev/null; then
+ case $host in
+ *-*-darwin*)
+ depdepl=
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$absdir/$objdir/$depdepl" ; then
+ depdepl="$absdir/$objdir/$depdepl"
+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ if test -z "$darwin_install_name"; then
+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ fi
+ compiler_flags+=" ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+ linker_flags+=" -dylib_file ${darwin_install_name}:${depdepl}"
+ path=
+ fi
+ fi
+ ;;
+ *)
+ path="-L$absdir/$objdir"
+ ;;
+ esac
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+ test "$absdir" != "$libdir" && \
+ func_warning "\`$deplib' seems to be moved"
+
+ path="-L$absdir"
+ fi
+ ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ if test "$pass" = link; then
+ if test "$linkmode" = "prog"; then
+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ fi
+ fi
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path+=" $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs+=" $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs+=" $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ tmp_libs+=" $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ fi
+ if test "$linkmode" = prog || test "$linkmode" = lib; then
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ func_warning "\`-dlopen' is ignored for archives"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for archives" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "\`-rpath' is ignored for archives"
+
+ test -n "$xrpath" && \
+ func_warning "\`-R' is ignored for archives"
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info/-version-number' is ignored for archives"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for archives"
+
+ test -n "$export_symbols$export_symbols_regex" && \
+ func_warning "\`-export-symbols' is ignored for archives"
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs+="$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ func_stripname 'lib' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ test "$module" = no && \
+ func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ func_stripname '' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ func_stripname '' '.la' "$outputname"
+ libname=$func_stripname_result
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
+ libobjs+=" $objs"
+ fi
+ fi
+
+ test "$dlself" != no && \
+ func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+ set dummy $rpath
+ shift
+ test "$#" -gt 1 && \
+ func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+ install_libdir="$1"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for convenience libraries"
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ shift
+ IFS="$save_ifs"
+
+ test -n "$7" && \
+ func_fatal_help "too many parameters to \`-version-info'"
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$1"
+ number_minor="$2"
+ number_revision="$3"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ # correct linux to gnu/linux during the next big refactor
+ darwin|linux|osf|windows|none)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|qnx|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age="$number_minor"
+ revision="$number_minor"
+ lt_irix_increment=no
+ ;;
+ esac
+ ;;
+ no)
+ current="$1"
+ revision="$2"
+ age="$3"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "CURRENT \`$current' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "REVISION \`$revision' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "AGE \`$age' must be a nonnegative integer"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ func_error "AGE \`$age' is greater than the current interface number \`$current'"
+ func_fatal_error "\`$vinfo' is not valid version information"
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ func_arith $current + 1
+ minor_current=$func_arith_result
+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current"
+ ;;
+
+ irix | nonstopux)
+ if test "X$lt_irix_increment" = "Xno"; then
+ func_arith $current - $age
+ else
+ func_arith $current - $age + 1
+ fi
+ major=$func_arith_result
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ func_arith $revision - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux) # correct to gnu/linux during the next big refactor
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ func_arith $current - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring+=":${current}.0"
+ ;;
+
+ qnx)
+ major=".$current"
+ versuffix=".$current"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix="-$major"
+ ;;
+
+ *)
+ func_fatal_configuration "unknown library version type \`$version_type'"
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ func_warning "undefined symbols not allowed in $host shared libraries"
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+
+ fi
+
+ func_generate_dlsyms "$libname" "$libname" "yes"
+ libobjs+=" $symfileobj"
+ test "X$libobjs" = "X " && libobjs=
+
+ if test "$opt_mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$ECHO "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext | *.gcno)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ removelist+=" $p"
+ ;;
+ *) ;;
+ esac
+ done
+ test -n "$removelist" && \
+ func_show_eval "${RM}r \$removelist"
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs+=" $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ #for path in $notinst_path; do
+ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+ #done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ func_replace_sysroot "$libdir"
+ temp_xrpath+=" -R$func_replace_sysroot_result"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath+=" $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles+=" $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles+=" $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs+=" System.ltframework"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ deplibs+=" -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $opt_dry_run || $RM conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs+=" $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs+=" $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ newdeplibs+=" $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs+=" $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs+=" $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ newdeplibs+=" $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method; shift
+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs+=" $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test "$want_nocaseglob" = yes; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ $nocaseglob
+ else
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ fi
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null |
+ $GREP " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+ $SED -e 10q |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs+=" $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ newdeplibs+=" $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs+=" $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+ $EGREP "$match_pattern_regex" > /dev/null; then
+ newdeplibs+=" $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ newdeplibs+=" $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+ done
+ fi
+ case $tmp_deplibs in
+ *[!\ \ ]*)
+ echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ ;;
+ esac
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library with the System framework
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ echo
+ echo "*** Since this library must not contain undefined symbols,"
+ echo "*** because either the platform does not support them or"
+ echo "*** it was explicitly requested with -no-undefined,"
+ echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ case $host in
+ *-*-darwin*)
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+ new_libs+=" -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs+=" $deplib" ;;
+ esac
+ ;;
+ *) new_libs+=" $deplib" ;;
+ esac
+ done
+ deplibs="$new_libs"
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ # Remove ${wl} instances when linking with ld.
+ # FIXME: should test the right _cmds variable.
+ case $archive_cmds in
+ *\$LD\ *) wl= ;;
+ esac
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ func_replace_sysroot "$libdir"
+ libdir=$func_replace_sysroot_result
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs+="$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath+=" $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath+=" $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath+="$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ shift
+ realname="$1"
+ shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ linknames=
+ for link
+ do
+ linknames+=" $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ test "X$libobjs" = "X " && libobjs=
+
+ delfiles=
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+ export_symbols="$output_objdir/$libname.uexp"
+ delfiles+=" $export_symbols"
+ fi
+
+ orig_export_symbols=
+ case $host_os in
+ cygwin* | mingw* | cegcc*)
+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+ # exporting using user supplied symfile
+ if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+ # and it's NOT already a .def file. Must figure out
+ # which of the given symbols are data symbols and tag
+ # them as such. So, trigger use of export_symbols_cmds.
+ # export_symbols gets reassigned inside the "prepare
+ # the list of exported symbols" if statement, so the
+ # include_expsyms logic still works.
+ orig_export_symbols="$export_symbols"
+ export_symbols=
+ always_export_symbols=yes
+ fi
+ fi
+ ;;
+ esac
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ func_verbose "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $opt_dry_run || $RM $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd1 in $cmds; do
+ IFS="$save_ifs"
+ # Take the normal branch if the nm_file_list_spec branch
+ # doesn't work or if tool conversion is not needed.
+ case $nm_file_list_spec~$to_tool_file_cmd in
+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+ try_normal_branch=yes
+ eval cmd=\"$cmd1\"
+ func_len " $cmd"
+ len=$func_len_result
+ ;;
+ *)
+ try_normal_branch=no
+ ;;
+ esac
+ if test "$try_normal_branch" = yes \
+ && { test "$len" -lt "$max_cmd_len" \
+ || test "$max_cmd_len" -le -1; }
+ then
+ func_show_eval "$cmd" 'exit $?'
+ skipped_export=false
+ elif test -n "$nm_file_list_spec"; then
+ func_basename "$output"
+ output_la=$func_basename_result
+ save_libobjs=$libobjs
+ save_output=$output
+ output=${output_objdir}/${output_la}.nm
+ func_to_tool_file "$output"
+ libobjs=$nm_file_list_spec$func_to_tool_file_result
+ delfiles+=" $output"
+ func_verbose "creating $NM input file list: $output"
+ for obj in $save_libobjs; do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > "$output"
+ eval cmd=\"$cmd1\"
+ func_show_eval "$cmd" 'exit $?'
+ output=$save_output
+ libobjs=$save_libobjs
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ func_verbose "using reloadable object file for export list..."
+ skipped_export=:
+ # Break out early, otherwise skipped_export may be
+ # set to false by a later but shorter cmd.
+ break
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ delfiles+=" $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ tmp_deplibs+=" $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec" &&
+ test "$compiler_needs_object" = yes &&
+ test -z "$libobjs"; then
+ # extract the archives, so we have objects to list.
+ # TODO: could optimize this to just extract one archive.
+ whole_archive_flag_spec=
+ fi
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ else
+ gentop="$output_objdir/${outputname}x"
+ generated+=" $gentop"
+
+ func_extract_archives $gentop $convenience
+ libobjs+=" $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags+=" $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$opt_mode" = relink; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" &&
+ func_len " $test_cmds" &&
+ len=$func_len_result &&
+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise
+ # or, if using GNU ld and skipped_export is not :, use a linker
+ # script.
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ func_basename "$output"
+ output_la=$func_basename_result
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ last_robj=
+ k=1
+
+ if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+ output=${output_objdir}/${output_la}.lnkscript
+ func_verbose "creating GNU ld script: $output"
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+ delfiles+=" $output"
+ func_to_tool_file "$output"
+ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+ output=${output_objdir}/${output_la}.lnk
+ func_verbose "creating linker input file list: $output"
+ : > $output
+ set x $save_libobjs
+ shift
+ firstobj=
+ if test "$compiler_needs_object" = yes; then
+ firstobj="$1 "
+ shift
+ fi
+ for obj
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ delfiles+=" $output"
+ func_to_tool_file "$output"
+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+ output=$output_objdir/$output_la-${k}.$objext
+ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ if test "X$objlist" = X ||
+ test "$len" -lt "$max_cmd_len"; then
+ objlist+=" $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ reload_objs=$objlist
+ eval concat_cmds=\"$reload_cmds\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ func_arith $k + 1
+ k=$func_arith_result
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=" $obj"
+ func_len " $last_robj"
+ func_arith $len0 + $func_len_result
+ len=$func_arith_result
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+ fi
+ delfiles+=" $output"
+
+ else
+ output=
+ fi
+
+ if ${skipped_export-false}; then
+ func_verbose "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $opt_dry_run || $RM $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ fi
+
+ test -n "$save_libobjs" &&
+ func_verbose "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $opt_silent || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+
+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+
+ if ${skipped_export-false}; then
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ delfiles+=" $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+ fi
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+ fi
+
+ if test -n "$delfiles"; then
+ # Append the command to remove temporary files to $cmds.
+ eval cmds=\"\$cmds~\$RM $delfiles\"
+ fi
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+ generated+=" $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ libobjs+=" $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $opt_silent || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$opt_mode" = relink; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ func_warning "\`-dlopen' is ignored for objects"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for objects" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "\`-rpath' is ignored for objects"
+
+ test -n "$xrpath" && \
+ func_warning "\`-R' is ignored for objects"
+
+ test -n "$vinfo" && \
+ func_warning "\`-version-info' is ignored for objects"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for objects"
+
+ case $output in
+ *.lo)
+ test -n "$objs$old_deplibs" && \
+ func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+ libobj=$output
+ func_lo2o "$libobj"
+ obj=$func_lo2o_result
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $opt_dry_run || $RM $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec and hope we can get by with
+ # turning comma into space..
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+ else
+ gentop="$output_objdir/${obj}x"
+ generated+=" $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # If we're not building shared, we need to use non_pic_objs
+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ func_execute_cmds "$reload_cmds" 'exit $?'
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ func_execute_cmds "$reload_cmds" 'exit $?'
+ fi
+
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result.exe;;
+ esac
+ test -n "$vinfo" && \
+ func_warning "\`-version-info' is ignored for programs"
+
+ test -n "$release" && \
+ func_warning "\`-release' is ignored for programs"
+
+ test "$preload" = yes \
+ && test "$dlopen_support" = unknown \
+ && test "$dlopen_self" = unknown \
+ && test "$dlopen_self_static" = unknown && \
+ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ case $host in
+ *-*-darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ # But is supposedly fixed on 10.4 or later (yay!).
+ if test "$tagname" = CXX ; then
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+ 10.[0123])
+ compile_command+=" ${wl}-bind_at_load"
+ finalize_command+=" ${wl}-bind_at_load"
+ ;;
+ esac
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+ new_libs+=" -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $compile_deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs+=" $deplib" ;;
+ esac
+ ;;
+ *) new_libs+=" $deplib" ;;
+ esac
+ done
+ compile_deplibs="$new_libs"
+
+
+ compile_command+=" $compile_deplibs"
+ finalize_command+=" $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath+=" $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs+="$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath+=" $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath+=" $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
+ *) dllsearchpath+=":$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) dllsearchpath+=":$testbindir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs+="$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath+=" $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath+=" $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ fi
+
+ func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+ # template prelinking step
+ if test -n "$prelink_cmds"; then
+ func_execute_cmds "$prelink_cmds" 'exit $?'
+ fi
+
+ wrappers_required=yes
+ case $host in
+ *cegcc* | *mingw32ce*)
+ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+ wrappers_required=no
+ ;;
+ *cygwin* | *mingw* )
+ if test "$build_libtool_libs" != yes; then
+ wrappers_required=no
+ fi
+ ;;
+ *)
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ wrappers_required=no
+ fi
+ ;;
+ esac
+ if test "$wrappers_required" = no; then
+ # Replace the output file specification.
+ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ exit_status=0
+ func_show_eval "$link_command" 'exit_status=$?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Delete the generated files.
+ if test -f "$output_objdir/${outputname}S.${objext}"; then
+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+ fi
+
+ exit $exit_status
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath+="$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath+="$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $opt_dry_run || $RM $output
+ # Link the executable and exit
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ func_warning "this platform does not like uninstalled shared libraries"
+ func_warning "\`$output' will be relinked during installation"
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output_objdir/$outputname"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Now create the wrapper script.
+ func_verbose "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if not in dry run mode.
+ $opt_dry_run || {
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ func_stripname '' '.exe' "$outputname"
+ outputname=$func_stripname_result ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ func_dirname_and_basename "$output" "" "."
+ output_name=$func_basename_result
+ output_path=$func_dirname_result
+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
+ cwrapper="$output_path/$output_name.exe"
+ $RM $cwrappersource $cwrapper
+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_cwrapperexe_src > $cwrappersource
+
+ # The wrapper executable is built using the $host compiler,
+ # because it contains $host paths and files. If cross-
+ # compiling, it, like the target executable, must be
+ # executed on the $host or under an emulation environment.
+ $opt_dry_run || {
+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+ $STRIP $cwrapper
+ }
+
+ # Now, create the wrapper script for func_source use:
+ func_ltwrapper_scriptname $cwrapper
+ $RM $func_ltwrapper_scriptname_result
+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host" ; then
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+ fi
+ }
+ ;;
+ * )
+ $RM $output
+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_wrapper no > $output
+ chmod +x $output
+ ;;
+ esac
+ }
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save $symfileobj"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ if test "$preload" = yes && test -f "$symfileobj"; then
+ oldobjs+=" $symfileobj"
+ fi
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ generated+=" $gentop"
+
+ func_extract_archives $gentop $addlibs
+ oldobjs+=" $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+ generated+=" $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ oldobjs+=" $func_extract_archives_result"
+ fi
+
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ func_basename "$obj"
+ $ECHO "$func_basename_result"
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ echo "copying selected object files to avoid basename conflicts..."
+ gentop="$output_objdir/${outputname}x"
+ generated+=" $gentop"
+ func_mkdir_p "$gentop"
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ func_basename "$obj"
+ objbase="$func_basename_result"
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ func_arith $counter + 1
+ counter=$func_arith_result
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ oldobjs+=" $gentop/$newobj"
+ ;;
+ *) oldobjs+=" $obj" ;;
+ esac
+ done
+ fi
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ elif test -n "$archiver_list_spec"; then
+ func_verbose "using command file archive linking..."
+ for obj in $oldobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > $output_objdir/$libname.libcmd
+ func_to_tool_file "$output_objdir/$libname.libcmd"
+ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ func_verbose "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+ oldobjs=
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+ for obj in $save_oldobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ objlist+=" $obj"
+ if test "$len" -lt "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ len=$len0
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ func_execute_cmds "$cmds" 'exit $?'
+ done
+
+ test -n "$generated" && \
+ func_show_eval "${RM}r$generated"
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ func_verbose "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_for_eval "$var_value"
+ relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+ # Only create the output if not a dry run.
+ $opt_dry_run || {
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ func_basename "$deplib"
+ name="$func_basename_result"
+ func_resolve_sysroot "$deplib"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+ newdependency_libs+=" ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ -L*)
+ func_stripname -L '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ newdependency_libs+=" -L$func_replace_sysroot_result"
+ ;;
+ -R*)
+ func_stripname -R '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ newdependency_libs+=" -R$func_replace_sysroot_result"
+ ;;
+ *) newdependency_libs+=" $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+
+ for lib in $dlfiles; do
+ case $lib in
+ *.la)
+ func_basename "$lib"
+ name="$func_basename_result"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+ newdlfiles+=" ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ *) newdlfiles+=" $lib" ;;
+ esac
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ *.la)
+ # Only pass preopened files to the pseudo-archive (for
+ # eventual linking with the app. that links it) if we
+ # didn't already link the preopened objects directly into
+ # the library:
+ func_basename "$lib"
+ name="$func_basename_result"
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+ newdlprefiles+=" ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ esac
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlfiles+=" $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlprefiles+=" $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $RM $output
+ # place dlname in correct position for cygwin
+ # In fact, it would be nice if we could use this code for all target
+ # systems that can't hard-code library paths into their executables
+ # and that have no shared library path variable independent of PATH,
+ # but it turns out we can't easily determine that from inspecting
+ # libtool variables, so we have to hard-code the OSs to which it
+ # applies here; at the moment, that means platforms that use the PE
+ # object format with DLL files. See the long comment at the top of
+ # tests/bindir.at for full details.
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+ # If a -bindir argument was supplied, place the dll there.
+ if test "x$bindir" != x ;
+ then
+ func_relative_path "$install_libdir" "$bindir"
+ tdlname=$func_relative_path_result$dlname
+ else
+ # Otherwise fall back on heuristic.
+ tdlname=../bin/$dlname
+ fi
+ ;;
+ esac
+ $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $ECHO >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ }
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+}
+
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
+ func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+ $opt_debug
+ RM="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) RM+=" $arg"; rmforce=yes ;;
+ -*) RM+=" $arg" ;;
+ *) files+=" $arg" ;;
+ esac
+ done
+
+ test -z "$RM" && \
+ func_fatal_help "you must specify an RM program"
+
+ rmdirs=
+
+ for file in $files; do
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+ if test "X$dir" = X.; then
+ odir="$objdir"
+ else
+ odir="$dir/$objdir"
+ fi
+ func_basename "$file"
+ name="$func_basename_result"
+ test "$opt_mode" = uninstall && odir="$dir"
+
+ # Remember odir for removal later, being careful to avoid duplicates
+ if test "$opt_mode" = clean; then
+ case " $rmdirs " in
+ *" $odir "*) ;;
+ *) rmdirs+=" $odir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if { test -L "$file"; } >/dev/null 2>&1 ||
+ { test -h "$file"; } >/dev/null 2>&1 ||
+ test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if func_lalib_p "$file"; then
+ func_source $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles+=" $odir/$n"
+ done
+ test -n "$old_library" && rmfiles+=" $odir/$old_library"
+
+ case "$opt_mode" in
+ clean)
+ case " $library_names " in
+ *" $dlname "*) ;;
+ *) test -n "$dlname" && rmfiles+=" $odir/$dlname" ;;
+ esac
+ test -n "$libdir" && rmfiles+=" $odir/$name $odir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ ;;
+ esac
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if func_lalib_p "$file"; then
+
+ # Read the .lo file
+ func_source $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" &&
+ test "$pic_object" != none; then
+ rmfiles+=" $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" &&
+ test "$non_pic_object" != none; then
+ rmfiles+=" $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$opt_mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ func_stripname '' '.exe' "$name"
+ noexename=$func_stripname_result
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles+=" $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if func_ltwrapper_p "$file"; then
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+ rmfiles+=" $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+ fi
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles+=" $odir/$name $odir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles+=" $odir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles+=" $odir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ func_show_eval "$RM $rmfiles" 'exit_status=1'
+ done
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ func_show_eval "rmdir $dir >/dev/null 2>&1"
+ fi
+ done
+
+ exit $exit_status
+}
+
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
+ func_mode_uninstall ${1+"$@"}
+
+test -z "$opt_mode" && {
+ help="$generic_help"
+ func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+ func_fatal_help "invalid operation mode \`$opt_mode'"
+
+if test -n "$exec_cmd"; then
+ eval exec "$exec_cmd"
+ exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="g++"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -DDLL_EXPORT -DPIC"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=yes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-all-symbols"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+archive_expsym_cmds="if test \\\"x\\\`\$SED 1q \$export_symbols\\\`\\\" = xEXPORTS; then
+ cp \$export_symbols \$output_objdir/\$soname.def;
+ else
+ echo EXPORTS > \$output_objdir/\$soname.def;
+ cat \$export_symbols >> \$output_objdir/\$soname.def;
+ fi~
+ \$CC -shared -nostdlib \$output_objdir/\$soname.def \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="unsupported"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="-L\$libdir"
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=unknown
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/s/.*[ ]\\\\([^ ]*\\\\)/\\\\1 DATA/;s/^.*[ ]__nm__\\\\([^ ]*\\\\)[ ][^ ]*/\\\\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs="c:/mingw/bin/../lib/gcc/mingw32/4.6.2 c:/mingw/bin/../lib/gcc c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/lib c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.. /mingw/lib"
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects="c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../dllcrt2.o c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o"
+postdep_objects="c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtend.o"
+predeps=""
+postdeps="-lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt"
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path="-Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2 -Lc:/mingw/bin/../lib/gcc -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/lib -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.. -L/mingw/lib"
+
+# ### END LIBTOOL TAG CONFIG: CXX
+
+# ### BEGIN LIBTOOL TAG CONFIG: F77
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="gfortran"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=" -DDLL_EXPORT"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=yes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-all-symbols"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+archive_expsym_cmds="if test \\\"x\\\`\$SED 1q \$export_symbols\\\`\\\" = xEXPORTS; then
+ cp \$export_symbols \$output_objdir/\$soname.def;
+ else
+ echo EXPORTS > \$output_objdir/\$soname.def;
+ cat \$export_symbols >> \$output_objdir/\$soname.def;
+ fi~
+ \$CC -shared \$output_objdir/\$soname.def \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="unsupported"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="-L\$libdir"
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=unknown
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/s/.*[ ]\\\\([^ ]*\\\\)/\\\\1 DATA/;s/^.*[ ]__nm__\\\\([^ ]*\\\\)[ ][^ ]*/\\\\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: F77
+
+# ### BEGIN LIBTOOL TAG CONFIG: FC
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="gfortran"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=" -DDLL_EXPORT"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag="-static"
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=yes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec="\${wl}--export-all-symbols"
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+archive_expsym_cmds="if test \\\"x\\\`\$SED 1q \$export_symbols\\\`\\\" = xEXPORTS; then
+ cp \$export_symbols \$output_objdir/\$soname.def;
+ else
+ echo EXPORTS > \$output_objdir/\$soname.def;
+ cat \$export_symbols >> \$output_objdir/\$soname.def;
+ fi~
+ \$CC -shared \$output_objdir/\$soname.def \$libobjs \$deplibs \$compiler_flags -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="yes"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="unsupported"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec="-L\$libdir"
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=no
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=unknown
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/s/.*[ ]\\\\([^ ]*\\\\)/\\\\1 DATA/;s/^.*[ ]__nm__\\\\([^ ]*\\\\)[ ][^ ]*/\\\\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs="c:/mingw/bin/../lib/gcc/mingw32/4.6.2 c:/mingw/bin/../lib/gcc c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/lib c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.. /mingw/lib"
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects="c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../dllcrt2.o c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtbegin.o"
+postdep_objects="c:/mingw/bin/../lib/gcc/mingw32/4.6.2/crtend.o"
+predeps=""
+postdeps="-lgfortran -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lquadmath -lm -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt"
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path="-Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2 -Lc:/mingw/bin/../lib/gcc -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/lib -Lc:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../.. -L/mingw/lib"
+
+# ### END LIBTOOL TAG CONFIG: FC
+
+# ### BEGIN LIBTOOL TAG CONFIG: GO
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC=""
+
+# Is the compiler the GNU compiler?
+with_gcc=
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=""
+
+# How to pass a linker flag through the compiler.
+wl=""
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=""
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=""
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=""
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds=""
+archive_expsym_cmds=""
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=""
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=""
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=
+
+# The commands to list exported symbols.
+export_symbols_cmds=""
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=""
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: GO
+
+# ### BEGIN LIBTOOL TAG CONFIG: GCJ
+
+# The linker used to build libraries.
+LD="c:/mingw/mingw32/bin/ld.exe"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC=""
+
+# Is the compiler the GNU compiler?
+with_gcc=
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=""
+
+# How to pass a linker flag through the compiler.
+wl=""
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=""
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=""
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=""
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds=""
+archive_expsym_cmds=""
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=""
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=""
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=
+
+# The commands to list exported symbols.
+export_symbols_cmds=""
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=""
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: GCJ
+
+# ### BEGIN LIBTOOL TAG CONFIG: RC
+
+# The linker used to build libraries.
+LD=""
+
+# How to create reloadable object files.
+reload_flag=""
+reload_cmds=""
+
+# Commands used to build an old-style archive.
+old_archive_cmds=""
+
+# A language specific compiler.
+CC="windres"
+
+# Is the compiler the GNU compiler?
+with_gcc=
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=""
+
+# How to pass a linker flag through the compiler.
+wl=""
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=""
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=""
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds=""
+archive_expsym_cmds=""
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=""
+module_expsym_cmds=""
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=""
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=""
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=
+
+# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=
+
+# The commands to list exported symbols.
+export_symbols_cmds=""
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=""
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: RC
diff --git a/gtk+-mingw/bin/libtoolize b/gtk+-mingw/bin/libtoolize
new file mode 100644
index 0000000..74760fa
--- /dev/null
+++ b/gtk+-mingw/bin/libtoolize
@@ -0,0 +1,2555 @@
+#! /bin/sh
+# Generated from libtoolize.m4sh by GNU Autoconf 2.68.
+
+# libtoolize (GNU libtool) 2.4.2
+# Written by Gary V. Vaughan <gary@gnu.org>, 2003
+
+# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+# Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# Libtoolize 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.
+#
+# Libtoolize 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 libtoolize; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]...
+#
+# Prepare a package to use libtool.
+#
+# -c, --copy copy files rather than symlinking them
+# --debug enable verbose shell tracing
+# -n, --dry-run print commands rather than running them
+# -f, --force replace existing files
+# -i, --install copy missing auxiliary files
+# --ltdl[=DIR] install libltdl sources [default: libltdl]
+# --no-warn don't display warning messages
+# --nonrecursive prepare ltdl for non-recursive make
+# -q, --quiet work silently
+# --recursive prepare ltdl for recursive make
+# --subproject prepare ltdl to configure and build independently
+# -v, --verbose verbosely report processing
+# --version print version information and exit
+# -h, --help print short or long help message
+#
+# The following space or comma delimited options can be passed to $progname
+# via the environment variable LIBTOOLIZE_OPTIONS, unknown environment
+# options are ignored:
+#
+# --debug enable verbose shell tracing
+# --no-warn don't display warning messages
+# --quiet work silently
+# --verbose verbosely report processing
+#
+# You must `cd' to the top directory of your package before you run
+# `$progname'.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+# host-triplet: i686-pc-mingw32
+# $progname: (GNU libtool) 2.4.2
+# automake: $automake_version
+# autoconf: $autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
+
+: ${TAR=tar}
+
+PROGRAM=libtoolize
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+## -------------------- ##
+## 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
+
+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"
+ as_suggested=""
+ 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
+ break 2
+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 :
+ # 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
+ export CONFIG_SHELL
+ 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+"$@"}
+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 about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do 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
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+
+
+
+: ${CP="cp -f"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="cp -p"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+ s@/\./@/@g
+ t dotsl
+ s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+# value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+ # Start from root dir and reassemble the path.
+ func_normal_abspath_result=
+ func_normal_abspath_tpath=$1
+ func_normal_abspath_altnamespace=
+ case $func_normal_abspath_tpath in
+ "")
+ # Empty path, that just means $cwd.
+ func_stripname '' '/' "`pwd`"
+ func_normal_abspath_result=$func_stripname_result
+ return
+ ;;
+ # The next three entries are used to spot a run of precisely
+ # two leading slashes without using negated character classes;
+ # we take advantage of case's first-match behaviour.
+ ///*)
+ # Unusual form of absolute path, do nothing.
+ ;;
+ //*)
+ # Not necessarily an ordinary path; POSIX reserves leading '//'
+ # and for example Cygwin uses it to access remote file shares
+ # over CIFS/SMB, so we conserve a leading double slash if found.
+ func_normal_abspath_altnamespace=/
+ ;;
+ /*)
+ # Absolute path, do nothing.
+ ;;
+ *)
+ # Relative path, prepend $cwd.
+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+ ;;
+ esac
+ # Cancel out all the simple stuff to save iterations. We also want
+ # the path to end with a slash for ease of parsing, so make sure
+ # there is one (and only one) here.
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+ while :; do
+ # Processed it all yet?
+ if test "$func_normal_abspath_tpath" = / ; then
+ # If we ascended to the root using ".." the result may be empty now.
+ if test -z "$func_normal_abspath_result" ; then
+ func_normal_abspath_result=/
+ fi
+ break
+ fi
+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcar"`
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$pathcdr"`
+ # Figure out what to do with it
+ case $func_normal_abspath_tcomponent in
+ "")
+ # Trailing empty path component, ignore it.
+ ;;
+ ..)
+ # Parent dir; strip last assembled component from result.
+ func_dirname "$func_normal_abspath_result"
+ func_normal_abspath_result=$func_dirname_result
+ ;;
+ *)
+ # Actual path component, append it.
+ func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+ ;;
+ esac
+ done
+ # Restore leading double-slash if one was found on entry.
+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+# value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+ func_relative_path_result=
+ func_normal_abspath "$1"
+ func_relative_path_tlibdir=$func_normal_abspath_result
+ func_normal_abspath "$2"
+ func_relative_path_tbindir=$func_normal_abspath_result
+
+ # Ascend the tree starting from libdir
+ while :; do
+ # check if we have found a prefix of bindir
+ case $func_relative_path_tbindir in
+ $func_relative_path_tlibdir)
+ # found an exact match
+ func_relative_path_tcancelled=
+ break
+ ;;
+ $func_relative_path_tlibdir*)
+ # found a matching prefix
+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+ func_relative_path_tcancelled=$func_stripname_result
+ if test -z "$func_relative_path_result"; then
+ func_relative_path_result=.
+ fi
+ break
+ ;;
+ *)
+ func_dirname $func_relative_path_tlibdir
+ func_relative_path_tlibdir=${func_dirname_result}
+ if test "x$func_relative_path_tlibdir" = x ; then
+ # Have to descend all the way to the root!
+ func_relative_path_result=../$func_relative_path_result
+ func_relative_path_tcancelled=$func_relative_path_tbindir
+ break
+ fi
+ func_relative_path_result=../$func_relative_path_result
+ ;;
+ esac
+ done
+
+ # Now calculate path; take care to avoid doubling-up slashes.
+ func_stripname '' '/' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ func_stripname '/' '/' "$func_relative_path_tcancelled"
+ if test "x$func_stripname_result" != x ; then
+ func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+ fi
+
+ # Normalisation. If bindir is libdir, return empty string,
+ # else relative path ending with a slash; either way, target
+ # file name can be directly appended.
+ if test ! -z "$func_relative_path_result"; then
+ func_stripname './' '' "$func_relative_path_result/"
+ func_relative_path_result=$func_stripname_result
+ fi
+}
+
+# The name of this program:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+ [\\/]*|[A-Za-z]:\\*) ;;
+ *[\\/]*)
+ progdir=$func_dirname_result
+ progdir=`cd "$progdir" && pwd`
+ progpath="$progdir/$progname"
+ ;;
+ *)
+ save_IFS="$IFS"
+ IFS=${PATH_SEPARATOR-:}
+ for progdir in $PATH; do
+ IFS="$save_IFS"
+ test -x "$progdir/$progname" && break
+ done
+ IFS="$save_IFS"
+ test -n "$progdir" || progdir=`pwd`
+ progpath="$progdir/$progname"
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes. A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+ s/$bs4/&\\
+/g
+ s/^$bs2$dollar/$bs&/
+ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+ s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+ $opt_verbose && func_echo ${1+"$@"}
+
+ # A bug in bash halts the script if the last line of a function
+ # fails when set -e is in force, so we need another command to
+ # work around that:
+ :
+}
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+
+ # bash bug again:
+ :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+ func_error ${1+"$@"}
+ func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information." ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+ $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+ my_directory_path="$1"
+ my_dir_list=
+
+ if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+ # Protect directory names starting with `-'
+ case $my_directory_path in
+ -*) my_directory_path="./$my_directory_path" ;;
+ esac
+
+ # While some portion of DIR does not yet exist...
+ while test ! -d "$my_directory_path"; do
+ # ...make a list in topmost first order. Use a colon delimited
+ # list incase some portion of path contains whitespace.
+ my_dir_list="$my_directory_path:$my_dir_list"
+
+ # If the last portion added has no slash in it, the list is done
+ case $my_directory_path in */*) ;; *) break ;; esac
+
+ # ...otherwise throw away the child directory and loop
+ my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+ done
+ my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+
+ save_mkdir_p_IFS="$IFS"; IFS=':'
+ for my_dir in $my_dir_list; do
+ IFS="$save_mkdir_p_IFS"
+ # mkdir can fail with a `File exist' error if two processes
+ # try to create one of the directories concurrently. Don't
+ # stop in that case!
+ $MKDIR "$my_dir" 2>/dev/null || :
+ done
+ IFS="$save_mkdir_p_IFS"
+
+ # Bail out if we (or some other process) failed to create a directory.
+ test -d "$my_directory_path" || \
+ func_fatal_error "Failed to create \`$1'"
+ fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$opt_dry_run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || \
+ func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+ fi
+
+ $ECHO "$my_tmpdir"
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+ case $1 in
+ *[\\\`\"\$]*)
+ func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
+ *)
+ func_quote_for_eval_unquoted_result="$1" ;;
+ esac
+
+ case $func_quote_for_eval_unquoted_result in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and and variable
+ # expansion for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+ ;;
+ *)
+ func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+ esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+ case $1 in
+ *[\\\`\"]*)
+ my_arg=`$ECHO "$1" | $SED \
+ -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+ *)
+ my_arg="$1" ;;
+ esac
+
+ case $my_arg in
+ # Double-quote args containing shell metacharacters to delay
+ # word splitting and command substitution for a subsequent eval.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ my_arg="\"$my_arg\""
+ ;;
+ esac
+
+ func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$my_cmd"
+ my_status=$?
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$lt_user_locale
+ $my_cmd"
+ my_status=$?
+ eval "$lt_safe_locale"
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result. All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+ case $1 in
+ [0-9]* | *[!a-zA-Z0-9_]*)
+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+ ;;
+ * )
+ func_tr_sh_result=$1
+ ;;
+ esac
+}
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+ $opt_debug
+
+ $SED -n '/(C)/!b go
+ :more
+ /\./!{
+ N
+ s/\n# / /
+ b more
+ }
+ :go
+ /^# '$PROGRAM' (GNU /,/# warranty; / {
+ s/^# //
+ s/^# *$//
+ s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+ p
+ }' < "$progpath"
+ exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/^# *.*--help/ {
+ s/^# //
+ s/^# *$//
+ s/\$progname/'$progname'/
+ p
+ }' < "$progpath"
+ echo
+ $ECHO "run \`$progname --help | more' for full usage"
+ exit $?
+}
+
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
+func_help ()
+{
+ $opt_debug
+
+ $SED -n '/^# Usage:/,/# Report bugs to/ {
+ :print
+ s/^# //
+ s/^# *$//
+ s*\$progname*'$progname'*
+ s*\$host*'"$host"'*
+ s*\$SHELL*'"$SHELL"'*
+ s*\$LTCC*'"$LTCC"'*
+ s*\$LTCFLAGS*'"$LTCFLAGS"'*
+ s*\$LD*'"$LD"'*
+ s/\$with_gnu_ld/'"$with_gnu_ld"'/
+ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
+ p
+ d
+ }
+ /^# .* home page:/b print
+ /^# General help using/b print
+ ' < "$progpath"
+ ret=$?
+ if test -z "$1"; then
+ exit $ret
+ fi
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+ $opt_debug
+
+ func_error "missing argument for $1."
+ exit_cmd=exit
+}
+
+
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+ my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+
+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+ my_sed_long_arg='1s/^--[^=]*=//'
+
+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
+
+
+
+
+
+# ltdl can be installed to be self-contained (subproject, the default);
+# or to be configured by a parent project, either with a recursive or
+# nonrecursive automake driven make:
+ltdl_mode=
+
+# Locations for important files:
+ltdldir=
+
+# Parse environment options
+{
+ my_sed_env_opt='1s/^\([^,:; ]*\).*$/\1/;q'
+ my_sed_env_rest='1s/^[^,:; ]*[,:; ]*\(.*\)$/\1/;q'
+
+ while test -n "$LIBTOOLIZE_OPTIONS"; do
+ opt=`echo "$LIBTOOLIZE_OPTIONS" | sed "$my_sed_env_opt"`
+ LIBTOOLIZE_OPTIONS=`echo "$LIBTOOLIZE_OPTIONS" | sed "$my_sed_env_rest"`
+
+ case $opt in
+ --debug|--no-warn|--quiet|--verbose)
+ envopts="${envopts+$envopts }$opt" ;;
+ --*) env_warning="${env_warning+$env_warning
+}unrecognized environment option \`$opt'" ;;
+ *) func_fatal_help "garbled LIBTOOLIZE_OPTIONS near \`$opt'" ;;
+ esac
+ done
+
+ test -n "$envopts" && {
+ func_quote_for_eval "$envopts"
+ eval set dummy "$func_quote_for_eval_result" ${1+"$@"}
+ shift
+ }
+}
+
+
+
+# Option defaults:
+opt_debug=:
+opt_copy=false
+opt_force=false
+opt_install=false
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+opt_nonrecursive=false
+opt_recursive=false
+opt_standalone=false
+opt_ltdl="false"
+
+
+# Parse options once, thoroughly. This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+ # this just eases exit handling
+ while test $# -gt 0; do
+ opt="$1"
+ shift
+ case $opt in
+ --debug|-x) opt_debug='set -x'
+ func_echo "enabling shell trace mode"
+ $opt_debug
+ ;;
+ --copy|-c)
+ opt_copy=:
+ ;;
+ --force|-f)
+ opt_force=:
+ ;;
+ --install|-i)
+ opt_install=:
+ ;;
+ --dry-run|--dryrun|-n)
+ opt_dry_run=:
+CP="func_echo_all $CP"
+test -n "$LN_S" && LN_S="func_echo_all $LN_S"
+MKDIR="func_echo_all $MKDIR"
+RM="func_echo_all $RM"
+TAR="func_echo_all $TAR"
+ ;;
+ --quiet|--automake|-q)
+ opt_quiet=:
+ ;;
+ --verbose|-v)
+ opt_verbose=:
+ ;;
+ --no-warning|--no-warn)
+ opt_warning=false
+ ;;
+ --nonrecursive|--non-recursive)
+ opt_nonrecursive=:
+ ;;
+ --recursive)
+ opt_recursive=:
+ ;;
+ --standalone)
+ opt_standalone=:
+ ;;
+ --ltdl)
+ optarg="$1"
+ if test $# -gt 0; then
+ case $optarg in # ((
+ -*) ;;
+ *) opt_ltdl="$optarg"; shift ;;
+ esac
+ fi
+# This is tricky, since we're overloading $opt_ltdl to be the
+# optarg for --ltdl during option processing, but then stashing
+# the (optional) optarg in $ltdldir and reusing $opt_ltdl to
+# indicate that --ltdl was seen during option processing. Also,
+# be careful that --ltdl=foo --ltdl=bar results in ltdldir=bar:
+case $opt_ltdl in
+ false|:) ;; # a bare '--ltdl' followed by another option
+ *) ltdldir=`$ECHO "$optarg" | $SED 's,/*$,,'` ;;
+esac
+opt_ltdl=:
+ ;;
+
+ -\?|-h) func_usage ;;
+ --help) func_help ;;
+ --version) func_version ;;
+
+ # Separate optargs to long options:
+ --*=*)
+ func_split_long_opt "$opt"
+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate non-argument short options:
+ -\?*|-h*|-c*|-f*|-i*|-n*|-q*|-v*)
+ func_split_short_opt "$opt"
+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ --) break ;;
+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
+ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
+ # Validate options:
+
+ # show any warnings saved by LIBTOOLIZE_OPTIONS parsing
+ test -n "$env_warning" &&
+ echo "$env_warning" |while read line; do func_warning "$line"; done
+
+ # validate $opt_nonrecursive, $opt_recursive and $opt_standalone
+ if $opt_nonrecursive; then
+ if $opt_recursive || $opt_standalone; then
+ func_error "you can have at most one of --non-recursive, --recursive and --standalone"
+ fi
+ ltdl_mode=nonrecursive
+ elif $opt_recursive; then
+ $opt_standalone &&
+ func_error "you can have at most one of --non-recursive, --recursive and --standalone"
+ ltdl_mode=recursive
+ elif $opt_standalone; then
+ ltdl_mode=standalone
+ fi
+
+ # any remaining arguments are an error
+ test $# -gt 0 &&
+ func_fatal_help "unknown additional arguments: \`${1+}'"
+
+
+ # Bail if the options were screwed
+ $exit_cmd $EXIT_FAILURE
+}
+
+
+
+
+# func_echo_once msg_var
+# Calls func_echo with the value of MSG_VAR, and then sets MSG_VAR="" so
+# that subsequent calls have no effect.
+func_echo_once ()
+{
+ $opt_debug
+ if test -n "$1"; then
+ eval my_msg=\$$1
+
+ if test -n "$my_msg"; then
+ func_echo "$my_msg"
+ eval $1=""
+ fi
+ fi
+}
+
+
+# func_copy srcfile destfile [msg_var]
+# A wrapper for func_copy_cb that accepts arguments in the same order
+# as the cp(1) shell command.
+func_copy ()
+{
+ $opt_debug
+
+ test -f "$1" || \
+ { func_error "\`$1' not copied: not a regular file"; return 1; }
+
+ func_dirname_and_basename "$1"
+ my_f1=$func_basename_result
+
+ if test -d "$2"; then
+
+ func_copy_cb "$my_f1" \
+ `$ECHO "$1" | $SED "$dirname"` "$2" "$3"
+
+ else
+
+ # Supporting this would mean changing the timestamp:
+ func_dirname_and_basename "$2"
+ my_tname=$func_basename_result
+ test "X$my_f1" = "X$my_tname" \
+ || func_fatal_error "func_copy() cannot change filename on copy"
+
+ func_copy_cb "$my_f1" \
+ `$ECHO "$1" | $SED "$dirname"` \
+ `$ECHO "$2" | $SED "$dirname"` \
+ "$3"
+
+ fi
+
+ return $copy_return_status # set in func_copy_cb
+}
+
+
+# func_copy_cb filename srcdir destdir [msg_var]
+# If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails,
+# then try to copy SRCFILE to DESTFILE (without changing the timestamp if
+# possible).
+func_copy_cb ()
+{
+ $opt_debug
+ my_file="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ copy_return_status=1
+
+ # Libtool is probably misinstalled if this happens:
+ test -f "$my_srcdir/$my_file" ||
+ func_fatal_error "\`$my_file' not found in \`$my_srcdir'"
+
+ case $opt_verbose in
+ false) my_copy_msg="file \`$my_destdir/$my_file'" ;;
+ *) my_copy_msg="file from \`$my_srcdir/$my_file'" ;;
+ esac
+ func_mkdir_p `$ECHO "$my_destdir/$my_file" | $SED "$dirname"`
+
+ $RM "$my_destdir/$my_file"
+ if $opt_copy; then
+ if { ( cd "$my_srcdir" && $TAR chf - "$my_file" ) 2>/dev/null \
+ | ( umask 0 && cd "$my_destdir" && $TAR xf - ) >/dev/null 2>&1; } \
+ && touch "$my_destdir/$my_file"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "copying $my_copy_msg"
+ copy_return_status=0
+ fi
+ else
+ if test "$my_file" = "aclocal.m4"; then
+ if { ( cd "$my_srcdir" && $TAR chf - "$my_file" ) 2>/dev/null \
+ | ( umask 0 && cd "$my_destdir" && $TAR xf - ) >/dev/null 2>&1 ; }
+ then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "copying $my_copy_msg"
+ copy_return_status=0
+ fi
+ else
+ if $LN_S "$my_srcdir/$my_file" "$my_destdir/$my_file"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet || func_echo "linking $my_copy_msg"
+ copy_return_status=0
+ fi
+ fi
+ fi
+ if test "$copy_return_status" != 0; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ func_error "can not copy \`$my_srcdir/$my_file' to \`$my_destdir/'"
+ exit_status=$EXIT_FAILURE
+ fi
+}
+
+
+# func_copy_some_files srcfile_spec srcdir destdir [msg_var] [cb=func_copy_cb]
+# Call COPY_CB for each regular file in SRCDIR named by the ':' delimited
+# names in SRCFILE_SPEC. The odd calling convention is needed to allow
+# spaces in file and directory names.
+func_copy_some_files ()
+{
+ $opt_debug
+ my_srcfile_spec="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ my_copy_cb="${5-func_copy_cb}"
+
+ my_save_IFS="$IFS"
+ IFS=:
+ for my_filename in $my_srcfile_spec; do
+ IFS="$my_save_IFS"
+ if test -f "$my_srcdir/$my_filename"; then
+ if test "X$my_copy_cb" = Xfunc_copy_cb; then
+ $opt_force || if test -f "$my_destdir/$my_filename"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet \
+ || func_error "\`$my_destdir/$my_filename' exists: use \`--force' to overwrite"
+ continue
+ fi
+ fi
+ else
+ func_echo_once "$my_msg_var"
+ func_fatal_error "\`$my_filename' not found in \`$my_srcdir'"
+ fi
+
+ $my_copy_cb "$my_filename" "$my_srcdir" "$my_destdir" "$my_msg_var"
+ done
+ IFS="$my_save_IFS"
+}
+
+
+# func_fixup_Makefile srcfile srcdir destdir
+func_fixup_Makefile ()
+{
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_fixup_non_subpackage_script="\
+ s,(LIBOBJS),(ltdl_LIBOBJS),g
+ s,(LTLIBOBJS),(ltdl_LTLIBOBJS),g
+ s,libltdl/configure.ac,,
+ s,libltdl/configure,,
+ s,libltdl/aclocal.m4,,
+ s,libltdl/config-h.in,,
+ s,libltdl/Makefile.am,,
+ s,libltdl/Makefile.in,,
+ /^[ ]*\\\\\$/d"
+ case $my_filename in
+ Makefile.am)
+ my_fixup_non_subpackage_script=`echo "$my_fixup_non_subpackage_script" | \
+ sed 's,libltdl/,,'`
+ my_fixup_inc_paths_script= ;;
+ Makefile.inc)
+ repl=$ltdldir
+ repl_uscore=`$ECHO "$repl" | $SED 's,[/.+-],_,g'`
+ my_fixup_inc_paths_script="\
+ s,libltdl_,@repl_uscore@_,
+ s,libltdl/,@repl@/,
+ s,: libltdl/,: @repl@/,
+ s, -Ilibltdl , -I@repl@ ,
+ s,\\\$(libltdl_,\$(@repl_uscore@_,
+ s,)/libltdl ,)/@repl@ ,
+ s,@repl_uscore@,${repl_uscore},g
+ s,@repl@,${repl},g"
+ ;;
+ esac
+
+ $RM "$my_destdir/$my_filename" 2>/dev/null
+ $opt_quiet || func_echo "creating file \`$my_destdir/$my_filename'"
+ if $opt_dry_run; then :;
+ else
+ $SED "$my_fixup_non_subpackage_script
+ $my_fixup_inc_paths_script" \
+ < "$my_srcdir/$my_filename" > "$my_destdir/$my_filename" ||
+ func_fatal_error "cannot create $my_destdir/$my_filename"
+ fi
+}
+
+# func_scan_files
+# Scan configure.(ac|in) and aclocal.m4 (if present) for use of libltdl
+# and libtool. Possibly running some of these tools if necessary.
+# Libtoolize affects the contents of aclocal.m4, and should be run before
+# aclocal, so we can't use configure --trace which relies on a consistent
+# configure.(ac|in) and aclocal.m4.
+func_scan_files ()
+{
+ $opt_debug
+ # Prefer configure.ac to configure.in
+ test -f configure.ac && configure_ac=configure.ac
+ test -f "$configure_ac" || configure_ac=
+
+ # Set local variables to reflect contents of configure.ac
+ my_sed_scan_configure_ac='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,;
+ /AC_INIT/ {
+ s,^.*$,seen_autoconf=:,
+ p
+ }
+ d'
+ test -z "$configure_ac" \
+ || eval `$SED "$my_sed_scan_configure_ac" "$configure_ac"`
+
+ $seen_autoconf || {
+ my_configure_ac=
+ test -n "$configure_ac" && my_configure_ac="$configure_ac: "
+ func_verbose "${my_configure_ac}not using Autoconf"
+
+ # Make sure ltdldir and ltdl_mode have sensible defaults
+ # since we return early here:
+ test -n "$ltdldir" || ltdldir=libltdl
+ test -n "$ltdl_mode" || ltdl_mode=subproject
+
+ return
+ }
+
+ # ---------------------------------------------------- #
+ # Probe macro usage in configure.ac and/or aclocal.m4. #
+ # ---------------------------------------------------- #
+
+ my_sed_traces='s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,
+ s,^.*AC_REQUIRE(.*$,,; s,^.*m4_require(.*$,,;
+ s,^.*m4_define(.*$,,
+ s,^.*A[CU]_DEFUN(.*$,,; s,^.*m4_defun(.*$,,
+ /AC_CONFIG_AUX_DIR(/ {
+ s,^.*AC_CONFIG_AUX_DIR([[ ]*\([^])]*\).*$,ac_auxdir=\1,
+ p
+ }
+ /AC_CONFIG_MACRO_DIR(/ {
+ s,^.*AC_CONFIG_MACRO_DIR([[ ]*\([^])]*\).*$,ac_macrodir=\1,
+ p
+ }
+ /_LT_CONFIG_LTDL_DIR(/d
+ /LT_CONFIG_LTDL_DIR(/ {
+ s,^.*LT_CONFIG_LTDL_DIR([[ ]*\([^])]*\).*$,ac_ltdldir=\1,
+ p
+ }
+ /\[A[CM]_PROG_LIBTOOL/d
+ /A[CM]_PROG_LIBTOOL/ {
+ s,^.*$,seen_libtool=:,
+ p
+ }
+ /the.*option into.*LT_INIT.*parameter/d
+ /\[LT_INIT/d
+ /LT_INIT/ {
+ s,^.*$,seen_libtool=:,
+ p
+ }
+ /\[LTDL_INIT/d
+ /LTDL_INIT/ {
+ s,^.*LTDL_INIT([[ ]*\([^])]*\).*$,ltdl_options="\1",
+ s,^.*LTDL_INIT[ ]*$,seen_ltdl=:,
+ p
+ }
+ /LT_WITH_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ /AC_LIB_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ /AC_WITH_LTDL/ {
+ s,^.*$,seen_ltdl=:,
+ p
+ }
+ d'
+ eval `cat aclocal.m4 "$configure_ac" 2>/dev/null | $SED "$my_sed_traces"`
+
+
+ # ----------------- #
+ # Validate ltdldir. #
+ # ----------------- #
+
+ ac_ltdldir=`$ECHO "$ac_ltdldir" | $SED 's,/*$,,'`
+
+ # If $configure_ac contains AC_CONFIG_LTDL_DIR, check that its
+ # arguments were not given in terms of a shell variable!
+ case "$ac_ltdldir" in
+ *\$*)
+ func_fatal_error "can not handle variables in LT_CONFIG_LTDL_DIR"
+ ;;
+ esac
+
+ # If neither --ltdl nor LT_CONFIG_LTDL_DIR are specified, default to
+ # `libltdl'. If both are specified, they must be the same. Otherwise,
+ # take the one that is given! (If LT_CONFIG_LTDL_DIR is not specified
+ # we suggest adding it later in this code.)
+ case x$ac_ltdldir,x$ltdldir in
+ x,x) ltdldir=libltdl ;;
+ x*,x) ltdldir=$ac_ltdldir ;;
+ x,x*) ltdldir=$ltdldir ;;
+ *)
+ test x"$ac_ltdldir" = x"$ltdldir" || \
+ func_fatal_error "--ltdl='$ltdldir' does not match LT_CONFIG_LTDL_DIR($ac_ltdldir)"
+ ;;
+ esac
+
+
+ # ------------------- #
+ # Validate ltdl_mode. #
+ # ------------------- #
+
+ test -n "$ltdl_options" && seen_ltdl=:
+
+ # If $configure_ac contains LTDL_INIT, check that its
+ # arguments were not given in terms of a shell variable!
+ case "$ltdl_options" in
+ *\$*)
+ func_fatal_error "can not handle variables in LTDL_INIT"
+ ;;
+ esac
+
+ # Extract mode name from ltdl_options
+ # FIXME: Diagnose multiple conflicting modes in ltdl_options
+ ac_ltdl_mode=
+ case " $ltdl_options " in
+ *" nonrecursive "*) ac_ltdl_mode=nonrecursive ;;
+ *" recursive "*) ac_ltdl_mode=recursive ;;
+ *" subproject "*) ac_ltdl_mode=subproject ;;
+ esac
+
+ # If neither --ltdl nor an LTDL_INIT mode are specified, default to
+ # `subproject'. If both are specified, they must be the same. Otherwise,
+ # take the one that is given!
+ case x$ac_ltdl_mode,x$ltdl_mode in
+ x,x) ltdl_mode=subproject ;;
+ x*,x) ltdl_mode=$ac_ltdl_mode ;;
+ x,x*) ltdl_mode=$ltdl_mode ;;
+ *)
+ test x"$ac_ltdl_mode" = x"$ltdl_mode" || \
+ func_fatal_error "--$ltdl_mode does not match LTDL_INIT($ac_ltdl_mode)"
+ ;;
+ esac
+
+ # ---------------- #
+ # Validate auxdir. #
+ # ---------------- #
+
+ if test -n "$ac_auxdir"; then
+ # If $configure_ac contains AC_CONFIG_AUX_DIR, check that it was
+ # not given in terms of a shell variable!
+ case "$ac_auxdir" in
+ *\$*)
+ func_fatal_error "can not handle variables in AC_CONFIG_AUX_DIR"
+ ;;
+ *)
+ auxdir=$ac_auxdir
+ ;;
+ esac
+ else
+ # Try to discover auxdir the same way it is discovered by configure.
+ # Note that we default to the current directory.
+ for dir in . .. ../..; do
+ if test -f "$dir/install-sh"; then
+ auxdir=$dir
+ break
+ elif test -f "$dir/install.sh"; then
+ auxdir="$dir"
+ break
+ fi
+ done
+ fi
+
+ # Just use the current directory if all else fails.
+ test -n "$auxdir" || auxdir=.
+
+
+ # ------------------------------ #
+ # Find local m4 macro directory. #
+ # ------------------------------ #
+
+ # Hunt for ACLOCAL_AMFLAGS in `Makefile.am' for a `-I' argument.
+
+ my_sed_aclocal_flags='
+ /^[ ]*ACLOCAL_[A-Z_]*FLAGS[ ]*=[ ]*/ {
+ s,,,
+ q
+ }
+ d'
+ if test -f Makefile.am; then
+ my_macrodir_is_next=false
+ for arg in `$SED "$my_sed_aclocal_flags" Makefile.am`; do
+ if $my_macrodir_is_next; then
+ am_macrodir="$arg"
+ break
+ else
+ case $arg in
+ -I) my_macrodir_is_next=: ;;
+ -I*)
+ am_macrodir=`$ECHO "$arg" | sed 's,^-I,,'`
+ break
+ ;;
+ *) my_macrodir_is_next=false ;;
+ esac
+ fi
+ done
+ fi
+
+ macrodir="$ac_macrodir"
+ test -z "$macrodir" && macrodir="$am_macrodir"
+
+ if test -n "$am_macrodir" && test -n "$ac_macrodir"; then
+ test "$am_macrodir" = "$ac_macrodir" \
+ || func_fatal_error "AC_CONFIG_MACRO_DIR([$ac_macrodir]) conflicts with ACLOCAL_AMFLAGS=-I $am_macrodir."
+ fi
+}
+
+# func_included_files searchfile
+# Output INCLUDEFILE if SEARCHFILE m4_includes it, else output SEARCHFILE.
+func_included_files ()
+{
+ $opt_debug
+ my_searchfile="$1"
+
+ my_include_regex=
+ my_sed_include='
+ /^m4_include(\[.*\])$/ {
+ s,^m4_include(\[\(.*\)\])$,\1,
+ p
+ }
+ d'
+
+ if test -f "$my_searchfile"; then
+ $ECHO "$my_searchfile"
+
+ # Only recurse when we don't care if all the variables we use get
+ # trashed, since they are in global scope.
+ for my_filename in `$SED "$my_sed_include" "$my_searchfile"`; do
+ func_included_files $my_filename
+ done
+ fi
+}
+
+
+# func_serial filename [macro_regex]
+# Output the value of the serial number comment in FILENAME, where the
+# comment line must also match MACRO_REGEX, if given.
+func_serial ()
+{
+ $opt_debug
+ my_filename="$1"
+ my_macro_regex="$2"
+ my_sed_serial='
+ /^# serial [1-9][0-9.]*[ ]*'"$my_macro_regex"'[ ]*$/ {
+ s,^# serial \([1-9][0-9.]*\).*$,\1,
+ q
+ }
+ d'
+
+ # Search FILENAME and all the files it m4_includes for a serial number
+ # in the file that AC_DEFUNs MACRO_REGEX.
+ my_serial=
+ func_dirname_and_basename "$my_filename"
+ my_filebase=$func_basename_result
+ for my_file in `func_included_files "$my_filename"`; do
+ if test -z "$my_macro_regex" ||
+ test "$my_filename" = aclocal.m4 ||
+ test "X$my_macro_regex" = "X$my_filebase" ||
+ func_grep '^AC_DEFUN(\['"$my_macro_regex" "$my_file"
+ then
+ my_serial=`$SED -e "$my_sed_serial" "$my_file"`
+ break
+ fi
+ done
+
+ # If the file has no serial number, we assume it's ancient.
+ test -n "$my_serial" || my_serial=0
+
+ $ECHO "$my_serial"
+}
+
+
+# func_serial_max serial1 serial2
+# Compare (possibly multi-part, '.' delimited) serial numbers, and
+# return the largest in $func_serial_max_result. If they are the
+# same, func_serial_max_result will be empty.
+func_serial_max ()
+{
+ $opt_debug
+ my_serial1="$1"
+ my_serial2="$2"
+
+ my_sed_dot='s/\..*$//g'
+ my_sed_rest='s/^[0-9][1-9]*\.*//'
+ my_sed_digits='s/[^0-9.]//g'
+
+ # Incase they turn out to be the same, we'll set it to empty
+ func_serial_max_result=
+
+ test "X$1$2" = X`$ECHO "$1$2" | $SED "$my_sed_digits"` || {
+ func_error "serial numbers \`$1' or \`$2' contain non-digit chars"
+ return
+ }
+
+ while test -n "$my_serial1$my_serial2"; do
+ my_serial1_part=`$ECHO "$my_serial1" | $SED "$my_sed_dot"`
+ my_serial2_part=`$ECHO "$my_serial2" | $SED "$my_sed_dot"`
+
+ test -z "$my_serial1_part$my_serial2_part" \
+ && break
+
+ test -z "$my_serial1_part" \
+ && { func_serial_max_result="$2"; break; }
+
+ test -z "$my_serial2_part" \
+ && { func_serial_max_result="$1"; break; }
+
+ test "$my_serial1_part" -gt "$my_serial2_part" \
+ && { func_serial_max_result="$1"; break; }
+
+ test "$my_serial2_part" -gt "$my_serial1_part" \
+ && { func_serial_max_result="$2"; break; }
+
+ my_serial1=`$ECHO "$my_serial1" | $SED "$my_sed_rest"`
+ my_serial2=`$ECHO "$my_serial2" | $SED "$my_sed_rest"`
+ done
+}
+
+
+# func_serial_update_check srcfile src_serial destfile dest_serial
+# Unless SRC_SERIAL is newer than DEST_SERIAL set $func_serial_update_check
+# to 'false'.
+func_serial_update_check ()
+{
+ $opt_debug
+ my_srcfile="$1"
+ my_src_serial="$2"
+ my_destfile="$3"
+ my_dest_serial="$4"
+ my_update_p=:
+
+ if test -f "$my_destfile"; then
+ test "X$my_src_serial" = "X0" && {
+ func_warning "no serial number on \`$my_srcfile', not copying."
+ return
+ }
+
+ # Determine whether the destination has an older serial.
+ func_serial_max "$my_src_serial" "$my_dest_serial"
+ test "X$my_src_serial" = "X$func_serial_max_result" || my_update_p=false
+
+ test "X$my_src_serial" = "X$func_serial_max_result" \
+ && func_verbose "\`$my_srcfile' is serial $my_src_serial, greater than $my_dest_serial in \`$my_destfile'"
+
+ if test "X$my_dest_serial" = "X$func_serial_max_result"; then
+ func_verbose "\`$my_srcfile' is serial $my_src_serial, less than $my_dest_serial in \`$my_destfile'"
+ $opt_force || if test -n "$ac_macrodir$ac_ltdldir"; then
+ func_error "\`$my_destfile' is newer: use \`--force' to overwrite"
+ fi
+ fi
+ fi
+
+ func_serial_update_check_result="$my_update_p"
+}
+
+
+# func_aclocal_update_check filename
+# Unless serial number of FILENAME is newer than the matching serial number
+# in aclocal.m4, set $func_aclocal_update_check to 'false'.
+func_aclocal_update_check ()
+{
+ $opt_debug
+ my_srcfile="$aclocaldir/$1"
+ my_destfile="aclocal.m4"
+
+ case $need in
+ libtool.m4)
+ my_src_serial=`func_serial "$my_srcfile" LT_INIT`
+ my_dest_serial=`func_serial "$my_destfile" LT_INIT`
+
+ # Strictly, this libtoolize ought not to have to deal with ancient
+ # serial formats, but we accept them here to be complete:
+ test "X$my_src_serial" = "X0" &&
+ my_src_serial=`func_serial "$my_srcfile" 'A[CM]_PROG_LIBTOOL'`
+ test "X$my_dest_serial" = "X0" &&
+ my_dest_serial=`func_serial "$my_destfile" 'A[CM]_PROG_LIBTOOL'`
+ ;;
+ ltdl.m4)
+ my_src_serial=`func_serial "$my_srcfile" LTDL_INIT`
+ my_dest_serial=`func_serial "$my_destfile" LTDL_INIT`
+ ;;
+ *)
+ my_src_serial=`func_serial "$my_srcfile" "$need"`
+ my_dest_serial=`func_serial "$my_destfile" "$need"`
+ ;;
+ esac
+
+ func_serial_update_check \
+ "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
+
+ func_aclocal_update_check_result="$func_serial_update_check_result"
+}
+
+
+# func_serial_update filename srcdir destdir [msg_var] [macro_re] [old_macro_re]
+# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
+# has a newer serial number, or DESTFILE does not yet exist, or the user
+# specified `--force' at the command line. If given, MACRO_REGEX or
+# OLD_MACRO_REGEX must match any text after "# serial N" in both files.
+func_serial_update ()
+{
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_msg_var="$4"
+ my_macro_regex="$5"
+ my_old_macro_regex="$6"
+
+ my_serial_update_p=:
+ my_return_status=1
+ my_srcfile="$my_srcdir/$my_filename"
+ my_destfile="$my_destdir/$my_filename"
+
+ test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist."
+
+ if test -f "$my_destfile"; then
+ my_src_serial=`func_serial "$my_srcfile" "$my_macro_regex"`
+ my_dest_serial=`func_serial "$my_destfile" "$my_macro_regex"`
+
+ # Strictly, this libtoolize ought not to have to deal with ancient
+ # serial formats, but we accept them here to be complete:
+ test "X$my_src_serial" = "X0" &&
+ my_src_serial=`func_serial "$my_srcfile" "$my_old_macro_regex"`
+
+ test "X$my_dest_serial" = "X0" &&
+ my_dest_serial=`func_serial "$my_destfile" "$my_old_macro_regex"`
+
+ func_serial_update_check \
+ "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
+ my_serial_update_p="$func_serial_update_check_result"
+ fi
+
+ if $my_serial_update_p || $opt_force; then
+ func_copy "$my_srcfile" "$my_destfile" "$my_msg_var"
+ my_return_status=$?
+ elif $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then
+ $opt_quiet || func_echo_once "$my_msg_var"
+ $opt_quiet \
+ || func_echo "\`$my_destfile' is already up to date."
+ fi
+
+ # Do this after the copy for hand maintained `aclocal.m4', incase
+ # it has `m4_include([DESTFILE])', so the copy effectively already
+ # updated `aclocal.m4'.
+ my_included_files=`func_included_files aclocal.m4`
+ case `echo " $my_included_files " | $NL2SP` in
+
+ # Skip included files:
+ *" $my_destfile "*) ;;
+
+ # Otherwise compare to aclocal.m4 serial number (func_serial
+ # returns 0 for older macro serial numbers before we provided
+ # serial tags, so the update message will be correctly given
+ # if aclocal.m4 contains an untagged --i.e older-- macro file):
+ *)
+ if test -f aclocal.m4; then
+ func_serial_max \
+ "$my_src_serial" `func_serial aclocal.m4 "$my_macro_regex"`
+ if test "X$my_src_serial" = "X$func_serial_max_result"; then
+ func_echo_once "$my_msg_var"
+ func_echo "You should add the contents of \`$my_destfile' to \`aclocal.m4'."
+ fi
+ fi
+ ;;
+ esac
+ return $my_return_status
+}
+
+
+# func_keyword_update filename srcdir destdir sed_script [msg_var]
+# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
+# has a newer revision according to the serial number extracted by
+# SED_SCRIPT, or DESTFILE does not yet exist, or the user specified
+# `--force' at the command line.
+func_keyword_update ()
+{
+ $opt_debug
+ my_filename="$1"
+ my_srcdir="$2"
+ my_destdir="$3"
+ my_sed_script="$4"
+ my_msg_var="$5"
+
+ my_srcfile="$my_srcdir/$my_filename"
+ my_destfile="$my_destdir/$my_filename"
+
+ my_keyword_update_p=:
+
+ test -f "$my_srcfile" || func_fatal_error "\`$my_srcfile' does not exist."
+
+ if test -f "$my_destfile"; then
+ my_src_serial=`$SED -e "$my_sed_script" "$my_srcfile"`
+ test -z "$my_src_serial" && {
+ func_warning "no serial number in \`$my_srcfile', not copying."
+ return
+ }
+
+ my_dest_serial=`$SED -e "$my_sed_script" "$my_destfile"`
+ test -n "$my_dest_serial" || my_dest_serial=0
+
+ func_serial_update_check \
+ "$my_srcfile" "$my_src_serial" "$my_destfile" "$my_dest_serial"
+ my_keyword_update_p="$func_serial_update_check_result"
+ fi
+
+ if $my_keyword_update_p || $opt_force; then
+ func_copy "$my_srcfile" "$my_destfile" "$my_msg_var"
+ elif $opt_verbose || $opt_force && test "X$my_dest_serial" = "X$my_src_serial"; then
+ func_echo_once "$my_msg_var"
+ func_echo "\`$my_destfile' is already up to date."
+ fi
+}
+
+
+# func_ltmain_update filename srcdir destdir [msg_var]
+# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
+# has a newer revision, or DESTFILE does not yet exist, or the user
+# specified `--force' at the command line.
+func_ltmain_update ()
+{
+ $opt_debug
+ my_sed_ltmain='
+ /^package_revision='\''*[0-9][1-9.]*'\''*/ {
+ s,^package_revision='\''*\([0-9.]*\)'\''*[ ]*$,\1,
+ p
+ }
+ d'
+
+ func_keyword_update "$1" "$2" "$3" "$my_sed_ltmain" "$4"
+
+ return $my_return_status
+}
+
+
+# func_config_update filename srcdir destdir [msg_var]
+# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
+# has a newer timestamp, or DESTFILE does not yet exist, or the user
+# specified `--force' at the command line.
+func_config_update ()
+{
+ $opt_debug
+ my_sed_config='
+ /^timestamp='\''*[0-9][1-9-]*'\''*/ {
+ s,^timestamp='\''*\([0-9-]*\)'\''*,\1,
+ s/-/./g
+ p
+ }
+ d'
+
+ func_keyword_update "$1" "$2" "$3" "$my_sed_config" "$4"
+
+ return $my_return_status
+}
+
+
+# func_install_update filename srcdir destdir [msg_var]
+# Copy the FILENAME from a SRCDIR to DESTDIR provided that either FILENAME
+# has a newer timestamp, or DESTFILE does not yet exist, or the user
+# specified `--force' at the command line.
+func_install_update ()
+{
+ $opt_debug
+ my_sed_install='
+ /^scriptversion='\''*[0-9][1-9.-]*'\''*/ {
+ s,[#;].*,,
+ s,^scriptversion='\''*\([0-9.-]*\)'\''*,\1,
+ s/-/./g
+ p
+ }
+ d'
+
+ func_keyword_update "$1" "$2" "$3" "$my_sed_install" "$4"
+
+ return $my_return_status
+}
+
+
+# func_massage_aclocal_DATA [glob_exclude]
+# @aclocal_DATA\@ is substituted as per its value in Makefile.am;
+# this function massages it into a suitable format for func_copy_some_files.
+func_massage_aclocal_DATA ()
+{
+ $opt_debug
+ pkgmacro_files= # GLOBAL VAR
+
+ my_glob_exclude="$1"
+
+ # Massage a value for pkgmacro_files from the value used in Makefile.am.
+ for my_filename in m4/argz.m4 m4/libtool.m4 m4/ltdl.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4; do
+ func_dirname_and_basename "$my_filename"
+ my_filename=$func_basename_result
+
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
+ fi
+
+ pkgmacro_files="$pkgmacro_files:$my_filename"
+ done
+
+ # strip spurious leading `:'
+ pkgmacro_files=`$ECHO "$pkgmacro_files" | $SED 's,^:*,,'`
+}
+
+
+# func_install_pkgmacro_subproject
+# Unless --quiet was passed, display a message. Then copy pkgmacro_files
+# from libtool installation tree to subproject libltdl tree.
+func_install_pkgmacro_subproject ()
+{
+ $opt_debug
+
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgmacro_files; do
+ test -f "$subproject_macrodir/$file" && func_verbose "rm -f '$subproject_macrodir/$file'"
+ rm -f "$subproject_macrodir/$file"
+ done
+
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified a macrodir.
+ $opt_quiet || if test "x$macrodir" != "x$subproject_macrodir"; then
+ pkgmacro_header="putting macros in \`$subproject_macrodir'."
+ elif test -n "$subproject_macrodir"; then
+ pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIR, \`$subproject_macrodir'."
+ fi
+
+ func_copy_some_files "argz.m4:libtool.m4:ltdl.m4:$pkgmacro_files" \
+ "$aclocaldir" "$subproject_macrodir" pkgmacro_header
+}
+
+
+# func_install_pkgmacro_parent
+# Unless --quiet was passed, or AC_CONFIG_MACRO_DIR was not seen, display
+# a message. Then update appropriate macros if newer ones are available
+# from the libtool installation tree.
+func_install_pkgmacro_parent ()
+{
+ $opt_debug
+
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgmacro_files; do
+ test -f "$macrodir/$file" && func_verbose "rm -f '$macrodir/$file'"
+ rm -f "$macrodir/$file"
+ done
+
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified a macrodir.
+ $opt_quiet || if test -n "$ac_macrodir"; then
+ my_pkgmacro_header="putting macros in AC_CONFIG_MACRO_DIR, \`$ac_macrodir'."
+ elif test -n "$macrodir"; then
+ my_pkgmacro_header="putting macros in \`$macrodir'."
+ fi
+
+ if $opt_ltdl; then
+ func_serial_update argz.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header argz.m4
+ else
+ func_verbose "Not copying \`$macrodir/argz.m4', libltdl not used."
+ fi
+
+ func_serial_update libtool.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header LT_INIT 'A[CM]_PROG_LIBTOOL'
+
+ if $opt_ltdl; then
+ func_serial_update ltdl.m4 "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header 'LTDL_INIT'
+ else
+ func_verbose "Not copying \`$macrodir/ltdl.m4', libltdl not used."
+ fi
+
+ my_save_IFS="$IFS"
+ IFS=:
+ for file in $pkgmacro_files; do
+ IFS="$my_save_IFS"
+ func_serial_update "$file" "$aclocaldir" "$macrodir" \
+ my_pkgmacro_header "$file"
+ done
+ IFS="$my_save_IFS"
+}
+
+
+# func_install_pkgmacro_files
+# Install copies of the libtool and libltdl m4 macros into this package.
+func_install_pkgmacro_files ()
+{
+ $opt_debug
+
+ # argz.m4, libtool.m4 and ltdl.m4 are handled specially:
+ func_massage_aclocal_DATA 'argz.m4|libtool.m4|ltdl.m4'
+
+ # 1. Parent has separate macrodir to subproject ltdl:
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" &&
+ test -n "$macrodir" && test "x$macrodir" != "x$subproject_macrodir"
+ then
+ func_install_pkgmacro_parent
+ func_install_pkgmacro_subproject
+
+ # 2. Parent shares macrodir with subproject ltdl:
+ elif $opt_ltdl && test "x$ltdl_mode" = "xsubproject"
+ # && test "x$macrodir" = "x$subproject_macrodir"
+ then
+ func_install_pkgmacro_subproject
+
+ # 3. Not a subproject, but macrodir was specified in parent:
+ elif test -n "$macrodir"; then
+ func_install_pkgmacro_parent
+
+ # 4. AC_CONFIG_MACRO_DIR was not specified:
+ else
+ func_verbose "AC_CONFIG_MACRO_DIR not defined, not copying libtool macros."
+ fi
+}
+
+
+# func_massage_pkgltdl_files [glob_exclude]
+# @pkgltdl_files\@ is substituted as per its value in Makefile.am; this
+# function massages it into a suitable format for func_copy_some_files.
+func_massage_pkgltdl_files ()
+{
+ $opt_debug
+ pkgltdl_files= # GLOBAL VAR
+
+ my_glob_exclude="$1"
+
+ # Massage a value for pkgltdl_files from the value used in Makefile.am
+ for my_filename in libltdl/COPYING.LIB libltdl/README libltdl/Makefile.inc libltdl/Makefile.am libltdl/configure.ac libltdl/aclocal.m4 libltdl/Makefile.in libltdl/config-h.in libltdl/configure libltdl/argz_.h libltdl/argz.c libltdl/loaders/dld_link.c libltdl/loaders/dlopen.c libltdl/loaders/dyld.c libltdl/loaders/load_add_on.c libltdl/loaders/loadlibrary.c libltdl/loaders/shl_load.c libltdl/lt__dirent.c libltdl/lt__strl.c libltdl/libltdl/lt__alloc.h libltdl/libltdl/lt__dirent.h libltdl/libltdl/lt__glibc.h libltdl/libltdl/lt__private.h libltdl/libltdl/lt__strl.h libltdl/libltdl/lt_dlloader.h libltdl/libltdl/lt_error.h libltdl/libltdl/lt_system.h libltdl/libltdl/slist.h libltdl/loaders/preopen.c libltdl/lt__alloc.c libltdl/lt_dlloader.c libltdl/lt_error.c libltdl/ltdl.c libltdl/ltdl.h libltdl/slist.c; do
+
+ # Strip surplus leading 'libltdl/':
+ my_filename=`expr "X$my_filename" : 'Xlibltdl/\(.*\)'`
+
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
+ fi
+
+ # ignore duplicates
+ case :$pkgltdl_files: in
+ *:$my_filename:*) ;;
+ *) pkgltdl_files="$pkgltdl_files:$my_filename" ;;
+ esac
+ done
+
+ # strip spurious leading `:'
+ pkgltdl_files=`$ECHO "$pkgltdl_files" | $SED 's,^:*,,'`
+}
+
+
+# func_install_pkgltdl_files
+# Install copies of the libltdl files into this package. Any auxiliary
+# or m4 macro files needed in the libltdl tree will also be copied by
+# func_install_pkgconfig_files and func_install_pkgmacro_files resp.
+func_install_pkgltdl_files ()
+{
+ $opt_debug
+ $opt_ltdl || return
+
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgltdl_files; do
+ test -f "$ltdldir/$file" && func_verbose "rm -f '$ltdldir/$file'"
+ rm -f "$ltdldir/$file"
+ done
+
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified `--ltdl'.
+ $opt_quiet || if test -n "$ac_ltdldir"; then
+ pkgltdl_header="putting libltdl files in LT_CONFIG_LTDL_DIR, \`$ac_ltdldir'."
+ elif test -n "$ltdldir"; then
+ pkgltdl_header="putting libltdl files in \`$ltdldir'."
+ fi
+
+ # These files are handled specially, depending on ltdl_mode:
+ if test "x$ltdl_mode" = "xsubproject"; then
+ func_massage_pkgltdl_files 'Makefile.inc'
+ else
+ func_massage_pkgltdl_files 'Makefile.am|Makefile.in*|aclocal.m4|config*'
+ fi
+
+ func_copy_some_files "$pkgltdl_files" \
+ "$pkgltdldir/libltdl" "$ltdldir" pkgltdl_header
+
+ # For recursive ltdl modes, copy a suitable Makefile.{am,inc}:
+ case $ltdl_mode in
+ recursive)
+ func_fixup_Makefile "Makefile.am" "$pkgltdldir/libltdl" "$ltdldir"
+ ;;
+ nonrecursive)
+ func_fixup_Makefile "Makefile.inc" "$pkgltdldir/libltdl" "$ltdldir"
+ ;;
+ esac
+}
+
+
+# func_massage_pkgconfig_files [glob_exclude]
+# @pkgconfig_files\@ is substituted as per its value in Makefile.am; this
+# function massages it into a suitable format for func_copy_some_files.
+func_massage_pkgconfig_files ()
+{
+ $opt_debug
+ pkgconfig_files= # GLOBAL VAR
+
+ my_glob_exclude="$1"
+
+ # Massage a value for pkgconfig_files from the value used in Makefile.am
+ for my_filename in config/compile config/config.guess config/config.sub config/depcomp config/install-sh config/missing config/ltmain.sh; do
+
+ # ignore excluded filenames
+ if test -n "$my_glob_exclude"; then
+ my_cont=false
+ eval 'case $my_filename in '$my_glob_exclude') my_cont=: ;; esac'
+ $my_cont && continue
+ fi
+
+ # ignore duplicates
+ case :$pkgconfig_files: in
+ *:$my_filename:*) ;;
+ *) pkgconfig_files="$pkgconfig_files:$my_filename" ;;
+ esac
+ done
+
+ # strip spurious leading `:'
+ pkgconfig_files=`$ECHO "$pkgconfig_files" | $SED 's,^:*,,'`
+}
+
+
+# func_install_pkgconfig_subproject
+# Unless --quiet was passed, display a message. Then copy pkgconfig_files
+# from libtool installation tree to subproject libltdl tree.
+func_install_pkgconfig_subproject ()
+{
+ $opt_debug
+
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgconfig_files; do
+ test -f "$subproject_auxdir/$file" && func_verbose "rm -f '$subproject_auxdir/$file'"
+ rm -f "$subproject_auxdir/$file"
+ done
+
+ # Copy all the files from installed libltdl to this project, if the
+ # user specified an auxdir.
+ $opt_quiet || if test "x$ac_auxdir" = "x$subproject_auxdir"; then
+ pkgconfig_header="putting auxiliary files in AC_CONFIG_AUX_DIR, \`$subproject_auxdir'."
+ elif test -n "$auxdir"; then
+ pkgconfig_header="putting auxiliary files in \`$auxdir'."
+ fi
+
+ func_copy_some_files "$pkgconfig_files" \
+ "$pkgdatadir" "$ltdldir" pkgconfig_header
+}
+
+
+# func_install_pkgconfig_parent
+# Unless --quiet was passed, or AC_CONFIG_AUX_DIR was not seen, display a
+# message. Then update appropriate auxiliary files if newer ones are
+# available from the libtool installation tree.
+func_install_pkgconfig_parent ()
+{
+ $opt_debug
+
+ # Remove any lingering files that my have been installed by some
+ # previous libtoolize release:
+ $opt_force && for file in $all_pkgconfig_files; do
+ test -f "$auxdir/$file" && func_verbose "rm -f '$auxdir/$file'"
+ rm -f "$auxdir/$file"
+ done
+
+ if test -n "$ac_auxdir"; then
+ pkgconfig_header="putting auxiliary files in AC_CONFIG_AUX_DIR, \`$ac_auxdir'."
+ elif test -n "$auxdir" || test "x$ltdldir" = "x."; then
+ pkgconfig_header="putting auxiliary files in \`$auxdir'."
+ fi
+
+ if $opt_install; then
+ func_config_update config.guess \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+ func_config_update config.sub \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+ func_install_update install-sh \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+ fi
+ func_ltmain_update ltmain.sh \
+ "$pkgdatadir/config" "$auxdir" pkgconfig_header
+}
+
+
+# func_install_pkgconfig_files
+# Install copies of the auxiliary files into this package according to
+# the whether libltdl is included as a subproject, and whether the parent
+# shares the AC_CONFIG_AUX_DIR setting.
+func_install_pkgconfig_files ()
+{
+ $opt_debug
+ func_massage_pkgconfig_files
+
+ # 1. Parent shares auxdir with subproject ltdl:
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" &&
+ test "x$ac_auxdir" = "x$subproject_auxdir"
+ then
+ func_install_pkgconfig_subproject
+
+ # 2. Parent has separate auxdir to subproject ltdl:
+ elif $opt_ltdl && test "x$ltdl_mode" = "xsubproject"
+ # && test "x$auxdir" != "x$subproject_auxdir" is implied
+ then
+ if $seen_autoconf; then
+ func_install_pkgconfig_parent
+ fi
+ func_install_pkgconfig_subproject
+
+ # 3. Not subproject, but AC_CONFIG_AUX_DIR was used in parent:
+ elif test -n "$ac_auxdir" || test "x$auxdir" = "x."; then
+ func_install_pkgconfig_parent
+
+ # 4. AC_CONFIG_AUX_DIR was not specified:
+ else
+ func_verbose "AC_CONFIG_AUX_DIR not defined, not copying libtool auxiliary files."
+ fi
+}
+
+
+# func_nonemptydir_p dirvar
+# DIRVAR is the name of a variable to evaluate. Unless DIRVAR names
+# a directory that exists and is non-empty abort with a diagnostic.
+func_nonemptydir_p ()
+{
+ $opt_debug
+ my_dirvar="$1"
+ my_dir=`eval echo "\\\$$my_dirvar"`
+
+ # Is it a directory at all?
+ test -d "$my_dir" \
+ || func_fatal_error "\$$my_dirvar is not a directory: \`$my_dir'"
+
+ # check that the directories contents can be ls'ed
+ test -n "`{ cd $my_dir && ls; } 2>/dev/null`" \
+ || func_fatal_error "can not list files: \`$my_dir'"
+}
+
+
+# func_check_macros
+# Sanity check macros from aclocal.m4 against installed versions.
+func_check_macros ()
+{
+ $opt_debug
+ $opt_quiet && return
+ $seen_autoconf || return
+
+ ac_config_macro_dir_advised=false
+
+ if test -n "$ac_macrodir$ltdldir" && test -z "$macrodir"; then
+ my_ac_config_macro_srcdir="$aclocaldir"
+ if $opt_ltdl && test "$macrodir" != "$subproject_macrodir"; then
+ my_ac_config_macro_srcdir="$subproject_macrodir"
+ fi
+
+ my_needed="libtool.m4 ltoptions.m4 ltversion.m4 ltsugar.m4 lt~obsolete.m4"
+ $opt_ltdl && my_needed="$my_needed argz.m4 ltdl.m4"
+
+ if test -f "aclocal.m4"; then
+ for need in $my_needed; do
+ func_aclocal_update_check $need
+ $func_aclocal_update_check_result && my_missing="$my_missing $need"
+ done
+ else
+ my_missing="$my_needed"
+ fi
+
+ if test -n "$my_missing"; then
+ func_echo "You should add the contents of the following files to \`aclocal.m4':"
+ for need in $my_missing; do
+ func_echo " \`$my_ac_config_macro_srcdir/$need'"
+ done
+
+ if test "$my_ac_config_macro_srcdir" != "$aclocaldir"; then
+ func_echo "or else add \`AC_CONFIG_MACRO_DIR([$subproject_macrodir])' to $configure_ac."
+ ac_config_macro_dir_advised=:
+ fi
+ fi
+ fi
+
+ ## ---------------------------------------------------------- ##
+ ## Since we return early here when --no-warn was given: ##
+ ## DO NOT PUT ANYTHING BUT UPGRADE ADVICE MESSAGES BELOW HERE ##
+ ## ---------------------------------------------------------- ##
+
+ $opt_warning || return
+
+ $seen_libtool ||
+ func_echo "Remember to add \`LT_INIT' to $configure_ac."
+
+ # Suggest using LTDL_INIT if appropriate:
+ $opt_ltdl && if test x$seen_ltdl != x:; then
+ case $ltdl_mode in
+ subproject) ltdl_init_args="" ;;
+ *) ltdl_init_args="([$ltdl_mode])" ;;
+ esac
+ func_echo "Remember to add \`LTDL_INIT$ltdl_init_args' to $configure_ac."
+ fi
+
+ if $opt_ltdl; then
+ # Remind the user to call LT_CONFIG_LTDL_DIR:
+ test -n "$ac_ltdldir" ||
+ func_echo "Remember to add \`LT_CONFIG_LTDL_DIR([$ltdldir])' to \`$configure_ac'."
+
+ # For subproject mode, offer some suggestions for avoiding duplicate
+ # files in a project that uses libltdl:
+ if test "x$ltdl_mode" = "xsubproject"; then
+ test "$subproject_auxdir" = "$auxdir" ||
+ func_echo "Consider using \`AC_CONFIG_AUX_DIR([$subproject_auxdir])' in $configure_ac."
+ $ac_config_macro_dir_advised || test "$subproject_macrodir" = "$macrodir" ||
+ func_echo "Consider using \`AC_CONFIG_MACRO_DIR([$subproject_macrodir])' in $configure_ac."
+ ac_config_macro_dir_advised=:
+ fi
+ fi
+
+ # Suggest modern idioms for storing autoconf macros:
+ $ac_config_macro_dir_advised || if test -z "$ac_macrodir" || test x"$macrodir" = x.; then
+ func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([m4])' to $configure_ac and"
+ func_echo "rerunning $progname, to keep the correct libtool macros in-tree."
+ ac_config_macro_dir_advised=:
+
+ elif test -z "$ac_macrodir$ltdldir"; then
+ func_echo "Consider adding \`AC_CONFIG_MACRO_DIR([$macrodir])' to $configure_ac,"
+ func_echo "and rerunning $progname and aclocal."
+ ac_config_macro_dir_advised=:
+ fi
+
+ if test -z "$am_macrodir$macrodir"; then
+ func_echo "Consider adding \`-I m4' to ACLOCAL_AMFLAGS in Makefile.am."
+
+ elif test -z "$am_macrodir"; then
+ if $opt_ltdl && test "x$ltdl_mode" = "xsubproject" && test "$subproject_macrodir" != "$macrodir"; then
+ func_echo "Consider adding \`-I $subproject_macrodir' to ACLOCAL_AMFLAGS in Makefile.am."
+ else
+ func_echo "Consider adding \`-I $macrodir' to ACLOCAL_AMFLAGS in Makefile.am."
+ fi
+ fi
+
+ # Don't trace for this, we're just checking the user didn't invoke it
+ # directly from configure.ac.
+ $SED 's,dnl .*$,,; s,# .*$,,' "$configure_ac" | grep AC_PROG_RANLIB >/dev/null &&
+ func_echo "\`AC_PROG_RANLIB' is rendered obsolete by \`LT_INIT'"
+
+ # FIXME: Ensure ltmain.sh, libtool.m4 and ltdl.m4 are from the same release
+}
+
+
+## ----------- ##
+## Main. ##
+## ----------- ##
+
+{
+ # Lists of all files libtoolize has ever installed. These are removed
+ # before installing the latest files when --force was passed to help
+ # ensure a clean upgrade.
+ # Do not remove config.guess nor config.sub, we don't install them
+ # without --install, and the project may not be using Automake.
+ all_pkgconfig_files="ltmain.sh"
+ all_pkgmacro_files="argz.m4 libtool.m4 ltdl.m4 ltoptions.m4 ltsugar.m4 ltversion.in ltversion.m4 lt~obsolete.m4"
+ all_pkgltdl_files="COPYING.LIB Makefile Makefile.in Makefile.inc Makefile.am README acinclude.m4 aclocal.m4 argz_.h argz.c config.h.in config-h.in configure configure.ac configure.in libltdl/lt__alloc.h libltdl/lt__dirent.h libltdl/lt__glibc.h libltdl/lt__private.h libltdl/lt__strl.h libltdl/lt_dlloader.h libltdl/lt_error.h libltdl/lt_system.h libltdl/slist.h loaders/dld_link.c loaders/dlopen.c loaders/dyld.c loaders/load_add_on.c loaders/loadlibrary.c loaders/preopen.c loaders/shl_load.c lt__alloc.c lt__dirent.c lt__strl.c lt_dlloader.c lt_error.c ltdl.c ltdl.h slist.c"
+
+ # Locations for important files:
+ prefix=/MinGW
+ datadir=/MinGW/share
+ pkgdatadir=/MinGW/share/libtool
+ pkgltdldir=/MinGW/share/libtool
+ aclocaldir=/MinGW/share/aclocal
+ auxdir=
+ macrodir=
+ configure_ac=configure.in
+
+ seen_autoconf=false
+ seen_libtool=false
+ seen_ltdl=false
+
+ # test EBCDIC or ASCII
+ case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ SP2NL='tr \040 \012'
+ NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ SP2NL='tr \100 \n'
+ NL2SP='tr \r\n \100\100'
+ ;;
+ esac
+
+ # Allow the user to override the master libtoolize repository:
+ if test -n "$_lt_pkgdatadir"; then
+ pkgltdldir="$_lt_pkgdatadir"
+ pkgdatadir="$_lt_pkgdatadir/libltdl"
+ aclocaldir="$_lt_pkgdatadir/libltdl/m4"
+ fi
+ func_nonemptydir_p pkgltdldir
+ func_nonemptydir_p pkgdatadir
+ func_nonemptydir_p aclocaldir
+
+ func_scan_files
+
+ case $ltdldir in
+ .) ltdlprefix= ;;
+ *) ltdlprefix=$ltdldir/ ;;
+ esac
+ subproject_auxdir=${ltdlprefix}config
+ subproject_macrodir=${ltdlprefix}m4
+
+ # :::BE CAREFUL HERE:::
+ # func_check_macros needs to check whether --ltdl was specified when
+ # LTDL_INIT was not seen, so we can't just use one variable for both
+ # conditions, or that check will be impossible. No need to clutter the
+ # rest of the code with '$opt_ltdl || $seen_ltdl' though, because we CAN
+ # safely set opt_ltdl to true if LTDL_INIT was seen:
+ $seen_ltdl && opt_ltdl=:
+
+ func_install_pkgconfig_files
+ func_install_pkgmacro_files
+ func_install_pkgltdl_files
+
+ func_check_macros
+}
+
+exit $exit_status
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+
diff --git a/gtk+-mingw/bin/libxml2-2.dll b/gtk+-mingw/bin/libxml2-2.dll
new file mode 100644
index 0000000..182cdb1
--- /dev/null
+++ b/gtk+-mingw/bin/libxml2-2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/minigzip.exe b/gtk+-mingw/bin/minigzip.exe
new file mode 100644
index 0000000..0bfc71d
--- /dev/null
+++ b/gtk+-mingw/bin/minigzip.exe
Binary files differ
diff --git a/gtk+-mingw/bin/minigzip_d.exe b/gtk+-mingw/bin/minigzip_d.exe
new file mode 100644
index 0000000..2ff866a
--- /dev/null
+++ b/gtk+-mingw/bin/minigzip_d.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgattrib.exe b/gtk+-mingw/bin/msgattrib.exe
new file mode 100644
index 0000000..bc768a1
--- /dev/null
+++ b/gtk+-mingw/bin/msgattrib.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgcat.exe b/gtk+-mingw/bin/msgcat.exe
new file mode 100644
index 0000000..ec33a8f
--- /dev/null
+++ b/gtk+-mingw/bin/msgcat.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgcmp.exe b/gtk+-mingw/bin/msgcmp.exe
new file mode 100644
index 0000000..1d1eef5
--- /dev/null
+++ b/gtk+-mingw/bin/msgcmp.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgcomm.exe b/gtk+-mingw/bin/msgcomm.exe
new file mode 100644
index 0000000..e6d4753
--- /dev/null
+++ b/gtk+-mingw/bin/msgcomm.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgconv.exe b/gtk+-mingw/bin/msgconv.exe
new file mode 100644
index 0000000..cf75efe
--- /dev/null
+++ b/gtk+-mingw/bin/msgconv.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgen.exe b/gtk+-mingw/bin/msgen.exe
new file mode 100644
index 0000000..b1e7c44
--- /dev/null
+++ b/gtk+-mingw/bin/msgen.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgexec.exe b/gtk+-mingw/bin/msgexec.exe
new file mode 100644
index 0000000..c80a871
--- /dev/null
+++ b/gtk+-mingw/bin/msgexec.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgfilter.exe b/gtk+-mingw/bin/msgfilter.exe
new file mode 100644
index 0000000..a79c98c
--- /dev/null
+++ b/gtk+-mingw/bin/msgfilter.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgfmt.exe b/gtk+-mingw/bin/msgfmt.exe
new file mode 100644
index 0000000..55f2d34
--- /dev/null
+++ b/gtk+-mingw/bin/msgfmt.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msggrep.exe b/gtk+-mingw/bin/msggrep.exe
new file mode 100644
index 0000000..2dbb6c4
--- /dev/null
+++ b/gtk+-mingw/bin/msggrep.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msginit.exe b/gtk+-mingw/bin/msginit.exe
new file mode 100644
index 0000000..1c6d1db
--- /dev/null
+++ b/gtk+-mingw/bin/msginit.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgmerge.exe b/gtk+-mingw/bin/msgmerge.exe
new file mode 100644
index 0000000..5aef111
--- /dev/null
+++ b/gtk+-mingw/bin/msgmerge.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msgunfmt.exe b/gtk+-mingw/bin/msgunfmt.exe
new file mode 100644
index 0000000..95fe385
--- /dev/null
+++ b/gtk+-mingw/bin/msgunfmt.exe
Binary files differ
diff --git a/gtk+-mingw/bin/msguniq.exe b/gtk+-mingw/bin/msguniq.exe
new file mode 100644
index 0000000..327f2fe
--- /dev/null
+++ b/gtk+-mingw/bin/msguniq.exe
Binary files differ
diff --git a/gtk+-mingw/bin/ngettext.exe b/gtk+-mingw/bin/ngettext.exe
new file mode 100644
index 0000000..7cf0042
--- /dev/null
+++ b/gtk+-mingw/bin/ngettext.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pal2rgb.exe b/gtk+-mingw/bin/pal2rgb.exe
new file mode 100644
index 0000000..66a6bea
--- /dev/null
+++ b/gtk+-mingw/bin/pal2rgb.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pango-querymodules.exe b/gtk+-mingw/bin/pango-querymodules.exe
new file mode 100644
index 0000000..887c2d4
--- /dev/null
+++ b/gtk+-mingw/bin/pango-querymodules.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pango-view.exe b/gtk+-mingw/bin/pango-view.exe
new file mode 100644
index 0000000..b2ae560
--- /dev/null
+++ b/gtk+-mingw/bin/pango-view.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pbmtojbg.exe b/gtk+-mingw/bin/pbmtojbg.exe
new file mode 100644
index 0000000..79d9dc0
--- /dev/null
+++ b/gtk+-mingw/bin/pbmtojbg.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pbmtojbg85.exe b/gtk+-mingw/bin/pbmtojbg85.exe
new file mode 100644
index 0000000..6ae7037
--- /dev/null
+++ b/gtk+-mingw/bin/pbmtojbg85.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pcre-config b/gtk+-mingw/bin/pcre-config
new file mode 100644
index 0000000..e880316
--- /dev/null
+++ b/gtk+-mingw/bin/pcre-config
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+prefix=/MinGW
+exec_prefix=${prefix}
+exec_prefix_set=no
+
+cflags="[--cflags]"
+
+if test yes = yes ; then
+ libs="[--libs-cpp]"
+else
+ libs=
+fi
+
+if test no = yes ; then
+ libs="[--libs16] $libs"
+fi
+
+if test yes = yes ; then
+ libs="[--libs] [--libs-posix] $libs"
+ cflags="$cflags [--cflags-posix]"
+fi
+
+usage="Usage: pcre-config [--prefix] [--exec-prefix] [--version] $libs $cflags"
+
+if test $# -eq 0; then
+ echo "${usage}" 1>&2
+ exit 1
+fi
+
+libR=
+case `uname -s` in
+ *SunOS*)
+ libR=" -R${exec_prefix}/lib"
+ ;;
+ *BSD*)
+ libR=" -Wl,-R${exec_prefix}/lib"
+ ;;
+esac
+
+libS=
+if test ${exec_prefix}/lib != /usr/lib ; then
+ libS=-L${exec_prefix}/lib
+fi
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ if test $exec_prefix_set = no ; then
+ exec_prefix=$optarg
+ fi
+ ;;
+ --prefix)
+ echo $prefix
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ exec_prefix_set=yes
+ ;;
+ --exec-prefix)
+ echo $exec_prefix
+ ;;
+ --version)
+ echo 8.31
+ ;;
+ --cflags)
+ if test ${prefix}/include != /usr/include ; then
+ includes=-I${prefix}/include
+ fi
+ echo $includes
+ ;;
+ --cflags-posix)
+ if test yes = yes ; then
+ if test ${prefix}/include != /usr/include ; then
+ includes=-I${prefix}/include
+ fi
+ echo $includes
+ else
+ echo "${usage}" 1>&2
+ fi
+ ;;
+ --libs-posix)
+ if test yes = yes ; then
+ echo $libS$libR -lpcreposix -lpcre
+ else
+ echo "${usage}" 1>&2
+ fi
+ ;;
+ --libs)
+ if test yes = yes ; then
+ echo $libS$libR -lpcre
+ else
+ echo "${usage}" 1>&2
+ fi
+ ;;
+ --libs16)
+ if test no = yes ; then
+ echo $libS$libR -lpcre16
+ else
+ echo "${usage}" 1>&2
+ fi
+ ;;
+ --libs-cpp)
+ if test yes = yes ; then
+ echo $libS$libR -lpcrecpp -lpcre
+ else
+ echo "${usage}" 1>&2
+ fi
+ ;;
+ *)
+ echo "${usage}" 1>&2
+ exit 1
+ ;;
+ esac
+ shift
+done
diff --git a/gtk+-mingw/bin/pcre_scanner_unittest.exe b/gtk+-mingw/bin/pcre_scanner_unittest.exe
new file mode 100644
index 0000000..dffcebe
--- /dev/null
+++ b/gtk+-mingw/bin/pcre_scanner_unittest.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pcre_stringpiece_unittest.exe b/gtk+-mingw/bin/pcre_stringpiece_unittest.exe
new file mode 100644
index 0000000..dd5761b
--- /dev/null
+++ b/gtk+-mingw/bin/pcre_stringpiece_unittest.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pcrecpp_unittest.exe b/gtk+-mingw/bin/pcrecpp_unittest.exe
new file mode 100644
index 0000000..b59f5eb
--- /dev/null
+++ b/gtk+-mingw/bin/pcrecpp_unittest.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pcregrep.exe b/gtk+-mingw/bin/pcregrep.exe
new file mode 100644
index 0000000..f81690c
--- /dev/null
+++ b/gtk+-mingw/bin/pcregrep.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pcretest.exe b/gtk+-mingw/bin/pcretest.exe
new file mode 100644
index 0000000..c4508a3
--- /dev/null
+++ b/gtk+-mingw/bin/pcretest.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pkg-config.exe b/gtk+-mingw/bin/pkg-config.exe
new file mode 100644
index 0000000..2ba02c8
--- /dev/null
+++ b/gtk+-mingw/bin/pkg-config.exe
Binary files differ
diff --git a/gtk+-mingw/bin/ppm2tiff.exe b/gtk+-mingw/bin/ppm2tiff.exe
new file mode 100644
index 0000000..c8e8669
--- /dev/null
+++ b/gtk+-mingw/bin/ppm2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/pthreadGC2.dll b/gtk+-mingw/bin/pthreadGC2.dll
new file mode 100644
index 0000000..df6bbe5
--- /dev/null
+++ b/gtk+-mingw/bin/pthreadGC2.dll
Binary files differ
diff --git a/gtk+-mingw/bin/ras2tiff.exe b/gtk+-mingw/bin/ras2tiff.exe
new file mode 100644
index 0000000..4669d1b
--- /dev/null
+++ b/gtk+-mingw/bin/ras2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/raw2tiff.exe b/gtk+-mingw/bin/raw2tiff.exe
new file mode 100644
index 0000000..eeb1b97
--- /dev/null
+++ b/gtk+-mingw/bin/raw2tiff.exe
Binary files differ
diff --git a/gtk+-mingw/bin/rdjpgcom.exe b/gtk+-mingw/bin/rdjpgcom.exe
new file mode 100644
index 0000000..a89578d
--- /dev/null
+++ b/gtk+-mingw/bin/rdjpgcom.exe
Binary files differ
diff --git a/gtk+-mingw/bin/recode-sr-latin.exe b/gtk+-mingw/bin/recode-sr-latin.exe
new file mode 100644
index 0000000..47f2053
--- /dev/null
+++ b/gtk+-mingw/bin/recode-sr-latin.exe
Binary files differ
diff --git a/gtk+-mingw/bin/rgb2ycbcr.exe b/gtk+-mingw/bin/rgb2ycbcr.exe
new file mode 100644
index 0000000..5043614
--- /dev/null
+++ b/gtk+-mingw/bin/rgb2ycbcr.exe
Binary files differ
diff --git a/gtk+-mingw/bin/thumbnail.exe b/gtk+-mingw/bin/thumbnail.exe
new file mode 100644
index 0000000..fc57335
--- /dev/null
+++ b/gtk+-mingw/bin/thumbnail.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiff2bw.exe b/gtk+-mingw/bin/tiff2bw.exe
new file mode 100644
index 0000000..8fe6735
--- /dev/null
+++ b/gtk+-mingw/bin/tiff2bw.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiff2pdf.exe b/gtk+-mingw/bin/tiff2pdf.exe
new file mode 100644
index 0000000..257c3c5
--- /dev/null
+++ b/gtk+-mingw/bin/tiff2pdf.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiff2ps.exe b/gtk+-mingw/bin/tiff2ps.exe
new file mode 100644
index 0000000..a1ba757
--- /dev/null
+++ b/gtk+-mingw/bin/tiff2ps.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiff2rgba.exe b/gtk+-mingw/bin/tiff2rgba.exe
new file mode 100644
index 0000000..212171e
--- /dev/null
+++ b/gtk+-mingw/bin/tiff2rgba.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffcmp.exe b/gtk+-mingw/bin/tiffcmp.exe
new file mode 100644
index 0000000..8b68b72
--- /dev/null
+++ b/gtk+-mingw/bin/tiffcmp.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffcp.exe b/gtk+-mingw/bin/tiffcp.exe
new file mode 100644
index 0000000..4f2733b
--- /dev/null
+++ b/gtk+-mingw/bin/tiffcp.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffcrop.exe b/gtk+-mingw/bin/tiffcrop.exe
new file mode 100644
index 0000000..0e7749d
--- /dev/null
+++ b/gtk+-mingw/bin/tiffcrop.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffdither.exe b/gtk+-mingw/bin/tiffdither.exe
new file mode 100644
index 0000000..660750a
--- /dev/null
+++ b/gtk+-mingw/bin/tiffdither.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffdump.exe b/gtk+-mingw/bin/tiffdump.exe
new file mode 100644
index 0000000..8b3d43f
--- /dev/null
+++ b/gtk+-mingw/bin/tiffdump.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffinfo.exe b/gtk+-mingw/bin/tiffinfo.exe
new file mode 100644
index 0000000..10d861e
--- /dev/null
+++ b/gtk+-mingw/bin/tiffinfo.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffmedian.exe b/gtk+-mingw/bin/tiffmedian.exe
new file mode 100644
index 0000000..e089d44
--- /dev/null
+++ b/gtk+-mingw/bin/tiffmedian.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffset.exe b/gtk+-mingw/bin/tiffset.exe
new file mode 100644
index 0000000..33b95f5
--- /dev/null
+++ b/gtk+-mingw/bin/tiffset.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tiffsplit.exe b/gtk+-mingw/bin/tiffsplit.exe
new file mode 100644
index 0000000..75b172b
--- /dev/null
+++ b/gtk+-mingw/bin/tiffsplit.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tstcodec.exe b/gtk+-mingw/bin/tstcodec.exe
new file mode 100644
index 0000000..26cf6ff
--- /dev/null
+++ b/gtk+-mingw/bin/tstcodec.exe
Binary files differ
diff --git a/gtk+-mingw/bin/tstcodec85.exe b/gtk+-mingw/bin/tstcodec85.exe
new file mode 100644
index 0000000..15860c9
--- /dev/null
+++ b/gtk+-mingw/bin/tstcodec85.exe
Binary files differ
diff --git a/gtk+-mingw/bin/unzip.exe b/gtk+-mingw/bin/unzip.exe
new file mode 100644
index 0000000..7d3ec3a
--- /dev/null
+++ b/gtk+-mingw/bin/unzip.exe
Binary files differ
diff --git a/gtk+-mingw/bin/unzip32.dll b/gtk+-mingw/bin/unzip32.dll
new file mode 100644
index 0000000..dcc1088
--- /dev/null
+++ b/gtk+-mingw/bin/unzip32.dll
Binary files differ
diff --git a/gtk+-mingw/bin/unzipsfx.exe b/gtk+-mingw/bin/unzipsfx.exe
new file mode 100644
index 0000000..4a03e87
--- /dev/null
+++ b/gtk+-mingw/bin/unzipsfx.exe
Binary files differ
diff --git a/gtk+-mingw/bin/wrjpgcom.exe b/gtk+-mingw/bin/wrjpgcom.exe
new file mode 100644
index 0000000..e55cd02
--- /dev/null
+++ b/gtk+-mingw/bin/wrjpgcom.exe
Binary files differ
diff --git a/gtk+-mingw/bin/xgettext.exe b/gtk+-mingw/bin/xgettext.exe
new file mode 100644
index 0000000..8839d23
--- /dev/null
+++ b/gtk+-mingw/bin/xgettext.exe
Binary files differ
diff --git a/gtk+-mingw/bin/xml2-config b/gtk+-mingw/bin/xml2-config
new file mode 100644
index 0000000..a4bbd95
--- /dev/null
+++ b/gtk+-mingw/bin/xml2-config
@@ -0,0 +1,106 @@
+#! /bin/sh
+
+prefix=/MinGW
+exec_prefix=${prefix}
+includedir=${prefix}/include
+libdir=${exec_prefix}/lib
+
+usage()
+{
+ cat <<EOF
+Usage: xml2-config [OPTION]
+
+Known values for OPTION are:
+
+ --prefix=DIR change libxml prefix [default $prefix]
+ --exec-prefix=DIR change libxml exec prefix [default $exec_prefix]
+ --libs print library linking information
+ --cflags print pre-processor and compiler flags
+ --modules module support enabled
+ --help display this help and exit
+ --version output version information
+EOF
+
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1
+fi
+
+cflags=false
+libs=false
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case "$1" in
+ --prefix=*)
+ prefix=$optarg
+ includedir=$prefix/include
+ libdir=$prefix/lib
+ ;;
+
+ --prefix)
+ echo $prefix
+ ;;
+
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ libdir=$exec_prefix/lib
+ ;;
+
+ --exec-prefix)
+ echo $exec_prefix
+ ;;
+
+ --version)
+ echo 2.8.0
+ exit 0
+ ;;
+
+ --help)
+ usage 0
+ ;;
+
+ --cflags)
+ echo -I${includedir}/libxml2
+ ;;
+
+ --libtool-libs)
+ if [ -r ${libdir}/libxml2.la ]
+ then
+ echo ${libdir}/libxml2.la
+ fi
+ ;;
+
+ --modules)
+ echo 1
+ ;;
+
+ --libs)
+ if [ "`uname`" = "Linux" ]
+ then
+ if [ "-L${libdir}" = "-L/usr/lib" -o "-L${libdir}" = "-L/usr/lib64" ]
+ then
+ echo -lxml2 -lz -liconv
+ else
+ echo -L${libdir} -lxml2 -lz -liconv
+ fi
+ else
+ echo -L${libdir} -lxml2 -lz -liconv -lws2_32
+ fi
+ ;;
+
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+exit 0
diff --git a/gtk+-mingw/bin/xmlcatalog.exe b/gtk+-mingw/bin/xmlcatalog.exe
new file mode 100644
index 0000000..7ecf53f
--- /dev/null
+++ b/gtk+-mingw/bin/xmlcatalog.exe
Binary files differ
diff --git a/gtk+-mingw/bin/xmllint.exe b/gtk+-mingw/bin/xmllint.exe
new file mode 100644
index 0000000..558c477
--- /dev/null
+++ b/gtk+-mingw/bin/xmllint.exe
Binary files differ
diff --git a/gtk+-mingw/bin/xmlwf b/gtk+-mingw/bin/xmlwf
new file mode 100644
index 0000000..1d667ba
--- /dev/null
+++ b/gtk+-mingw/bin/xmlwf
Binary files differ
diff --git a/gtk+-mingw/bin/zlib1.dll b/gtk+-mingw/bin/zlib1.dll
new file mode 100644
index 0000000..079c691
--- /dev/null
+++ b/gtk+-mingw/bin/zlib1.dll
Binary files differ