comparison build-scripts/ltmain.sh @ 1611:ec3466b08f17

Fixed bug #177 The attached patch changes configure.in to use "-framework FOO" instead of "-Wl,-framework,FOO". This avoid some issues with certain versions of libtool that do not handle -framework properly. Some versions of libtool will try to reorder the two parts of the option, or render the 2nd part of the argument to the relative path of a non-existent library. Note: It is not enough if SDL uses a version of libtool that does this correctly, because these -framework options show up in "sdl-config --libs". Hence, some 3rd party apps which still ship with an old libtool have troubles compiling under Mac OS X.
author Sam Lantinga <slouken@libsdl.org>
date Fri, 24 Mar 2006 05:11:51 +0000
parents a740bca2a1b1
children 14717b52abc0
comparison
equal deleted inserted replaced
1610:a1ee5944412b 1611:ec3466b08f17
1411 prev= 1411 prev=
1412 compile_command="$compile_command $qarg" 1412 compile_command="$compile_command $qarg"
1413 finalize_command="$finalize_command $qarg" 1413 finalize_command="$finalize_command $qarg"
1414 continue 1414 continue
1415 ;; 1415 ;;
1416 framework)
1417 case $host in
1418 *-*-darwin*)
1419 case "$deplibs " in
1420 *" $qarg.framework "*) ;;
1421 *) deplibs="$deplibs $qarg.framework" # this is fixed later
1422 ;;
1423 esac
1424 ;;
1425 esac
1426 prev=
1427 continue
1428 ;;
1429 shrext) 1416 shrext)
1430 shrext_cmds="$arg" 1417 shrext_cmds="$arg"
1431 prev= 1418 prev=
1432 continue 1419 continue
1433 ;; 1420 ;;
1797 continue 1784 continue
1798 ;; 1785 ;;
1799 1786
1800 -XCClinker) 1787 -XCClinker)
1801 prev=xcclinker 1788 prev=xcclinker
1802 continue
1803 ;;
1804
1805 -framework)
1806 prev=framework
1807 continue 1789 continue
1808 ;; 1790 ;;
1809 1791
1810 # Some other compiler flag. 1792 # Some other compiler flag.
1811 -* | +*) 1793 -* | +*)
2188 *) ;; 2170 *) ;;
2189 esac 2171 esac
2190 fi 2172 fi
2191 fi 2173 fi
2192 ;; # -l 2174 ;; # -l
2193 *.framework)
2194 if test "$linkmode,$pass" = "prog,link"; then
2195 compile_deplibs="$deplib $compile_deplibs"
2196 finalize_deplibs="$deplib $finalize_deplibs"
2197 else
2198 deplibs="$deplib $deplibs"
2199 if test "$linkmode" = lib ; then
2200 newdependency_libs="$deplib $newdependency_libs"
2201 fi
2202 fi
2203 continue
2204 ;;
2205 -L*) 2175 -L*)
2206 case $linkmode in 2176 case $linkmode in
2207 lib) 2177 lib)
2208 deplibs="$deplib $deplibs" 2178 deplibs="$deplib $deplibs"
2209 test "$pass" = conv && continue 2179 test "$pass" = conv && continue
2343 2313
2344 # Read the .la file 2314 # Read the .la file
2345 case $lib in 2315 case $lib in
2346 */* | *\\*) . $lib ;; 2316 */* | *\\*) . $lib ;;
2347 *) . ./$lib ;; 2317 *) . ./$lib ;;
2348 esac
2349
2350 case $host in
2351 *-*-darwin*)
2352 # Convert "-framework foo" to "foo.framework" in dependency_libs
2353 test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.framework/g'`
2354 ;;
2355 esac 2318 esac
2356 2319
2357 if test "$linkmode,$pass" = "lib,link" || 2320 if test "$linkmode,$pass" = "lib,link" ||
2358 test "$linkmode,$pass" = "prog,scan" || 2321 test "$linkmode,$pass" = "prog,scan" ||
2359 { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2322 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2972 break 2935 break
2973 fi 2936 fi
2974 done 2937 done
2975 path="" 2938 path=""
2976 ;; 2939 ;;
2977 *.framework)
2978 case $host in
2979 *-*-darwin*)
2980 depdepl="$deplib"
2981 ;;
2982 esac
2983 ;;
2984 *) continue ;; 2940 *) continue ;;
2985 esac 2941 esac
2986 ;; 2942 ;;
2987 *) continue ;; 2943 *) continue ;;
2988 esac 2944 esac
3846 build_libtool_libs=no 3802 build_libtool_libs=no
3847 fi 3803 fi
3848 fi 3804 fi
3849 fi 3805 fi
3850 fi 3806 fi
3851 # Time to change all our "foo.framework" stuff back to "-framework foo"
3852 case $host in
3853 *-*-darwin*)
3854 newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
3855 dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).framework%%g'`
3856 ;;
3857 esac
3858 # Done checking deplibs! 3807 # Done checking deplibs!
3859 deplibs=$newdeplibs 3808 deplibs=$newdeplibs
3860 fi 3809 fi
3861 3810
3862 3811
4392 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4341 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4393 ;; 4342 ;;
4394 esac 4343 esac
4395 4344
4396 case $host in 4345 case $host in
4397 *-*-darwin*) 4346 *darwin*)
4398 # Don't allow lazy linking, it breaks C++ global constructors 4347 # Don't allow lazy linking, it breaks C++ global constructors
4399 if test "$tagname" = CXX ; then 4348 if test "$tagname" = CXX ; then
4400 compile_command="$compile_command ${wl}-bind_at_load" 4349 compile_command="$compile_command ${wl}-bind_at_load"
4401 finalize_command="$finalize_command ${wl}-bind_at_load" 4350 finalize_command="$finalize_command ${wl}-bind_at_load"
4402 fi 4351 fi
4403 # Time to change all our "foo.framework" stuff back to "-framework foo"
4404 compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
4405 finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
4406 ;; 4352 ;;
4407 esac 4353 esac
4408 4354
4409 4355
4410 # move library search paths that coincide with paths to not yet 4356 # move library search paths that coincide with paths to not yet