summaryrefslogtreecommitdiff
path: root/os/macosx
diff options
context:
space:
mode:
Diffstat (limited to 'os/macosx')
-rw-r--r--os/macosx/Makefile51
-rw-r--r--os/macosx/Makefile.setup94
2 files changed, 46 insertions, 99 deletions
diff --git a/os/macosx/Makefile b/os/macosx/Makefile
index 6e53126a7..02a7660e9 100644
--- a/os/macosx/Makefile
+++ b/os/macosx/Makefile
@@ -2,11 +2,29 @@
# This makefile is not a standalone makefile, but is called from the general one
# it contains targets specific to MacOS X
-ifdef UNIVERSAL_BINARY
ifdef TRIPPLE_BINARY
-TRIPPLE_BINARY:=tripple_binary
-endif
-UNIVERSAL_BINARY:=build_universal_binary
+# this is to add G5_FLAGS to ppc970 builds only. If the ability to add flags to a single arch only shows up in the future
+# we can get rid of this. Xcode supports arch dependant flags, but we can't do it in the makefile (yet?)
+%.o: %.c $(MAKE_CONFIG)
+ @echo '===> Compiling $<'
+ $(Q)$(CC) $(CFLAGS) $(CDEFS) -arch ppc -c -arch i386 -o $@.uni $<
+ $(Q)$(CC) $(CFLAGS) $(CDEFS) $(G5_FLAGS) -arch ppc970 -c -o $@.ppc970 $<
+ $(Q)lipo -create -output $@ $@.uni $@.ppc970
+ $(Q)rm $@.uni $@.ppc970
+
+%.o: %.cpp $(MAKE_CONFIG)
+ @echo '===> Compiling $<'
+ $(Q)$(CXX) $(CFLAGS) $(CDEFS) -arch ppc -arch i386 -c -o $@.uni $<
+ $(Q)$(CXX) $(CFLAGS) $(CDEFS) $(G5_FLAGS) -arch ppc970 -c -o $@.ppc970 $<
+ $(Q)lipo -create -output $@ $@.uni $@.ppc970
+ $(Q)rm $@.uni $@.ppc970
+
+%.o: %.m $(MAKE_CONFIG)
+ @echo '===> Compiling $<'
+ $(Q)$(CC) $(CFLAGS) $(CDEFS) -arch ppc -arch i386 -c -o $@.uni $<
+ $(Q)$(CC) $(CFLAGS) $(CDEFS) -arch ppc970 $(G5_FLAGS) -c -o $@.ppc970 $<
+ $(Q)lipo -create -output $@ $@.uni $@.ppc970
+ $(Q)rm $@.uni $@.ppc970
endif
ifdef UNIVERSAL_PPC_PART
@@ -16,31 +34,6 @@ else
BUILD_OSX_BUNDLE:=build_OSX_bundle
endif
-# building an universal binary
-# since we can only compile for PPC or x86 at any one time, we compile one and then
-# we make clean and compile the other one. In the end we use lipo to join them together
-# when this is done, we can continue with the targets from the first run, which is build_OSX_bundle
-
-$(UNIVERSAL_BINARY): $(TTD)
- $(Q)mkdir -p temp_binary_dir
- $(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
- $(Q)rm -rf $(TTD) $(OBJS) # delete all .o files so we can compile for a new CPU
- $(Q)make UNIVERSAL_PPC_PART:=1
- $(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
- @echo '===> Joining the PPC and x86 binaries into one universal one'
- $(Q)lipo temp_binary_dir/$(TTD)_a temp_binary_dir/$(TTD)_b -create -output $(TTD)
- $(Q)rm -rf temp_binary_dir
-
-$(TRIPPLE_BINARY): $(UNIVERSAL_BINARY)
- $(Q)mkdir -p temp_binary_dir
- $(Q)cp $(TTD) temp_binary_dir/$(TTD)_a
- $(Q)rm -rf $(TTD) $(OBJS) # delete all .o files so we can compile for a new CPU
- $(Q)make UNIVERSAL_PPC_PART:=1 IS_G5:=1
- $(Q)cp $(TTD) temp_binary_dir/$(TTD)_b
- @echo '===> Joining the Universal and G5 binaries into a tripple binary'
- $(Q)lipo temp_binary_dir/$(TTD)_a temp_binary_dir/$(TTD)_b -create -output $(TTD)
- $(Q)rm -rf temp_binary_dir
-
# build the bundle. OSX wants to keep apps in bundles, so we will give it one
# the good thing about bundles is that you can keep extra files in them, so we keep lng files and a data dir in it
diff --git a/os/macosx/Makefile.setup b/os/macosx/Makefile.setup
index 7cfb6d965..d5419900b 100644
--- a/os/macosx/Makefile.setup
+++ b/os/macosx/Makefile.setup
@@ -47,80 +47,34 @@ endif
endif
# setup flags if none are defined
-ifndef CFLAGS_PPC
- CFLAGS_PPC:= -isysroot /Developer/SDKs/MacOSX10.2.8.sdk
-endif
-ifndef LDFLAGS_PPC
- LDFLAGS_PPC:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk
-endif
-ifndef PPC_CC
- PPC_CC:=$(shell ls /usr/bin/powerpc-apple-darwin*-gcc* | tail -n 1)
-endif
-ifndef CFLAGS_x86
- CFLAGS_x86:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-endif
-ifndef LDFLAGS_x86
- LDFLAGS_x86:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
-endif
-ifndef x86_CC
- x86_CC:=$(shell ls /usr/bin/i686-apple-darwin*-gcc* | tail -n 1)
-endif
-ifdef WITH_PNG
- ifndef LIBPNG_PPC_CONFIG
- LIBPNG_PPC_CONFIG:=$(LIBPNG-CONFIG)
- endif
- ifndef LIBPNG_x86_CONFIG
- LIBPNG_x86_CONFIG:=$(LIBPNG-CONFIG)
- endif
-endif
-ifdef WITH_SDL
- ifndef SDL_PPC_CONFIG
- SDL_PPC_CONFIG:=$(SDL-CONFIG)
- endif
- ifndef SDL_x86_CONFIG
- SDL_x86_CONFIG:=$(SDL-CONFIG)
- endif
- ifndef x86_SDL_LIB
- x86_SDL_LIB:=$(shell echo "`$(SDL_x86_CONFIG) --prefix`/lib/libSDL-1.2.0.dylib")
- endif
+ifndef CFLAGS_JAGUAR
+ CFLAGS_JAGUAR:= -isysroot /Developer/SDKs/MacOSX10.2.8.sdk
+endif
+ifndef LDFLAGS_JAGUAR
+ LDFLAGS_JAGUAR:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk
+endif
+
+ifndef CFLAGS_UNIVERSAL
+ CFLAGS_UNIVERSAL:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
+endif
+ifndef LDFLAGS_UNIVERSAL
+ LDFLAGS_UNIVERSAL:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
endif
ifdef JAGUAR
- LIBPNG-CONFIG:=$(LIBPNG_PPC_CONFIG)
- SDL-CONFIG:=$(SDL_PPC_CONFIG)
- CC_TARGET:=$(PPC_CC)
- CFLAGS:= $(CFLAGS_PPC) -arch ppc
- LDFLAGS:= $(LDFLAGS_PPC)
+ CFLAGS:= $(CFLAGS_JAGUAR) -arch ppc
+ LDFLAGS:= $(LDFLAGS_JAGUAR)
+endif
+
+ifndef G5_FLAGS
+G5_FLAGS := -mtune=970 -mcpu=970 -mpowerpc-gpopt
endif
ifdef UNIVERSAL_BINARY
- # set up config files
- ifndef SKIP_LIB_TEST
- ifdef WITH_PNG
- TEST:=$(shell lipo -info `$(LIBPNG_PPC_CONFIG) --prefix`/lib/libpng.a | xargs -n 1 | grep "ppc"))
- ifndef TEST
-$(error no PPC libpng found)
- endif
- TEST:=$(shell lipo -info `$(LIBPNG_x86_CONFIG) --prefix`/lib/libpng.a | xargs -n 1 | grep "i386"))
- ifndef TEST
-$(error no x86 libpng found)
- endif
- endif
- endif
- LIBS:=
- OBJS:=
- ifdef UNIVERSAL_PPC_PART
- LIBPNG-CONFIG:=$(LIBPNG_PPC_CONFIG)
- SDL-CONFIG:=$(SDL_PPC_CONFIG)
- CC_TARGET:=$(PPC_CC)
- CFLAGS:= $(CFLAGS_PPC) -arch ppc
- LDFLAGS:= $(LDFLAGS_PPC)
- else
- LIBPNG-CONFIG:=$(LIBPNG_x86_CONFIG)
- SDL-CONFIG:=$(SDL_x86_CONFIG)
- CC_TARGET:=$(x86_CC)
- # clear the cached list of PPC libs
- CFLAGS:= $(CFLAGS_x86) -arch i386
- LDFLAGS:= $(LDFLAGS_x86)
- endif
+TARGET_CPU_FLAGS:= -arch ppc -arch i386
+LDFLAGS := $(LDFLAGS_UNIVERSAL) -arch ppc -arch i386
+CFLAGS += $(CFLAGS_UNIVERSAL)
+ifdef TRIPPLE_BINARY
+LDFLAGS += -arch ppc970
+endif
endif