1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
--- configure.in.dist 2011-11-10 20:06:17.000000000 -0800
+++ configure.in 2012-08-11 13:57:51.000000000 -0700
@@ -208,23 +208,63 @@
LIBS="-framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework Carbon"
if test "x$enable_mac_universal" = "xyes" ; then
- if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
- mac_version_min="-mmacosx-version-min=10.3"
- mac_arches="-arch i386 -arch ppc -arch x86_64 -arch ppc64"
- mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
- elif [[ -d /Developer/SDKs/MacOSX10.6.sdk ]] ; then
- mac_version_min="-mmacosx-version-min=10.4"
- mac_arches="-arch i386 -arch x86_64"
- mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.6.sdk"
- elif [[ -d /Developer/SDKs/MacOSX10.7.sdk ]] ; then
- mac_version_min="-mmacosx-version-min=10.4"
- mac_arches="-arch i386 -arch x86_64"
- mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.7.sdk"
- else
- mac_version_min="-mmacosx-version-min=10.3"
- mac_arches="-arch i386 -arch ppc"
- mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
- fi
+ case "xcodebuild -version | sed -n 's/Xcode \(.*\)/\1/p'" in
+
+ [12]*|3.0|3.1)
+ dnl In pre-3.2 versions of Xcode, xcodebuild doesn't
+ dnl support -sdk, so we can't use that to look for
+ dnl SDKs. However, in those versions of Xcode, the
+ dnl SDKs are under /Developer/SDKs, so we can just look
+ dnl there. Also, we assume they had no SDKs later
+ dnl than 10.5, as 3.2 was the version that came with
+ dnl 10.6, at least if the Wikipedia page for Xcode
+ dnl is to be believed.
+ if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
+ mac_version_min="-mmacosx-version-min=10.3"
+ mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.5.sdk"
+ else
+ mac_version_min="-mmacosx-version-min=10.3"
+ mac_sysroot="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+ fi
+ ;;
+
+ *)
+ dnl In 3.2 and later, xcodebuild supports -sdk, and, in
+ dnl 4.3 and later, the SDKs aren't under /Developer/SDKs
+ dnl as there *is* no /Developer, so we use -sdk to check
+ dnl what SDKs are available and to get the full path of
+ dnl the SDKs.
+ if xcodebuild -version -sdk macosx10.5 Path >/dev/null 2>&1 ; then
+ mac_version_min="-mmacosx-version-min=10.3"
+ mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.5 Path`"
+ elif xcodebuild -version -sdk macosx10.6 Path >/dev/null 2>&1 ; then
+ mac_version_min="-mmacosx-version-min=10.4"
+ mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.6 Path`"
+ elif xcodebuild -version -sdk macosx10.7 Path >/dev/null 2>&1 ; then
+ mac_version_min="-mmacosx-version-min=10.4"
+ mac_sysroot="-isysroot `xcodebuild -version -sdk macosx10.7 Path`"
+ else
+ AC_MSG_ERROR([Couldn't find 10.5, 10.6, or 10.7 SDK])
+ fi
+ esac
+
+ dnl Pick which architectures to build for based on what
+ dnl the compiler supports.
+ mac_arches=""
+ for arch in i386 x86_64 ppc ppc64
+ do
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -arch $arch"
+ AC_TRY_COMPILE([], [return 0;],
+ [
+ if [[ -z "$mac_arches" ]] ; then
+ mac_arches="-arch $arch"
+ else
+ mac_arches="$mac_arches -arch $arch"
+ fi
+ ])
+ CFLAGS="$save_CFLAGS"
+ done
else
mac_arches=""
mac_sysroot=""
|