aboutsummaryrefslogtreecommitdiffstats
path: root/macosx-support-lib-patches/portaudio-configure.in.patch
blob: 96784697bf923d0c82f3e255cb7a5ff7c23f4869 (plain)
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=""