OS X Makefiles:
authorStefan Gartner <stefang@aon.at>
Sun, 3 Jan 2010 20:35:13 +0000 (20:35 +0000)
committerStefan Gartner <stefang@aon.at>
Sun, 3 Jan 2010 20:35:13 +0000 (20:35 +0000)
 * 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.

intern/ghost/intern/Makefile
source/Makefile
source/blender/makesdna/intern/Makefile
source/blender/makesrna/intern/Makefile
source/blender/quicktime/apple/Makefile
source/blender/quicktime/apple/quicktime_export.c
source/blender/quicktime/apple/quicktime_import.c
source/darwin/Makefile
source/nan_compile.mk
source/nan_definitions.mk
source/nan_link.mk

index a6392662c3031e276414966f43dded6a20e4a9f0..d9f2bfe7cde07c41178d51112cc47ed85c1e3175 100644 (file)
@@ -42,7 +42,7 @@ CCSRCS += GHOST_NDOFManager.cpp
 
 ifeq ($(OS),$(findstring $(OS), "darwin"))
     ifeq ($(WITH_COCOA), true)
-        OCSRCS += $(wildcard *Cocoa.mm)
+        OCCSRCS += $(wildcard *Cocoa.mm)
         CPPFLAGS += -DGHOST_COCOA
         ifeq ($(WITH_QUICKTIME), true)
             CPPFLAGS += -DWITH_QUICKTIME
index e08def0f9e271985a9af9c35afe283966bbdb836..87843dfbfc93b61eb1370317d9e656207906ac97 100644 (file)
@@ -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)
index 857e53d2573061c4713f1f9cb916fba5e1769f3e..01c4d87a4fc13a7ef56109ffac0797243f44903d 100644 (file)
@@ -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
index e4e4e859ed3966e439c01425b2de6549028e6b4a..5fefb2ae15bb6e2f23028c79d7a70c50081255da 100644 (file)
@@ -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*
index 19f87ed31e31462cf0bd9e50671801bc1521bc59..70f3f05c5f0a3062b397c407dff4cc516242b419 100644 (file)
 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)
index abce6c0839554ab5b1d2053f433886ef4d9d9d11..3f9a6de3c2a8cc9ab994dbf071e96e80a6f60ccb 100644 (file)
@@ -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 */
 
index 571da92a29257b3ba97c155282d48aeb49a9d899..6fd72131b004b86f20cb994a27b2e91ec6d3a297 100644 (file)
@@ -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 */
index 1431ab817ff97dad7448fe71b3594e64e0b29bc8..6007ff4d91c1b80b873165053951984198b42da6 100644 (file)
@@ -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 {} \;
index 03f5a0d1cd6799974ab5656715ce3404c7af68c9..3255f102ab71acb6c06dfffb9cf1dc28c4627eb8 100644 (file)
@@ -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)
index 50df0e777cc41cd88fb26a5a154818e69e9af561..952b57601b76828f7ba114ef465bfa58426c8a6d 100644 (file)
@@ -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)
 
index 0524ee7592d75822c810e149eb946bd08dae7557..f28a07f06a947a700189ba803d4cdc1fd44827fb 100644 (file)
@@ -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