From 1f33d574c2d18f0037f5e168dbd1a54d23dad6d7 Mon Sep 17 00:00:00 2001 From: Stefan Gartner Date: Sun, 3 Jan 2010 20:35:13 +0000 Subject: OS X Makefiles: * added some new variables (mostly the same as with scons): - USE_COCOA: use Cocoa for ghost (defaults to true) - MACOSX_ARCHITECTURE: can be ppc, ppc64, i386, x86_64. By default this is the host architecture (ppc for PowerPC Macs, i386 for Intel Macs). In theory this allows to cross compile blender for a different architecture, though cross compilation only works on Intel Macs, because makesdna and makesrna are built for the target architecture. For a 64 bit build, set MACOSX_ARCHITECTURE to x86_64 (Intel) or ppc64 (PowerPC). - MACOSX_MIN_VERS: minimum OS X version to run blender on (10.4 for 32 bit builds, 10.5 for 64 bit builds) - MACOSX_DEPLOYMENT_TARGET: needed by the linker to create an Application targeted for a specific OS version (defaults to 10.4 for 32 bit builds, 10.5 for 64 bit builds) - MACOSX_SDK: path to a specific SDK. currently not used - USE_QTKIT: use QTKit instead of QuickTime (defaults to true for 64 bit builds, as using QTKit is mandatory in that case)) * use the same compiler flags as scons * default compiler now is gcc-4.0 when building for 10.4 and gcc-4.2 when building for 10.5 * extract $(LCGDIR)/release/python_$(MACOSX_ARCHITECTURE).zip to Application bundle. This might break building on 10.4, to fix that, rename $(LCGDIR)/release/python.zip When compiling blender, only MACOSX_ARCHITECTURE might be of interest, as it allows doing 64 bit builds (or 32 bit PowerPC builds on Intel). All other variables are then set to reasonable defaults. For current users of the Makefile system, this commit shouldn't change much. --- source/Makefile | 16 +++--- source/blender/makesdna/intern/Makefile | 4 ++ source/blender/makesrna/intern/Makefile | 4 ++ source/blender/quicktime/apple/Makefile | 6 ++ source/blender/quicktime/apple/quicktime_export.c | 2 + source/blender/quicktime/apple/quicktime_import.c | 2 + source/darwin/Makefile | 6 +- source/nan_compile.mk | 68 +++++++++++++++++++---- source/nan_definitions.mk | 53 ++++++++++++++++-- source/nan_link.mk | 14 ++++- 10 files changed, 146 insertions(+), 29 deletions(-) (limited to 'source') diff --git a/source/Makefile b/source/Makefile index e08def0f9e2..87843dfbfc9 100644 --- a/source/Makefile +++ b/source/Makefile @@ -519,7 +519,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/blenderstatic: $(OBJS) $(GRPLIB) $(PULIB) $(COMLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"static"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"static"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderstatic $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(PULIB) $(COMLIB) $(LLIBS) $(SADD) $(LOPTS) @@ -533,7 +533,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/blender$(EXT): $(OBJS) $(GRPLIB) $(PULIB) $(COMLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blender$(EXT) $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(PULIB) $(COMLIB) $(LLIBS) $(DADD) $(LOPTS) @@ -547,7 +547,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/blenderplayer$(EXT): $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) @@ -561,7 +561,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/blenderdynplayer$(EXT): $(OBJS) $(COMLIB) $(SPLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(CCFLAGS) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderdynplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(LLIBS) $(DADD) $(LOPTS) @@ -575,7 +575,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/Blender3DPlugin$(SOEXT): $(PLUGAPPLIB_XPLINK) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(CCFLAGS) $(DYNLDFLAGS) -o $@ $(PLUGAPPLIB_XPLINK) $(LOPTS) @@ -591,7 +591,7 @@ DEFFILE = ./gameengine/GamePlayer/netscape/src/npB3DPlg.def $(DIR)/$(DEBUG_DIR)npB3DPlg$(SOEXT): $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif # $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS) $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS) /def:$(DEFFILE) @@ -602,7 +602,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/npBlender3DPlugin$(SOEXT): $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS) @@ -613,7 +613,7 @@ endif $(DIR)/$(DEBUG_DIR)bin/npTestPlugin$(SOEXT): $(NSPLUGLIB) @echo "****> Link $@" ifdef NAN_BUILDINFO - $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO + $(CCC) $(CCFLAGS) $(REL_CCFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_REV='"$(BUILD_REV)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO endif mkdir -p $(DIR)/$(DEBUG_DIR)bin $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGTESTLIB) $(LLIBS) $(DADD) $(LOPTS) diff --git a/source/blender/makesdna/intern/Makefile b/source/blender/makesdna/intern/Makefile index 857e53d2573..01c4d87a4fc 100644 --- a/source/blender/makesdna/intern/Makefile +++ b/source/blender/makesdna/intern/Makefile @@ -56,6 +56,10 @@ ifeq ($(OS),windows) endif endif +ifeq ($(OS), darwin) + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) +endif + clean:: @$(RM) $(DIR)/makesdna* $(DIR)/DNA.c @$(RM) $(DIR)/debug/makesdna* $(DIR)/debug/DNA.c diff --git a/source/blender/makesrna/intern/Makefile b/source/blender/makesrna/intern/Makefile index e4e4e859ed3..5fefb2ae15b 100644 --- a/source/blender/makesrna/intern/Makefile +++ b/source/blender/makesrna/intern/Makefile @@ -104,6 +104,10 @@ ifeq ($(OS),windows) endif endif +ifeq ($(OS), darwin) + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) +endif + clean:: @$(RM) $(DIR)/makesrna* $(DIR)/rna* @$(RM) $(DIR)/debug/makesrna* $(DIR)/debug/rna* diff --git a/source/blender/quicktime/apple/Makefile b/source/blender/quicktime/apple/Makefile index 19f87ed31e3..70f3f05c5f0 100644 --- a/source/blender/quicktime/apple/Makefile +++ b/source/blender/quicktime/apple/Makefile @@ -31,6 +31,12 @@ LIBNAME = blenderqt DIR = $(OCGDIR)/blender/$(LIBNAME) +ifeq ($(OS), $(findstring $(OS), "darwin")) + ifeq ($(USE_QTKIT),true) + OCSRCS += $(wildcard *.m) + endif +endif + include nan_compile.mk CFLAGS += $(LEVEL1_C_WARNINGS) diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index abce6c08395..3f9a6de3c2a 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -30,6 +30,7 @@ #ifdef WITH_QUICKTIME #if defined(_WIN32) || defined(__APPLE__) +#ifndef USE_QTKIT #include "DNA_scene_types.h" #include "DNA_windowmanager_types.h" @@ -886,6 +887,7 @@ void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +#endif /* USE_QTKIT */ #endif /* _WIN32 || __APPLE__ */ #endif /* WITH_QUICKTIME */ diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c index 571da92a292..6fd72131b00 100644 --- a/source/blender/quicktime/apple/quicktime_import.c +++ b/source/blender/quicktime/apple/quicktime_import.c @@ -30,6 +30,7 @@ #ifdef WITH_QUICKTIME #if defined(_WIN32) || defined(__APPLE__) +#ifndef USE_QTKIT #include "IMB_anim.h" #include "BLO_sys_types.h" @@ -771,6 +772,7 @@ bail: return ibuf; } +#endif /* USE_QTKIT */ #endif /* _WIN32 || __APPLE__ */ #endif /* WITH_QUICKTIME */ diff --git a/source/darwin/Makefile b/source/darwin/Makefile index 1431ab817ff..6007ff4d91c 100644 --- a/source/darwin/Makefile +++ b/source/darwin/Makefile @@ -31,7 +31,9 @@ include nan_definitions.mk DIR = $(OCGDIR)/$(DEBUG_DIR) -all:: +PYARCHIVE = python_$(MACOSX_ARCHITECTURE).zip + +all:: @# set up directory structure for the OSX aplication bundle @echo "---> creating directory structure for $(APPLICATION)" @rm -rf $(DIR)/bin/$(APPLICATION).app @@ -51,7 +53,7 @@ ifeq ($(APPLICATION), blender) @cp -R $(NANBLENDERHOME)/release/scripts $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/ @echo "---> copying python modules" @mkdir $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/python - @unzip -q $(LCGDIR)/release/python.zip -d $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/python/ + @unzip -q $(LCGDIR)/release/$(PYARCHIVE) -d $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/.blender/python/ endif @echo "---> removing SVN directories and Mac hidden files from distribution" @find $(DIR)/bin/$(APPLICATION).app -name CVS -prune -exec rm -rf {} \; diff --git a/source/nan_compile.mk b/source/nan_compile.mk index 03f5a0d1cd6..3255f102ab7 100644 --- a/source/nan_compile.mk +++ b/source/nan_compile.mk @@ -24,7 +24,7 @@ # # The Original Code is: all of this file. # -# Contributor(s): GSR +# Contributor(s): GSR, Stefan Gartner # # ***** END GPL LICENSE BLOCK ***** # @@ -70,21 +70,48 @@ DBG_CCFLAGS += -g # OS dependent parts --------------------------------------------------- ifeq ($(OS),darwin) - CC ?= gcc + CC ?= gcc CCC ?= g++ - ifeq ($(CPU),powerpc) - CFLAGS += -pipe -fPIC -ffast-math -mcpu=7450 -mtune=G5 -funsigned-char -fno-strict-aliasing -Wno-long-double - CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -Wno-long-double + ifeq ($(MACOSX_DEPLOYMENT_TARGET), 10.4) + CC = gcc-4.0 + CCC = g++-4.0 else - CFLAGS += -pipe -fPIC -ffast-math -march=pentium-m -funsigned-char -fno-strict-aliasing + ifeq ($(MACOSX_DEPLOYMENT_TARGET), 10.5) + CC = gcc-4.2 + CCC = g++-4.2 + endif + endif + ifeq ($(CPU),powerpc) + CFLAGS += -pipe -fPIC -ffast-math -mcpu=7450 -mtune=G5 -funsigned-char -fno-strict-aliasing CCFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing + else + CFLAGS += -pipe -fPIC -ffast-math -funsigned-char + CCFLAGS += -pipe -fPIC -funsigned-char endif -# REL_CFLAGS += -O -# REL_CCFLAGS += -O2 - CPPFLAGS += -D_THREAD_SAFE + + + CFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + CCFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + + ifeq ($(MACOSX_ARCHITECTURE), $(findstring $(MACOSX_ARCHITECTURE), "i386 x86_64")) + REL_CFLAGS += -O2 -ftree-vectorize -msse -msse2 -msse3 + REL_CCFLAGS += -O2 -ftree-vectorize -msse -msse2 -msse3 + endif + + ifeq ($(MACOSX_ARCHITECTURE), x86_64) + REL_CFLAGS += -mssse3 + REL_CCFLAGS += -mssse3 + endif + + CPPFLAGS += -D_THREAD_SAFE -fpascal-strings + ifeq ($(WITH_COCOA), true) CPPFLAGS += -DGHOST_COCOA endif + ifeq ($(USE_QTKIT), true) + CPPFLAGS += -DUSE_QTKIT + endif + NAN_DEPEND = true OPENGL_HEADERS = /System/Library/Frameworks/OpenGL.framework AR = ar @@ -324,6 +351,21 @@ $(DIR)/$(DEBUG_DIR)%.o: %.mm $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ endif +$(DIR)/$(DEBUG_DIR)%.o: %.m + ifdef NAN_DEPEND + @set -e; $(CC) -M $(CPPFLAGS) $< 2>/dev/null \ + | sed 's@\($*\)\.o[ :]*@$(DIR)/$(DEBUG_DIR)\1.o : @g' \ + > $(DIR)/$(DEBUG_DIR)$*.d; \ + [ -s $(DIR)/$(DEBUG_DIR)$*.d ] || $(RM) $(DIR)/$(DEBUG_DIR)$*.d + endif + ifdef NAN_QUIET + @echo " -- $< -- " + @$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + else + $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ + endif + + $(DIR)/$(DEBUG_DIR)%.res: %.rc ifeq ($(FREE_WINDOWS),true) windres $< -O coff -o $@ @@ -349,18 +391,20 @@ CCSRCS ?= $(wildcard *.cpp) JSRCS ?= $(wildcard *.java) ifdef NAN_DEPEND --include $(CSRCS:%.c=$(DIR)/$(DEBUG_DIR)%.d) $(CCSRCS:%.cpp=$(DIR)/$(DEBUG_DIR)%.d) $(OCSRCS:$.mm=$(DIR)/$(DEBUG_DIR)%.d) +-include $(CSRCS:%.c=$(DIR)/$(DEBUG_DIR)%.d) $(CCSRCS:%.cpp=$(DIR)/$(DEBUG_DIR)%.d) $(OCCSRCS:$.mm=$(DIR)/$(DEBUG_DIR)%.d) $(OCSRCS:$.m=$(DIR)/$(DEBUG_DIR)%.d) endif OBJS_AR := $(OBJS) OBJS_AR += $(CSRCS:%.c=%.o) OBJS_AR += $(CCSRCS:%.cpp=%.o) -OBJS_AR += $(OCSRCS:%.mm=%.o) +OBJS_AR += $(OCCSRCS:%.mm=%.o) +OBJS_AR += $(OCSRCS:%.m=%.o) OBJS_AR += $(WINRC:%.rc=%.res) OBJS += $(CSRCS:%.c=$(DIR)/$(DEBUG_DIR)%.o) OBJS += $(CCSRCS:%.cpp=$(DIR)/$(DEBUG_DIR)%.o) -OBJS += $(OCSRCS:%.mm=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(OCCSRCS:%.mm=$(DIR)/$(DEBUG_DIR)%.o) +OBJS += $(OCSRCS:%.m=$(DIR)/$(DEBUG_DIR)%.o) OBJS += $(WINRC:%.rc=$(DIR)/$(DEBUG_DIR)%.res) JCLASS += $(JSRCS:%.java=$(DIR)/$(DEBUG_DIR)%.class) diff --git a/source/nan_definitions.mk b/source/nan_definitions.mk index 50df0e777cc..952b57601b7 100644 --- a/source/nan_definitions.mk +++ b/source/nan_definitions.mk @@ -24,7 +24,7 @@ # # The Original Code is: all of this file. # -# Contributor(s): GSR +# Contributor(s): GSR, Stefan Gartner # # ***** END GPL LICENSE BLOCK ***** # @@ -108,7 +108,11 @@ ifndef CONFIG_GUESS export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libavdevice.a else export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg - export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a + ifeq ($(OS), darwin) + export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libxvidcore.a + else + export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libswscale.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavdevice.a + endif endif export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg @@ -155,6 +159,36 @@ ifndef CONFIG_GUESS export ID = $(shell whoami) export HOST = $(shell hostname -s) + # set target arch & os version + # architecture defaults to host arch, can be ppc, ppc64, i386, x86_64 + ifeq ($(CPU),powerpc) + export MACOSX_ARCHITECTURE ?= ppc + else + export MACOSX_ARCHITECTURE ?= i386 + endif + # target os version defaults to 10.4 for ppc & i386 (32 bit), 10.5 for ppc64, x86_64 + ifeq (64,$(findstring 64, $(MACOSX_ARCHITECTURE))) + export MACOSX_MIN_VERS ?= 10.5 + export MACOSX_DEPLOYMENT_TARGET ?= 10.5 + export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.5.sdk + else + export MACOSX_MIN_VERS ?= 10.4 + export MACOSX_DEPLOYMENT_TARGET ?= 10.4 + export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.4u.sdk + endif + + # useful for crosscompiling + ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE), "ppc ppc64")) + export CPU = powerpc + export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU) + export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU) + endif + ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE),"i386 x86_64")) + export CPU = i386 + export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU) + export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU) + endif + export NAN_PYTHON_VERSION = 3.1 ifeq ($(NAN_PYTHON_VERSION),3.1) @@ -199,9 +233,9 @@ ifndef CONFIG_GUESS export NAN_NO_KETSJI=false - ifeq ($(CPU), i386) - export WITH_OPENAL=false - endif + #ifeq ($(CPU), i386) + # export WITH_OPENAL=false + #endif # Location of MOZILLA/Netscape header files... export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include @@ -222,6 +256,15 @@ ifndef CONFIG_GUESS export NAN_SAMPLERATE ?= $(LCGDIR)/samplerate export NAN_SAMPLERATE_LIBS ?= $(NAN_SAMPLERATE)/lib/libsamplerate.a + # enable building with Cocoa + export WITH_COCOA ?= true + export USE_QTKIT ?= false + # use cocoa and qtkit for 64bit builds + ifeq (64, $(findstring 64, $(MACOSX_ARCHITECTURE))) + export WITH_COCOA = true + export USE_QTKIT = true + endif + else ifeq ($(OS),freebsd) diff --git a/source/nan_link.mk b/source/nan_link.mk index 0524ee7592d..f28a07f06a9 100644 --- a/source/nan_link.mk +++ b/source/nan_link.mk @@ -59,9 +59,19 @@ ifeq ($(OS),darwin) LLIBS += -framework Cocoa endif LLIBS += -framework Carbon -framework AGL -framework OpenGL - LLIBS += -framework QuickTime -framework CoreAudio - LLIBS += -framework AudioUnit -framework AudioToolbox + ifeq ($(WITH_QUICKTIME), true) + ifeq ($(USE_QTKIT), true) + LLIBS += -framework QTKit + else + LLIBS += -framework QuickTime + endif + endif + LLIBS += -framework CoreAudio + LLIBS += -framework AudioUnit -framework AudioToolbox LDFLAGS += -L/System/Library/Frameworks/OpenGL.framework/Libraries + # useful for crosscompiling + LDFLAGS += -arch $(MACOSX_ARCHITECTURE) #-isysroot $(MACOSX_SDK) -mmacosx-version-min=$(MACOSX_MIN_VERS) + DBG_LDFLAGS += -L/System/Library/Frameworks/OpenGL.framework/Libraries endif -- cgit v1.2.3