]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltmain.in [darwin](func_extract_archives): Clean up last commit
authorPeter O'Gorman <peter@pogma.com>
Thu, 22 Jul 2004 13:37:52 +0000 (13:37 +0000)
committerPeter O'Gorman <peter@pogma.com>
Thu, 22 Jul 2004 13:37:52 +0000 (13:37 +0000)
a little, some suggestions are from Albert Chin, those that are
broken are mine.

ChangeLog
ltmain.in

index 594c1586dce1db5beab949d0591dbf3c3fd38800..2b53d2cd910d0b18468559bb0987fa35ad69619b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-07-22  Peter O'Gorman  <peter@pogma.com>
 
+       * ltmain.in [darwin](func_extract_archives): Clean up last commit
+       a little, some suggestions are from Albert Chin, those that are
+       broken are mine.
+       
        * libltdl/Makefile.am, libltdl/loaders/Makefile.am: Look for
        included files in the right places.
 
index 9666660ac597383e82cea5aa91a9b4f77758769b..411181e871843d1b2650e6ed313ba26bb3480c5e 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -517,42 +517,45 @@ func_extract_archives () {
       fi
       case $host in
       *-darwin*)
-        darwin_orig_dir=`pwd`
-       $show "cd $my_xdir"
-       $run eval "cd \$my_xdir" || exit $?
-       darwin_archive=$my_xabs
-       darwin_curdir=`pwd`
-       darwin_base_archive=`basename $darwin_archive`
-       darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | grep Architectures 2>/dev/null`
-       if test -n "$darwin_arches"; then 
-         darwin_arches=`echo "$darwin_arches" | sed -e 's/.*are://'`
-         darwin_arch=
-         for darwin_arch in  $darwin_arches ; do
-             mkdir -p ./unfat-$$/${darwin_base_archive}-${darwin_arch}
-             lipo -thin $darwin_arch -output unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive} ${darwin_archive}
-      # Remove the table of contents from the thin files.
-             $run eval "$AR -d unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive} __.SYMDEF 2>/dev/null|| true"
-             $run eval "$AR -d unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive} __.SYMDEF\ SORTED 2>/dev/null|| true"
-             cd unfat-$$/${darwin_base_archive}-${darwin_arch}
-             $run eval "$AR -xo ${darwin_base_archive}"
-             $run eval "rm ${darwin_base_archive}"
-             cd $darwin_curdir
-         done
+       $show "Extracting $my_xabs"
+       # Do not bother doing anything if just a dry run
+       if test -z "$run"; then
+         darwin_orig_dir=`pwd`
+         cd $my_xdir || exit $?
+         darwin_archive=$my_xabs
+         darwin_curdir=`pwd`
+         darwin_base_archive=`basename $darwin_archive`
+         darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null`
+         if test -n "$darwin_arches"; then 
+           darwin_arches=`echo "$darwin_arches" | sed -e 's/.*are://'`
+           darwin_arch=
+           $show "$darwin_base_archive has multiple architectures $darwin_arches"
+           for darwin_arch in  $darwin_arches ; do
+             mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+             # Remove the table of contents from the thin files.
+             $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true
+             $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true
+             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             $AR -xo "${darwin_base_archive}"
+             rm "${darwin_base_archive}"
+             cd "$darwin_curdir"
+           done # $darwin_arches
       ## Okay now we have a bunch of thin objects, gotta fatten them up :)
-         darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP`
-         darwin_file=
-         darwin_files=
-         for darwin_file in $darwin_filelist; do
+           darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP`
+           darwin_file=
+           darwin_files=
+           for darwin_file in $darwin_filelist; do
              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-             eval "lipo -create -output $darwin_file $darwin_files"
-         done
-         rm -rf unfat-$$
-         cd $darwin_orig_dir
-       else
-         cd $darwin_orig_dir
-         $show "(cd $my_xdir && $AR x $my_xabs)"
-         $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $?
-       fi
+             lipo -create -output "$darwin_file" $darwin_files
+           done # $darwin_filelist
+           rm -rf unfat-$$
+           cd "$darwin_orig_dir"
+         else
+           cd $darwin_orig_dir
+           (cd $my_xdir && $AR x $my_xabs) || exit $?
+         fi # $darwin_arches
+       fi # $run
       ;;
       *)
        # We will extract separately just the conflicting names and we will