Changeset 3761 for trunk/psLib/ltmain.sh
- Timestamp:
- Apr 22, 2005, 2:10:19 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/ltmain.sh (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/ltmain.sh
r3700 r3761 34 34 progpath="$0" 35 35 36 # RH: define SED for historic ltconfig's generated by Libtool 1.337 [ -z "$SED" ] && SED=sed38 39 36 # The name of this program: 40 37 progname=`echo "$progpath" | $SED $basename` … … 47 44 PROGRAM=ltmain.sh 48 45 PACKAGE=libtool 49 VERSION=1.5.6 50 TIMESTAMP=" (1.1220.2.95 2004/04/11 05:50:42)" 51 46 VERSION=1.5.8 47 TIMESTAMP=" (1.1220.2.118 2004/08/07 12:24:38)" 48 49 # See if we are running on zsh, and set the options which allow our 50 # commands through without removal of \ escapes. 51 if test -n "${ZSH_VERSION+set}" ; then 52 setopt NO_GLOB_SUBST 53 fi 52 54 53 55 # Check that we have a working $echo. … … 238 240 esac 239 241 fi 242 } 243 244 245 # func_extract_archives gentop oldlib ... 246 func_extract_archives () { 247 my_gentop="$1"; shift 248 my_oldlibs=${1+"$@"} 249 my_oldobjs="" 250 my_xlib="" 251 my_xabs="" 252 my_xdir="" 253 my_status="" 254 255 $show "${rm}r $my_gentop" 256 $run ${rm}r "$my_gentop" 257 $show "$mkdir $my_gentop" 258 $run $mkdir "$my_gentop" 259 my_status=$? 260 if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 261 exit $my_status 262 fi 263 264 for my_xlib in $my_oldlibs; do 265 # Extract the objects. 266 case $my_xlib in 267 [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 268 *) my_xabs=`pwd`"/$my_xlib" ;; 269 esac 270 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 271 my_xdir="$my_gentop/$my_xlib" 272 273 $show "${rm}r $my_xdir" 274 $run ${rm}r "$my_xdir" 275 $show "$mkdir $my_xdir" 276 $run $mkdir "$my_xdir" 277 status=$? 278 if test "$status" -ne 0 && test ! -d "$my_xdir"; then 279 exit $status 280 fi 281 case $host in 282 *-darwin*) 283 $show "Extracting $my_xabs" 284 # Do not bother doing anything if just a dry run 285 if test -z "$run"; then 286 darwin_orig_dir=`pwd` 287 cd $my_xdir || exit $? 288 darwin_archive=$my_xabs 289 darwin_curdir=`pwd` 290 darwin_base_archive=`basename $darwin_archive` 291 darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 292 if test -n "$darwin_arches"; then 293 darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 294 darwin_arch= 295 $show "$darwin_base_archive has multiple architectures $darwin_arches" 296 for darwin_arch in $darwin_arches ; do 297 mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 298 lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 299 # Remove the table of contents from the thin files. 300 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true 301 $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true 302 cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 303 $AR -xo "${darwin_base_archive}" 304 rm "${darwin_base_archive}" 305 cd "$darwin_curdir" 306 done # $darwin_arches 307 ## Okay now we have a bunch of thin objects, gotta fatten them up :) 308 darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP` 309 darwin_file= 310 darwin_files= 311 for darwin_file in $darwin_filelist; do 312 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 313 lipo -create -output "$darwin_file" $darwin_files 314 done # $darwin_filelist 315 rm -rf unfat-$$ 316 cd "$darwin_orig_dir" 317 else 318 cd $darwin_orig_dir 319 (cd $my_xdir && $AR x $my_xabs) || exit $? 320 fi # $darwin_arches 321 fi # $run 322 ;; 323 *) 324 # We will extract separately just the conflicting names and we will 325 # no longer touch any unique names. It is faster to leave these 326 # extract automatically by $AR in one run. 327 $show "(cd $my_xdir && $AR x $my_xabs)" 328 $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? 329 if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then 330 : 331 else 332 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 333 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 334 $AR t "$my_xabs" | sort | uniq -cd | while read -r count name 335 do 336 i=1 337 while test "$i" -le "$count" 338 do 339 # Put our $i before any first dot (extension) 340 # Never overwrite any file 341 name_to="$name" 342 while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to" 343 do 344 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` 345 done 346 $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')" 347 $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $? 348 i=`expr $i + 1` 349 done 350 done 351 fi 352 ;; 353 esac 354 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 355 done 356 357 func_extract_archives_result="$my_oldobjs" 240 358 } 241 359 # End of Shell function definitions … … 1982 2100 case $linkmode in 1983 2101 lib) 1984 if test "$deplibs_check_method" != pass_all; then 2102 valid_a_lib=no 2103 case $deplibs_check_method in 2104 match_pattern*) 2105 set dummy $deplibs_check_method 2106 match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2107 if eval $echo \"$deplib\" 2>/dev/null \ 2108 | $SED 10q \ 2109 | $EGREP "$match_pattern_regex" > /dev/null; then 2110 valid_a_lib=yes 2111 fi 2112 ;; 2113 pass_all) 2114 valid_a_lib=yes 2115 ;; 2116 esac 2117 if test "$valid_a_lib" != yes; then 1985 2118 $echo 1986 2119 $echo "*** Warning: Trying to link with static lib archive $deplib." … … 2155 2288 fi 2156 2289 else 2157 dir="$ladir/$objdir" 2158 absdir="$abs_ladir/$objdir" 2159 # Remove this search path later 2160 notinst_path="$notinst_path $abs_ladir" 2290 if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2291 dir="$ladir" 2292 absdir="$abs_ladir" 2293 # Remove this search path later 2294 notinst_path="$notinst_path $abs_ladir" 2295 else 2296 dir="$ladir/$objdir" 2297 absdir="$abs_ladir/$objdir" 2298 # Remove this search path later 2299 notinst_path="$notinst_path $abs_ladir" 2300 fi 2161 2301 fi # $installed = yes 2162 2302 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` … … 2945 3085 # Check that each of the things are valid numbers. 2946 3086 case $current in 2947 [0-9]*) ;;3087 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; 2948 3088 *) 2949 3089 $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 … … 2954 3094 2955 3095 case $revision in 2956 [0-9]*) ;;3096 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; 2957 3097 *) 2958 3098 $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 … … 2963 3103 2964 3104 case $age in 2965 [0-9]*) ;;3105 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; 2966 3106 *) 2967 3107 $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 … … 2991 3131 # Darwin ld doesn't like 0 for these options... 2992 3132 minor_current=`expr $current + 1` 2993 verstring=" -compatibility_version $minor_current -current_version$minor_current.$revision"3133 verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 2994 3134 ;; 2995 3135 … … 3679 3819 else 3680 3820 gentop="$output_objdir/${outputname}x" 3681 $show "${rm}r $gentop"3682 $run ${rm}r "$gentop"3683 $show "$mkdir $gentop"3684 $run $mkdir "$gentop"3685 status=$?3686 if test "$status" -ne 0 && test ! -d "$gentop"; then3687 exit $status3688 fi3689 3821 generated="$generated $gentop" 3690 3822 3691 for xlib in $convenience; do 3692 # Extract the objects. 3693 case $xlib in 3694 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; 3695 *) xabs=`pwd`"/$xlib" ;; 3696 esac 3697 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` 3698 xdir="$gentop/$xlib" 3699 3700 $show "${rm}r $xdir" 3701 $run ${rm}r "$xdir" 3702 $show "$mkdir $xdir" 3703 $run $mkdir "$xdir" 3704 status=$? 3705 if test "$status" -ne 0 && test ! -d "$xdir"; then 3706 exit $status 3707 fi 3708 # We will extract separately just the conflicting names and we will no 3709 # longer touch any unique names. It is faster to leave these extract 3710 # automatically by $AR in one run. 3711 $show "(cd $xdir && $AR x $xabs)" 3712 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? 3713 if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then 3714 : 3715 else 3716 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 3717 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 3718 $AR t "$xabs" | sort | uniq -cd | while read -r count name 3719 do 3720 i=1 3721 while test "$i" -le "$count" 3722 do 3723 # Put our $i before any first dot (extension) 3724 # Never overwrite any file 3725 name_to="$name" 3726 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" 3727 do 3728 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` 3729 done 3730 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" 3731 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? 3732 i=`expr $i + 1` 3733 done 3734 done 3735 fi 3736 3737 libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 3738 done 3739 fi 3740 fi 3741 3823 func_extract_archives $gentop $convenience 3824 libobjs="$libobjs $func_extract_archives_result" 3825 fi 3826 fi 3827 3742 3828 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 3743 3829 eval flag=\"$thread_safe_flag_spec\" … … 3977 4063 else 3978 4064 gentop="$output_objdir/${obj}x" 3979 $show "${rm}r $gentop"3980 $run ${rm}r "$gentop"3981 $show "$mkdir $gentop"3982 $run $mkdir "$gentop"3983 status=$?3984 if test "$status" -ne 0 && test ! -d "$gentop"; then3985 exit $status3986 fi3987 4065 generated="$generated $gentop" 3988 4066 3989 for xlib in $convenience; do 3990 # Extract the objects. 3991 case $xlib in 3992 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; 3993 *) xabs=`pwd`"/$xlib" ;; 3994 esac 3995 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` 3996 xdir="$gentop/$xlib" 3997 3998 $show "${rm}r $xdir" 3999 $run ${rm}r "$xdir" 4000 $show "$mkdir $xdir" 4001 $run $mkdir "$xdir" 4002 status=$? 4003 if test "$status" -ne 0 && test ! -d "$xdir"; then 4004 exit $status 4005 fi 4006 # We will extract separately just the conflicting names and we will no 4007 # longer touch any unique names. It is faster to leave these extract 4008 # automatically by $AR in one run. 4009 $show "(cd $xdir && $AR x $xabs)" 4010 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? 4011 if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then 4012 : 4013 else 4014 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 4015 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 4016 $AR t "$xabs" | sort | uniq -cd | while read -r count name 4017 do 4018 i=1 4019 while test "$i" -le "$count" 4020 do 4021 # Put our $i before any first dot (extension) 4022 # Never overwrite any file 4023 name_to="$name" 4024 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" 4025 do 4026 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` 4027 done 4028 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" 4029 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? 4030 i=`expr $i + 1` 4031 done 4032 done 4033 fi 4034 4035 reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 4036 done 4067 func_extract_archives $gentop $convenience 4068 reload_conv_objs="$reload_objs $func_extract_archives_result" 4037 4069 fi 4038 4070 fi … … 4815 4847 # The HP-UX ksh and POSIX shell print the target directory to stdout 4816 4848 # if CDPATH is set. 4817 if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi 4849 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH 4818 4850 4819 4851 relink_command=\"$relink_command\" … … 4992 5024 if test -n "$addlibs"; then 4993 5025 gentop="$output_objdir/${outputname}x" 4994 $show "${rm}r $gentop"4995 $run ${rm}r "$gentop"4996 $show "$mkdir $gentop"4997 $run $mkdir "$gentop"4998 status=$?4999 if test "$status" -ne 0 && test ! -d "$gentop"; then5000 exit $status5001 fi5002 5026 generated="$generated $gentop" 5003 5027 5004 # Add in members from convenience archives. 5005 for xlib in $addlibs; do 5006 # Extract the objects. 5007 case $xlib in 5008 [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; 5009 *) xabs=`pwd`"/$xlib" ;; 5010 esac 5011 xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` 5012 xdir="$gentop/$xlib" 5013 5014 $show "${rm}r $xdir" 5015 $run ${rm}r "$xdir" 5016 $show "$mkdir $xdir" 5017 $run $mkdir "$xdir" 5018 status=$? 5019 if test "$status" -ne 0 && test ! -d "$xdir"; then 5020 exit $status 5021 fi 5022 # We will extract separately just the conflicting names and we will no 5023 # longer touch any unique names. It is faster to leave these extract 5024 # automatically by $AR in one run. 5025 $show "(cd $xdir && $AR x $xabs)" 5026 $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? 5027 if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then 5028 : 5029 else 5030 $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 5031 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 5032 $AR t "$xabs" | sort | uniq -cd | while read -r count name 5033 do 5034 i=1 5035 while test "$i" -le "$count" 5036 do 5037 # Put our $i before any first dot (extension) 5038 # Never overwrite any file 5039 name_to="$name" 5040 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" 5041 do 5042 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` 5043 done 5044 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" 5045 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? 5046 i=`expr $i + 1` 5047 done 5048 done 5049 fi 5050 5051 oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` 5052 done 5028 func_extract_archives $gentop $addlibs 5029 oldobjs="$oldobjs $func_extract_archives_result" 5053 5030 fi 5054 5031 … … 5992 5969 5993 5970 # Now prepare to actually exec the command. 5994 exec_cmd="\ $cmd$args"5971 exec_cmd="\"\$cmd\"$args" 5995 5972 else 5996 5973 # Display what would be done. … … 5999 5976 $echo "export $shlibpath_var" 6000 5977 fi 6001 $echo "$cmd$args"5978 eval \$echo \"\$cmd\"$args 6002 5979 exit $EXIT_SUCCESS 6003 5980 fi
Note:
See TracChangeset
for help on using the changeset viewer.
