From: Peter O'Gorman Date: Thu, 22 Jul 2004 13:37:52 +0000 (+0000) Subject: * ltmain.in [darwin](func_extract_archives): Clean up last commit X-Git-Tag: release-1-9b~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db6c7527f7e45d4ead85a61d942d6234f24eeab0;p=thirdparty%2Flibtool.git * ltmain.in [darwin](func_extract_archives): Clean up last commit a little, some suggestions are from Albert Chin, those that are broken are mine. --- diff --git a/ChangeLog b/ChangeLog index 594c1586d..2b53d2cd9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-07-22 Peter O'Gorman + * 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. diff --git a/ltmain.in b/ltmain.in index 9666660ac..411181e87 100644 --- 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