ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid-7.3/ltmain.sh
(Generate patch)

Comparing ircd-hybrid-7.3/ltmain.sh (file contents):
Revision 1093 by michael, Sat Mar 13 23:24:10 2010 UTC vs.
Revision 1094 by michael, Sun Jun 13 10:09:34 2010 UTC

# Line 1 | Line 1
1   # Generated from ltmain.m4sh.
2  
3 < # ltmain.sh (GNU libtool) 2.2.6b
3 > # libtool (GNU libtool) 2.2.10
4   # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
5  
6 < # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
6 > # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
7 > # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
8   # This is free software; see the source for copying conditions.  There is NO
9   # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  
# Line 32 | Line 33
33   #
34   # Provide generalized library-building support services.
35   #
36 < #     --config             show all configuration variables
37 < #     --debug              enable verbose shell tracing
38 < # -n, --dry-run            display commands without modifying any files
39 < #     --features           display basic configuration information and exit
40 < #     --mode=MODE          use operation mode MODE
41 < #     --preserve-dup-deps  don't remove duplicate dependency libraries
42 < #     --quiet, --silent    don't print informational messages
43 < #     --tag=TAG            use configuration variables from tag TAG
44 < # -v, --verbose            print informational messages (default)
45 < #     --version            print version information
46 < # -h, --help               print short or long help message
36 > #       --config             show all configuration variables
37 > #       --debug              enable verbose shell tracing
38 > #   -n, --dry-run            display commands without modifying any files
39 > #       --features           display basic configuration information and exit
40 > #       --mode=MODE          use operation mode MODE
41 > #       --preserve-dup-deps  don't remove duplicate dependency libraries
42 > #       --quiet, --silent    don't print informational messages
43 > #       --no-quiet, --no-silent
44 > #                            print informational messages (default)
45 > #       --tag=TAG            use configuration variables from tag TAG
46 > #   -v, --verbose            print more informational messages than default
47 > #       --no-verbose         don't print the extra informational messages
48 > #       --version            print version information
49 > #   -h, --help, --help-all   print short, long, or detailed help message
50   #
51   # MODE must be one of the following:
52   #
53 < #       clean              remove files from the build directory
54 < #       compile            compile a source file into a libtool object
55 < #       execute            automatically set library path, then run a program
56 < #       finish             complete the installation of libtool libraries
57 < #       install            install libraries or executables
58 < #       link               create a library or an executable
59 < #       uninstall          remove libraries from an installed directory
53 > #         clean              remove files from the build directory
54 > #         compile            compile a source file into a libtool object
55 > #         execute            automatically set library path, then run a program
56 > #         finish             complete the installation of libtool libraries
57 > #         install            install libraries or executables
58 > #         link               create a library or an executable
59 > #         uninstall          remove libraries from an installed directory
60   #
61 < # MODE-ARGS vary depending on the MODE.
61 > # MODE-ARGS vary depending on the MODE.  When passed as first option,
62 > # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
63   # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
64   #
65   # When reporting a bug, please describe a test case to reproduce it and
66   # include the following information:
67   #
68 < #       host-triplet:   $host
69 < #       shell:          $SHELL
70 < #       compiler:               $LTCC
71 < #       compiler flags:         $LTCFLAGS
72 < #       linker:         $LD (gnu? $with_gnu_ld)
73 < #       $progname:              (GNU libtool) 2.2.6b
74 < #       automake:               $automake_version
75 < #       autoconf:               $autoconf_version
68 > #         host-triplet: $host
69 > #         shell:                $SHELL
70 > #         compiler:             $LTCC
71 > #         compiler flags:               $LTCFLAGS
72 > #         linker:               $LD (gnu? $with_gnu_ld)
73 > #         $progname:    (GNU libtool) 2.2.10
74 > #         automake:     $automake_version
75 > #         autoconf:     $autoconf_version
76   #
77   # Report bugs to <bug-libtool@gnu.org>.
78  
79 < PROGRAM=ltmain.sh
79 > PROGRAM=libtool
80   PACKAGE=libtool
81 < VERSION=2.2.6b
81 > VERSION=2.2.10
82   TIMESTAMP=""
83 < package_revision=1.3017
83 > package_revision=1.3175
84  
85   # Be Bourne compatible
86   if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
# Line 91 | Line 96 | fi
96   BIN_SH=xpg4; export BIN_SH # for Tru64
97   DUALCASE=1; export DUALCASE # for MKS sh
98  
99 + # A function that is used when there is no print builtin or printf.
100 + func_fallback_echo ()
101 + {
102 +  eval 'cat <<_LTECHO_EOF
103 + $1
104 + _LTECHO_EOF'
105 + }
106 +
107   # NLS nuisances: We save the old values to restore during execute mode.
95 # Only set LANG and LC_ALL to C if already set.
96 # These must not be set unconditionally because not all systems understand
97 # e.g. LANG=C (notably SCO).
108   lt_user_locale=
109   lt_safe_locale=
110   for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
# Line 107 | Line 117 | do
117            lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
118          fi"
119   done
120 + LC_ALL=C
121 + LANGUAGE=C
122 + export LANGUAGE LC_ALL
123  
124   $lt_unset CDPATH
125  
126  
127 + # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
128 + # is ksh but when the shell is invoked as "sh" and the current value of
129 + # the _XPG environment variable is not equal to 1 (one), the special
130 + # positional parameter $0, within a function call, is the name of the
131 + # function.
132 + progpath="$0"
133  
134  
135  
136   : ${CP="cp -f"}
137 < : ${ECHO="echo"}
138 < : ${EGREP="/bin/grep -E"}
139 < : ${FGREP="/bin/grep -F"}
140 < : ${GREP="/bin/grep"}
137 > test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
138 > : ${EGREP="grep -E"}
139 > : ${FGREP="grep -F"}
140 > : ${GREP="grep"}
141   : ${LN_S="ln -s"}
142   : ${MAKE="make"}
143   : ${MKDIR="mkdir"}
144   : ${MV="mv -f"}
145   : ${RM="rm -f"}
146 < : ${SED="/bin/sed"}
146 > : ${SED="sed"}
147   : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
148   : ${Xsed="$SED -e 1s/^X//"}
149  
# Line 159 | Line 178 | basename="s,^.*/,,"
178   func_dirname_and_basename ()
179   {
180    # Extract subdirectory from the argument.
181 <  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
181 >  func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
182    if test "X$func_dirname_result" = "X${1}"; then
183      func_dirname_result="${3}"
184    else
185      func_dirname_result="$func_dirname_result${2}"
186    fi
187 <  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
187 >  func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
188   }
189  
190   # Generated shell functions inserted here.
191  
192 < # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
193 < # is ksh but when the shell is invoked as "sh" and the current value of
194 < # the _XPG environment variable is not equal to 1 (one), the special
195 < # positional parameter $0, within a function call, is the name of the
196 < # function.
197 < progpath="$0"
192 > # These SED scripts presuppose an absolute path with a trailing slash.
193 > pathcar='s,^/\([^/]*\).*$,\1,'
194 > pathcdr='s,^/[^/]*,,'
195 > removedotparts=':dotsl
196 >                s@/\./@/@g
197 >                t dotsl
198 >                s,/\.$,/,'
199 > collapseslashes='s@/\{1,\}@/@g'
200 > finalslash='s,/*$,/,'
201 >
202 > # func_normal_abspath PATH
203 > # Remove doubled-up and trailing slashes, "." path components,
204 > # and cancel out any ".." path components in PATH after making
205 > # it an absolute path.
206 > #             value returned in "$func_normal_abspath_result"
207 > func_normal_abspath ()
208 > {
209 >  # Start from root dir and reassemble the path.
210 >  func_normal_abspath_result=
211 >  func_normal_abspath_tpath=$1
212 >  func_normal_abspath_altnamespace=
213 >  case $func_normal_abspath_tpath in
214 >    "")
215 >      # Empty path, that just means $cwd.
216 >      func_stripname '' '/' "`pwd`"
217 >      func_normal_abspath_result=$func_stripname_result
218 >      return
219 >    ;;
220 >    # The next three entries are used to spot a run of precisely
221 >    # two leading slashes without using negated character classes;
222 >    # we take advantage of case's first-match behaviour.
223 >    ///*)
224 >      # Unusual form of absolute path, do nothing.
225 >    ;;
226 >    //*)
227 >      # Not necessarily an ordinary path; POSIX reserves leading '//'
228 >      # and for example Cygwin uses it to access remote file shares
229 >      # over CIFS/SMB, so we conserve a leading double slash if found.
230 >      func_normal_abspath_altnamespace=/
231 >    ;;
232 >    /*)
233 >      # Absolute path, do nothing.
234 >    ;;
235 >    *)
236 >      # Relative path, prepend $cwd.
237 >      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
238 >    ;;
239 >  esac
240 >  # Cancel out all the simple stuff to save iterations.  We also want
241 >  # the path to end with a slash for ease of parsing, so make sure
242 >  # there is one (and only one) here.
243 >  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
244 >        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
245 >  while :; do
246 >    # Processed it all yet?
247 >    if test "$func_normal_abspath_tpath" = / ; then
248 >      # If we ascended to the root using ".." the result may be empty now.
249 >      if test -z "$func_normal_abspath_result" ; then
250 >        func_normal_abspath_result=/
251 >      fi
252 >      break
253 >    fi
254 >    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
255 >        -e "$pathcar"`
256 >    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
257 >        -e "$pathcdr"`
258 >    # Figure out what to do with it
259 >    case $func_normal_abspath_tcomponent in
260 >      "")
261 >        # Trailing empty path component, ignore it.
262 >      ;;
263 >      ..)
264 >        # Parent dir; strip last assembled component from result.
265 >        func_dirname "$func_normal_abspath_result"
266 >        func_normal_abspath_result=$func_dirname_result
267 >      ;;
268 >      *)
269 >        # Actual path component, append it.
270 >        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
271 >      ;;
272 >    esac
273 >  done
274 >  # Restore leading double-slash if one was found on entry.
275 >  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
276 > }
277 >
278 > # func_relative_path SRCDIR DSTDIR
279 > # generates a relative path from SRCDIR to DSTDIR, with a trailing
280 > # slash if non-empty, suitable for immediately appending a filename
281 > # without needing to append a separator.
282 > #             value returned in "$func_relative_path_result"
283 > func_relative_path ()
284 > {
285 >  func_relative_path_result=
286 >  func_normal_abspath "$1"
287 >  func_relative_path_tlibdir=$func_normal_abspath_result
288 >  func_normal_abspath "$2"
289 >  func_relative_path_tbindir=$func_normal_abspath_result
290 >
291 >  # Ascend the tree starting from libdir
292 >  while :; do
293 >    # check if we have found a prefix of bindir
294 >    case $func_relative_path_tbindir in
295 >      $func_relative_path_tlibdir)
296 >        # found an exact match
297 >        func_relative_path_tcancelled=
298 >        break
299 >        ;;
300 >      $func_relative_path_tlibdir*)
301 >        # found a matching prefix
302 >        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
303 >        func_relative_path_tcancelled=$func_stripname_result
304 >        if test -z "$func_relative_path_result"; then
305 >          func_relative_path_result=.
306 >        fi
307 >        break
308 >        ;;
309 >      *)
310 >        func_dirname $func_relative_path_tlibdir
311 >        func_relative_path_tlibdir=${func_dirname_result}
312 >        if test "x$func_relative_path_tlibdir" = x ; then
313 >          # Have to descend all the way to the root!
314 >          func_relative_path_result=../$func_relative_path_result
315 >          func_relative_path_tcancelled=$func_relative_path_tbindir
316 >          break
317 >        fi
318 >        func_relative_path_result=../$func_relative_path_result
319 >        ;;
320 >    esac
321 >  done
322 >
323 >  # Now calculate path; take care to avoid doubling-up slashes.
324 >  func_stripname '' '/' "$func_relative_path_result"
325 >  func_relative_path_result=$func_stripname_result
326 >  func_stripname '/' '/' "$func_relative_path_tcancelled"
327 >  if test "x$func_stripname_result" != x ; then
328 >    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
329 >  fi
330 >
331 >  # Normalisation. If bindir is libdir, return empty string,
332 >  # else relative path ending with a slash; either way, target
333 >  # file name can be directly appended.
334 >  if test ! -z "$func_relative_path_result"; then
335 >    func_stripname './' '' "$func_relative_path_result/"
336 >    func_relative_path_result=$func_stripname_result
337 >  fi
338 > }
339  
340   # The name of this program:
181 # In the unlikely event $progname began with a '-', it would play havoc with
182 # func_echo (imagine progname=-n), so we prepend ./ in that case:
341   func_dirname_and_basename "$progpath"
342   progname=$func_basename_result
185 case $progname in
186  -*) progname=./$progname ;;
187 esac
343  
344   # Make sure we have an absolute path for reexecution:
345   case $progpath in
# Line 258 | Line 413 | func_verbose ()
413      :
414   }
415  
416 + # func_echo_all arg...
417 + # Invoke $ECHO with all args, space-separated.
418 + func_echo_all ()
419 + {
420 +    $ECHO "$*"
421 + }
422 +
423   # func_error arg...
424   # Echo program name prefixed message to standard error.
425   func_error ()
# Line 326 | Line 488 | func_mkdir_p ()
488          case $my_directory_path in */*) ;; *) break ;; esac
489  
490          # ...otherwise throw away the child directory and loop
491 <        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
491 >        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
492        done
493 <      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
493 >      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
494  
495        save_mkdir_p_IFS="$IFS"; IFS=':'
496        for my_dir in $my_dir_list; do
# Line 378 | Line 540 | func_mktempdir ()
540          func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
541      fi
542  
543 <    $ECHO "X$my_tmpdir" | $Xsed
543 >    $ECHO "$my_tmpdir"
544   }
545  
546  
# Line 392 | Line 554 | func_quote_for_eval ()
554   {
555      case $1 in
556        *[\\\`\"\$]*)
557 <        func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
557 >        func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
558        *)
559          func_quote_for_eval_unquoted_result="$1" ;;
560      esac
# Line 419 | Line 581 | func_quote_for_expand ()
581   {
582      case $1 in
583        *[\\\`\"]*)
584 <        my_arg=`$ECHO "X$1" | $Xsed \
584 >        my_arg=`$ECHO "$1" | $SED \
585              -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
586        *)
587          my_arg="$1" ;;
# Line 489 | Line 651 | func_show_eval_locale ()
651   }
652  
653  
492
493
494
654   # func_version
655   # Echo version message to standard output and exit.
656   func_version ()
657   {
658 <    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
658 >    $SED -n '/(C)/!b go
659 >        :more
660 >        /\./!{
661 >          N
662 >          s/\n# / /
663 >          b more
664 >        }
665 >        :go
666 >        /^# '$PROGRAM' (GNU /,/# warranty; / {
667          s/^# //
668          s/^# *$//
669          s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
# Line 509 | Line 676 | func_version ()
676   # Echo short help message to standard output and exit.
677   func_usage ()
678   {
679 <    $SED -n '/^# Usage:/,/# -h/ {
679 >    $SED -n '/^# Usage:/,/^#  *.*--help/ {
680          s/^# //
681          s/^# *$//
682          s/\$progname/'$progname'/
683          p
684      }' < "$progpath"
685 <    $ECHO
685 >    echo
686      $ECHO "run \`$progname --help | more' for full usage"
687      exit $?
688   }
689  
690 < # func_help
691 < # Echo long help message to standard output and exit.
690 > # func_help [NOEXIT]
691 > # Echo long help message to standard output and exit,
692 > # unless 'noexit' is passed as argument.
693   func_help ()
694   {
695      $SED -n '/^# Usage:/,/# Report bugs to/ {
# Line 538 | Line 706 | func_help ()
706          s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
707          p
708       }' < "$progpath"
709 <    exit $?
709 >    ret=$?
710 >    if test -z "$1"; then
711 >      exit $ret
712 >    fi
713   }
714  
715   # func_missing_arg argname
# Line 546 | Line 717 | func_help ()
717   # exit_cmd.
718   func_missing_arg ()
719   {
720 <    func_error "missing argument for $1"
720 >    func_error "missing argument for $1."
721      exit_cmd=exit
722   }
723  
# Line 556 | Line 727 | exit_cmd=:
727  
728  
729  
559 # Check that we have a working $ECHO.
560 if test "X$1" = X--no-reexec; then
561  # Discard the --no-reexec flag, and continue.
562  shift
563 elif test "X$1" = X--fallback-echo; then
564  # Avoid inline document here, it may be left over
565  :
566 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
567  # Yippee, $ECHO works!
568  :
569 else
570  # Restart under the correct shell, and then maybe $ECHO will work.
571  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
572 fi
573
574 if test "X$1" = X--fallback-echo; then
575  # used as fallback echo
576  shift
577  cat <<EOF
578 $*
579 EOF
580  exit $EXIT_SUCCESS
581 fi
730  
731   magic="%%%MAGIC variable%%%"
732   magic_exe="%%%MAGIC EXE variable%%%"
# Line 636 | Line 784 | func_config ()
784   # Display the features supported by this script.
785   func_features ()
786   {
787 <    $ECHO "host: $host"
787 >    echo "host: $host"
788      if test "$build_libtool_libs" = yes; then
789 <      $ECHO "enable shared libraries"
789 >      echo "enable shared libraries"
790      else
791 <      $ECHO "disable shared libraries"
791 >      echo "disable shared libraries"
792      fi
793      if test "$build_old_libs" = yes; then
794 <      $ECHO "enable static libraries"
794 >      echo "enable static libraries"
795      else
796 <      $ECHO "disable static libraries"
796 >      echo "disable static libraries"
797      fi
798  
799      exit $?
# Line 772 | Line 920 | func_enable_tag ()
920  
921        --quiet|--silent) preserve_args="$preserve_args $opt"
922                          opt_silent=:
923 +                        opt_verbose=false
924 +                        ;;
925 +
926 +      --no-quiet|--no-silent)
927 +                        preserve_args="$preserve_args $opt"
928 +                        opt_silent=false
929                          ;;
930  
931        --verbose| -v)    preserve_args="$preserve_args $opt"
932                          opt_silent=false
933 +                        opt_verbose=:
934 +                        ;;
935 +
936 +      --no-verbose)     preserve_args="$preserve_args $opt"
937 +                        opt_verbose=false
938                          ;;
939  
940        --tag)            test "$#" -eq 0 && func_missing_arg "$opt" && break
# Line 793 | Line 952 | func_enable_tag ()
952  
953        -\?|-h)           func_usage                                      ;;
954        --help)           opt_help=:                                      ;;
955 +      --help-all)       opt_help=': help-all'                           ;;
956        --version)        func_version                                    ;;
957  
958        -*)               func_fatal_help "unrecognized option \`$opt'"   ;;
# Line 1016 | Line 1176 | func_infer_tag ()
1176          func_quote_for_eval "$arg"
1177          CC_quoted="$CC_quoted $func_quote_for_eval_result"
1178        done
1179 +      CC_expanded=`func_echo_all $CC`
1180 +      CC_quoted_expanded=`func_echo_all $CC_quoted`
1181        case $@ in
1182        # Blanks in the command may have been stripped by the calling shell,
1183        # but not from the CC environment variable when configure was run.
1184 <      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
1184 >      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1185 >      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1186        # Blanks at the start of $base_compile will cause this to fail
1187        # if we don't check for them as well.
1188        *)
# Line 1033 | Line 1196 | func_infer_tag ()
1196                func_quote_for_eval "$arg"
1197                CC_quoted="$CC_quoted $func_quote_for_eval_result"
1198              done
1199 +            CC_expanded=`func_echo_all $CC`
1200 +            CC_quoted_expanded=`func_echo_all $CC_quoted`
1201              case "$@ " in
1202 <              " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
1202 >            " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1203 >            " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1204                # The compiler in the base compile command matches
1205                # the one in the tagged configuration.
1206                # Assume this is the tagged configuration we want.
# Line 1213 | Line 1379 | func_mode_compile ()
1379      *.[cCFSifmso] | \
1380      *.ada | *.adb | *.ads | *.asm | \
1381      *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1382 <    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
1382 >    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
1383        func_xform "$libobj"
1384        libobj=$func_xform_result
1385        ;;
# Line 1288 | Line 1454 | func_mode_compile ()
1454      # Calculate the filename of the output object if compiler does
1455      # not support -o with -c
1456      if test "$compiler_c_o" = no; then
1457 <      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1457 >      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
1458        lockfile="$output_obj.lock"
1459      else
1460        output_obj=
# Line 1445 | Line 1611 | compiler."
1611   }
1612  
1613   $opt_help || {
1614 < test "$mode" = compile && func_mode_compile ${1+"$@"}
1614 >  test "$mode" = compile && func_mode_compile ${1+"$@"}
1615   }
1616  
1617   func_mode_help ()
# Line 1482 | Line 1648 | This mode accepts the following addition
1648  
1649    -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
1650    -no-suppress      do not suppress compiler output for multiple passes
1651 <  -prefer-pic       try to building PIC objects only
1652 <  -prefer-non-pic   try to building non-PIC objects only
1651 >  -prefer-pic       try to build PIC objects only
1652 >  -prefer-non-pic   try to build non-PIC objects only
1653    -shared           do not build a \`.o' file suitable for static linking
1654    -static           only build a \`.o' file suitable for static linking
1655 +  -Wc,FLAG          pass FLAG directly to the compiler
1656  
1657   COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1658   from the given SOURCEFILE.
# Line 1538 | Line 1705 | either the \`install' or \`cp' program.
1705  
1706   The following components of INSTALL-COMMAND are treated specially:
1707  
1708 <  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
1708 >  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
1709  
1710   The rest of the components are interpreted as arguments to that command (only
1711   BSD-compatible install options are recognized)."
# Line 1558 | Line 1725 | The following components of LINK-COMMAND
1725  
1726    -all-static       do not do any dynamic linking at all
1727    -avoid-version    do not add a version suffix if possible
1728 +  -bindir BINDIR    specify path to binaries directory (for systems where
1729 +                    libraries must be found in the PATH setting at runtime)
1730    -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
1731    -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
1732    -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
# Line 1586 | Line 1755 | The following components of LINK-COMMAND
1755    -version-info CURRENT[:REVISION[:AGE]]
1756                      specify library version info [each variable defaults to 0]
1757    -weak LIBNAME     declare that the target provides the LIBNAME interface
1758 +  -Wc,FLAG
1759 +  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
1760 +  -Wl,FLAG
1761 +  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
1762 +  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
1763  
1764   All other options (arguments beginning with \`-') are ignored.
1765  
# Line 1623 | Line 1797 | Otherwise, only FILE itself is deleted u
1797          ;;
1798      esac
1799  
1800 <    $ECHO
1800 >    echo
1801      $ECHO "Try \`$progname --help' for more information about other modes."
1628
1629    exit $?
1802   }
1803  
1804 <  # Now that we've collected a possible --mode arg, show help if necessary
1805 <  $opt_help && func_mode_help
1804 > # Now that we've collected a possible --mode arg, show help if necessary
1805 > if $opt_help; then
1806 >  if test "$opt_help" = :; then
1807 >    func_mode_help
1808 >  else
1809 >    {
1810 >      func_help noexit
1811 >      for mode in compile link execute install finish uninstall clean; do
1812 >        func_mode_help
1813 >      done
1814 >    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
1815 >    {
1816 >      func_help noexit
1817 >      for mode in compile link execute install finish uninstall clean; do
1818 >        echo
1819 >        func_mode_help
1820 >      done
1821 >    } |
1822 >    sed '1d
1823 >      /^When reporting/,/^Report/{
1824 >        H
1825 >        d
1826 >      }
1827 >      $x
1828 >      /information about other modes/d
1829 >      /more detailed .*MODE/d
1830 >      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
1831 >  fi
1832 >  exit $?
1833 > fi
1834  
1835  
1836   # func_mode_execute arg...
# Line 1712 | Line 1912 | func_mode_execute ()
1912      for file
1913      do
1914        case $file in
1915 <      -*) ;;
1915 >      -* | *.la | *.lo ) ;;
1916        *)
1917          # Do a test to see if this is really a libtool program.
1918          if func_ltwrapper_script_p "$file"; then
# Line 1754 | Line 1954 | func_mode_execute ()
1954        # Display what would be done.
1955        if test -n "$shlibpath_var"; then
1956          eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1957 <        $ECHO "export $shlibpath_var"
1957 >        echo "export $shlibpath_var"
1958        fi
1959        $ECHO "$cmd$args"
1960        exit $EXIT_SUCCESS
# Line 1795 | Line 1995 | func_mode_finish ()
1995      # Exit here if they wanted silent mode.
1996      $opt_silent && exit $EXIT_SUCCESS
1997  
1998 <    $ECHO "X----------------------------------------------------------------------" | $Xsed
1999 <    $ECHO "Libraries have been installed in:"
1998 >    echo "----------------------------------------------------------------------"
1999 >    echo "Libraries have been installed in:"
2000      for libdir in $libdirs; do
2001        $ECHO "   $libdir"
2002      done
2003 <    $ECHO
2004 <    $ECHO "If you ever happen to want to link against installed libraries"
2005 <    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
2006 <    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
2007 <    $ECHO "flag during linking and do at least one of the following:"
2003 >    echo
2004 >    echo "If you ever happen to want to link against installed libraries"
2005 >    echo "in a given directory, LIBDIR, you must either use libtool, and"
2006 >    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2007 >    echo "flag during linking and do at least one of the following:"
2008      if test -n "$shlibpath_var"; then
2009 <      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
2010 <      $ECHO "     during execution"
2009 >      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
2010 >      echo "     during execution"
2011      fi
2012      if test -n "$runpath_var"; then
2013 <      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
2014 <      $ECHO "     during linking"
2013 >      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
2014 >      echo "     during linking"
2015      fi
2016      if test -n "$hardcode_libdir_flag_spec"; then
2017        libdir=LIBDIR
# Line 1823 | Line 2023 | func_mode_finish ()
2023        $ECHO "   - have your system administrator run these commands:$admincmds"
2024      fi
2025      if test -f /etc/ld.so.conf; then
2026 <      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2026 >      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2027      fi
2028 <    $ECHO
2028 >    echo
2029  
2030 <    $ECHO "See any operating system documentation about shared libraries for"
2030 >    echo "See any operating system documentation about shared libraries for"
2031      case $host in
2032        solaris2.[6789]|solaris2.1[0-9])
2033 <        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2034 <        $ECHO "pages."
2033 >        echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2034 >        echo "pages."
2035          ;;
2036        *)
2037 <        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
2037 >        echo "more information, such as the ld(1) and ld.so(8) manual pages."
2038          ;;
2039      esac
2040 <    $ECHO "X----------------------------------------------------------------------" | $Xsed
2040 >    echo "----------------------------------------------------------------------"
2041      exit $EXIT_SUCCESS
2042   }
2043  
# Line 1852 | Line 2052 | func_mode_install ()
2052      # install_prog (especially on Windows NT).
2053      if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
2054         # Allow the use of GNU shtool's install command.
2055 <       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
2055 >       case $nonopt in *shtool*) :;; *) false;; esac; then
2056        # Aesthetically quote it.
2057        func_quote_for_eval "$nonopt"
2058        install_prog="$func_quote_for_eval_result "
# Line 1867 | Line 2067 | func_mode_install ()
2067      # Aesthetically quote it.
2068      func_quote_for_eval "$arg"
2069      install_prog="$install_prog$func_quote_for_eval_result"
2070 +    install_shared_prog=$install_prog
2071 +    case " $install_prog " in
2072 +      *[\\\ /]cp\ *) install_cp=: ;;
2073 +      *) install_cp=false ;;
2074 +    esac
2075  
2076      # We need to accept at least all the BSD install flags.
2077      dest=
# Line 1876 | Line 2081 | func_mode_install ()
2081      install_type=
2082      isdir=no
2083      stripme=
2084 +    no_mode=:
2085      for arg
2086      do
2087 +      arg2=
2088        if test -n "$dest"; then
2089          files="$files $dest"
2090          dest=$arg
# Line 1887 | Line 2094 | func_mode_install ()
2094        case $arg in
2095        -d) isdir=yes ;;
2096        -f)
2097 <        case " $install_prog " in
2098 <        *[\\\ /]cp\ *) ;;
2099 <        *) prev=$arg ;;
1893 <        esac
2097 >        if $install_cp; then :; else
2098 >          prev=$arg
2099 >        fi
2100          ;;
2101        -g | -m | -o)
2102          prev=$arg
# Line 1904 | Line 2110 | func_mode_install ()
2110        *)
2111          # If the previous option needed an argument, then skip it.
2112          if test -n "$prev"; then
2113 +          if test "x$prev" = x-m && test -n "$install_override_mode"; then
2114 +            arg2=$install_override_mode
2115 +            no_mode=false
2116 +          fi
2117            prev=
2118          else
2119            dest=$arg
# Line 1915 | Line 2125 | func_mode_install ()
2125        # Aesthetically quote the argument.
2126        func_quote_for_eval "$arg"
2127        install_prog="$install_prog $func_quote_for_eval_result"
2128 +      if test -n "$arg2"; then
2129 +        func_quote_for_eval "$arg2"
2130 +      fi
2131 +      install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
2132      done
2133  
2134      test -z "$install_prog" && \
# Line 1923 | Line 2137 | func_mode_install ()
2137      test -n "$prev" && \
2138        func_fatal_help "the \`$prev' option requires an argument"
2139  
2140 +    if test -n "$install_override_mode" && $no_mode; then
2141 +      if $install_cp; then :; else
2142 +        func_quote_for_eval "$install_override_mode"
2143 +        install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
2144 +      fi
2145 +    fi
2146 +
2147      if test -z "$files"; then
2148        if test -z "$dest"; then
2149          func_fatal_help "no file or destination specified"
# Line 2010 | Line 2231 | func_mode_install ()
2231  
2232          if test -n "$relink_command"; then
2233            # Determine the prefix the user has applied to our future dir.
2234 <          inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
2234 >          inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2235  
2236            # Don't allow the user to place us outside of our expected
2237            # location b/c this prevents finding dependent libraries that
# Line 2023 | Line 2244 | func_mode_install ()
2244  
2245            if test -n "$inst_prefix_dir"; then
2246              # Stick the inst_prefix_dir data into the link command.
2247 <            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2247 >            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2248            else
2249 <            relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
2249 >            relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2250            fi
2251  
2252            func_warning "relinking \`$file'"
# Line 2043 | Line 2264 | func_mode_install ()
2264            test -n "$relink_command" && srcname="$realname"T
2265  
2266            # Install the shared library and build the symlinks.
2267 <          func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
2267 >          func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2268                'exit $?'
2269            tstripme="$stripme"
2270            case $host_os in
# Line 2183 | Line 2404 | func_mode_install ()
2404              if test -f "$lib"; then
2405                func_source "$lib"
2406              fi
2407 <            libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
2407 >            libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2408              if test -n "$libdir" && test ! -f "$libfile"; then
2409                func_warning "\`$lib' has not been installed in \`$libdir'"
2410                finalize=no
# Line 2202 | Line 2423 | func_mode_install ()
2423                  file="$func_basename_result"
2424                  outputname="$tmpdir/$file"
2425                  # Replace the output file specification.
2426 <                relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
2426 >                relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2427  
2428                  $opt_silent || {
2429                    func_quote_for_expand "$relink_command"
# Line 2221 | Line 2442 | func_mode_install ()
2442              }
2443            else
2444              # Install the binary that we compiled earlier.
2445 <            file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2445 >            file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2446            fi
2447          fi
2448  
# Line 2323 | Line 2544 | func_generate_dlsyms ()
2544   extern \"C\" {
2545   #endif
2546  
2547 + #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
2548 + #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
2549 + #endif
2550 +
2551   /* External symbol declarations for the compiler. */\
2552   "
2553  
# Line 2332 | Line 2557 | extern \"C\" {
2557            $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
2558  
2559            # Add our own program objects to the symbol list.
2560 <          progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
2560 >          progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2561            for progfile in $progfiles; do
2562              func_verbose "extracting global C symbols from \`$progfile'"
2563              $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
# Line 2371 | Line 2596 | extern \"C\" {
2596                eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
2597                eval '$MV "$nlist"T "$nlist"'
2598                case $host in
2599 <                *cygwin | *mingw* | *cegcc* )
2599 >                *cygwin* | *mingw* | *cegcc* )
2600                    eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
2601                    eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
2602                    ;;
# Line 2415 | Line 2640 | extern \"C\" {
2640            if test -f "$nlist"S; then
2641              eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2642            else
2643 <            $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
2643 >            echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2644            fi
2645  
2646 <          $ECHO >> "$output_objdir/$my_dlsyms" "\
2646 >          echo >> "$output_objdir/$my_dlsyms" "\
2647  
2648   /* The mapping between symbol names and symbols.  */
2649   typedef struct {
# Line 2428 | Line 2653 | typedef struct {
2653   "
2654            case $host in
2655            *cygwin* | *mingw* | *cegcc* )
2656 <            $ECHO >> "$output_objdir/$my_dlsyms" "\
2656 >            echo >> "$output_objdir/$my_dlsyms" "\
2657   /* DATA imports from DLLs on WIN32 con't be const, because
2658     runtime relocations are performed -- see ld's documentation
2659     on pseudo-relocs.  */"
# Line 2441 | Line 2666 | typedef struct {
2666              lt_dlsym_const=const ;;
2667            esac
2668  
2669 <          $ECHO >> "$output_objdir/$my_dlsyms" "\
2669 >          echo >> "$output_objdir/$my_dlsyms" "\
2670   extern $lt_dlsym_const lt_dlsymlist
2671   lt_${my_prefix}_LTX_preloaded_symbols[];
2672   $lt_dlsym_const lt_dlsymlist
# Line 2457 | Line 2682 | lt_${my_prefix}_LTX_preloaded_symbols[]
2682              eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
2683              ;;
2684            esac
2685 <          $ECHO >> "$output_objdir/$my_dlsyms" "\
2685 >          echo >> "$output_objdir/$my_dlsyms" "\
2686    {0, (void *) 0}
2687   };
2688  
# Line 2515 | Line 2740 | static const void *lt_preloaded_setup()
2740          case $host in
2741          *cygwin* | *mingw* | *cegcc* )
2742            if test -f "$output_objdir/$my_outputname.def"; then
2743 <            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2744 <            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2743 >            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2744 >            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2745            else
2746 <            compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2747 <            finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2746 >            compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2747 >            finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2748            fi
2749            ;;
2750          *)
2751 <          compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2752 <          finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2751 >          compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2752 >          finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2753            ;;
2754          esac
2755          ;;
# Line 2538 | Line 2763 | static const void *lt_preloaded_setup()
2763        # really was required.
2764  
2765        # Nullify the symbol file.
2766 <      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2767 <      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
2766 >      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
2767 >      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2768      fi
2769   }
2770  
# Line 2549 | Line 2774 | static const void *lt_preloaded_setup()
2774   # Need a lot of goo to handle *both* DLLs and import libs
2775   # Has to be a shell function in order to 'eat' the argument
2776   # that is supplied when $file_magic_command is called.
2777 + # Despite the name, also deal with 64 bit binaries.
2778   func_win32_libid ()
2779   {
2780    $opt_debug
# Line 2559 | Line 2785 | func_win32_libid ()
2785      win32_libid_type="x86 archive import"
2786      ;;
2787    *ar\ archive*) # could be an import, or static
2788 +    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
2789      if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2790 <       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2790 >       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
2791        win32_nmres=`eval $NM -f posix -A $1 |
2792          $SED -n -e '
2793              1,100{
# Line 2598 | Line 2825 | func_extract_an_archive ()
2825      $opt_debug
2826      f_ex_an_ar_dir="$1"; shift
2827      f_ex_an_ar_oldlib="$1"
2828 <    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
2828 >    if test "$lock_old_archive_extraction" = yes; then
2829 >      lockfile=$f_ex_an_ar_oldlib.lock
2830 >      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
2831 >        func_echo "Waiting for $lockfile to be removed"
2832 >        sleep 2
2833 >      done
2834 >    fi
2835 >    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
2836 >                   'stat=$?; rm -f "$lockfile"; exit $stat'
2837 >    if test "$lock_old_archive_extraction" = yes; then
2838 >      $opt_dry_run || rm -f "$lockfile"
2839 >    fi
2840      if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
2841       :
2842      else
# Line 2669 | Line 2907 | func_extract_archives ()
2907              darwin_file=
2908              darwin_files=
2909              for darwin_file in $darwin_filelist; do
2910 <              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
2910 >              darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2911                $LIPO -create -output "$darwin_file" $darwin_files
2912              done # $darwin_filelist
2913              $RM -rf unfat-$$
# Line 2684 | Line 2922 | func_extract_archives ()
2922          func_extract_an_archive "$my_xdir" "$my_xabs"
2923          ;;
2924        esac
2925 <      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
2925 >      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2926      done
2927  
2928      func_extract_archives_result="$my_oldobjs"
2929   }
2930  
2931  
2932 <
2695 < # func_emit_wrapper_part1 [arg=no]
2932 > # func_emit_wrapper [arg=no]
2933   #
2934 < # Emit the first part of a libtool wrapper script on stdout.
2935 < # For more information, see the description associated with
2936 < # func_emit_wrapper(), below.
2937 < func_emit_wrapper_part1 ()
2938 < {
2939 <        func_emit_wrapper_part1_arg1=no
2940 <        if test -n "$1" ; then
2941 <          func_emit_wrapper_part1_arg1=$1
2942 <        fi
2934 > # Emit a libtool wrapper script on stdout.
2935 > # Don't directly open a file because we may want to
2936 > # incorporate the script contents within a cygwin/mingw
2937 > # wrapper executable.  Must ONLY be called from within
2938 > # func_mode_link because it depends on a number of variables
2939 > # set therein.
2940 > #
2941 > # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2942 > # variable will take.  If 'yes', then the emitted script
2943 > # will assume that the directory in which it is stored is
2944 > # the $objdir directory.  This is a cygwin/mingw-specific
2945 > # behavior.
2946 > func_emit_wrapper ()
2947 > {
2948 >        func_emit_wrapper_arg1=${1-no}
2949  
2950          $ECHO "\
2951   #! $SHELL
# Line 2718 | Line 2961 | func_emit_wrapper_part1 ()
2961  
2962   # Sed substitution that helps us do robust quoting.  It backslashifies
2963   # metacharacters that are still active within double-quoted strings.
2721 Xsed='${SED} -e 1s/^X//'
2964   sed_quote_subst='$sed_quote_subst'
2965  
2966   # Be Bourne compatible
# Line 2749 | Line 2991 | if test \"\$libtool_install_magic\" = \"
2991   else
2992    # When we are sourced in execute mode, \$file and \$ECHO are already set.
2993    if test \"\$libtool_execute_magic\" != \"$magic\"; then
2994 <    ECHO=\"$qecho\"
2995 <    file=\"\$0\"
2996 <    # Make sure echo works.
2997 <    if test \"X\$1\" = X--no-reexec; then
2998 <      # Discard the --no-reexec flag, and continue.
2999 <      shift
3000 <    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
3001 <      # Yippee, \$ECHO works!
3002 <      :
3003 <    else
3004 <      # Restart under the correct shell, and then maybe \$ECHO will work.
3005 <      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
3006 <    fi
3007 <  fi\
2994 >    file=\"\$0\""
2995 >
2996 >    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
2997 >    $ECHO "\
2998 >
2999 > # A function that is used when there is no print builtin or printf.
3000 > func_fallback_echo ()
3001 > {
3002 >  eval 'cat <<_LTECHO_EOF
3003 > \$1
3004 > _LTECHO_EOF'
3005 > }
3006 >    ECHO=\"$qECHO\"
3007 >  fi
3008 >
3009 > # Very basic option parsing. These options are (a) specific to
3010 > # the libtool wrapper, (b) are identical between the wrapper
3011 > # /script/ and the wrapper /executable/ which is used only on
3012 > # windows platforms, and (c) all begin with the string "--lt-"
3013 > # (application programs are unlikely to have options which match
3014 > # this pattern).
3015 > #
3016 > # There are only two supported options: --lt-debug and
3017 > # --lt-dump-script. There is, deliberately, no --lt-help.
3018 > #
3019 > # The first argument to this parsing function should be the
3020 > # script's $0 value, followed by "$@".
3021 > lt_option_debug=
3022 > func_parse_lt_options ()
3023 > {
3024 >  lt_script_arg0=\$0
3025 >  shift
3026 >  for lt_opt
3027 >  do
3028 >    case \"\$lt_opt\" in
3029 >    --lt-debug) lt_option_debug=1 ;;
3030 >    --lt-dump-script)
3031 >        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3032 >        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3033 >        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3034 >        cat \"\$lt_dump_D/\$lt_dump_F\"
3035 >        exit 0
3036 >      ;;
3037 >    --lt-*)
3038 >        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3039 >        exit 1
3040 >      ;;
3041 >    esac
3042 >  done
3043 >
3044 >  # Print the debug banner immediately:
3045 >  if test -n \"\$lt_option_debug\"; then
3046 >    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3047 >  fi
3048 > }
3049 >
3050 > # Used when --lt-debug. Prints its arguments to stdout
3051 > # (redirection is the responsibility of the caller)
3052 > func_lt_dump_args ()
3053 > {
3054 >  lt_dump_args_N=1;
3055 >  for lt_arg
3056 >  do
3057 >    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3058 >    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3059 >  done
3060 > }
3061 >
3062 > # Core function for launching the target application
3063 > func_exec_program_core ()
3064 > {
3065   "
3066 <        $ECHO "\
3066 >  case $host in
3067 >  # Backslashes separate directories on plain windows
3068 >  *-*-mingw | *-*-os2* | *-cegcc*)
3069 >    $ECHO "\
3070 >      if test -n \"\$lt_option_debug\"; then
3071 >        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3072 >        func_lt_dump_args \${1+\"\$@\"} 1>&2
3073 >      fi
3074 >      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3075 > "
3076 >    ;;
3077 >
3078 >  *)
3079 >    $ECHO "\
3080 >      if test -n \"\$lt_option_debug\"; then
3081 >        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3082 >        func_lt_dump_args \${1+\"\$@\"} 1>&2
3083 >      fi
3084 >      exec \"\$progdir/\$program\" \${1+\"\$@\"}
3085 > "
3086 >    ;;
3087 >  esac
3088 >  $ECHO "\
3089 >      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3090 >      exit 1
3091 > }
3092 >
3093 > # A function to encapsulate launching the target application
3094 > # Strips options in the --lt-* namespace from \$@ and
3095 > # launches target application with the remaining arguments.
3096 > func_exec_program ()
3097 > {
3098 >  for lt_wr_arg
3099 >  do
3100 >    case \$lt_wr_arg in
3101 >    --lt-*) ;;
3102 >    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3103 >    esac
3104 >    shift
3105 >  done
3106 >  func_exec_program_core \${1+\"\$@\"}
3107 > }
3108 >
3109 >  # Parse options
3110 >  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
3111  
3112    # Find the directory that this script lives in.
3113 <  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
3113 >  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
3114    test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3115  
3116    # Follow symbolic links until we get to the real thisdir.
3117 <  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
3117 >  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
3118    while test -n \"\$file\"; do
3119 <    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
3119 >    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
3120  
3121      # If there was a directory component, then change thisdir.
3122      if test \"x\$destdir\" != \"x\$file\"; then
# Line 2783 | Line 3126 | else
3126        esac
3127      fi
3128  
3129 <    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
3130 <    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
3129 >    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
3130 >    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
3131    done
2789 "
2790 }
2791 # end: func_emit_wrapper_part1
2792
2793 # func_emit_wrapper_part2 [arg=no]
2794 #
2795 # Emit the second part of a libtool wrapper script on stdout.
2796 # For more information, see the description associated with
2797 # func_emit_wrapper(), below.
2798 func_emit_wrapper_part2 ()
2799 {
2800        func_emit_wrapper_part2_arg1=no
2801        if test -n "$1" ; then
2802          func_emit_wrapper_part2_arg1=$1
2803        fi
2804
2805        $ECHO "\
3132  
3133    # Usually 'no', except on cygwin/mingw when embedded into
3134    # the cwrapper.
3135 <  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
3135 >  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
3136    if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
3137      # special case for '.'
3138      if test \"\$thisdir\" = \".\"; then
# Line 2814 | Line 3140 | func_emit_wrapper_part2 ()
3140      fi
3141      # remove .libs from thisdir
3142      case \"\$thisdir\" in
3143 <    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
3143 >    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
3144      $objdir )   thisdir=. ;;
3145      esac
3146    fi
# Line 2877 | Line 3203 | func_emit_wrapper_part2 ()
3203  
3204      # Some systems cannot cope with colon-terminated $shlibpath_var
3205      # The second colon is a workaround for a bug in BeOS R4 sed
3206 <    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
3206 >    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
3207  
3208      export $shlibpath_var
3209   "
# Line 2894 | Line 3220 | func_emit_wrapper_part2 ()
3220          $ECHO "\
3221      if test \"\$libtool_execute_magic\" != \"$magic\"; then
3222        # Run the actual program with our arguments.
3223 < "
2898 <        case $host in
2899 <        # Backslashes separate directories on plain windows
2900 <        *-*-mingw | *-*-os2* | *-cegcc*)
2901 <          $ECHO "\
2902 <      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2903 < "
2904 <          ;;
2905 <
2906 <        *)
2907 <          $ECHO "\
2908 <      exec \"\$progdir/\$program\" \${1+\"\$@\"}
2909 < "
2910 <          ;;
2911 <        esac
2912 <        $ECHO "\
2913 <      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2914 <      exit 1
3223 >      func_exec_program \${1+\"\$@\"}
3224      fi
3225    else
3226      # The program doesn't exist.
3227      \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
3228      \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
3229 <    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
3229 >    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
3230      exit 1
3231    fi
3232   fi\
3233   "
3234   }
2926 # end: func_emit_wrapper_part2
2927
2928
2929 # func_emit_wrapper [arg=no]
2930 #
2931 # Emit a libtool wrapper script on stdout.
2932 # Don't directly open a file because we may want to
2933 # incorporate the script contents within a cygwin/mingw
2934 # wrapper executable.  Must ONLY be called from within
2935 # func_mode_link because it depends on a number of variables
2936 # set therein.
2937 #
2938 # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
2939 # variable will take.  If 'yes', then the emitted script
2940 # will assume that the directory in which it is stored is
2941 # the $objdir directory.  This is a cygwin/mingw-specific
2942 # behavior.
2943 func_emit_wrapper ()
2944 {
2945        func_emit_wrapper_arg1=no
2946        if test -n "$1" ; then
2947          func_emit_wrapper_arg1=$1
2948        fi
2949
2950        # split this up so that func_emit_cwrapperexe_src
2951        # can call each part independently.
2952        func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2953        func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
2954 }
3235  
3236  
3237   # func_to_host_path arg
# Line 2978 | Line 3258 | func_emit_wrapper ()
3258   func_to_host_path ()
3259   {
3260    func_to_host_path_result="$1"
3261 <  if test -n "$1" ; then
3261 >  if test -n "$1"; then
3262      case $host in
3263        *mingw* )
3264          lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3265          case $build in
3266            *mingw* ) # actually, msys
3267              # awkward: cmd appends spaces to result
3268 <            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3269 <            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2990 <              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2991 <            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2992 <              $SED -e "$lt_sed_naive_backslashify"`
3268 >            func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
3269 >              $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3270              ;;
3271            *cygwin* )
3272 <            func_to_host_path_tmp1=`cygpath -w "$1"`
3273 <            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2997 <              $SED -e "$lt_sed_naive_backslashify"`
3272 >            func_to_host_path_result=`cygpath -w "$1" |
3273 >              $SED -e "$lt_sed_naive_backslashify"`
3274              ;;
3275            * )
3276              # Unfortunately, winepath does not exit with a non-zero
# Line 3006 | Line 3282 | func_to_host_path ()
3282              # the odd construction:
3283              func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3284              if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3285 <              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3285 >              func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
3286                  $SED -e "$lt_sed_naive_backslashify"`
3287              else
3288                # Allow warning below.
3289 <              func_to_host_path_result=""
3289 >              func_to_host_path_result=
3290              fi
3291              ;;
3292          esac
3293          if test -z "$func_to_host_path_result" ; then
3294            func_error "Could not determine host path corresponding to"
3295 <          func_error "  '$1'"
3295 >          func_error "  \`$1'"
3296            func_error "Continuing, but uninstalled executables may not work."
3297            # Fallback:
3298            func_to_host_path_result="$1"
# Line 3049 | Line 3325 | func_to_host_path ()
3325   func_to_host_pathlist ()
3326   {
3327    func_to_host_pathlist_result="$1"
3328 <  if test -n "$1" ; then
3328 >  if test -n "$1"; then
3329      case $host in
3330        *mingw* )
3331          lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3332          # Remove leading and trailing path separator characters from
3333          # ARG. msys behavior is inconsistent here, cygpath turns them
3334          # into '.;' and ';.', and winepath ignores them completely.
3335 <        func_to_host_pathlist_tmp2="$1"
3336 <        # Once set for this call, this variable should not be
3061 <        # reassigned. It is used in tha fallback case.
3062 <        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3063 <          $SED -e 's|^:*||' -e 's|:*$||'`
3335 >        func_stripname : : "$1"
3336 >        func_to_host_pathlist_tmp1=$func_stripname_result
3337          case $build in
3338            *mingw* ) # Actually, msys.
3339              # Awkward: cmd appends spaces to result.
3340 <            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3341 <            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3342 <              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3070 <            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3071 <              $SED -e "$lt_sed_naive_backslashify"`
3340 >            func_to_host_pathlist_result=`
3341 >              ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
3342 >              $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3343              ;;
3344            *cygwin* )
3345 <            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3075 <            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3345 >            func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
3346                $SED -e "$lt_sed_naive_backslashify"`
3347              ;;
3348            * )
# Line 3088 | Line 3358 | func_to_host_pathlist ()
3358                    if test -z "$func_to_host_pathlist_result" ; then
3359                      func_to_host_pathlist_result="$func_to_host_path_result"
3360                    else
3361 <                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3361 >                    func_append func_to_host_pathlist_result ";$func_to_host_path_result"
3362                    fi
3363                  fi
3364                fi
3095              IFS=:
3365              done
3366              IFS=$func_to_host_pathlist_oldIFS
3367              ;;
3368          esac
3369 <        if test -z "$func_to_host_pathlist_result" ; then
3369 >        if test -z "$func_to_host_pathlist_result"; then
3370            func_error "Could not determine the host path(s) corresponding to"
3371 <          func_error "  '$1'"
3371 >          func_error "  \`$1'"
3372            func_error "Continuing, but uninstalled executables may not work."
3373            # Fallback. This may break if $1 contains DOS-style drive
3374            # specifications. The fix is not to complicate the expression
# Line 3116 | Line 3385 | func_to_host_pathlist ()
3385              ;;
3386          esac
3387          case "$1" in
3388 <          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
3388 >          *: ) func_append func_to_host_pathlist_result ";"
3389              ;;
3390          esac
3391          ;;
# Line 3141 | Line 3410 | func_emit_cwrapperexe_src ()
3410  
3411     This wrapper executable should never be moved out of the build directory.
3412     If it is, it will not operate correctly.
3144
3145   Currently, it simply execs the wrapper *script* "$SHELL $output",
3146   but could eventually absorb all of the scripts functionality and
3147   exec $objdir/$outputname directly.
3413   */
3414   EOF
3415              cat <<"EOF"
3416 + #ifdef _MSC_VER
3417 + # define _CRT_SECURE_NO_DEPRECATE 1
3418 + #endif
3419   #include <stdio.h>
3420   #include <stdlib.h>
3421   #ifdef _MSC_VER
3422   # include <direct.h>
3423   # include <process.h>
3424   # include <io.h>
3157 # define setmode _setmode
3425   #else
3426   # include <unistd.h>
3427   # include <stdint.h>
3428   # ifdef __CYGWIN__
3429   #  include <io.h>
3163 #  define HAVE_SETENV
3164 #  ifdef __STRICT_ANSI__
3165 char *realpath (const char *, char *);
3166 int putenv (char *);
3167 int setenv (const char *, const char *, int);
3168 #  endif
3430   # endif
3431   #endif
3432   #include <malloc.h>
# Line 3177 | Line 3438 | int setenv (const char *, const char *,
3438   #include <fcntl.h>
3439   #include <sys/stat.h>
3440  
3441 + /* declarations of non-ANSI functions */
3442 + #if defined(__MINGW32__)
3443 + # ifdef __STRICT_ANSI__
3444 + int _putenv (const char *);
3445 + # endif
3446 + #elif defined(__CYGWIN__)
3447 + # ifdef __STRICT_ANSI__
3448 + char *realpath (const char *, char *);
3449 + int putenv (char *);
3450 + int setenv (const char *, const char *, int);
3451 + # endif
3452 + /* #elif defined (other platforms) ... */
3453 + #endif
3454 +
3455 + /* portability defines, excluding path handling macros */
3456 + #if defined(_MSC_VER)
3457 + # define setmode _setmode
3458 + # define stat    _stat
3459 + # define chmod   _chmod
3460 + # define getcwd  _getcwd
3461 + # define putenv  _putenv
3462 + # define S_IXUSR _S_IEXEC
3463 + # ifndef _INTPTR_T_DEFINED
3464 + #  define _INTPTR_T_DEFINED
3465 + #  define intptr_t int
3466 + # endif
3467 + #elif defined(__MINGW32__)
3468 + # define setmode _setmode
3469 + # define stat    _stat
3470 + # define chmod   _chmod
3471 + # define getcwd  _getcwd
3472 + # define putenv  _putenv
3473 + #elif defined(__CYGWIN__)
3474 + # define HAVE_SETENV
3475 + # define FOPEN_WB "wb"
3476 + /* #elif defined (other platforms) ... */
3477 + #endif
3478 +
3479   #if defined(PATH_MAX)
3480   # define LT_PATHMAX PATH_MAX
3481   #elif defined(MAXPATHLEN)
# Line 3192 | Line 3491 | int setenv (const char *, const char *,
3491   # define S_IXGRP 0
3492   #endif
3493  
3494 < #ifdef _MSC_VER
3196 < # define S_IXUSR _S_IEXEC
3197 < # define stat _stat
3198 < # ifndef _INTPTR_T_DEFINED
3199 < #  define intptr_t int
3200 < # endif
3201 < #endif
3202 <
3494 > /* path handling portability macros */
3495   #ifndef DIR_SEPARATOR
3496   # define DIR_SEPARATOR '/'
3497   # define PATH_SEPARATOR ':'
# Line 3230 | Line 3522 | int setenv (const char *, const char *,
3522   # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
3523   #endif /* PATH_SEPARATOR_2 */
3524  
3233 #ifdef __CYGWIN__
3234 # define FOPEN_WB "wb"
3235 #endif
3236
3525   #ifndef FOPEN_WB
3526   # define FOPEN_WB "w"
3527   #endif
# Line 3246 | Line 3534 | int setenv (const char *, const char *,
3534    if (stale) { free ((void *) stale); stale = 0; } \
3535   } while (0)
3536  
3537 < #undef LTWRAPPER_DEBUGPRINTF
3538 < #if defined DEBUGWRAPPER
3251 < # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3252 < static void
3253 < ltwrapper_debugprintf (const char *fmt, ...)
3254 < {
3255 <    va_list args;
3256 <    va_start (args, fmt);
3257 <    (void) vfprintf (stderr, fmt, args);
3258 <    va_end (args);
3259 < }
3537 > #if defined(LT_DEBUGWRAPPER)
3538 > static int lt_debug = 1;
3539   #else
3540 < # define LTWRAPPER_DEBUGPRINTF(args)
3540 > static int lt_debug = 0;
3541   #endif
3542  
3543 < const char *program_name = NULL;
3543 > const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3544  
3545   void *xmalloc (size_t num);
3546   char *xstrdup (const char *string);
# Line 3271 | Line 3550 | char *chase_symlinks (const char *pathsp
3550   int make_executable (const char *path);
3551   int check_executable (const char *path);
3552   char *strendzap (char *str, const char *pat);
3553 < void lt_fatal (const char *message, ...);
3553 > void lt_debugprintf (const char *file, int line, const char *fmt, ...);
3554 > void lt_fatal (const char *file, int line, const char *message, ...);
3555 > static const char *nonnull (const char *s);
3556 > static const char *nonempty (const char *s);
3557   void lt_setenv (const char *name, const char *value);
3558   char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277 void lt_opt_process_env_set (const char *arg);
3278 void lt_opt_process_env_prepend (const char *arg);
3279 void lt_opt_process_env_append (const char *arg);
3280 int lt_split_name_value (const char *arg, char** name, char** value);
3559   void lt_update_exe_path (const char *name, const char *value);
3560   void lt_update_lib_path (const char *name, const char *value);
3561 <
3562 < static const char *script_text_part1 =
3285 < EOF
3286 <
3287 <            func_emit_wrapper_part1 yes |
3288 <                $SED -e 's/\([\\"]\)/\\\1/g' \
3289 <                     -e 's/^/  "/' -e 's/$/\\n"/'
3290 <            echo ";"
3291 <            cat <<EOF
3292 <
3293 < static const char *script_text_part2 =
3561 > char **prepare_spawn (char **argv);
3562 > void lt_dump_script (FILE *f);
3563   EOF
3295            func_emit_wrapper_part2 yes |
3296                $SED -e 's/\([\\"]\)/\\\1/g' \
3297                     -e 's/^/  "/' -e 's/$/\\n"/'
3298            echo ";"
3564  
3565              cat <<EOF
3566   const char * MAGIC_EXE = "$magic_exe";
# Line 3340 | Line 3605 | EOF
3605              cat <<"EOF"
3606  
3607   #define LTWRAPPER_OPTION_PREFIX         "--lt-"
3343 #define LTWRAPPER_OPTION_PREFIX_LENGTH  5
3608  
3345 static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
3609   static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
3610   static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
3611 <
3350 < static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351 < static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
3352 <  /* argument is putenv-style "foo=bar", value of foo is set to bar */
3353 <
3354 < static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355 < static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
3356 <  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3357 <
3358 < static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359 < static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
3360 <  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
3611 > static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
3612  
3613   int
3614   main (int argc, char *argv[])
# Line 3374 | Line 3625 | main (int argc, char *argv[])
3625    int i;
3626  
3627    program_name = (char *) xstrdup (base_name (argv[0]));
3628 <  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
3378 <  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
3628 >  newargz = XMALLOC (char *, argc + 1);
3629  
3630 <  /* very simple arg parsing; don't want to rely on getopt */
3630 >  /* very simple arg parsing; don't want to rely on getopt
3631 >   * also, copy all non cwrapper options to newargz, except
3632 >   * argz[0], which is handled differently
3633 >   */
3634 >  newargc=0;
3635    for (i = 1; i < argc; i++)
3636      {
3637        if (strcmp (argv[i], dumpscript_opt) == 0)
# Line 3391 | Line 3645 | EOF
3645                esac
3646  
3647              cat <<"EOF"
3648 <          printf ("%s", script_text_part1);
3395 <          printf ("%s", script_text_part2);
3648 >          lt_dump_script (stdout);
3649            return 0;
3650          }
3651 +      if (strcmp (argv[i], debug_opt) == 0)
3652 +        {
3653 +          lt_debug = 1;
3654 +          continue;
3655 +        }
3656 +      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
3657 +        {
3658 +          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3659 +             namespace, but it is not one of the ones we know about and
3660 +             have already dealt with, above (inluding dump-script), then
3661 +             report an error. Otherwise, targets might begin to believe
3662 +             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3663 +             namespace. The first time any user complains about this, we'll
3664 +             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3665 +             or a configure.ac-settable value.
3666 +           */
3667 +          lt_fatal (__FILE__, __LINE__,
3668 +                    "unrecognized %s option: '%s'",
3669 +                    ltwrapper_option_prefix, argv[i]);
3670 +        }
3671 +      /* otherwise ... */
3672 +      newargz[++newargc] = xstrdup (argv[i]);
3673      }
3674 +  newargz[++newargc] = NULL;
3675 +
3676 + EOF
3677 +            cat <<EOF
3678 +  /* The GNU banner must be the first non-error debug message */
3679 +  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
3680 + EOF
3681 +            cat <<"EOF"
3682 +  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
3683 +  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
3684  
3400  newargz = XMALLOC (char *, argc + 1);
3685    tmp_pathspec = find_executable (argv[0]);
3686    if (tmp_pathspec == NULL)
3687 <    lt_fatal ("Couldn't find %s", argv[0]);
3688 <  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3689 <                          tmp_pathspec));
3687 >    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
3688 >  lt_debugprintf (__FILE__, __LINE__,
3689 >                  "(main) found exe (before symlink chase) at: %s\n",
3690 >                  tmp_pathspec);
3691  
3692    actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3693 <  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3694 <                          actual_cwrapper_path));
3693 >  lt_debugprintf (__FILE__, __LINE__,
3694 >                  "(main) found exe (after symlink chase) at: %s\n",
3695 >                  actual_cwrapper_path);
3696    XFREE (tmp_pathspec);
3697  
3698 <  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
3698 >  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3699    strendzap (actual_cwrapper_path, actual_cwrapper_name);
3700  
3701    /* wrapper name transforms */
# Line 3427 | Line 3713 | EOF
3713    target_name = tmp_pathspec;
3714    tmp_pathspec = 0;
3715  
3716 <  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3717 <                          target_name));
3716 >  lt_debugprintf (__FILE__, __LINE__,
3717 >                  "(main) libtool target name: %s\n",
3718 >                  target_name);
3719   EOF
3720  
3721              cat <<EOF
# Line 3481 | Line 3768 | EOF
3768    lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3769    lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3770  
3771 <  newargc=0;
3772 <  for (i = 1; i < argc; i++)
3486 <    {
3487 <      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3488 <        {
3489 <          if (argv[i][env_set_opt_len] == '=')
3490 <            {
3491 <              const char *p = argv[i] + env_set_opt_len + 1;
3492 <              lt_opt_process_env_set (p);
3493 <            }
3494 <          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3495 <            {
3496 <              lt_opt_process_env_set (argv[++i]); /* don't copy */
3497 <            }
3498 <          else
3499 <            lt_fatal ("%s missing required argument", env_set_opt);
3500 <          continue;
3501 <        }
3502 <      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3503 <        {
3504 <          if (argv[i][env_prepend_opt_len] == '=')
3505 <            {
3506 <              const char *p = argv[i] + env_prepend_opt_len + 1;
3507 <              lt_opt_process_env_prepend (p);
3508 <            }
3509 <          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3510 <            {
3511 <              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3512 <            }
3513 <          else
3514 <            lt_fatal ("%s missing required argument", env_prepend_opt);
3515 <          continue;
3516 <        }
3517 <      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3518 <        {
3519 <          if (argv[i][env_append_opt_len] == '=')
3520 <            {
3521 <              const char *p = argv[i] + env_append_opt_len + 1;
3522 <              lt_opt_process_env_append (p);
3523 <            }
3524 <          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3525 <            {
3526 <              lt_opt_process_env_append (argv[++i]); /* don't copy */
3527 <            }
3528 <          else
3529 <            lt_fatal ("%s missing required argument", env_append_opt);
3530 <          continue;
3531 <        }
3532 <      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3533 <        {
3534 <          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3535 <             namespace, but it is not one of the ones we know about and
3536 <             have already dealt with, above (inluding dump-script), then
3537 <             report an error. Otherwise, targets might begin to believe
3538 <             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3539 <             namespace. The first time any user complains about this, we'll
3540 <             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3541 <             or a configure.ac-settable value.
3542 <           */
3543 <          lt_fatal ("Unrecognized option in %s namespace: '%s'",
3544 <                    ltwrapper_option_prefix, argv[i]);
3545 <        }
3546 <      /* otherwise ... */
3547 <      newargz[++newargc] = xstrdup (argv[i]);
3548 <    }
3549 <  newargz[++newargc] = NULL;
3550 <
3551 <  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
3771 >  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
3772 >                  nonnull (lt_argv_zero));
3773    for (i = 0; i < newargc; i++)
3774      {
3775 <      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
3775 >      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
3776 >                      i, nonnull (newargz[i]));
3777      }
3778  
3779   EOF
# Line 3560 | Line 3782 | EOF
3782                mingw*)
3783                  cat <<"EOF"
3784    /* execv doesn't actually work on mingw as expected on unix */
3785 +  newargz = prepare_spawn (newargz);
3786    rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
3787    if (rval == -1)
3788      {
3789        /* failed to start process */
3790 <      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
3790 >      lt_debugprintf (__FILE__, __LINE__,
3791 >                      "(main) failed to launch target \"%s\": %s\n",
3792 >                      lt_argv_zero, nonnull (strerror (errno)));
3793        return 127;
3794      }
3795    return rval;
# Line 3586 | Line 3811 | xmalloc (size_t num)
3811   {
3812    void *p = (void *) malloc (num);
3813    if (!p)
3814 <    lt_fatal ("Memory exhausted");
3814 >    lt_fatal (__FILE__, __LINE__, "memory exhausted");
3815  
3816    return p;
3817   }
# Line 3620 | Line 3845 | check_executable (const char *path)
3845   {
3846    struct stat st;
3847  
3848 <  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
3849 <                          path ? (*path ? path : "EMPTY!") : "NULL!"));
3848 >  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
3849 >                  nonempty (path));
3850    if ((!path) || (!*path))
3851      return 0;
3852  
# Line 3638 | Line 3863 | make_executable (const char *path)
3863    int rval = 0;
3864    struct stat st;
3865  
3866 <  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
3867 <                          path ? (*path ? path : "EMPTY!") : "NULL!"));
3866 >  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
3867 >                  nonempty (path));
3868    if ((!path) || (!*path))
3869      return 0;
3870  
# Line 3665 | Line 3890 | find_executable (const char *wrapper)
3890    int tmp_len;
3891    char *concat_name;
3892  
3893 <  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
3894 <                          wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
3893 >  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
3894 >                  nonempty (wrapper));
3895  
3896    if ((wrapper == NULL) || (*wrapper == '\0'))
3897      return NULL;
# Line 3719 | Line 3944 | find_executable (const char *wrapper)
3944                  {
3945                    /* empty path: current directory */
3946                    if (getcwd (tmp, LT_PATHMAX) == NULL)
3947 <                    lt_fatal ("getcwd failed");
3947 >                    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
3948 >                              nonnull (strerror (errno)));
3949                    tmp_len = strlen (tmp);
3950                    concat_name =
3951                      XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
# Line 3744 | Line 3970 | find_executable (const char *wrapper)
3970      }
3971    /* Relative path | not found in path: prepend cwd */
3972    if (getcwd (tmp, LT_PATHMAX) == NULL)
3973 <    lt_fatal ("getcwd failed");
3973 >    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
3974 >              nonnull (strerror (errno)));
3975    tmp_len = strlen (tmp);
3976    concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
3977    memcpy (concat_name, tmp, tmp_len);
# Line 3770 | Line 3997 | chase_symlinks (const char *pathspec)
3997    int has_symlinks = 0;
3998    while (strlen (tmp_pathspec) && !has_symlinks)
3999      {
4000 <      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
4001 <                              tmp_pathspec));
4000 >      lt_debugprintf (__FILE__, __LINE__,
4001 >                      "checking path component for symlinks: %s\n",
4002 >                      tmp_pathspec);
4003        if (lstat (tmp_pathspec, &s) == 0)
4004          {
4005            if (S_ISLNK (s.st_mode) != 0)
# Line 3793 | Line 4021 | chase_symlinks (const char *pathspec)
4021          }
4022        else
4023          {
4024 <          char *errstr = strerror (errno);
4025 <          lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
4024 >          lt_fatal (__FILE__, __LINE__,
4025 >                    "error accessing file \"%s\": %s",
4026 >                    tmp_pathspec, nonnull (strerror (errno)));
4027          }
4028      }
4029    XFREE (tmp_pathspec);
# Line 3807 | Line 4036 | chase_symlinks (const char *pathspec)
4036    tmp_pathspec = realpath (pathspec, buf);
4037    if (tmp_pathspec == 0)
4038      {
4039 <      lt_fatal ("Could not follow symlinks for %s", pathspec);
4039 >      lt_fatal (__FILE__, __LINE__,
4040 >                "could not follow symlinks for %s", pathspec);
4041      }
4042    return xstrdup (tmp_pathspec);
4043   #endif
# Line 3833 | Line 4063 | strendzap (char *str, const char *pat)
4063    return str;
4064   }
4065  
4066 + void
4067 + lt_debugprintf (const char *file, int line, const char *fmt, ...)
4068 + {
4069 +  va_list args;
4070 +  if (lt_debug)
4071 +    {
4072 +      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4073 +      va_start (args, fmt);
4074 +      (void) vfprintf (stderr, fmt, args);
4075 +      va_end (args);
4076 +    }
4077 + }
4078 +
4079   static void
4080 < lt_error_core (int exit_status, const char *mode,
4080 > lt_error_core (int exit_status, const char *file,
4081 >               int line, const char *mode,
4082                 const char *message, va_list ap)
4083   {
4084 <  fprintf (stderr, "%s: %s: ", program_name, mode);
4084 >  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
4085    vfprintf (stderr, message, ap);
4086    fprintf (stderr, ".\n");
4087  
# Line 3846 | Line 4090 | lt_error_core (int exit_status, const ch
4090   }
4091  
4092   void
4093 < lt_fatal (const char *message, ...)
4093 > lt_fatal (const char *file, int line, const char *message, ...)
4094   {
4095    va_list ap;
4096    va_start (ap, message);
4097 <  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4097 >  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
4098    va_end (ap);
4099   }
4100  
4101 + static const char *
4102 + nonnull (const char *s)
4103 + {
4104 +  return s ? s : "(null)";
4105 + }
4106 +
4107 + static const char *
4108 + nonempty (const char *s)
4109 + {
4110 +  return (s && !*s) ? "(empty)" : nonnull (s);
4111 + }
4112 +
4113   void
4114   lt_setenv (const char *name, const char *value)
4115   {
4116 <  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
4117 <                          (name ? name : "<NULL>"),
4118 <                          (value ? value : "<NULL>")));
4116 >  lt_debugprintf (__FILE__, __LINE__,
4117 >                  "(lt_setenv) setting '%s' to '%s'\n",
4118 >                  nonnull (name), nonnull (value));
4119    {
4120   #ifdef HAVE_SETENV
4121      /* always make a copy, for consistency with !HAVE_SETENV */
# Line 3904 | Line 4160 | lt_extend_str (const char *orig_value, c
4160    return new_value;
4161   }
4162  
3907 int
3908 lt_split_name_value (const char *arg, char** name, char** value)
3909 {
3910  const char *p;
3911  int len;
3912  if (!arg || !*arg)
3913    return 1;
3914
3915  p = strchr (arg, (int)'=');
3916
3917  if (!p)
3918    return 1;
3919
3920  *value = xstrdup (++p);
3921
3922  len = strlen (arg) - strlen (*value);
3923  *name = XMALLOC (char, len);
3924  strncpy (*name, arg, len-1);
3925  (*name)[len - 1] = '\0';
3926
3927  return 0;
3928 }
3929
3930 void
3931 lt_opt_process_env_set (const char *arg)
3932 {
3933  char *name = NULL;
3934  char *value = NULL;
3935
3936  if (lt_split_name_value (arg, &name, &value) != 0)
3937    {
3938      XFREE (name);
3939      XFREE (value);
3940      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3941    }
3942
3943  lt_setenv (name, value);
3944  XFREE (name);
3945  XFREE (value);
3946 }
3947
3948 void
3949 lt_opt_process_env_prepend (const char *arg)
3950 {
3951  char *name = NULL;
3952  char *value = NULL;
3953  char *new_value = NULL;
3954
3955  if (lt_split_name_value (arg, &name, &value) != 0)
3956    {
3957      XFREE (name);
3958      XFREE (value);
3959      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3960    }
3961
3962  new_value = lt_extend_str (getenv (name), value, 0);
3963  lt_setenv (name, new_value);
3964  XFREE (new_value);
3965  XFREE (name);
3966  XFREE (value);
3967 }
3968
3969 void
3970 lt_opt_process_env_append (const char *arg)
3971 {
3972  char *name = NULL;
3973  char *value = NULL;
3974  char *new_value = NULL;
3975
3976  if (lt_split_name_value (arg, &name, &value) != 0)
3977    {
3978      XFREE (name);
3979      XFREE (value);
3980      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3981    }
3982
3983  new_value = lt_extend_str (getenv (name), value, 1);
3984  lt_setenv (name, new_value);
3985  XFREE (new_value);
3986  XFREE (name);
3987  XFREE (value);
3988 }
3989
4163   void
4164   lt_update_exe_path (const char *name, const char *value)
4165   {
4166 <  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4167 <                          (name ? name : "<NULL>"),
4168 <                          (value ? value : "<NULL>")));
4166 >  lt_debugprintf (__FILE__, __LINE__,
4167 >                  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4168 >                  nonnull (name), nonnull (value));
4169  
4170    if (name && *name && value && *value)
4171      {
# Line 4011 | Line 4184 | lt_update_exe_path (const char *name, co
4184   void
4185   lt_update_lib_path (const char *name, const char *value)
4186   {
4187 <  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4188 <                          (name ? name : "<NULL>"),
4189 <                          (value ? value : "<NULL>")));
4187 >  lt_debugprintf (__FILE__, __LINE__,
4188 >                  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4189 >                  nonnull (name), nonnull (value));
4190  
4191    if (name && *name && value && *value)
4192      {
# Line 4023 | Line 4196 | lt_update_lib_path (const char *name, co
4196      }
4197   }
4198  
4199 + EOF
4200 +            case $host_os in
4201 +              mingw*)
4202 +                cat <<"EOF"
4203 +
4204 + /* Prepares an argument vector before calling spawn().
4205 +   Note that spawn() does not by itself call the command interpreter
4206 +     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4207 +      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4208 +         GetVersionEx(&v);
4209 +         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4210 +      }) ? "cmd.exe" : "command.com").
4211 +   Instead it simply concatenates the arguments, separated by ' ', and calls
4212 +   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
4213 +   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4214 +   special way:
4215 +   - Space and tab are interpreted as delimiters. They are not treated as
4216 +     delimiters if they are surrounded by double quotes: "...".
4217 +   - Unescaped double quotes are removed from the input. Their only effect is
4218 +     that within double quotes, space and tab are treated like normal
4219 +     characters.
4220 +   - Backslashes not followed by double quotes are not special.
4221 +   - But 2*n+1 backslashes followed by a double quote become
4222 +     n backslashes followed by a double quote (n >= 0):
4223 +       \" -> "
4224 +       \\\" -> \"
4225 +       \\\\\" -> \\"
4226 + */
4227 + #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4228 + #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4229 + char **
4230 + prepare_spawn (char **argv)
4231 + {
4232 +  size_t argc;
4233 +  char **new_argv;
4234 +  size_t i;
4235 +
4236 +  /* Count number of arguments.  */
4237 +  for (argc = 0; argv[argc] != NULL; argc++)
4238 +    ;
4239  
4240 +  /* Allocate new argument vector.  */
4241 +  new_argv = XMALLOC (char *, argc + 1);
4242 +
4243 +  /* Put quoted arguments into the new argument vector.  */
4244 +  for (i = 0; i < argc; i++)
4245 +    {
4246 +      const char *string = argv[i];
4247 +
4248 +      if (string[0] == '\0')
4249 +        new_argv[i] = xstrdup ("\"\"");
4250 +      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4251 +        {
4252 +          int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4253 +          size_t length;
4254 +          unsigned int backslashes;
4255 +          const char *s;
4256 +          char *quoted_string;
4257 +          char *p;
4258 +
4259 +          length = 0;
4260 +          backslashes = 0;
4261 +          if (quote_around)
4262 +            length++;
4263 +          for (s = string; *s != '\0'; s++)
4264 +            {
4265 +              char c = *s;
4266 +              if (c == '"')
4267 +                length += backslashes + 1;
4268 +              length++;
4269 +              if (c == '\\')
4270 +                backslashes++;
4271 +              else
4272 +                backslashes = 0;
4273 +            }
4274 +          if (quote_around)
4275 +            length += backslashes + 1;
4276 +
4277 +          quoted_string = XMALLOC (char, length + 1);
4278 +
4279 +          p = quoted_string;
4280 +          backslashes = 0;
4281 +          if (quote_around)
4282 +            *p++ = '"';
4283 +          for (s = string; *s != '\0'; s++)
4284 +            {
4285 +              char c = *s;
4286 +              if (c == '"')
4287 +                {
4288 +                  unsigned int j;
4289 +                  for (j = backslashes + 1; j > 0; j--)
4290 +                    *p++ = '\\';
4291 +                }
4292 +              *p++ = c;
4293 +              if (c == '\\')
4294 +                backslashes++;
4295 +              else
4296 +                backslashes = 0;
4297 +            }
4298 +          if (quote_around)
4299 +            {
4300 +              unsigned int j;
4301 +              for (j = backslashes; j > 0; j--)
4302 +                *p++ = '\\';
4303 +              *p++ = '"';
4304 +            }
4305 +          *p = '\0';
4306 +
4307 +          new_argv[i] = quoted_string;
4308 +        }
4309 +      else
4310 +        new_argv[i] = (char *) string;
4311 +    }
4312 +  new_argv[argc] = NULL;
4313 +
4314 +  return new_argv;
4315 + }
4316 + EOF
4317 +                ;;
4318 +            esac
4319 +
4320 +            cat <<"EOF"
4321 + void lt_dump_script (FILE* f)
4322 + {
4323 + EOF
4324 +            func_emit_wrapper yes |
4325 +              $SED -e 's/\([\\"]\)/\\\1/g' \
4326 +                   -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
4327 +
4328 +            cat <<"EOF"
4329 + }
4330   EOF
4331   }
4332   # end: func_emit_cwrapperexe_src
4333  
4334 + # func_win32_import_lib_p ARG
4335 + # True if ARG is an import lib, as indicated by $file_magic_cmd
4336 + func_win32_import_lib_p ()
4337 + {
4338 +    $opt_debug
4339 +    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
4340 +    *import*) : ;;
4341 +    *) false ;;
4342 +    esac
4343 + }
4344 +
4345   # func_mode_link arg...
4346   func_mode_link ()
4347   {
# Line 4072 | Line 4386 | func_mode_link ()
4386      new_inherited_linker_flags=
4387  
4388      avoid_version=no
4389 +    bindir=
4390      dlfiles=
4391      dlprefiles=
4392      dlself=no
# Line 4164 | Line 4479 | func_mode_link ()
4479          esac
4480  
4481          case $prev in
4482 +        bindir)
4483 +          bindir="$arg"
4484 +          prev=
4485 +          continue
4486 +          ;;
4487          dlfiles|dlprefiles)
4488            if test "$preload" = no; then
4489              # Add the symbol object into the linking commands.
# Line 4425 | Line 4745 | func_mode_link ()
4745          continue
4746          ;;
4747  
4748 +      -bindir)
4749 +        prev=bindir
4750 +        continue
4751 +        ;;
4752 +
4753        -dlopen)
4754          prev=dlfiles
4755          continue
# Line 4503 | Line 4828 | func_mode_link ()
4828          esac
4829          case $host in
4830          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4831 <          testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
4831 >          testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4832            case :$dllsearchpath: in
4833            *":$dir:"*) ;;
4834            ::) dllsearchpath=$dir;;
# Line 4522 | Line 4847 | func_mode_link ()
4847        -l*)
4848          if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
4849            case $host in
4850 <          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
4850 >          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4851              # These systems don't actually have a C or math library (as such)
4852              continue
4853              ;;
# Line 4708 | Line 5033 | func_mode_link ()
5033          for flag in $args; do
5034            IFS="$save_ifs"
5035            func_quote_for_eval "$flag"
5036 <          arg="$arg $wl$func_quote_for_eval_result"
5036 >          arg="$arg $func_quote_for_eval_result"
5037            compiler_flags="$compiler_flags $func_quote_for_eval_result"
5038          done
5039          IFS="$save_ifs"
# Line 4754 | Line 5079 | func_mode_link ()
5079          arg="$func_quote_for_eval_result"
5080          ;;
5081  
5082 <      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
5083 <      # -r[0-9][0-9]* specifies the processor on the SGI compiler
5084 <      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
5085 <      # +DA*, +DD* enable 64-bit mode on the HP compiler
5086 <      # -q* pass through compiler args for the IBM compiler
5087 <      # -m*, -t[45]*, -txscale* pass through architecture-specific
5088 <      # compiler args for GCC
5089 <      # -F/path gives path to uninstalled frameworks, gcc on darwin
5090 <      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
5091 <      # @file GCC response files
5082 >      # Flags to be passed through unchanged, with rationale:
5083 >      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
5084 >      # -r[0-9][0-9]*        specify processor for the SGI compiler
5085 >      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5086 >      # +DA*, +DD*           enable 64-bit mode for the HP compiler
5087 >      # -q*                  compiler args for the IBM compiler
5088 >      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5089 >      # -F/path              path to uninstalled frameworks, gcc on darwin
5090 >      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
5091 >      # @file                GCC response files
5092 >      # -tp=*                Portland pgcc target processor selection
5093        -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5094 <      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
5094 >      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
5095          func_quote_for_eval "$arg"
5096          arg="$func_quote_for_eval_result"
5097          func_append compile_command " $arg"
# Line 4925 | Line 5251 | func_mode_link ()
5251  
5252      if test -n "$shlibpath_var"; then
5253        # get the directories listed in $shlibpath_var
5254 <      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
5254 >      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
5255      else
5256        shlib_search_path=
5257      fi
# Line 5048 | Line 5374 | func_mode_link ()
5374            # Collect preopened libtool deplibs, except any this library
5375            # has declared as weak libs
5376            for deplib in $dependency_libs; do
5377 <            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
5377 >            func_basename "$deplib"
5378 >            deplib_base=$func_basename_result
5379              case " $weak_libs " in
5380              *" $deplib_base "*) ;;
5381              *) deplibs="$deplibs $deplib" ;;
# Line 5227 | Line 5554 | func_mode_link ()
5554                  match_pattern*)
5555                    set dummy $deplibs_check_method; shift
5556                    match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5557 <                  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
5557 >                  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5558                      | $EGREP "$match_pattern_regex" > /dev/null; then
5559                      valid_a_lib=yes
5560                    fi
# Line 5237 | Line 5564 | func_mode_link ()
5564                  ;;
5565                esac
5566                if test "$valid_a_lib" != yes; then
5567 <                $ECHO
5567 >                echo
5568                  $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5569 <                $ECHO "*** I have the capability to make that library automatically link in when"
5570 <                $ECHO "*** you link to this library.  But I can only do this if you have a"
5571 <                $ECHO "*** shared version of the library, which you do not appear to have"
5572 <                $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5573 <                $ECHO "*** that it is just a static archive that I should not use here."
5569 >                echo "*** I have the capability to make that library automatically link in when"
5570 >                echo "*** you link to this library.  But I can only do this if you have a"
5571 >                echo "*** shared version of the library, which you do not appear to have"
5572 >                echo "*** because the file extensions .$libext of this argument makes me believe"
5573 >                echo "*** that it is just a static archive that I should not use here."
5574                else
5575 <                $ECHO
5575 >                echo
5576                  $ECHO "*** Warning: Linking the shared library $output against the"
5577                  $ECHO "*** static library $deplib is not portable!"
5578                  deplibs="$deplib $deplibs"
# Line 5318 | Line 5645 | func_mode_link ()
5645  
5646          # Convert "-framework foo" to "foo.ltframework"
5647          if test -n "$inherited_linker_flags"; then
5648 <          tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
5648 >          tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5649            for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
5650              case " $new_inherited_linker_flags " in
5651                *" $tmp_inherited_linker_flag "*) ;;
# Line 5326 | Line 5653 | func_mode_link ()
5653              esac
5654            done
5655          fi
5656 <        dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
5656 >        dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5657          if test "$linkmode,$pass" = "lib,link" ||
5658             test "$linkmode,$pass" = "prog,scan" ||
5659             { test "$linkmode" != prog && test "$linkmode" != lib; }; then
# Line 5580 | Line 5907 | func_mode_link ()
5907              fi
5908            done
5909            if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5910 <            $ECHO
5910 >            echo
5911              if test "$linkmode" = prog; then
5912                $ECHO "*** Warning: Linking the executable $output against the loadable module"
5913              else
# Line 5683 | Line 6010 | func_mode_link ()
6010                        if test "X$dlopenmodule" != "X$lib"; then
6011                          $ECHO "*** Warning: lib $linklib is a module, not a shared library"
6012                          if test -z "$old_library" ; then
6013 <                          $ECHO
6014 <                          $ECHO "*** And there doesn't seem to be a static archive available"
6015 <                          $ECHO "*** The link will probably fail, sorry"
6013 >                          echo
6014 >                          echo "*** And there doesn't seem to be a static archive available"
6015 >                          echo "*** The link will probably fail, sorry"
6016                          else
6017                            add="$dir/$old_library"
6018                          fi
# Line 5825 | Line 6152 | func_mode_link ()
6152  
6153              # Just print a warning and add the library to dependency_libs so
6154              # that the program can be linked against the static library.
6155 <            $ECHO
6155 >            echo
6156              $ECHO "*** Warning: This system can not link to static lib archive $lib."
6157 <            $ECHO "*** I have the capability to make that library automatically link in when"
6158 <            $ECHO "*** you link to this library.  But I can only do this if you have a"
6159 <            $ECHO "*** shared version of the library, which you do not appear to have."
6157 >            echo "*** I have the capability to make that library automatically link in when"
6158 >            echo "*** you link to this library.  But I can only do this if you have a"
6159 >            echo "*** shared version of the library, which you do not appear to have."
6160              if test "$module" = yes; then
6161 <              $ECHO "*** But as you try to build a module library, libtool will still create "
6162 <              $ECHO "*** a static module, that should work as long as the dlopening application"
6163 <              $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
6161 >              echo "*** But as you try to build a module library, libtool will still create "
6162 >              echo "*** a static module, that should work as long as the dlopening application"
6163 >              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
6164                if test -z "$global_symbol_pipe"; then
6165 <                $ECHO
6166 <                $ECHO "*** However, this would only work if libtool was able to extract symbol"
6167 <                $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6168 <                $ECHO "*** not find such a program.  So, this module is probably useless."
6169 <                $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
6165 >                echo
6166 >                echo "*** However, this would only work if libtool was able to extract symbol"
6167 >                echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6168 >                echo "*** not find such a program.  So, this module is probably useless."
6169 >                echo "*** \`nm' from GNU binutils and a full rebuild may help."
6170                fi
6171                if test "$build_old_libs" = no; then
6172                  build_libtool_libs=module
# Line 5893 | Line 6220 | func_mode_link ()
6220            if test "$link_all_deplibs" != no; then
6221              # Add the search paths of all dependency libraries
6222              for deplib in $dependency_libs; do
6223 +              path=
6224                case $deplib in
6225                -L*) path="$deplib" ;;
6226                *.la)
# Line 5958 | Line 6286 | func_mode_link ()
6286            compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
6287            finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
6288          else
6289 <          compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6289 >          compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6290          fi
6291        fi
6292        dependency_libs="$newdependency_libs"
# Line 6126 | Line 6454 | func_mode_link ()
6454          if test "$deplibs_check_method" != pass_all; then
6455            func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
6456          else
6457 <          $ECHO
6457 >          echo
6458            $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
6459            $ECHO "*** objects $objs is not portable!"
6460            libobjs="$libobjs $objs"
# Line 6194 | Line 6522 | func_mode_link ()
6522              age="$number_minor"
6523              revision="$number_revision"
6524              ;;
6525 <          freebsd-aout|freebsd-elf|sunos)
6525 >          freebsd-aout|freebsd-elf|qnx|sunos)
6526              current="$number_major"
6527              revision="$number_minor"
6528              age="0"
# Line 6428 | Line 6756 | func_mode_link ()
6756          oldlibs="$oldlibs $output_objdir/$libname.$libext"
6757  
6758          # Transform .lo files to .o files.
6759 <        oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
6759 >        oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6760        fi
6761  
6762        # Eliminate all temporary directories.
6763        #for path in $notinst_path; do
6764 <      # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6765 <      # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6766 <      # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
6764 >      # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
6765 >      # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
6766 >      # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6767        #done
6768  
6769        if test -n "$xrpath"; then
# Line 6476 | Line 6804 | func_mode_link ()
6804        if test "$build_libtool_libs" = yes; then
6805          if test -n "$rpath"; then
6806            case $host in
6807 <          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
6807 >          *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6808              # these systems don't actually have a c library (as such)!
6809              ;;
6810            *-*-rhapsody* | *-*-darwin1.[012])
# Line 6561 | Line 6889 | EOF
6889                      newdeplibs="$newdeplibs $i"
6890                    else
6891                      droppeddeps=yes
6892 <                    $ECHO
6892 >                    echo
6893                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6894 <                    $ECHO "*** I have the capability to make that library automatically link in when"
6895 <                    $ECHO "*** you link to this library.  But I can only do this if you have a"
6896 <                    $ECHO "*** shared version of the library, which I believe you do not have"
6897 <                    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
6898 <                    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
6894 >                    echo "*** I have the capability to make that library automatically link in when"
6895 >                    echo "*** you link to this library.  But I can only do this if you have a"
6896 >                    echo "*** shared version of the library, which I believe you do not have"
6897 >                    echo "*** because a test_compile did reveal that the linker did not use it for"
6898 >                    echo "*** its dynamic dependency list that programs get resolved with at runtime."
6899                    fi
6900                  fi
6901                  ;;
# Line 6604 | Line 6932 | EOF
6932                        newdeplibs="$newdeplibs $i"
6933                      else
6934                        droppeddeps=yes
6935 <                      $ECHO
6935 >                      echo
6936                        $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6937 <                      $ECHO "*** I have the capability to make that library automatically link in when"
6938 <                      $ECHO "*** you link to this library.  But I can only do this if you have a"
6939 <                      $ECHO "*** shared version of the library, which you do not appear to have"
6940 <                      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
6941 <                      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
6937 >                      echo "*** I have the capability to make that library automatically link in when"
6938 >                      echo "*** you link to this library.  But I can only do this if you have a"
6939 >                      echo "*** shared version of the library, which you do not appear to have"
6940 >                      echo "*** because a test_compile did reveal that the linker did not use this one"
6941 >                      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6942                      fi
6943                    fi
6944                  else
6945                    droppeddeps=yes
6946 <                  $ECHO
6946 >                  echo
6947                    $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
6948 <                  $ECHO "*** make it link in!  You will probably need to install it or some"
6949 <                  $ECHO "*** library that it depends on before this library will be fully"
6950 <                  $ECHO "*** functional.  Installing it before continuing would be even better."
6948 >                  echo "*** make it link in!  You will probably need to install it or some"
6949 >                  echo "*** library that it depends on before this library will be fully"
6950 >                  echo "*** functional.  Installing it before continuing would be even better."
6951                  fi
6952                  ;;
6953                *)
# Line 6665 | Line 6993 | EOF
6993                          potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
6994                          case $potliblink in
6995                          [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6996 <                        *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
6996 >                        *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6997                          esac
6998                        done
6999                        if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
# Line 6680 | Line 7008 | EOF
7008                fi
7009                if test -n "$a_deplib" ; then
7010                  droppeddeps=yes
7011 <                $ECHO
7011 >                echo
7012                  $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7013 <                $ECHO "*** I have the capability to make that library automatically link in when"
7014 <                $ECHO "*** you link to this library.  But I can only do this if you have a"
7015 <                $ECHO "*** shared version of the library, which you do not appear to have"
7016 <                $ECHO "*** because I did check the linker path looking for a file starting"
7013 >                echo "*** I have the capability to make that library automatically link in when"
7014 >                echo "*** you link to this library.  But I can only do this if you have a"
7015 >                echo "*** shared version of the library, which you do not appear to have"
7016 >                echo "*** because I did check the linker path looking for a file starting"
7017                  if test -z "$potlib" ; then
7018                    $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
7019                  else
# Line 6723 | Line 7051 | EOF
7051                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7052                    for potent_lib in $potential_libs; do
7053                      potlib="$potent_lib" # see symlink-check above in file_magic test
7054 <                    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
7054 >                    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
7055                         $EGREP "$match_pattern_regex" > /dev/null; then
7056                        newdeplibs="$newdeplibs $a_deplib"
7057                        a_deplib=""
# Line 6734 | Line 7062 | EOF
7062                fi
7063                if test -n "$a_deplib" ; then
7064                  droppeddeps=yes
7065 <                $ECHO
7065 >                echo
7066                  $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7067 <                $ECHO "*** I have the capability to make that library automatically link in when"
7068 <                $ECHO "*** you link to this library.  But I can only do this if you have a"
7069 <                $ECHO "*** shared version of the library, which you do not appear to have"
7070 <                $ECHO "*** because I did check the linker path looking for a file starting"
7067 >                echo "*** I have the capability to make that library automatically link in when"
7068 >                echo "*** you link to this library.  But I can only do this if you have a"
7069 >                echo "*** shared version of the library, which you do not appear to have"
7070 >                echo "*** because I did check the linker path looking for a file starting"
7071                  if test -z "$potlib" ; then
7072                    $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
7073                  else
# Line 6757 | Line 7085 | EOF
7085            ;;
7086          none | unknown | *)
7087            newdeplibs=""
7088 <          tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6761 <              -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7088 >          tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
7089            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
7090              for i in $predeps $postdeps ; do
7091                # can't use Xsed below, because $i might contain '/'
7092 <              tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7092 >              tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
7093              done
7094            fi
7095 <          if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
7096 <             $GREP . >/dev/null; then
7097 <            $ECHO
7095 >          case $tmp_deplibs in
7096 >          *[!\  \ ]*)
7097 >            echo
7098              if test "X$deplibs_check_method" = "Xnone"; then
7099 <              $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7099 >              echo "*** Warning: inter-library dependencies are not supported in this platform."
7100              else
7101 <              $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7101 >              echo "*** Warning: inter-library dependencies are not known to be supported."
7102              fi
7103 <            $ECHO "*** All declared inter-library dependencies are being dropped."
7103 >            echo "*** All declared inter-library dependencies are being dropped."
7104              droppeddeps=yes
7105 <          fi
7105 >            ;;
7106 >          esac
7107            ;;
7108          esac
7109          versuffix=$versuffix_save
# Line 6787 | Line 7115 | EOF
7115          case $host in
7116          *-*-rhapsody* | *-*-darwin1.[012])
7117            # On Rhapsody replace the C library with the System framework
7118 <          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7118 >          newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
7119            ;;
7120          esac
7121  
7122          if test "$droppeddeps" = yes; then
7123            if test "$module" = yes; then
7124 <            $ECHO
7125 <            $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7124 >            echo
7125 >            echo "*** Warning: libtool could not satisfy all declared inter-library"
7126              $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
7127 <            $ECHO "*** a static module, that should work as long as the dlopening"
7128 <            $ECHO "*** application is linked with the -dlopen flag."
7127 >            echo "*** a static module, that should work as long as the dlopening"
7128 >            echo "*** application is linked with the -dlopen flag."
7129              if test -z "$global_symbol_pipe"; then
7130 <              $ECHO
7131 <              $ECHO "*** However, this would only work if libtool was able to extract symbol"
7132 <              $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
7133 <              $ECHO "*** not find such a program.  So, this module is probably useless."
7134 <              $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
7130 >              echo
7131 >              echo "*** However, this would only work if libtool was able to extract symbol"
7132 >              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7133 >              echo "*** not find such a program.  So, this module is probably useless."
7134 >              echo "*** \`nm' from GNU binutils and a full rebuild may help."
7135              fi
7136              if test "$build_old_libs" = no; then
7137                oldlibs="$output_objdir/$libname.$libext"
# Line 6813 | Line 7141 | EOF
7141                build_libtool_libs=no
7142              fi
7143            else
7144 <            $ECHO "*** The inter-library dependencies that have been dropped here will be"
7145 <            $ECHO "*** automatically added whenever a program is linked with this library"
7146 <            $ECHO "*** or is declared to -dlopen it."
7144 >            echo "*** The inter-library dependencies that have been dropped here will be"
7145 >            echo "*** automatically added whenever a program is linked with this library"
7146 >            echo "*** or is declared to -dlopen it."
7147  
7148              if test "$allow_undefined" = no; then
7149 <              $ECHO
7150 <              $ECHO "*** Since this library must not contain undefined symbols,"
7151 <              $ECHO "*** because either the platform does not support them or"
7152 <              $ECHO "*** it was explicitly requested with -no-undefined,"
7153 <              $ECHO "*** libtool will only create a static version of it."
7149 >              echo
7150 >              echo "*** Since this library must not contain undefined symbols,"
7151 >              echo "*** because either the platform does not support them or"
7152 >              echo "*** it was explicitly requested with -no-undefined,"
7153 >              echo "*** libtool will only create a static version of it."
7154                if test "$build_old_libs" = no; then
7155                  oldlibs="$output_objdir/$libname.$libext"
7156                  build_libtool_libs=module
# Line 6839 | Line 7167 | EOF
7167        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7168        case $host in
7169          *-*-darwin*)
7170 <          newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7171 <          new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7172 <          deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7170 >          newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7171 >          new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7172 >          deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7173            ;;
7174        esac
7175  
# Line 6963 | Line 7291 | EOF
7291          done
7292  
7293          # Use standard objects if they are pic
7294 <        test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7294 >        test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
7295          test "X$libobjs" = "X " && libobjs=
7296  
7297          delfiles=
# Line 7029 | Line 7357 | EOF
7357          if test -n "$export_symbols" && test -n "$include_expsyms"; then
7358            tmp_export_symbols="$export_symbols"
7359            test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7360 <          $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7360 >          $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7361          fi
7362  
7363          if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
# Line 7130 | Line 7458 | EOF
7458              save_libobjs=$libobjs
7459            fi
7460            save_output=$output
7461 <          output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
7461 >          func_basename "$output"
7462 >          output_la=$func_basename_result
7463  
7464            # Clear the reloadable object creation command queue and
7465            # initialize k to one.
# Line 7143 | Line 7472 | EOF
7472            if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
7473              output=${output_objdir}/${output_la}.lnkscript
7474              func_verbose "creating GNU ld script: $output"
7475 <            $ECHO 'INPUT (' > $output
7475 >            echo 'INPUT (' > $output
7476              for obj in $save_libobjs
7477              do
7478                $ECHO "$obj" >> $output
7479              done
7480 <            $ECHO ')' >> $output
7480 >            echo ')' >> $output
7481              delfiles="$delfiles $output"
7482            elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
7483              output=${output_objdir}/${output_la}.lnk
# Line 7190 | Line 7519 | EOF
7519                    # command to the queue.
7520                    if test "$k" -eq 1 ; then
7521                      # The first file doesn't have a previous command to add.
7522 <                    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
7522 >                    reload_objs=$objlist
7523 >                    eval concat_cmds=\"$reload_cmds\"
7524                    else
7525                      # All subsequent reloadable object files will link in
7526                      # the last one created.
7527 <                    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
7527 >                    reload_objs="$objlist $last_robj"
7528 >                    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7529                    fi
7530                    last_robj=$output_objdir/$output_la-${k}.$objext
7531                    func_arith $k + 1
7532                    k=$func_arith_result
7533                    output=$output_objdir/$output_la-${k}.$objext
7534 <                  objlist=$obj
7534 >                  objlist=" $obj"
7535                    func_len " $last_robj"
7536                    func_arith $len0 + $func_len_result
7537                    len=$func_arith_result
# Line 7210 | Line 7541 | EOF
7541                # reloadable object file.  All subsequent reloadable object
7542                # files will link in the last one created.
7543                test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7544 <              eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
7544 >              reload_objs="$objlist $last_robj"
7545 >              eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7546                if test -n "$last_robj"; then
7547                  eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7548                fi
# Line 7269 | Line 7601 | EOF
7601              if test -n "$export_symbols" && test -n "$include_expsyms"; then
7602                tmp_export_symbols="$export_symbols"
7603                test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7604 <              $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
7604 >              $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7605              fi
7606  
7607              if test -n "$orig_export_symbols"; then
# Line 7434 | Line 7766 | EOF
7766        if test -n "$convenience"; then
7767          if test -n "$whole_archive_flag_spec"; then
7768            eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7769 <          reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
7769 >          reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7770          else
7771            gentop="$output_objdir/${obj}x"
7772            generated="$generated $gentop"
# Line 7445 | Line 7777 | EOF
7777        fi
7778  
7779        # Create the old-style object.
7780 <      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
7780 >      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7781  
7782        output="$obj"
7783        func_execute_cmds "$reload_cmds" 'exit $?'
# Line 7505 | Line 7837 | EOF
7837        case $host in
7838        *-*-rhapsody* | *-*-darwin1.[012])
7839          # On Rhapsody replace the C library is the System framework
7840 <        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7841 <        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7840 >        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
7841 >        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7842          ;;
7843        esac
7844  
# Line 7523 | Line 7855 | EOF
7855            esac
7856          fi
7857          # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7858 <        compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7859 <        finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7858 >        compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7859 >        finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7860          ;;
7861        esac
7862  
# Line 7661 | Line 7993 | EOF
7993  
7994        if test -n "$libobjs" && test "$build_old_libs" = yes; then
7995          # Transform all the library objects into standard objects.
7996 <        compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7997 <        finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7996 >        compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7997 >        finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7998        fi
7999  
8000        func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
# Line 7674 | Line 8006 | EOF
8006  
8007        wrappers_required=yes
8008        case $host in
8009 +      *cegcc* | *mingw32ce*)
8010 +        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8011 +        wrappers_required=no
8012 +        ;;
8013        *cygwin* | *mingw* )
8014          if test "$build_libtool_libs" != yes; then
8015            wrappers_required=no
8016          fi
8017          ;;
7682      *cegcc)
7683        # Disable wrappers for cegcc, we are cross compiling anyway.
7684        wrappers_required=no
7685        ;;
8018        *)
8019          if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
8020            wrappers_required=no
# Line 7691 | Line 8023 | EOF
8023        esac
8024        if test "$wrappers_required" = no; then
8025          # Replace the output file specification.
8026 <        compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8026 >        compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8027          link_command="$compile_command$compile_rpath"
8028  
8029          # We have no uninstalled library dependencies, so finalize right now.
# Line 7738 | Line 8070 | EOF
8070          # We don't need to create a wrapper script.
8071          link_command="$compile_var$compile_command$compile_rpath"
8072          # Replace the output file specification.
8073 <        link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8073 >        link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
8074          # Delete the old output file.
8075          $opt_dry_run || $RM $output
8076          # Link the executable and exit
# Line 7757 | Line 8089 | EOF
8089          if test "$fast_install" != no; then
8090            link_command="$finalize_var$compile_command$finalize_rpath"
8091            if test "$fast_install" = yes; then
8092 <            relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8092 >            relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
8093            else
8094              # fast_install is set to needless
8095              relink_command=
# Line 7769 | Line 8101 | EOF
8101        fi
8102  
8103        # Replace the output file specification.
8104 <      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8104 >      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8105  
8106        # Delete the old output files.
8107        $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
# Line 7793 | Line 8125 | EOF
8125            fi
8126          done
8127          relink_command="(cd `pwd`; $relink_command)"
8128 <        relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
7797 <      fi
7798 <
7799 <      # Quote $ECHO for shipping.
7800 <      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
7801 <        case $progpath in
7802 <        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
7803 <        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7804 <        esac
7805 <        qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
7806 <      else
7807 <        qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
8128 >        relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8129        fi
8130  
8131        # Only actually do things if not in dry run mode.
# Line 7925 | Line 8246 | EOF
8246              done | sort | sort -uc >/dev/null 2>&1); then
8247            :
8248          else
8249 <          $ECHO "copying selected object files to avoid basename conflicts..."
8249 >          echo "copying selected object files to avoid basename conflicts..."
8250            gentop="$output_objdir/${outputname}x"
8251            generated="$generated $gentop"
8252            func_mkdir_p "$gentop"
# Line 8036 | Line 8357 | EOF
8357        done
8358        # Quote the link command for shipping.
8359        relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8360 <      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
8360 >      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8361        if test "$hardcode_automatic" = yes ; then
8362          relink_command=
8363        fi
# Line 8121 | Line 8442 | EOF
8442            fi
8443            $RM $output
8444            # place dlname in correct position for cygwin
8445 +          # In fact, it would be nice if we could use this code for all target
8446 +          # systems that can't hard-code library paths into their executables
8447 +          # and that have no shared library path variable independent of PATH,
8448 +          # but it turns out we can't easily determine that from inspecting
8449 +          # libtool variables, so we have to hard-code the OSs to which it
8450 +          # applies here; at the moment, that means platforms that use the PE
8451 +          # object format with DLL files.  See the long comment at the top of
8452 +          # tests/bindir.at for full details.
8453            tdlname=$dlname
8454            case $host,$output,$installed,$module,$dlname in
8455 <            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
8455 >            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
8456 >              # If a -bindir argument was supplied, place the dll there.
8457 >              if test "x$bindir" != x ;
8458 >              then
8459 >                func_relative_path "$install_libdir" "$bindir"
8460 >                tdlname=$func_relative_path_result$dlname
8461 >              else
8462 >                # Otherwise fall back on heuristic.
8463 >                tdlname=../bin/$dlname
8464 >              fi
8465 >              ;;
8466            esac
8467            $ECHO > $output "\
8468   # $outputname - a libtool library file

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines