diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2014-03-20 22:22:17 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2014-03-20 22:26:24 +0100 |
commit | 258e4ad850097f334beb033031b62a1039e3575b (patch) | |
tree | 85e31c8df9f45d174cda8cc133aa698303b2aad8 | |
parent | c18908d6bd493ea11c37df20dba3bc07d04539c2 (diff) | |
download | rockbox-258e4ad850097f334beb033031b62a1039e3575b.tar.gz rockbox-258e4ad850097f334beb033031b62a1039e3575b.zip |
OS X: detect clang and build for x86 target only.
Newer versions of Xcode / OS X don't support PPC code anymore and replace gcc
with clang. When clang is detected assume we want to build for the default
architecture only and change the minimum OS X version to 10.5.
Change-Id: I5843fa9bb3d957ec6f0a537e857608ad99c31517
-rw-r--r-- | rbutil/libtools.make | 8 | ||||
-rw-r--r-- | tools/rbspeex/Makefile | 12 | ||||
-rw-r--r-- | tools/ucl/src/Makefile | 12 |
3 files changed, 25 insertions, 7 deletions
diff --git a/rbutil/libtools.make b/rbutil/libtools.make index 4623808f94..7a125f98ea 100644 --- a/rbutil/libtools.make +++ b/rbutil/libtools.make | |||
@@ -63,7 +63,12 @@ $(info Compiler creates $(COMPILETARGET) binaries) | |||
63 | 63 | ||
64 | # OS X specifics. Needs to consider cross compiling for Windows. | 64 | # OS X specifics. Needs to consider cross compiling for Windows. |
65 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) | 65 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) |
66 | # when building libs for OS X build for both i386 and ppc at the same time. | 66 | # When building for 10.4+ we need to use gcc. Otherwise clang is used, so use |
67 | # that to determine if we need to set arch and isysroot. | ||
68 | ifeq ($(findstring __clang__,$(CPPDEFINES)),__clang__) | ||
69 | CFLAGS += -mmacosx-version-min=10.5 | ||
70 | else | ||
71 | # when building libs for OS X 10.4+ build for both i386 and ppc at the same time. | ||
67 | # This creates fat objects, and ar can only create the archive but not operate | 72 | # This creates fat objects, and ar can only create the archive but not operate |
68 | # on it. As a result the ar call must NOT use the u (update) flag. | 73 | # on it. As a result the ar call must NOT use the u (update) flag. |
69 | ARCHFLAGS += -arch ppc -arch i386 | 74 | ARCHFLAGS += -arch ppc -arch i386 |
@@ -73,6 +78,7 @@ CC = gcc-4.0 | |||
73 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 | 78 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 |
74 | NATIVECC = gcc-4.0 | 79 | NATIVECC = gcc-4.0 |
75 | endif | 80 | endif |
81 | endif | ||
76 | WINDRES = windres | 82 | WINDRES = windres |
77 | 83 | ||
78 | BUILD_DIR ?= $(TARGET_DIR)build$(COMPILETARGET) | 84 | BUILD_DIR ?= $(TARGET_DIR)build$(COMPILETARGET) |
diff --git a/tools/rbspeex/Makefile b/tools/rbspeex/Makefile index 785a99239a..89e21f8022 100644 --- a/tools/rbspeex/Makefile +++ b/tools/rbspeex/Makefile | |||
@@ -35,15 +35,21 @@ COMPILETARGET = mingw | |||
35 | else | 35 | else |
36 | # OS X specifics. Needs to consider cross compiling for Windows. | 36 | # OS X specifics. Needs to consider cross compiling for Windows. |
37 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) | 37 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) |
38 | # when building libs for OS X build for both i386 and ppc at the same time. | 38 | # When building for 10.4+ we need to use gcc. Otherwise clang is used, so use |
39 | # that to determine if we need to set arch and isysroot. | ||
40 | ifeq ($(findstring __clang__,$(CPPDEFINES)),__clang__) | ||
41 | CFLAGS += -mmacosx-version-min=10.5 | ||
42 | else | ||
43 | # when building libs for OS X 10.4+ build for both i386 and ppc at the same time. | ||
39 | # This creates fat objects, and ar can only create the archive but not operate | 44 | # This creates fat objects, and ar can only create the archive but not operate |
40 | # on it. As a result the ar call must NOT use the u (update) flag. | 45 | # on it. As a result the ar call must NOT use the u (update) flag. |
41 | ARCHFLAGS = -arch ppc -arch i386 | 46 | ARCHFLAGS += -arch ppc -arch i386 |
42 | # building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode) | 47 | # building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode) |
43 | # might need adjustment for older Xcode. | 48 | # might need adjustment for older Xcode. |
44 | CC ?= gcc-4.0 | 49 | CC = gcc-4.0 |
45 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 | 50 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 |
46 | NATIVECC ?= gcc-4.0 | 51 | NATIVECC ?= gcc-4.0 |
52 | endif | ||
47 | COMPILETARGET = darwin | 53 | COMPILETARGET = darwin |
48 | else | 54 | else |
49 | COMPILETARGET = posix | 55 | COMPILETARGET = posix |
diff --git a/tools/ucl/src/Makefile b/tools/ucl/src/Makefile index ca29d7c8a8..a741f1ee8c 100644 --- a/tools/ucl/src/Makefile +++ b/tools/ucl/src/Makefile | |||
@@ -32,15 +32,21 @@ COMPILETARGET = mingw | |||
32 | else | 32 | else |
33 | # OS X specifics. Needs to consider cross compiling for Windows. | 33 | # OS X specifics. Needs to consider cross compiling for Windows. |
34 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) | 34 | ifeq ($(findstring APPLE,$(CPPDEFINES)),APPLE) |
35 | # when building libs for OS X build for both i386 and ppc at the same time. | 35 | # When building for 10.4+ we need to use gcc. Otherwise clang is used, so use |
36 | # that to determine if we need to set arch and isysroot. | ||
37 | ifeq ($(findstring __clang__,$(CPPDEFINES)),__clang__) | ||
38 | CFLAGS += -mmacosx-version-min=10.5 | ||
39 | else | ||
40 | # when building libs for OS X 10.4+ build for both i386 and ppc at the same time. | ||
36 | # This creates fat objects, and ar can only create the archive but not operate | 41 | # This creates fat objects, and ar can only create the archive but not operate |
37 | # on it. As a result the ar call must NOT use the u (update) flag. | 42 | # on it. As a result the ar call must NOT use the u (update) flag. |
38 | ARCHFLAGS = -arch ppc -arch i386 | 43 | ARCHFLAGS += -arch ppc -arch i386 |
39 | # building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode) | 44 | # building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode) |
40 | # might need adjustment for older Xcode. | 45 | # might need adjustment for older Xcode. |
41 | CC ?= gcc-4.0 | 46 | CC = gcc-4.0 |
42 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 | 47 | CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 |
43 | NATIVECC ?= gcc-4.0 | 48 | NATIVECC ?= gcc-4.0 |
49 | endif | ||
44 | COMPILETARGET = darwin | 50 | COMPILETARGET = darwin |
45 | else | 51 | else |
46 | COMPILETARGET = posix | 52 | COMPILETARGET = posix |