From: Sven Neumann Date: Fri, 23 Sep 2011 08:50:09 +0000 (+0200) Subject: taglib: bump to 1.7 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=945b5356faae24b6d474d370e16e543090ce2a44;p=buildroot.git taglib: bump to 1.7 Bump the version of taglib to 1.7. This version does not any longer ship with a configure script so convert the package from autotargets to cmaketargets. The 1.7 version offers optional support for MP4 and WMA files. Expose these options in buildroot. [Peter: drop unneded dependencies, keep target install, fix Config.in indent] Signed-off-by: Sven Neumann Signed-off-by: Peter Korsgaard --- diff --git a/package/multimedia/taglib/Config.in b/package/multimedia/taglib/Config.in index 3d688a76ce..d172c34ade 100644 --- a/package/multimedia/taglib/Config.in +++ b/package/multimedia/taglib/Config.in @@ -1,3 +1,4 @@ + config BR2_PACKAGE_TAGLIB bool "taglib" depends on BR2_INSTALL_LIBSTDCPP @@ -9,5 +10,13 @@ config BR2_PACKAGE_TAGLIB http://developer.kde.org/~wheeler/taglib.html +config BR2_PACKAGE_TAGLIB_MP4 + depends on BR2_PACKAGE_TAGLIB + bool "taglib mp4 support" + +config BR2_PACKAGE_TAGLIB_ASF + depends on BR2_PACKAGE_TAGLIB + bool "taglib wma support" + comment "taglib requires a toolchain with C++ support enabled" depends on !BR2_INSTALL_LIBSTDCPP diff --git a/package/multimedia/taglib/taglib-1.5-libtool.patch b/package/multimedia/taglib/taglib-1.5-libtool.patch deleted file mode 100644 index d4160f0ab4..0000000000 --- a/package/multimedia/taglib/taglib-1.5-libtool.patch +++ /dev/null @@ -1,4084 +0,0 @@ -[PATCH] fix libtool - -Update to 1.5.22 so it doesn't get confused about rpath, and apply -buildroot-libtool-v1.5.patch so cross compilation works. - -Signed-off-by: Peter Korsgaard ---- - admin/ltmain.sh | 2080 ++++++++++++++++++++++++++++++++++---------------------- - 1 file changed, 1284 insertions(+), 796 deletions(-) - -Index: taglib-1.5/admin/ltmain.sh -=================================================================== ---- taglib-1.5.orig/admin/ltmain.sh -+++ taglib-1.5/admin/ltmain.sh -@@ -1,7 +1,7 @@ - # ltmain.sh - Provide generalized library-building support services. - # NOTE: Changing this file will not affect anything until you rerun configure. - # --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 -+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 - # Free Software Foundation, Inc. - # Originally by Gordon Matzigkeit , 1996 - # -@@ -24,6 +24,34 @@ - # configuration script generated by Autoconf, you may include it under - # the same distribution terms that you use for the rest of that program. - -+basename="s,^.*/,,g" -+ -+# 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" -+ -+# The name of this program: -+progname=`echo "$progpath" | $SED $basename` -+modename="$progname" -+ -+# Global variables: -+EXIT_SUCCESS=0 -+EXIT_FAILURE=1 -+ -+PROGRAM=ltmain.sh -+PACKAGE=libtool -+VERSION=1.5.22 -+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" -+ -+# See if we are running on zsh, and set the options which allow our -+# commands through without removal of \ escapes. -+if test -n "${ZSH_VERSION+set}" ; then -+ setopt NO_GLOB_SUBST -+fi -+ - # Check that we have a working $echo. - if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. -@@ -36,7 +64,7 @@ - : - else - # Restart under the correct shell, and then maybe $echo will work. -- exec $SHELL "$0" --no-reexec ${1+"$@"} -+ exec $SHELL "$progpath" --no-reexec ${1+"$@"} - fi - - if test "X$1" = X--fallback-echo; then -@@ -45,19 +73,9 @@ - cat <&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Global variables. -@@ -111,6 +132,8 @@ - show="$echo" - show_help= - execute_dlfiles= -+duplicate_deps=no -+preserve_args= - lo2o="s/\\.lo\$/.${objext}/" - o2lo="s/\\.${objext}\$/.lo/" - -@@ -118,10 +141,51 @@ - # Shell function definitions: - # This seems to be the best place for them - -+# 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 "$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" || { -+ $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 -+ exit $EXIT_FAILURE -+ } -+ fi -+ -+ $echo "X$my_tmpdir" | $Xsed -+} -+ -+ -+# 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. --win32_libid () { -+func_win32_libid () -+{ - win32_libid_type="unknown" - win32_fileres=`file -L $1 2>/dev/null` - case $win32_fileres in -@@ -130,17 +194,16 @@ - ;; - *ar\ archive*) # could be an import, or static - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ -- grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then -+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | \ -- sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` -- if test "X$win32_nmres" = "Ximport" ; then -- win32_libid_type="x86 archive import" -- else -- win32_libid_type="x86 archive static" -- fi -+ $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*) -+ *DLL*) - win32_libid_type="x86 DLL" - ;; - *executable*) # but shell scripts are "executable" too... -@@ -154,9 +217,182 @@ - $echo $win32_libid_type - } - -+ -+# 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 () -+{ -+ if test -n "$available_tags" && test -z "$tagname"; then -+ CC_quoted= -+ for arg in $CC; do -+ case $arg in -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ arg="\"$arg\"" -+ ;; -+ esac -+ CC_quoted="$CC_quoted $arg" -+ done -+ 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 "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; -+ # 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. -+ case $arg in -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ arg="\"$arg\"" -+ ;; -+ esac -+ CC_quoted="$CC_quoted $arg" -+ done -+ case "$@ " in -+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) -+ # 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 -+ $echo "$modename: unable to infer tagged configuration" -+ $echo "$modename: defaulting to \`CC'" -+ $echo "$modename: if this is not correct, specify a tag with \`--tag'" -+# exit $EXIT_FAILURE -+# else -+# $echo "$modename: using $tagname tagged configuration" -+ fi -+ ;; -+ esac -+ fi -+} -+ -+ -+# func_extract_an_archive dir oldlib -+func_extract_an_archive () -+{ -+ f_ex_an_ar_dir="$1"; shift -+ f_ex_an_ar_oldlib="$1" -+ -+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" -+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? -+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 -+ exit $EXIT_FAILURE -+ fi -+} -+ -+# func_extract_archives gentop oldlib ... -+func_extract_archives () -+{ -+ my_gentop="$1"; shift -+ my_oldlibs=${1+"$@"} -+ my_oldobjs="" -+ my_xlib="" -+ my_xabs="" -+ my_xdir="" -+ my_status="" -+ -+ $show "${rm}r $my_gentop" -+ $run ${rm}r "$my_gentop" -+ $show "$mkdir $my_gentop" -+ $run $mkdir "$my_gentop" -+ my_status=$? -+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then -+ exit $my_status -+ fi -+ -+ 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 -+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` -+ my_xdir="$my_gentop/$my_xlib" -+ -+ $show "${rm}r $my_xdir" -+ $run ${rm}r "$my_xdir" -+ $show "$mkdir $my_xdir" -+ $run $mkdir "$my_xdir" -+ exit_status=$? -+ if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then -+ exit $exit_status -+ fi -+ case $host in -+ *-darwin*) -+ $show "Extracting $my_xabs" -+ # Do not bother doing anything if just a dry run -+ if test -z "$run"; then -+ darwin_orig_dir=`pwd` -+ cd $my_xdir || exit $? -+ darwin_archive=$my_xabs -+ darwin_curdir=`pwd` -+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` -+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` -+ if test -n "$darwin_arches"; then -+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` -+ darwin_arch= -+ $show "$darwin_base_archive has multiple architectures $darwin_arches" -+ for darwin_arch in $darwin_arches ; do -+ 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 have a bunch of thin objects, gotta fatten them up :) -+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` -+ darwin_file= -+ darwin_files= -+ for darwin_file in $darwin_filelist; do -+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ lipo -create -output "$darwin_file" $darwin_files -+ done # $darwin_filelist -+ ${rm}r unfat-$$ -+ cd "$darwin_orig_dir" -+ else -+ cd "$darwin_orig_dir" -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ fi # $darwin_arches -+ fi # $run -+ ;; -+ *) -+ func_extract_an_archive "$my_xdir" "$my_xabs" -+ ;; -+ esac -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ done -+ func_extract_archives_result="$my_oldobjs" -+} - # End of Shell function definitions - ##################################### - -+# Darwin sucks -+eval std_shrext=\"$shrext_cmds\" -+ -+disable_libs=no -+ - # Parse our command line options once, thoroughly. - while test "$#" -gt 0 - do -@@ -176,12 +412,13 @@ - ;; - tag) - tagname="$arg" -+ preserve_args="${preserve_args}=$arg" - - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - $echo "$progname: invalid tag name: $tagname" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - -@@ -191,10 +428,10 @@ - # not specially marked. - ;; - *) -- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then -+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" -+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" - else - $echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi -@@ -220,24 +457,25 @@ - --version) - $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - $echo -- $echo "Copyright (C) 2003 Free Software Foundation, Inc." -+ $echo "Copyright (C) 2005 Free Software Foundation, Inc." - $echo "This is free software; see the source for copying conditions. There is NO" - $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -- exit 0 -+ exit $? - ;; - - --config) -- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 -+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath - # Now print the configurations for the tags. - for tagname in $taglist; do -- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" -+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" - done -- exit 0 -+ exit $? - ;; - - --debug) - $echo "$progname: enabling shell trace mode" - set -x -+ preserve_args="$preserve_args $arg" - ;; - - --dry-run | -n) -@@ -256,7 +494,7 @@ - else - $echo "disable static libraries" - fi -- exit 0 -+ exit $? - ;; - - --finish) mode="finish" ;; -@@ -268,13 +506,19 @@ - - --quiet | --silent) - show=: -+ preserve_args="$preserve_args $arg" - ;; - -- --tag) prevopt="--tag" prev=tag ;; -+ --tag) -+ prevopt="--tag" -+ prev=tag -+ preserve_args="$preserve_args --tag" -+ ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag -+ preserve_args="$preserve_args --tag" - ;; - - -dlopen) -@@ -285,7 +529,7 @@ - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - - *) -@@ -298,9 +542,21 @@ - if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - -+case $disable_libs in -+no) -+ ;; -+shared) -+ build_libtool_libs=no -+ build_old_libs=yes -+ ;; -+static) -+ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -+ ;; -+esac -+ - # 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. -@@ -311,7 +567,7 @@ - # Infer the operation mode. - if test -z "$mode"; then - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 -- $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 -+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 - case $nonopt in - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) - mode=link -@@ -354,7 +610,7 @@ - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Change the help message to a mode-specific one. -@@ -369,13 +625,15 @@ - # 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= - - for arg - do -- case "$arg_mode" in -+ case $arg_mode in - arg ) - # do not "continue". Instead, add this to base_compile - lastarg="$arg" -@@ -394,24 +652,19 @@ - -o) - if test -n "$libobj" ; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - arg_mode=target - continue - ;; - -- -static) -- build_old_libs=yes -+ -static | -prefer-pic | -prefer-non-pic) -+ later="$later $arg" - continue - ;; - -- -prefer-pic) -- pic_mode=yes -- continue -- ;; -- -- -prefer-non-pic) -- pic_mode=no -+ -no-suppress) -+ suppress_opt=no - continue - ;; - -@@ -424,7 +677,7 @@ - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - save_ifs="$IFS"; IFS=',' -- for arg in $args; do -+ for arg in $args; do - IFS="$save_ifs" - - # Double-quote args containing other shell metacharacters. -@@ -462,7 +715,10 @@ - case $lastarg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly -- # in scan sets, so we specify it separately. -+ # in scan sets, and some SunOS ksh mistreat backslash-escaping -+ # in scan sets (worked around with variable expansion), -+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets -+ # at all, so we specify them separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" - ;; -@@ -474,11 +730,11 @@ - case $arg_mode in - arg) - $echo "$modename: you must specify an argument for -Xcompile" -- exit 1 -+ exit $EXIT_FAILURE - ;; - target) - $echo "$modename: you must specify a target with \`-o'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - *) - # Get the name of the library object. -@@ -511,51 +767,39 @@ - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - -- # 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. -- if test -n "$available_tags" && test -z "$tagname"; then -- case $base_compile 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 "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; -- # 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$" < "$0" > /dev/null; then -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" -- case "$base_compile " in -- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) -- # 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 -- $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit 1 --# else --# $echo "$modename: using $tagname tagged configuration" -- fi -+ func_infer_tag $base_compile -+ -+ for arg in $later; do -+ case $arg in -+ -static) -+ build_old_libs=yes -+ continue -+ ;; -+ -+ -prefer-pic) -+ pic_mode=yes -+ continue -+ ;; -+ -+ -prefer-non-pic) -+ pic_mode=no -+ continue - ;; - esac -- fi -+ done - -+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` -+ case $qlibobj in -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ qlibobj="\"$qlibobj\"" ;; -+ esac -+ test "X$libobj" != "X$qlibobj" \ -+ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ -+ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then -@@ -568,7 +812,7 @@ - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Delete any leftover library objects. -@@ -579,7 +823,7 @@ - fi - - $run $rm $removelist -- trap "$run $rm $removelist; exit 1" 1 2 15 -+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - - # On Cygwin there's no "real" PIC flag so we must build both object types - case $host_os in -@@ -598,7 +842,7 @@ - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" -- trap "$run $rm $removelist; exit 1" 1 2 15 -+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 - else - output_obj= - need_locks=no -@@ -608,7 +852,7 @@ - # 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 $run ln "$0" "$lockfile" 2>/dev/null; do -+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done -@@ -626,14 +870,19 @@ - compiler." - - $run $rm $removelist -- exit 1 -+ exit $EXIT_FAILURE - fi -- $echo $srcfile > "$lockfile" -+ $echo "$srcfile" > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi -+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` -+ case $qsrcfile in -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -+ qsrcfile="\"$qsrcfile\"" ;; -+ esac - - $run $rm "$libobj" "${libobj}T" - -@@ -655,18 +904,18 @@ - fbsd_hideous_sh_bug=$base_compile - - if test "$pic_mode" != no; then -- command="$base_compile $srcfile $pic_flag" -+ command="$base_compile $qsrcfile $pic_flag" - else - # Don't build PIC code -- command="$base_compile $srcfile" -+ command="$base_compile $qsrcfile" - fi - - if test ! -d "${xdir}$objdir"; then - $show "$mkdir ${xdir}$objdir" - $run $mkdir ${xdir}$objdir -- status=$? -- if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then -- exit $status -+ exit_status=$? -+ if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then -+ exit $exit_status - fi - fi - -@@ -681,7 +930,7 @@ - if $run eval "$command"; then : - else - test -n "$output_obj" && $run $rm $removelist -- exit 1 -+ exit $EXIT_FAILURE - fi - - if test "$need_locks" = warn && -@@ -701,7 +950,7 @@ - compiler." - - $run $rm $removelist -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Just move the object if needed, then go on to compile the next one -@@ -722,7 +971,9 @@ - EOF - - # Allow error messages only from the first compilation. -- suppress_output=' >/dev/null 2>&1' -+ if test "$suppress_opt" = yes; then -+ suppress_output=' >/dev/null 2>&1' -+ fi - else - # No PIC object so indicate it doesn't exist in the libtool - # object file. -@@ -736,9 +987,9 @@ - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then - # Don't build PIC code -- command="$base_compile $srcfile" -+ command="$base_compile $qsrcfile" - else -- command="$base_compile $srcfile $pic_flag" -+ command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then - command="$command -o $obj" -@@ -751,7 +1002,7 @@ - if $run eval "$command"; then : - else - $run $rm $removelist -- exit 1 -+ exit $EXIT_FAILURE - fi - - if test "$need_locks" = warn && -@@ -771,7 +1022,7 @@ - compiler." - - $run $rm $removelist -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Just move the object if needed -@@ -809,7 +1060,7 @@ - $run $rm "$lockfile" - fi - -- exit 0 -+ exit $EXIT_SUCCESS - ;; - - # libtool link mode -@@ -835,7 +1086,7 @@ - ;; - esac - libtool_args="$nonopt" -- base_compile="$nonopt" -+ base_compile="$nonopt $@" - compile_command="$nonopt" - finalize_command="$nonopt" - -@@ -847,7 +1098,6 @@ - old_convenience= - deplibs= - old_deplibs= -- add_flags= - compiler_flags= - linker_flags= - dllsearchpath= -@@ -868,6 +1118,8 @@ - no_install=no - objs= - non_pic_objects= -+ notinst_path= # paths that contain not-installed libtool libraries -+ precious_files_regex= - prefer_static_libs=no - preload=no - prev= -@@ -881,6 +1133,8 @@ - vinfo= - vinfo_number=no - -+ func_infer_tag $base_compile -+ - # We need to know -static, to get the right output filenames. - for arg - do -@@ -893,14 +1147,15 @@ - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi -+ prefer_static_libs=yes - else - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi -+ prefer_static_libs=built - fi - build_libtool_libs=no - build_old_libs=yes -- prefer_static_libs=yes - break - ;; - esac -@@ -912,7 +1167,6 @@ - # Go through the arguments, transforming them on the way. - while test "$#" -gt 0; do - arg="$1" -- base_compile="$base_compile $arg" - shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") -@@ -976,7 +1230,7 @@ - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" -- exit 1 -+ exit $EXIT_FAILURE - fi - prev= - continue -@@ -991,6 +1245,11 @@ - prev= - continue - ;; -+ precious_regex) -+ precious_files_regex="$arg" -+ prev= -+ continue -+ ;; - release) - release="-$arg" - prev= -@@ -1023,7 +1282,7 @@ - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. -@@ -1071,12 +1330,17 @@ - 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_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - else - # Dry-run case. - -@@ -1097,7 +1361,7 @@ - done - else - $echo "$modename: link input file \`$save_arg' does not exist" -- exit 1 -+ exit $EXIT_FAILURE - fi - arg=$save_arg - prev= -@@ -1109,7 +1373,7 @@ - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - if test "$prev" = rpath; then -@@ -1149,16 +1413,15 @@ - finalize_command="$finalize_command $qarg" - continue - ;; -- framework) -- case $host in -- *-*-darwin*) -- case "$deplibs " in -- *" $qarg.ltframework "*) ;; -- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -- ;; -- esac -- ;; -- esac -+ shrext) -+ shrext_cmds="$arg" -+ prev= -+ continue -+ ;; -+ darwin_framework|darwin_framework_skip) -+ test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" -+ compile_command="$compile_command $arg" -+ finalize_command="$finalize_command $arg" - prev= - continue - ;; -@@ -1210,7 +1473,7 @@ - -export-symbols | -export-symbols-regex) - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" -- exit 1 -+ exit $EXIT_FAILURE - fi - if test "X$arg" = "X-export-symbols"; then - prev=expsyms -@@ -1220,6 +1483,18 @@ - continue - ;; - -+ -framework|-arch|-isysroot) -+ case " $CC " in -+ *" ${arg} ${1} "* | *" ${arg} ${1} "*) -+ prev=darwin_framework_skip ;; -+ *) compiler_flags="$compiler_flags $arg" -+ prev=darwin_framework ;; -+ esac -+ compile_command="$compile_command $arg" -+ finalize_command="$finalize_command $arg" -+ continue -+ ;; -+ - -inst-prefix-dir) - prev=inst_prefix - continue -@@ -1246,7 +1521,8 @@ - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 -- exit 1 -+ absdir="$dir" -+ notinst_path="$notinst_path $dir" - fi - dir="$absdir" - ;; -@@ -1260,10 +1536,15 @@ - esac - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -+ testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ esac - ;; - esac - continue -@@ -1272,26 +1553,35 @@ - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in -- *-*-cygwin* | *-*-pw32* | *-*-beos*) -+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; -- *-*-mingw* | *-*-os2*) -+ *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; -- *-*-openbsd* | *-*-freebsd*) -+ *-*-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="$deplibs System.ltframework" -+ deplibs="$deplibs -framework System" - 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*) -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; -@@ -1301,18 +1591,41 @@ - continue - ;; - -+ # Tru64 UNIX uses -model [arg] to determine the layout of C++ -+ # classes, name mangling, and exception handling. -+ -model) -+ compile_command="$compile_command $arg" -+ compiler_flags="$compiler_flags $arg" -+ finalize_command="$finalize_command $arg" -+ prev=xcompiler -+ continue -+ ;; -+ -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -+ compiler_flags="$compiler_flags $arg" -+ compile_command="$compile_command $arg" -+ finalize_command="$finalize_command $arg" -+ continue -+ ;; -+ - -module) - module=yes - continue - ;; - -- # gcc -m* arguments should be passed to the linker via $compiler_flags -- # in order to pass architecture information to the linker -- # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo -- # but this is not reliable with gcc because gcc may use -mfoo to -- # select a different linker, different libraries, etc, while -- # -Wl,-mfoo simply passes -mfoo to the linker. -- -m*) -+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -+ # -r[0-9][0-9]* specifies the processor on the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -+ # +DA*, +DD* enable 64-bit mode on the HP compiler -+ # -q* pass through compiler args for the IBM compiler -+ # -m* pass through architecture-specific compiler args for GCC -+ # -m*, -t[45]*, -txscale* pass through architecture-specific -+ # compiler args for GCC -+ # -pg pass through profiling flag for GCC -+ # @file GCC response files -+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -+ -t[45]*|-txscale*|@*) -+ - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` -@@ -1323,9 +1636,7 @@ - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" -- if test "$with_gcc" = "yes" ; then -- compiler_flags="$compiler_flags $arg" -- fi -+ compiler_flags="$compiler_flags $arg" - continue - ;; - -@@ -1365,6 +1676,11 @@ - - -o) prev=output ;; - -+ -precious-files-regex) -+ prev=precious_regex -+ continue -+ ;; -+ - -release) - prev=release - continue -@@ -1387,7 +1703,7 @@ - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - case "$xrpath " in -@@ -1473,11 +1789,6 @@ - continue - ;; - -- -framework) -- prev=framework -- continue -- ;; -- - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need -@@ -1488,7 +1799,6 @@ - arg="\"$arg\"" - ;; - esac -- add_flags="$add_flags $arg" - ;; - - *.$objext) -@@ -1516,7 +1826,7 @@ - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Extract subdirectory from the argument. -@@ -1564,12 +1874,17 @@ - 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_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - else - # Dry-run case. - -@@ -1623,7 +1938,6 @@ - arg="\"$arg\"" - ;; - esac -- add_flags="$add_flags $arg" - ;; - esac # arg - -@@ -1637,48 +1951,7 @@ - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 -- exit 1 -- fi -- -- # 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 link -- # command doesn't match the default compiler. -- if test -n "$available_tags" && test -z "$tagname"; then -- case $base_compile 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 "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; -- # 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$" < "$0" > /dev/null; then -- # Evaluate the configuration. -- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" -- case $base_compile in -- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) -- # The compiler in $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 -- $echo "$modename: unable to infer tagged configuration" -- $echo "$modename: specify a tag with \`--tag'" 1>&2 -- exit 1 --# else --# $echo "$modename: using $tagname tagged configuration" -- fi -- ;; -- esac -+ exit $EXIT_FAILURE - fi - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -@@ -1711,9 +1984,9 @@ - if test ! -d "$output_objdir"; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir -- status=$? -- if test "$status" -ne 0 && test ! -d "$output_objdir"; then -- exit $status -+ exit_status=$? -+ if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then -+ exit $exit_status - fi - fi - -@@ -1722,7 +1995,7 @@ - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - *.$libext) linkmode=oldlib ;; - *.lo | *.$objext) linkmode=obj ;; -@@ -1732,7 +2005,7 @@ - - case $host in - *cygwin* | *mingw* | *pw32*) -- # don't eliminate duplcations in $postdeps and $predeps -+ # don't eliminate duplications in $postdeps and $predeps - duplicate_compiler_generated_deps=yes - ;; - *) -@@ -1776,7 +2049,6 @@ - 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 link" -@@ -1785,7 +2057,7 @@ - *.la) ;; - *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - done -@@ -1823,18 +2095,23 @@ - lib= - found=no - case $deplib in -+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) -+ if test "$linkmode,$pass" = "prog,link"; then -+ compile_deplibs="$deplib $compile_deplibs" -+ finalize_deplibs="$deplib $finalize_deplibs" -+ else -+ compiler_flags="$compiler_flags $deplib" -+ fi -+ continue -+ ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - continue - fi -- if test "$pass" = conv && test "$allow_undefined" = yes; then -- deplibs="$deplib $deplibs" -- continue -- fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` - for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do -- for search_ext in .la $shrext .so .a; 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 -@@ -1895,18 +2172,6 @@ - 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 -- newdependency_libs="$deplib $newdependency_libs" -- fi -- fi -- continue -- ;; - -L*) - case $linkmode in - lib) -@@ -1922,11 +2187,11 @@ - fi - if test "$pass" = scan; then - deplibs="$deplib $deplibs" -- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - else - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - fi -+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` - ;; - *) - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 -@@ -1954,7 +2219,22 @@ - fi - case $linkmode in - lib) -- if test "$deplibs_check_method" != pass_all; then -+ valid_a_lib=no -+ case $deplibs_check_method in -+ match_pattern*) -+ set dummy $deplibs_check_method -+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` -+ 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" -@@ -2004,15 +2284,15 @@ - esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else -- $echo "$modename: cannot find the library \`$lib'" 1>&2 -- exit 1 -+ $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 -+ exit $EXIT_FAILURE - fi - - # Check to see that this really is a libtool archive. - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` -@@ -2028,6 +2308,8 @@ - # it will not redefine variables installed, or shouldnotlink - installed=yes - shouldnotlink=no -+ avoidtemprpath= -+ - - # Read the .la file - case $lib in -@@ -2035,13 +2317,6 @@ - *) . ./$lib ;; - esac - -- case $host in -- *-*-darwin*) -- # Convert "-framework foo" to "foo.ltframework" in dependency_libs -- test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` -- ;; -- esac -- - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then -@@ -2052,33 +2327,32 @@ - if test "$pass" = conv; then - # Only check for convenience libraries - deplibs="$lib $deplibs" -- tmp_libs= -- for deplib in $dependency_libs; do -- #echo "Adding $deplib to \$deplibs" -- deplibs="$deplib $deplibs" -- if test "X$duplicate_deps" = "Xyes" ; then -- case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -- esac -- fi -- tmp_libs="$tmp_libs $deplib" -- done - if test -z "$libdir"; then - if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" -+ tmp_libs= -+ for deplib in $dependency_libs; do -+ deplibs="$deplib $deplibs" -+ if test "X$duplicate_deps" = "Xyes" ; then -+ case "$tmp_libs " in -+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ esac -+ fi -+ tmp_libs="$tmp_libs $deplib" -+ done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - continue - fi # $pass = conv - -- -+ - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do -@@ -2086,16 +2360,18 @@ - done - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi -- if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then -+ 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 -@@ -2129,14 +2405,28 @@ - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ # Adding 'libdir' from the .la file to our library search paths -+ # breaks crosscompilation horribly. We cheat here and don't add -+ # it, instead adding the path where we found the .la. -CL -+ dir="$abs_ladir" -+ absdir="$abs_ladir" -+ libdir="$abs_ladir" -+ #dir="$libdir" -+ #absdir="$libdir" - fi -+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -- dir="$ladir/$objdir" -- absdir="$abs_ladir/$objdir" -- # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ dir="$ladir" -+ absdir="$abs_ladir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ else -+ dir="$ladir/$objdir" -+ absdir="$abs_ladir/$objdir" -+ # Remove this search path later -+ notinst_path="$notinst_path $abs_ladir" -+ fi - fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - -@@ -2144,7 +2434,7 @@ - if test "$pass" = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). -@@ -2171,7 +2461,7 @@ - continue - fi - -- -+ - if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" - deplibs="$lib $deplibs" -@@ -2209,12 +2499,12 @@ - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # We need to hardcode the library path -- if test -n "$shlibpath_var"; then -+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; -- *) temp_rpath="$temp_rpath $dir" ;; -+ *) temp_rpath="$temp_rpath $absdir" ;; - esac - fi - -@@ -2251,24 +2541,29 @@ - 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 "$prefer_static_libs" = no || test -z "$old_library"; }; then -+ { test "$use_static_libs" = no || test -z "$old_library"; }; then - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" -- need_relink=yes -+ need_relink=no - fi - # This is a shared library -- -- # Warn about portability, can't link against -module's on some systems (darwin) -- if test "$shouldnotlink" = yes && test "$pass" = link ; then -+ -+ # Warn about portability, can't link against -module's on -+ # some systems (darwin) -+ if 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 -+ $echo "*** $linklib is not portable!" -+ fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then - # Hardcode the library path. -@@ -2326,9 +2621,10 @@ - else - $show "extracting exported symbol list from \`$soname'" - save_ifs="$IFS"; IFS='~' -- eval cmds=\"$extract_expsyms_cmds\" -+ cmds=$extract_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done -@@ -2339,9 +2635,10 @@ - if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - save_ifs="$IFS"; IFS='~' -- eval cmds=\"$old_archive_from_expsyms_cmds\" -+ cmds=$old_archive_from_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done -@@ -2362,11 +2659,15 @@ - if test "$hardcode_direct" = no; then - add="$dir/$linklib" - case $host in -- *-*-sco3.2v5* ) add_dir="-L$dir" ;; -+ *-*-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 module then we can not link against it, someone -- # is ignoring the new warnings I added -- if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then -+ # if the lib is a module then we can not link against -+ # it, someone is ignoring the new warnings I added -+ if /usr/bin/file -L $add 2> /dev/null | -+ $EGREP ": [^:]* bundle" >/dev/null ; then - $echo "** Warning, lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then - $echo -@@ -2374,7 +2675,7 @@ - $echo "** The link will probably fail, sorry" - else - add="$dir/$old_library" -- fi -+ fi - fi - esac - elif test "$hardcode_minus_L" = no; then -@@ -2397,9 +2698,9 @@ - add_dir="-L$dir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then -- case "$libdir" in -+ case $libdir in - [\\/]*) -- add_dir="-L$inst_prefix_dir$libdir $add_dir" -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -2416,7 +2717,7 @@ - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" -- exit 1 -+ exit $EXIT_FAILURE - fi - - if test -n "$add_shlibpath"; then -@@ -2459,7 +2760,8 @@ - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then -- if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; 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" -@@ -2469,9 +2771,9 @@ - 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 -+ case $libdir in - [\\/]*) -- add_dir="-L$inst_prefix_dir$libdir $add_dir" -+ add_dir="$add_dir -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -2530,17 +2832,16 @@ - fi - fi - else -- convenience="$convenience $dir/$old_library" -- old_convenience="$old_convenience $dir/$old_library" - 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 -+ 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 -@@ -2554,7 +2855,7 @@ - esac - done - dependency_libs="$temp_deplibs" -- #fi -+ fi - - newlib_search_path="$newlib_search_path $absdir" - # Link against this library -@@ -2596,20 +2897,18 @@ - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - if test "$absdir" != "$libdir"; then -- # Sure, some shells/systems don't implement the -ef. -- # Those will have to live with the warning. -- test "$absdir" -ef "$libdir" > /dev/null 2>&1 || -- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 -+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi - path="$absdir" - fi - depdepl= - case $host in - *-*-darwin*) -- # we do not want to link against static libs, but need to link against shared -+ # we do not want to link against static libs, -+ # but need to link against shared - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do -@@ -2617,46 +2916,36 @@ - done - if test -f "$path/$depdepl" ; then - depdepl="$path/$depdepl" -- fi -+ fi - # do not add paths which are already there - case " $newlib_search_path " in - *" $path "*) ;; - *) newlib_search_path="$newlib_search_path $path";; - esac -- path="" - fi -+ path="" - ;; - *) -- path="-L$path" -- ;; -- esac -- -+ path="-L$path" -+ ;; -+ esac - ;; -- -l*) -+ -l*) - case $host in - *-*-darwin*) -- # Again, we only want to link against shared libraries -- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -- for tmp in $newlib_search_path ; do -- if test -f "$tmp/lib$tmp_libs.dylib" ; then -- eval depdepl="$tmp/lib$tmp_libs.dylib" -- break -- fi -- done -- path="" -+ # Again, we only want to link against shared libraries -+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` -+ for tmp in $newlib_search_path ; do -+ if test -f "$tmp/lib$tmp_libs.dylib" ; then -+ eval depdepl="$tmp/lib$tmp_libs.dylib" -+ break -+ fi -+ done -+ path="" - ;; - *) continue ;; -- esac -- ;; -- -- *.ltframework) -- case $host in -- *-*-darwin*) -- depdepl="$deplib" -- ;; - esac - ;; -- - *) continue ;; - esac - case " $deplibs " in -@@ -2660,12 +2949,12 @@ - *) continue ;; - esac - case " $deplibs " in -- *" $depdepl "*) ;; -- *) deplibs="$deplibs $depdepl" ;; -- esac -- case " $deplibs " in - *" $path "*) ;; -- *) deplibs="$deplibs $path" ;; -+ *) deplibs="$path $deplibs" ;; -+ esac -+ case " $deplibs " in -+ *" $depdepl "*) ;; -+ *) deplibs="$depdepl $deplibs" ;; - esac - done - fi # link_all_deplibs != no -@@ -2752,7 +3041,8 @@ - eval $var=\"$tmp_libs\" - done # for var - fi -- # Last step: remove runtime libs from dependency_libs (they stay in deplibs) -+ # 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 -@@ -2812,19 +3102,19 @@ - case $outputname in - lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` -- eval shared_ext=\"$shrext\" -+ eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - ;; - *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - if test "$need_lib_prefix" != no; then - # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -- eval shared_ext=\"$shrext\" -+ eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" - else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` -@@ -2835,7 +3125,7 @@ - if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 -- exit 1 -+ exit $EXIT_FAILURE - else - $echo - $echo "*** Warning: Linking the shared library $output against the non-libtool" -@@ -2883,13 +3173,13 @@ - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # 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="$2" -@@ -2929,36 +3219,36 @@ - - # 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]) ;; -+ 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]) ;; - *) -- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 -+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - - case $revision in -- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; -+ 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]) ;; - *) -- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 -+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - - case $age in -- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; -+ 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]) ;; - *) -- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 -+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - - if test "$age" -gt "$current"; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Calculate the version variables. -@@ -2975,7 +3265,7 @@ - versuffix="$major.$age.$revision" - # Darwin ld doesn't like 0 for these options... - minor_current=`expr $current + 1` -- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" -+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - ;; - - freebsd-aout) -@@ -3047,7 +3337,7 @@ - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - -@@ -3098,9 +3388,15 @@ - tempremovelist=`$echo "$output_objdir/*"` - for p in $tempremovelist; do - case $p in -- *.$objext | *$exeext) -+ *.$objext) - ;; - $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="$removelist $p" - ;; - *) ;; -@@ -3122,9 +3418,9 @@ - - # Eliminate all temporary directories. - for path in $notinst_path; do -- lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` -- deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` -- dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` -+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` -+ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` -+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` - done - - if test -n "$xrpath"; then -@@ -3137,7 +3433,7 @@ - *) finalize_rpath="$finalize_rpath $libdir" ;; - esac - done -- if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then - dependency_libs="$temp_xrpath $dependency_libs" - fi - fi -@@ -3170,14 +3466,19 @@ - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework -- deplibs="$deplibs System.ltframework" -+ deplibs="$deplibs -framework System" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. - ;; -- *-*-openbsd* | *-*-freebsd*) -+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. -- test "X$arg" = "X-lc" && continue -+ ;; -+ *-*-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. -@@ -3221,11 +3522,11 @@ - int main() { return 0; } - EOF - $rm conftest -- $LTCC -o conftest conftest.c $deplibs -+ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs - if test "$?" -eq 0 ; then - ldd_output=`ldd conftest` - for i in $deplibs; do -- name="`expr $i : '-l\(.*\)'`" -+ name=`expr $i : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" -ne "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -@@ -3262,11 +3563,11 @@ - # 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 -- name="`expr $i : '-l\(.*\)'`" -+ name=`expr $i : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" != "0"; then - $rm conftest -- $LTCC -o conftest conftest.c $i -+ $LTCC $LTCFLAGS -o conftest conftest.c $i - # Did it work? - if test "$?" -eq 0 ; then - ldd_output=`ldd conftest` -@@ -3314,7 +3615,7 @@ - set dummy $deplibs_check_method - file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do -- name="`expr $a_deplib : '-l\(.*\)'`" -+ name=`expr $a_deplib : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test "$name" != "" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -@@ -3383,7 +3684,7 @@ - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - for a_deplib in $deplibs; do -- name="`expr $a_deplib : '-l\(.*\)'`" -+ name=`expr $a_deplib : '-l\(.*\)'` - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then -@@ -3463,7 +3764,7 @@ - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework -- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - -@@ -3509,17 +3810,39 @@ - fi - fi - fi -- # Time to change all our "foo.ltframework" stuff back to "-framework foo" -- case $host in -- *-*-darwin*) -- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -- dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -- ;; -- esac - # Done checking deplibs! - deplibs=$newdeplibs - fi - -+ -+ # 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="$new_libs -L$path/$objdir" ;; -+ esac -+ ;; -+ esac -+ done -+ for deplib in $deplibs; do -+ case $deplib in -+ -L*) -+ case " $new_libs " in -+ *" $deplib "*) ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ deplibs="$new_libs" -+ -+ - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= -@@ -3532,7 +3855,7 @@ - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" -- test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath" -+ test "$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 -@@ -3587,7 +3910,7 @@ - fi - - # Get the real and link names of the library. -- eval shared_ext=\"$shrext\" -+ eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" -@@ -3603,6 +3926,7 @@ - fi - - lib="$output_objdir/$realname" -+ linknames= - for link - do - linknames="$linknames $link" -@@ -3617,10 +3941,11 @@ - $show "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols -- eval cmds=\"$export_symbols_cmds\" -+ cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - if len=`expr "X$cmd" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - $show "$cmd" -@@ -3630,6 +3955,9 @@ - # The command line is too long to execute in one step. - $show "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" -@@ -3650,12 +3978,12 @@ - for test_deplib in $deplibs; do - case " $convenience " in - *" $test_deplib "*) ;; -- *) -+ *) - tmp_deplibs="$tmp_deplibs $test_deplib" - ;; - esac - done -- deplibs="$tmp_deplibs" -+ deplibs="$tmp_deplibs" - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then -@@ -3663,67 +3991,13 @@ - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${outputname}x" -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- status=$? -- if test "$status" -ne 0 && test ! -d "$gentop"; then -- exit $status -- fi - generated="$generated $gentop" - -- for xlib in $convenience; do -- # Extract the objects. -- case $xlib in -- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; -- *) xabs=`pwd`"/$xlib" ;; -- esac -- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` -- xdir="$gentop/$xlib" -- -- $show "${rm}r $xdir" -- $run ${rm}r "$xdir" -- $show "$mkdir $xdir" -- $run $mkdir "$xdir" -- status=$? -- if test "$status" -ne 0 && test ! -d "$xdir"; then -- exit $status -- fi -- # We will extract separately just the conflicting names and we will no -- # longer touch any unique names. It is faster to leave these extract -- # automatically by $AR in one run. -- $show "(cd $xdir && $AR x $xabs)" -- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? -- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 -- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 -- $AR t "$xabs" | sort | uniq -cd | while read -r count name -- do -- i=1 -- while test "$i" -le "$count" -- do -- # Put our $i before any first dot (extension) -- # Never overwrite any file -- name_to="$name" -- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" -- do -- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` -- done -- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" -- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? -- i=`expr $i + 1` -- done -- done -- fi -- -- libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -- done -+ func_extract_archives $gentop $convenience -+ libobjs="$libobjs $func_extract_archives_result" - fi - fi -- -+ - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" -@@ -3734,31 +4008,27 @@ - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? - fi - -- # Add all flags from the command line. We here create a library, -- # but those flags were only added to compile_command and -- # finalize_command, which are only used when creating executables. -- # So do it by hand here. -- compiler_flags="$compiler_flags $add_flags" -- # Only add it to commands which use CC, instead of LD, i.e. -- # only to $compiler_flags -- #linker_flags="$linker_flags $add_flags" -- - # 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 cmds=\"$module_expsym_cmds\" -+ eval test_cmds=\"$module_expsym_cmds\" -+ cmds=$module_expsym_cmds - else -- eval cmds=\"$module_cmds\" -+ eval test_cmds=\"$module_cmds\" -+ cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval cmds=\"$archive_expsym_cmds\" -+ eval test_cmds=\"$archive_expsym_cmds\" -+ cmds=$archive_expsym_cmds - else -- eval cmds=\"$archive_cmds\" -+ eval test_cmds=\"$archive_cmds\" -+ cmds=$archive_cmds - fi - fi - -- if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && -+ if test "X$skipped_export" != "X:" && -+ len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : - else -@@ -3777,6 +4047,7 @@ - save_libobjs=$libobjs - fi - save_output=$output -+ output_la=`$echo "X$output" | $Xsed -e "$basename"` - - # Clear the reloadable object creation command queue and - # initialize k to one. -@@ -3786,13 +4057,13 @@ - delfiles= - last_robj= - k=1 -- output=$output_objdir/$save_output-${k}.$objext -+ output=$output_objdir/$output_la-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || -- { len=`expr "X$test_cmds" : ".*"` && -+ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; }; then - objlist="$objlist $obj" - else -@@ -3806,9 +4077,9 @@ - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" - fi -- last_robj=$output_objdir/$save_output-${k}.$objext -+ last_robj=$output_objdir/$output_la-${k}.$objext - k=`expr $k + 1` -- output=$output_objdir/$save_output-${k}.$objext -+ output=$output_objdir/$output_la-${k}.$objext - objlist=$obj - len=1 - fi -@@ -3828,13 +4099,13 @@ - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" - fi - -- # Set up a command to remove the reloadale object files -+ # Set up a command to remove the reloadable object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` -- delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" -+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" - done - - $echo "creating a temporary reloadable object file: $output" -@@ -3859,28 +4130,54 @@ - # 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 -- eval cmds=\"$archive_expsym_cmds\" -+ cmds=$archive_expsym_cmds - else -- eval cmds=\"$archive_cmds\" -+ cmds=$archive_cmds -+ fi - fi - - # Append the command to remove the reloadable object files - # to the just-reset $cmds. -- eval cmds=\"\$cmds~$rm $delfiles\" -+ eval cmds=\"\$cmds~\$rm $delfiles\" - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" -- $run eval "$cmd" || exit $? -+ $run eval "$cmd" || { -+ lt_exit=$? -+ -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ $run eval '(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 "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? -- exit 0 -+ -+ if test -n "$convenience"; then -+ if test -z "$whole_archive_flag_spec"; then -+ $show "${rm}r $gentop" -+ $run ${rm}r "$gentop" -+ fi -+ fi -+ -+ exit $EXIT_SUCCESS - fi - - # Create links to the real library. -@@ -3928,7 +4225,7 @@ - *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` -@@ -3957,64 +4254,10 @@ - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" - else - gentop="$output_objdir/${obj}x" -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- status=$? -- if test "$status" -ne 0 && test ! -d "$gentop"; then -- exit $status -- fi - generated="$generated $gentop" - -- for xlib in $convenience; do -- # Extract the objects. -- case $xlib in -- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; -- *) xabs=`pwd`"/$xlib" ;; -- esac -- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` -- xdir="$gentop/$xlib" -- -- $show "${rm}r $xdir" -- $run ${rm}r "$xdir" -- $show "$mkdir $xdir" -- $run $mkdir "$xdir" -- status=$? -- if test "$status" -ne 0 && test ! -d "$xdir"; then -- exit $status -- fi -- # We will extract separately just the conflicting names and we will no -- # longer touch any unique names. It is faster to leave these extract -- # automatically by $AR in one run. -- $show "(cd $xdir && $AR x $xabs)" -- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? -- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 -- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 -- $AR t "$xabs" | sort | uniq -cd | while read -r count name -- do -- i=1 -- while test "$i" -le "$count" -- do -- # Put our $i before any first dot (extension) -- # Never overwrite any file -- name_to="$name" -- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" -- do -- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` -- done -- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" -- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? -- i=`expr $i + 1` -- done -- done -- fi -- -- reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -- done -+ func_extract_archives $gentop $convenience -+ reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - -@@ -4022,10 +4265,11 @@ - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - - output="$obj" -- eval cmds=\"$reload_cmds\" -+ cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done -@@ -4038,7 +4282,7 @@ - $run ${rm}r $gentop - fi - -- exit 0 -+ exit $EXIT_SUCCESS - fi - - if test "$build_libtool_libs" != yes; then -@@ -4051,17 +4295,18 @@ - # accidentally link it into a program. - # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? -- exit 0 -+ 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" -- eval cmds=\"$reload_cmds\" -+ cmds=$reload_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done -@@ -4073,7 +4318,7 @@ - $run ${rm}r $gentop - fi - -- exit 0 -+ exit $EXIT_SUCCESS - ;; - - prog) -@@ -4098,24 +4343,50 @@ - case $host in - *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework -- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` -+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` -+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - ;; - esac - - case $host in -- *-*-darwin*) -+ *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - fi -- # Time to change all our "foo.ltframework" stuff back to "-framework foo" -- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` -- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e '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="$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="$new_libs $deplib" ;; -+ esac -+ ;; -+ *) new_libs="$new_libs $deplib" ;; -+ esac -+ done -+ compile_deplibs="$new_libs" -+ -+ - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" - -@@ -4160,10 +4431,15 @@ - fi - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) -+ testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac -+ case :$dllsearchpath: in -+ *":$testbindir:"*) ;; -+ *) dllsearchpath="$dllsearchpath:$testbindir";; -+ esac - ;; - esac - done -@@ -4277,13 +4553,25 @@ - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then -- export_symbols="$output_objdir/$output.exp" -+ export_symbols="$output_objdir/$outputname.exp" - $run $rm $export_symbols -- $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -+ $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' -+ case $host in -+ *cygwin* | *mingw* ) -+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac - else -- $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' -- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' -+ $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' -+ case $host in -+ *cygwin* | *mingw* ) -+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' -+ ;; -+ esac - fi - fi - -@@ -4334,7 +4622,26 @@ - #endif - - /* The mapping between symbol names and symbols. */ -+" -+ -+ case $host in -+ *cygwin* | *mingw* ) -+ $echo >> "$output_objdir/$dlsyms" "\ -+/* DATA imports from DLLs on WIN32 can't be const, because -+ runtime relocations are performed -- see ld's documentation -+ on pseudo-relocs */ -+struct { -+" -+ ;; -+ * ) -+ $echo >> "$output_objdir/$dlsyms" "\ - const struct { -+" -+ ;; -+ esac -+ -+ -+ $echo >> "$output_objdir/$dlsyms" "\ - const char *name; - lt_ptr address; - } -@@ -4381,20 +4688,33 @@ - esac - - # Now compile the dynamic symbol file. -- $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" -- $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? -+ $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" -+ $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. -- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -+ case $host in -+ *cygwin* | *mingw* ) -+ if test -f "$output_objdir/${outputname}.def" ; then -+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` -+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` -+ else -+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -+ fi -+ ;; -+ * ) -+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` -+ ;; -+ esac - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - else -@@ -4407,17 +4727,6 @@ - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - -- # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G -- # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath. -- # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld. -- # This does not apply on AIX for ia64, which uses a SysV linker. -- case "$host" in -- ia64-*-aix5*) ;; -- *-*-aix4* | *-*-aix5*) -- compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` -- finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;; -- esac -- - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` -@@ -4426,7 +4735,7 @@ - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" -- status=$? -+ exit_status=$? - - # Delete the generated files. - if test -n "$dlsyms"; then -@@ -4434,7 +4743,7 @@ - $run $rm "$output_objdir/${outputname}S.${objext}" - fi - -- exit $status -+ exit $exit_status - fi - - if test -n "$shlibpath_var"; then -@@ -4493,7 +4802,7 @@ - # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? -- exit 0 -+ exit $EXIT_SUCCESS - fi - - if test "$hardcode_action" = relink; then -@@ -4548,10 +4857,10 @@ - fi - - # Quote $echo for shipping. -- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then -- case $0 in -- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; -- *) qecho="$SHELL `pwd`/$0 --fallback-echo";; -+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then -+ case $progpath in -+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; -+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else -@@ -4573,11 +4882,13 @@ - *) exeext= ;; - esac - case $host in -- *mingw* ) -- cwrappersource=`$echo ${output_objdir}/lt-${outputname}.c` -- cwrapper=`$echo ${output}.exe` -- $rm $cwrappersource $cwrapper -- trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 -+ *cygwin* | *mingw* ) -+ output_name=`basename $output` -+ output_path=`dirname $output` -+ 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 - - cat > $cwrappersource < - #include - #include -+#include -+#include -+#include - - #if defined(PATH_MAX) - # define LT_PATHMAX PATH_MAX -@@ -4612,15 +4926,19 @@ - #endif - - #ifndef DIR_SEPARATOR --#define DIR_SEPARATOR '/' -+# define DIR_SEPARATOR '/' -+# define PATH_SEPARATOR ':' - #endif - - #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) --#define HAVE_DOS_BASED_FILE_SYSTEM --#ifndef DIR_SEPARATOR_2 --#define DIR_SEPARATOR_2 '\\' --#endif -+# define HAVE_DOS_BASED_FILE_SYSTEM -+# ifndef DIR_SEPARATOR_2 -+# define DIR_SEPARATOR_2 '\\' -+# endif -+# ifndef PATH_SEPARATOR_2 -+# define PATH_SEPARATOR_2 ';' -+# endif - #endif - - #ifndef DIR_SEPARATOR_2 -@@ -4630,17 +4948,32 @@ - (((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 */ -+ - #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) - #define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ - } while (0) - -+/* -DDEBUG is fairly common in CFLAGS. */ -+#undef DEBUG -+#if defined DEBUGWRAPPER -+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) -+#else -+# define DEBUG(format, ...) -+#endif -+ - const char *program_name = NULL; - - void * xmalloc (size_t num); - char * xstrdup (const char *string); --char * basename (const char *name); --char * fnqualify(const char *path); -+const char * base_name (const char *name); -+char * find_executable(const char *wrapper); -+int check_executable(const char *path); - char * strendzap(char *str, const char *pat); - void lt_fatal (const char *message, ...); - -@@ -4649,30 +4982,52 @@ - { - char **newargz; - int i; -- -- program_name = (char *) xstrdup ((char *) basename (argv[0])); -+ -+ program_name = (char *) xstrdup (base_name (argv[0])); -+ DEBUG("(main) argv[0] : %s\n",argv[0]); -+ DEBUG("(main) program_name : %s\n",program_name); - newargz = XMALLOC(char *, argc+2); - EOF - -- cat >> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" -- newargz[1] = fnqualify(argv[0]); -+ cat >> $cwrappersource <<"EOF" -+ newargz[1] = find_executable(argv[0]); -+ if (newargz[1] == NULL) -+ lt_fatal("Couldn't find %s", argv[0]); -+ DEBUG("(main) found exe at : %s\n",newargz[1]); - /* we know the script has the same name, without the .exe */ - /* so make sure newargz[1] doesn't end in .exe */ -- strendzap(newargz[1],".exe"); -+ strendzap(newargz[1],".exe"); - for (i = 1; i < argc; i++) - newargz[i+1] = xstrdup(argv[i]); - newargz[argc+1] = NULL; -+ -+ for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" -+ cat >> $cwrappersource <<"EOF" -+ return 127; - } - - void * -@@ -4685,59 +5040,159 @@ - return p; - } - --char * -+char * - xstrdup (const char *string) - { - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL - ; - } - --char * --basename (const char *name) -+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 (name[0]) && name[1] == ':') -+ 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 (char *) base; -+ return base; -+} -+ -+int -+check_executable(const char * path) -+{ -+ struct stat st; -+ -+ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); -+ if ((!path) || (!*path)) -+ return 0; -+ -+ if ((stat (path, &st) >= 0) && -+ ( -+ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ -+#if defined (S_IXOTH) -+ ((st.st_mode & S_IXOTH) == S_IXOTH) || -+#endif -+#if defined (S_IXGRP) -+ ((st.st_mode & S_IXGRP) == S_IXGRP) || -+#endif -+ ((st.st_mode & S_IXUSR) == S_IXUSR)) -+ ) -+ return 1; -+ else -+ return 0; - } - --char * --fnqualify(const char *path) -+/* Searches for the full path of the wrapper. Returns -+ newly allocated full path name if found, NULL otherwise */ -+char * -+find_executable (const char* wrapper) - { -- size_t size; -- char *p; -+ 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; -+ -+ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); - -- assert(path != NULL); -+ if ((wrapper == NULL) || (*wrapper == '\0')) -+ return NULL; - -- /* Is it qualified already? */ -+ /* Absolute path? */ - #if defined (HAVE_DOS_BASED_FILE_SYSTEM) -- if (isalpha (path[0]) && path[1] == ':') -- return xstrdup (path); -+ 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 -- if (IS_DIR_SEPARATOR (path[0])) -- return xstrdup (path); - -- /* prepend the current directory */ -- /* doesn't handle '~' */ -+ 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 ("getcwd failed"); -+ 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 ("getcwd failed"); -- size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ -- p = XMALLOC(char, size); -- sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); -- return p; -+ 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 * --strendzap(char *str, const char *pat) -+strendzap(char *str, const char *pat) - { - size_t len, patlen; - -@@ -4757,7 +5212,7 @@ - } - - static void --lt_error_core (int exit_status, const char * mode, -+lt_error_core (int exit_status, const char * mode, - const char * message, va_list ap) - { - fprintf (stderr, "%s: %s: ", program_name, mode); -@@ -4777,16 +5232,16 @@ - va_end (ap); - } - EOF -- # we should really use a build-platform specific compiler -- # here, but OTOH, the wrappers (shell script and this C one) -- # are only useful if you want to execute the "real" binary. -- # Since the "real" binary is built for $host, then this -- # wrapper might as well be built for $host, too. -- $run $LTCC -s -o $cwrapper $cwrappersource -- ;; -- esac -- $rm $output -- trap "$rm $output; exit 1" 1 2 15 -+ # we should really use a build-platform specific compiler -+ # here, but OTOH, the wrappers (shell script and this C one) -+ # are only useful if you want to execute the "real" binary. -+ # Since the "real" binary is built for $host, then this -+ # wrapper might as well be built for $host, too. -+ $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource -+ ;; -+ esac -+ $rm $output -+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 - - $echo > $output "\ - #! $SHELL -@@ -4807,7 +5262,7 @@ - - # The HP-UX ksh and POSIX shell print the target directory to stdout - # if CDPATH is set. --if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi -+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - relink_command=\"$relink_command\" - -@@ -4886,7 +5341,7 @@ - else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" -- exit 1 -+ exit $EXIT_FAILURE - fi - fi - -@@ -4936,34 +5391,32 @@ - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) - $echo >> $output "\ -- exec \$progdir\\\\\$program \${1+\"\$@\"} -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} - " - ;; - - *) -- # Need to set LD_LIBRARY_PATH, to the value already -- # computed within libtool. - $echo >> $output "\ -- LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$program \${1+\"\$@\"} -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} - " - ;; - esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" -- exit 1 -+ exit $EXIT_FAILURE - fi - else - # The program doesn't exist. -- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 -+ \$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 -+ exit $EXIT_FAILURE - fi - fi\ - " - chmod +x $output - fi -- exit 0 -+ exit $EXIT_SUCCESS - ;; - esac - -@@ -4986,78 +5439,78 @@ - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" -- $show "${rm}r $gentop" -- $run ${rm}r "$gentop" -- $show "$mkdir $gentop" -- $run $mkdir "$gentop" -- status=$? -- if test "$status" -ne 0 && test ! -d "$gentop"; then -- exit $status -- fi - generated="$generated $gentop" - -- # Add in members from convenience archives. -- for xlib in $addlibs; do -- # Extract the objects. -- case $xlib in -- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; -- *) xabs=`pwd`"/$xlib" ;; -- esac -- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` -- xdir="$gentop/$xlib" -- -- $show "${rm}r $xdir" -- $run ${rm}r "$xdir" -- $show "$mkdir $xdir" -- $run $mkdir "$xdir" -- status=$? -- if test "$status" -ne 0 && test ! -d "$xdir"; then -- exit $status -- fi -- # We will extract separately just the conflicting names and we will no -- # longer touch any unique names. It is faster to leave these extract -- # automatically by $AR in one run. -- $show "(cd $xdir && $AR x $xabs)" -- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? -- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 -- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 -- $AR t "$xabs" | sort | uniq -cd | while read -r count name -- do -- i=1 -- while test "$i" -le "$count" -- do -- # Put our $i before any first dot (extension) -- # Never overwrite any file -- name_to="$name" -- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" -- do -- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` -- done -- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" -- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? -- i=`expr $i + 1` -- done -- done -- fi -- -- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` -- done -+ func_extract_archives $gentop $addlibs -+ oldobjs="$oldobjs $func_extract_archives_result" - fi - -- compiler_flags="$compiler_flags $add_flags" -- - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then -- eval cmds=\"$old_archive_from_new_cmds\" -+ cmds=$old_archive_from_new_cmds - else -+ # 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 -+ $echo "X$obj" | $Xsed -e 's%^.*/%%' -+ done | sort | sort -uc >/dev/null 2>&1); then -+ : -+ else -+ $echo "copying selected object files to avoid basename conflicts..." -+ -+ if test -z "$gentop"; then -+ gentop="$output_objdir/${outputname}x" -+ generated="$generated $gentop" -+ -+ $show "${rm}r $gentop" -+ $run ${rm}r "$gentop" -+ $show "$mkdir $gentop" -+ $run $mkdir "$gentop" -+ exit_status=$? -+ if test "$exit_status" -ne 0 && test ! -d "$gentop"; then -+ exit $exit_status -+ fi -+ fi -+ -+ save_oldobjs=$oldobjs -+ oldobjs= -+ counter=1 -+ for obj in $save_oldobjs -+ do -+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -+ case " $oldobjs " in -+ " ") oldobjs=$obj ;; -+ *[\ /]"$objbase "*) -+ while :; do -+ # Make sure we don't pick an alternate name that also -+ # overlaps. -+ newobj=lt$counter-$objbase -+ counter=`expr $counter + 1` -+ case " $oldobjs " in -+ *[\ /]"$newobj "*) ;; -+ *) if test ! -f "$gentop/$newobj"; then break; fi ;; -+ esac -+ done -+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -+ $run ln "$obj" "$gentop/$newobj" || -+ $run cp "$obj" "$gentop/$newobj" -+ oldobjs="$oldobjs $gentop/$newobj" -+ ;; -+ *) oldobjs="$oldobjs $obj" ;; -+ esac -+ done -+ fi -+ - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then -- : -+ cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." -@@ -5066,31 +5519,18 @@ - objlist= - concat_cmds= - save_oldobjs=$oldobjs -- # GNU ar 2.10+ was changed to match POSIX; thus no paths are -- # encoded into archives. This makes 'ar r' malfunction in -- # this piecewise linking case whenever conflicting object -- # names appear in distinct ar calls; check, warn and compensate. -- if (for obj in $save_oldobjs -- do -- $echo "X$obj" | $Xsed -e 's%^.*/%%' -- done | sort | sort -uc >/dev/null 2>&1); then -- : -- else -- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 -- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 -- AR_FLAGS=cq -- fi -+ - # Is there a better way of finding the last object in the list? - for obj in $save_oldobjs - do - last_oldobj=$obj -- done -+ done - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" -- if len=`expr "X$test_cmds" : ".*"` && -+ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && - test "$len" -le "$max_cmd_len"; then - : - else -@@ -5098,7 +5538,7 @@ - oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then - RANLIB=$save_RANLIB -- fi -+ fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= -@@ -5109,12 +5549,13 @@ - if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" - else -- eval cmds=\"\$concat_cmds~$old_archive_cmds\" -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do -+ eval cmd=\"$cmd\" - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? -@@ -5146,11 +5587,13 @@ - fi - done - # Quote the link command for shipping. -- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" -+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then -- relink_command= -- fi -+ relink_command= -+ fi -+ -+ - # Only create the output if not a dry run. - if test -z "$run"; then - for installed in no yes; do -@@ -5162,13 +5605,17 @@ - # Replace all uninstalled libtool libraries with the installed ones - newdependency_libs= - for deplib in $dependency_libs; do -+ # Replacing uninstalled with installed can easily break crosscompilation, -+ # since the installed path is generally the wrong architecture. -CL -+ newdependency_libs="$newdependency_libs $deplib" -+ continue - case $deplib in - *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - newdependency_libs="$newdependency_libs $libdir/$name" - ;; -@@ -5182,7 +5629,7 @@ - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - newdlfiles="$newdlfiles $libdir/$name" - done -@@ -5193,11 +5640,30 @@ - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - newdlprefiles="$newdlprefiles $libdir/$name" - done - dlprefiles="$newdlprefiles" -+ else -+ newdlfiles= -+ for lib in $dlfiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlfiles="$newdlfiles $abs" -+ done -+ dlfiles="$newdlfiles" -+ newdlprefiles= -+ for lib in $dlprefiles; do -+ case $lib in -+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; -+ *) abs=`pwd`"/$lib" ;; -+ esac -+ newdlprefiles="$newdlprefiles $abs" -+ done -+ dlprefiles="$newdlprefiles" - fi - $rm $output - # place dlname in correct position for cygwin -@@ -5241,7 +5707,7 @@ - - # Directory that this library needs to be installed in: - libdir='$install_libdir'" -- if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then -+ if test "$installed" = no && test "$need_relink" = yes; then - $echo >> $output "\ - relink_command=\"$relink_command\"" - fi -@@ -5254,7 +5720,7 @@ - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac -- exit 0 -+ exit $EXIT_SUCCESS - ;; - - # libtool install mode -@@ -5265,11 +5731,11 @@ - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. -- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then -+ $echo "X$nonopt" | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac -@@ -5278,14 +5744,14 @@ - shift - else - install_prog= -- arg="$nonopt" -+ arg=$nonopt - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac -@@ -5303,28 +5769,31 @@ - do - if test -n "$dest"; then - files="$files $dest" -- dest="$arg" -+ dest=$arg - continue - fi - - case $arg in - -d) isdir=yes ;; -- -f) prev="-f" ;; -- -g) prev="-g" ;; -- -m) prev="-m" ;; -- -o) prev="-o" ;; -+ -f) -+ case " $install_prog " in -+ *[\\\ /]cp\ *) ;; -+ *) prev=$arg ;; -+ esac -+ ;; -+ -g | -m | -o) prev=$arg ;; - -s) - stripme=" -s" - continue - ;; -- -*) ;; -- -+ -*) -+ ;; - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else -- dest="$arg" -+ dest=$arg - continue - fi - ;; -@@ -5333,7 +5802,7 @@ - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in -- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) -+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac -@@ -5343,13 +5812,13 @@ - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - if test -z "$files"; then -@@ -5359,7 +5828,7 @@ - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Strip any trailing slash from the destination. -@@ -5380,7 +5849,7 @@ - if test "$#" -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - fi - case $destdir in -@@ -5392,7 +5861,7 @@ - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - done -@@ -5421,7 +5890,7 @@ - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - library_names= -@@ -5461,10 +5930,13 @@ - # 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. -- if test "$inst_prefix_dir" = "$destdir"; then -- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -- exit 1 -- fi -+ # -+ # This breaks install into our staging area. -PB -+ # -+ # if test "$inst_prefix_dir" = "$destdir"; then -+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 -+ # exit $EXIT_FAILURE -+ # fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. -@@ -5478,7 +5950,7 @@ - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - fi - -@@ -5502,23 +5974,36 @@ - - 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 - if test "$linkname" != "$realname"; then -- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" -- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" -+ $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" -+ $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" -- eval cmds=\"$postinstall_cmds\" -+ cmds=$postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" -- $run eval "$cmd" || exit $? -+ $run eval "$cmd" || { -+ lt_exit=$? -+ -+ # Restore the uninstalled library and exit -+ if test "$mode" = relink; then -+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' -+ fi -+ -+ exit $lt_exit -+ } - done - IFS="$save_ifs" - fi -@@ -5556,7 +6041,7 @@ - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - -@@ -5574,7 +6059,7 @@ - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi -- exit 0 -+ exit $EXIT_SUCCESS - ;; - - *) -@@ -5612,23 +6097,21 @@ - notinst_deplibs= - relink_command= - -- # To insure that "foo" is sourced, and not "foo.exe", -- # finese the cygwin/MSYS system by explicitly sourcing "foo." -- # which disallows the automatic-append-.exe behavior. -- case $build in -- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; -- *) wrapperdot=${wrapper} ;; -- esac -+ # Note that it is not necessary on cygwin/mingw to append a dot to -+ # foo even if both foo 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. -+ # - # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . ${wrapperdot} ;; -- *) . ./${wrapperdot} ;; -+ case $wrapper in -+ */* | *\\*) . ${wrapper} ;; -+ *) . ./${wrapper} ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - finalize=yes -@@ -5650,30 +6133,21 @@ - done - - relink_command= -- # To insure that "foo" is sourced, and not "foo.exe", -- # finese the cygwin/MSYS system by explicitly sourcing "foo." -- # which disallows the automatic-append-.exe behavior. -- case $build in -- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; -- *) wrapperdot=${wrapper} ;; -- esac -+ # Note that it is not necessary on cygwin/mingw to append a dot to -+ # foo even if both foo 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. -+ # - # If there is no directory component, then add one. -- case $file in -- */* | *\\*) . ${wrapperdot} ;; -- *) . ./${wrapperdot} ;; -+ case $wrapper in -+ */* | *\\*) . ${wrapper} ;; -+ *) . ./${wrapper} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then -- tmpdir="/tmp" -- test -n "$TMPDIR" && tmpdir="$TMPDIR" -- tmpdir="$tmpdir/libtool-$$" -- if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then : -- else -- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 -- continue -- fi -+ tmpdir=`func_mktempdir` - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. -@@ -5697,7 +6171,7 @@ - fi - - # remove .exe since cygwin /usr/bin/install will append another -- # one anyways -+ # one anyway - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in -@@ -5729,16 +6203,17 @@ - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - -- if test -n "$stripme" && test -n "$striplib"; then -+ if test -n "$stripme" && test -n "$old_striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. -- eval cmds=\"$old_postinstall_cmds\" -+ cmds=$old_postinstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done -@@ -5752,9 +6227,9 @@ - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" -- exec_cmd='$SHELL $0 --finish$current_libdirs' -+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' - else -- exit 0 -+ exit $EXIT_SUCCESS - fi - ;; - -@@ -5773,10 +6248,11 @@ - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. -- eval cmds=\"$finish_cmds\" -+ cmds=$finish_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" -@@ -5793,9 +6269,9 @@ - fi - - # Exit here if they wanted silent mode. -- exit 0 -+ test "$show" = : && exit $EXIT_SUCCESS - -- $echo "----------------------------------------------------------------------" -+ $echo "X----------------------------------------------------------------------" | $Xsed - $echo "Libraries have been installed in:" - for libdir in $libdirs; do - $echo " $libdir" -@@ -5828,8 +6304,8 @@ - $echo - $echo "See any operating system documentation about shared libraries for" - $echo "more information, such as the ld(1) and ld.so(8) manual pages." -- $echo "----------------------------------------------------------------------" -- exit 0 -+ $echo "X----------------------------------------------------------------------" | $Xsed -+ exit $EXIT_SUCCESS - ;; - - # libtool execute mode -@@ -5841,7 +6317,7 @@ - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Handle -dlopen flags immediately. -@@ -5849,7 +6325,7 @@ - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - dir= -@@ -5860,7 +6336,7 @@ - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - # Read the libtool library. -@@ -5887,7 +6363,7 @@ - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - ;; - -@@ -5967,7 +6443,7 @@ - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" -- exit 0 -+ exit $EXIT_SUCCESS - fi - ;; - -@@ -5995,7 +6471,7 @@ - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - - rmdirs= -@@ -6045,15 +6521,24 @@ - rmfiles="$rmfiles $objdir/$n" - done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" -- test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - -- if test "$mode" = uninstall; then -+ case "$mode" in -+ clean) -+ case " $library_names " in -+ # " " in the beginning catches empty $dlname -+ *" $dlname "*) ;; -+ *) rmfiles="$rmfiles $objdir/$dlname" ;; -+ esac -+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ ;; -+ uninstall) - if test -n "$library_names"; then - # Do each command in the postuninstall commands. -- eval cmds=\"$postuninstall_cmds\" -+ cmds=$postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then -@@ -6065,10 +6550,11 @@ - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. -- eval cmds=\"$old_postuninstall_cmds\" -+ cmds=$old_postuninstall_cmds - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -+ eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" - if test "$?" -ne 0 && test "$rmforce" != yes; then -@@ -6078,7 +6564,8 @@ - IFS="$save_ifs" - fi - # FIXME: should reinstall the best remaining shared library. -- fi -+ ;; -+ esac - fi - ;; - -@@ -6107,7 +6594,7 @@ - if test "$mode" = clean ; then - noexename=$name - case $file in -- *.exe) -+ *.exe) - file=`$echo $file|${SED} 's,.exe$,,'` - noexename=`$echo $name|${SED} 's,.exe$,,'` - # $file with .exe has already been added to rmfiles, -@@ -6152,20 +6639,20 @@ - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - fi - fi # test -z "$show_help" - - if test -n "$exec_cmd"; then - eval exec $exec_cmd -- exit 1 -+ exit $EXIT_FAILURE - fi - - # We need to display help for each of the modes. -@@ -6201,7 +6688,7 @@ - a more detailed description of MODE. - - Report bugs to ." -- exit 0 -+ exit $EXIT_SUCCESS - ;; - - clean) -@@ -6313,6 +6800,8 @@ - -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 -@@ -6354,14 +6843,14 @@ - *) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 -- exit 1 -+ exit $EXIT_FAILURE - ;; - esac - - $echo - $echo "Try \`$modename --help' for more information about other modes." - --exit 0 -+exit $? - - # The TAGs below are defined such that we never get into a situation - # in which we disable both kinds of libraries. Given conflicting -@@ -6375,12 +6864,11 @@ - # 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 -+disable_libs=shared - # ### 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` -+disable_libs=static - # ### END LIBTOOL TAG CONFIG: disable-static - - # Local Variables: diff --git a/package/multimedia/taglib/taglib.mk b/package/multimedia/taglib/taglib.mk index 5b480bb9fc..b48e3d2423 100644 --- a/package/multimedia/taglib/taglib.mk +++ b/package/multimedia/taglib/taglib.mk @@ -3,18 +3,18 @@ # taglib # ############################################################# -TAGLIB_VERSION = 1.5 +TAGLIB_VERSION = 1.7 TAGLIB_SOURCE = taglib-$(TAGLIB_VERSION).tar.gz TAGLIB_SITE = http://developer.kde.org/~wheeler/files/src -TAGLIB_LIBTOOL_PATCH = NO TAGLIB_INSTALL_STAGING = YES -TAGLIB_CONF_ENV = \ - DO_NOT_COMPILE='bindings tests examples' \ - ac_cv_header_cppunit_extensions_HelperMacros_h=no \ - ac_cv_header_zlib_h=$(if $(BR2_PACKAGE_ZLIB),yes,no) +ifeq ($(BR2_PACKAGE_TAGLIB_ASF),y) +TAGLIB_CONF_OPT += -DWITH_ASF=ON +endif -TAGLIB_CONF_OPT = --disable-libsuffix +ifeq ($(BR2_PACKAGE_TAGLIB_MP4),y) +TAGLIB_CONF_OPT += -DWITH_MP4=ON +endif define TAGLIB_REMOVE_DEVFILE rm -f $(TARGET_DIR)/usr/bin/taglib-config @@ -24,4 +24,4 @@ ifneq ($(BR2_HAVE_DEVFILES),y) TAGLIB_POST_INSTALL_TARGET_HOOKS += TAGLIB_REMOVE_DEVFILE endif -$(eval $(call AUTOTARGETS,package/multimedia,taglib)) +$(eval $(call CMAKETARGETS,package/multimedia,taglib))