4 # ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU General Public License
8 # as published by the Free Software Foundation; either version 2
9 # of the License, or (at your option) any later version. The Blender
10 # Foundation also sells licenses for use in proprietary software under
11 # the Blender License. See http://www.blender.org/BL/ for information
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24 # All rights reserved.
26 # The Original Code is: all of this file.
28 # Contributor(s): none yet.
30 # ***** END GPL/BL DUAL LICENSE BLOCK *****
32 # Top level makefile. Start looping through subdirs and link....
36 export NANENV := $(shell env | grep NAN_)
39 include nan_definitions.mk
41 DIRS = creator blender kernel gameengine
47 ########## buildinfo kludge ###################
48 CPPFLAGS += -I../Physics/common
49 CPPFLAGS += -I../Physics/Dummy
51 BUILDINFO_O = $(DIR)/$(DEBUG_DIR)buildinfo.o
52 BUILDINFO_C = $(SRCHOME)/creator/buildinfo.c
53 BUILD_DATE := $(shell date "+%Y-%m-%d")
54 BUILD_TIME := $(shell date "+%H:%M:%S")
57 ############# set pyplayerlib ##################
59 PYPLAYERLIB ?= $(PYLIB)
61 ############# libraries ##################
62 # COMLIB COMmon LIBraries for all targets
63 # BPLIB Browser Plugin LIBraries
64 # SPLIB1 Standalone Player LIBraries (pre COMLIB)
65 # SPLIB Standalone Player LIBraries (post COMLIB)
66 # PULIB PUblisher LIBraries
67 # GRPLIB Gui and Render LIBraries for Publisher
68 # LLIBS dynamic system libraries
69 # SADD Static OpenGL libraries
70 # DADD Dynamic OpenGL libraries
71 # NSPLUGLIB PLUGin LIBraries for ns-style api
72 # PLUGAPPLIB libs that form the application to be plugged in
73 # Note: the order is important here
75 GRPLIB = $(OCGDIR)/creator/$(DEBUG_DIR)libcreator.a
76 GRPLIB += $(OCGDIR)/blender/src/$(DEBUG_DIR)libsrcpublisher.a
77 GRPLIB += $(OCGDIR)/blender/radiosity/$(DEBUG_DIR)libradiosity.a
78 GRPLIB += $(NAN_DECIMATION)/lib/libdecimation.a
79 GRPLIB += $(NAN_BSP)/lib/$(DEBUG_DIR)libbsp.a
80 GRPLIB += $(NAN_GHOST)/lib/$(DEBUG_DIR)libghost.a
81 GRPLIB += $(NAN_STRING)/lib/$(DEBUG_DIR)libstring.a
82 GRPLIB += $(OCGDIR)/blender/img/$(DEBUG_DIR)libimg.a
83 GRPLIB += $(OCGDIR)/blender/renderconverter/$(DEBUG_DIR)librenderconverter.a
84 GRPLIB += $(OCGDIR)/blender/render/$(DEBUG_DIR)librender.a
85 GRPLIB += $(OCGDIR)/blender/bpython/$(DEBUG_DIR)libbpython.a
86 GRPLIB += $(OCGDIR)/blender/bpython/libfrozen.a
88 # nlin: the reason that some libraries appear more than once below is
89 # to handle circular dependencies in linking among libraries... some
90 # linkers (e.g. under Linux) need libs to be specified multiple times
91 # to properly resolve circular dependencies. ugly, but it works...
92 # the repeat entries could probably be trimmed down.
93 COMLIB = $(OCGDIR)/blender/blenkernel/$(DEBUG_DIR)libblenkernel.a
94 COMLIB += $(OCGDIR)/blender/blenloader/$(DEBUG_DIR)libblenloader.a
95 COMLIB += $(OCGDIR)/blender/blenpluginapi/$(DEBUG_DIR)libblenpluginapi.a
96 COMLIB += $(OCGDIR)/blender/imbuf/$(DEBUG_DIR)libimbuf.a
97 COMLIB += $(OCGDIR)/blender/blenlib/$(DEBUG_DIR)libblenlib.a
98 COMLIB += $(OCGDIR)/blender/avi/$(DEBUG_DIR)libavi.a
99 COMLIB += $(NAN_JPEG)/lib/libjpeg.a
100 COMLIB += $(OCGDIR)/gameengine/bloutines/$(DEBUG_DIR)libbloutines.a
101 COMLIB += $(OCGDIR)/gameengine/blconverter/$(DEBUG_DIR)libblconverter.a
102 COMLIB += $(OCGDIR)/gameengine/blphys/common/$(DEBUG_DIR)libcommon.a
103 COMLIB += $(OCGDIR)/gameengine/blphys/blode/$(DEBUG_DIR)libblode.a
104 COMLIB += $(NAN_ODE)/lib/libode.a
105 # COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
106 COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
107 COMLIB += $(OCGDIR)/gameengine/blphys/common/$(DEBUG_DIR)libcommon.a
108 # COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
109 COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
110 COMLIB += $(OCGDIR)/gameengine/ketsji/$(DEBUG_DIR)libketsji.a
111 COMLIB += $(OCGDIR)/gameengine/blphys/common/$(DEBUG_DIR)libcommon.a
112 COMLIB += $(OCGDIR)/gameengine/blphys/blode/$(DEBUG_DIR)libblode.a
113 # COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
114 COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
115 COMLIB += $(OCGDIR)/gameengine/blphys/common/$(DEBUG_DIR)libcommon.a
116 # COMLIB += $(OCGDIR)/gameengine/blphys/sumo/$(DEBUG_DIR)libsumo.a
117 COMLIB += $(OCGDIR)/gameengine/blphys/dummy/$(DEBUG_DIR)libdummy.a
118 COMLIB += $(OCGDIR)/gameengine/ketsji/$(DEBUG_DIR)libketsji.a
119 COMLIB += $(OCGDIR)/gameengine/logic/$(DEBUG_DIR)liblogic.a
120 COMLIB += $(OCGDIR)/gameengine/rasterizer/$(DEBUG_DIR)librasterizer.a
121 COMLIB += $(OCGDIR)/gameengine/OpenGLrasterizer/$(DEBUG_DIR)libOpenGLrasterizer.a
122 COMLIB += $(OCGDIR)/gameengine/expression/$(DEBUG_DIR)libexpression.a
123 COMLIB += $(OCGDIR)/gameengine/scenegraph/$(DEBUG_DIR)libscenegraph.a
124 # COMLIB += $(OCGDIR)/sumo/$(DEBUG_DIR)libfuzzics.a
125 # COMLIB += $(OCGDIR)/sumo/$(DEBUG_DIR)libsolid.a
126 COMLIB += $(NAN_MOTO)/lib/libmoto.a
127 COMLIB += $(NAN_SND_LIBS)
128 COMLIB += $(OCGDIR)/kernel/gen_system/$(DEBUG_DIR)libgen_system.a
129 COMLIB += $(OCGDIR)/kernel/gen_messaging/$(DEBUG_DIR)libgen_messaging.a
130 COMLIB += $(OCGDIR)/gameengine/ketsji/KXNetwork/$(DEBUG_DIR)libKXNetwork.a
131 COMLIB += $(OCGDIR)/gameengine/Network/$(DEBUG_DIR)libNetwork.a
132 COMLIB += $(OCGDIR)/gameengine/Network/LoopBackNetwork/$(DEBUG_DIR)libLoopBackNetwork.a
133 COMLIB += $(NAN_GUARDEDALLOC)/lib/libguardedalloc.a
134 COMLIB += $(NAN_BMFONT)/lib/$(DEBUG_DIR)libbmfont.a
135 COMLIB += $(NAN_PNG)/lib/libpng.a
136 ifeq ($(WITH_QUICKTIME), true)
137 COMLIB += $(OCGDIR)/blender/blenderqt/$(DEBUG_DIR)libblenderqt.a
139 ifeq ($(WITH_FREETYPE2), true)
140 ifeq ($(OS), windows)
141 ifeq ($(FREE_WINDOWS), true)
142 COMLIB += $(NAN_FREETYPE)/lib/libfreetype.a
144 COMLIB += $(NAN_FREETYPE)/lib/freetype2ST.lib
148 COMLIB += $(NAN_FREETYPE)/lib32/libfreetype.a
150 COMLIB += $(NAN_FREETYPE)/lib/libfreetype.a
154 ifeq ($(INTERNATIONAL), true)
155 COMLIB += $(OCGDIR)/blender/ftfont/$(DEBUG_DIR)libftfont.a
156 ifeq ($(OS), windows)
157 ifeq ($(FREE_WINDOWS), true)
158 COMLIB += $(NAN_GETTEXT)/lib/freegettext.a
159 COMLIB += $(NAN_FTGL)/lib/libftgl.a
160 #COMLIB += $(NAN_ICONV)/lib/freeiconv.a
162 COMLIB += $(NAN_GETTEXT)/lib/gnu_gettext.lib
163 COMLIB += $(NAN_FTGL)/lib/ftgl_static_ST.lib
164 COMLIB += $(NAN_FREETYPE)/lib/freetype2ST.lib
165 COMLIB += $(NAN_ICONV)/lib/iconv.lib
168 COMLIB += $(NAN_FTGL)/lib/libftgl.a
170 COMLIB += $(NAN_FREETYPE)/lib32/libfreetype.a
171 COMLIB += $(NAN_FREETYPE)/lib32/libintl.a
173 COMLIB += $(NAN_FREETYPE)/lib/libfreetype.a
177 COMLIB += $(NAN_GETTEXT)/lib/libintl.a
181 PULIB = $(NAN_IKSOLVER)/lib/libiksolver.a
182 PULIB += $(NAN_MOTO)/lib/libmoto.a
183 PULIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
184 PULIB += $(OCGDIR)/blender/readstreamglue/$(DEBUG_DIR)libreadstreamglue.a
185 PULIB += $(OCGDIR)/blender/writestreamglue/$(DEBUG_DIR)libwritestreamglue.a
186 # toggle 2 writestreamglue libs for the Uber-Publisher :)
187 #PULIB += $(OCGDIR)/blender/writestreamglueSTUB/$(DEBUG_DIR)libwritestreamglueSTUB.a
188 PULIB += $(OCGDIR)/blender/inflate/$(DEBUG_DIR)libinflate.a
189 PULIB += $(OCGDIR)/blender/deflate/$(DEBUG_DIR)libdeflate.a
190 PULIB += $(OCGDIR)/blender/encrypt/$(DEBUG_DIR)libencrypt.a
191 PULIB += $(OCGDIR)/blender/decrypt/$(DEBUG_DIR)libdecrypt.a
192 PULIB += $(OCGDIR)/blender/writeblenfile/$(DEBUG_DIR)libwriteblenfile.a
193 PULIB += $(OCGDIR)/blender/writestreamglue/$(DEBUG_DIR)libwritestreamglue.a
194 # toggle 2 writestreamglue libs for the Uber-Publisher :)
195 #PULIB += $(OCGDIR)/blender/writestreamglueSTUB/$(DEBUG_DIR)libwritestreamglueSTUB.a
196 PULIB += $(OCGDIR)/blender/readstreamglue/$(DEBUG_DIR)libreadstreamglue.a # KEY_dependkludge fix.. Remove me
197 PULIB += $(OCGDIR)/blender/src/$(DEBUG_DIR)libsrcpublisher.a
199 SPLIB1 = $(OCGDIR)/gameengine/GamePlayer/ghost/$(DEBUG_DIR)libghost.a
200 SPLIB1 += $(OCGDIR)/gameengine/GamePlayer/common/$(DEBUG_DIR)libcommon.a
201 SPLIB1 += $(NAN_STRING)/lib/$(DEBUG_DIR)libstring.a
202 SPLIB1 += $(NAN_GHOST)/lib/$(DEBUG_DIR)libghost.a
204 SPLIB = $(OCGDIR)/blender/makesdna/$(DEBUG_DIR)DNA.o
205 SPLIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
206 SPLIB += $(OCGDIR)/blender/readstreamglue/$(DEBUG_DIR)libreadstreamglue.a
207 # this is used for the plugin. It uses some things from libz.a,
208 # but somehow it consistently fails to resolve these symbols... or
209 # can I just not check them? nm claims they aren't...
210 SPLIB += $(OCGDIR)/blender/inflate/$(DEBUG_DIR)libinflate.a
211 SPLIB += $(OCGDIR)/blender/decrypt/$(DEBUG_DIR)libdecrypt.a
212 SPLIB += $(OCGDIR)/blender/writestreamglueSTUB/$(DEBUG_DIR)libwritestreamglueSTUB.a
213 SPLIB += $(OCGDIR)/blender/blenkernel/blenkernel_blc/$(DEBUG_DIR)libblenkernel_blc.a
215 PULIB += $(NAN_BLENKEY)/lib/libblenkey.a
216 SPLIB += $(NAN_BLENKEY)/lib/libblenkey.a
218 ifeq ($(FREE_WINDOWS),true)
219 PULIB += $(NAN_OPENSSL)/lib/libcrypto.a
220 SPLIB += $(NAN_OPENSSL)/lib/libcrypto.a
222 PULIB += $(NAN_OPENSSL)/lib/libeay32.lib
223 SPLIB += $(NAN_OPENSSL)/lib/libeay32.lib
226 PULIB += $(NAN_OPENSSL)/lib/libcrypto.a
227 SPLIB += $(NAN_OPENSSL)/lib/libcrypto.a
230 # These three need to be explicitly mentioned on the cl, because
231 # if they are offered as a lib, they are optimized away. (nzc)
232 NSPLUGLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)UnixShell.o
233 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)stubs.o
234 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)winstubs.o
235 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)Blender3DPlugin_native_implementation.o
237 # Here you can configure what sort of test to make for the plugin.
238 # PLUGTESTLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/test/$(DEBUG_DIR)libns_api_test_stub.a
239 # PLUGTESTLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/test/$(DEBUG_DIR)libns_api_test_colorcycle.a
240 # PLUGTESTLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/test/$(DEBUG_DIR)libns_api_test_gears.a
241 PLUGTESTLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/test/$(DEBUG_DIR)libns_api_test_threaded_gears.a
243 # XPCOM is done only for Linux for now
244 ifeq ($(OS),$(findstring $(OS), "linux"))
246 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)XPH_xpcom_hooks.o
250 PLUGAPPLIB = $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)libplugin_ketsji_hooks.a
252 ifeq ($(OS),$(findstring $(OS), "freebsd linux irix solaris"))
253 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)PLG_X11_windowing.o
254 PLUGAPPLIB += $(OCGDIR)/gameengine/GamePlayer/common/unix/$(DEBUG_DIR)libunix.a
256 ifeq ($(OS),$(findstring $(OS), "windows"))
257 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)PLG_MSWindows_windowing.o
258 NSPLUGLIB += $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)npB3DPlg.res
259 PLUGAPPLIB += $(OCGDIR)/gameengine/GamePlayer/common/windows/$(DEBUG_DIR)libwindows.a
261 PLUGAPPLIB += $(OCGDIR)/gameengine/GamePlayer/common/$(DEBUG_DIR)libcommon.a
264 ifeq ($(OS),$(findstring $(OS), "linux"))
266 PLUGAPPLIB_XPLINK = $(OCGDIR)/gameengine/GamePlayer/netscape/src/$(DEBUG_DIR)_Blender3DPlugin_implementation_.o
270 # A bit silly... but needed to resolve symbols.
271 PLUGREMLIB = $(NAN_STRING)/lib/$(DEBUG_DIR)libstring.a
273 PLUGREMLIB += $(NAN_OPENSSL)/lib/libeay32.lib
275 PLUGREMLIB += $(NAN_OPENSSL)/lib/libcrypto.a
278 ######################## OS dependencies (alphabetic!) ################
283 BINTARGETS = blenderdynamic
287 BINTARGETS = blenderdynamic.app
288 BINTARGETS += blenderplayer.app
289 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
290 # Next line would enable MxTextTools (for VRML2 import)
291 # but results in a link error
292 # PYLIB += $(NAN_MXTEXTTOOLS)
296 ifeq ($(OS_VERSION),$(findstring $(OS_VERSION), "3.4 4.0"))
297 BINTARGETS = blenderdynamic
298 BINTARGETS += blenderstatic
300 BINTARGETS = blenderdynamic
301 BINTARGETS += blenderplayer
304 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
305 PYLIB += $(NAN_MXTEXTTOOLS)
309 BINTARGETS = blenderdynamic
310 BINTARGETS += blenderplayer
312 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
313 PYLIB += $(NAN_MXTEXTTOOLS)
318 BINTARGETS = blenderdynamic
319 BINTARGETS += blenderplayer
323 # BINTARGETS += ptest
325 BINTARGETS += blenderdynamic
326 BINTARGETS += blenderplayer
327 BINTARGETS += blenderstatic
329 ifeq ($(CPU),powerpc)
330 BINTARGETS = blenderdynamic
331 BINTARGETS += blenderstatic
333 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
334 PYLIB += $(NAN_MXTEXTTOOLS)
338 BINTARGETS = blenderstatic
339 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
343 BINTARGETS = blenderdynamic
344 BINTARGETS += blenderplayer
348 PYLIB = $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
349 PYLIB += $(NAN_MXTEXTTOOLS)
350 PYLIB += $(NAN_ZLIB)/lib/libz.a
352 PULIB += $(NAN_ZLIB)/lib/libz.a
353 SPLIB += $(NAN_ZLIB)/lib/libz.a
357 # OpenAL libs are already compiled as shared code! Check FMod if we switch to that. (nzc)
358 ifeq ($(OS),$(findstring $(OS), "freebsd linux windows"))
361 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
362 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
363 NAN_SND_LIBS += $(OCGDIR)/gameengine/OpenALSoundSystem/$(DEBUG_DIR)libOpenALSoundSystem.a
364 NAN_SND_LIBS += $(NAN_OPENAL)/lib/libopenal.a
365 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
367 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
368 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
369 NAN_SND_LIBS += $(OCGDIR)/gameengine/OpenALSoundSystem/$(DEBUG_DIR)libOpenALSoundSystem.a
370 NAN_SND_LIBS += $(NAN_OPENAL)/lib/libopenal.a
371 # NAN_SND_LIBS += $(OCGDIR)/gameengine/FmodSoundSystem/$(DEBUG_DIR)libFmodSoundSystem.a
372 # NAN_SND_LIBS += $(NAN_FMOD)/lib/libfmod.a
373 # NAN_SND_LIBS += $(OCGDIR)/gameengine/FmodSoundSystem/$(DEBUG_DIR)libFmodSoundSystem.a
374 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
378 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
379 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
380 NAN_SND_LIBS += $(OCGDIR)/gameengine/OpenALSoundSystem/$(DEBUG_DIR)libOpenALSoundSystem.a
381 NAN_SND_LIBS += $(NAN_OPENAL)/lib/openal_static.lib
382 # NAN_SND_LIBS += $(OCGDIR)/gameengine/FmodSoundSystem/$(DEBUG_DIR)libFmodSoundSystem.a
383 # NAN_SND_LIBS += $(NAN_FMOD)/lib/fmodvc.lib
384 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
386 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
387 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
388 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
393 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
394 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
395 # NAN_SND_LIBS += $(OCGDIR)/gameengine/FmodSoundSystem/$(DEBUG_DIR)libFmodSoundSystem.a
396 # NAN_SND_LIBS += $(NAN_FMOD)/lib/libfmod.a
397 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
399 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
400 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
401 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
406 ifeq ($(FREE_WINDOWS),true)
407 PYLIB = $(NAN_PYTHON)/lib/freepy.a
409 PYLIB = $(NAN_PYTHON)/lib/python22.lib
412 PYPLAYERLIB = $(NAN_PYTHON)/static/*.obj
413 PYPLAYERLIB = $(PYLIB)
415 # Might need to change this to $(NAN_MOZILLA_LIB)/nspr4.lib
416 NSPLUGLIB += $(NAN_NSPR)/lib/nspr4.lib
418 BINTARGETS = blenderdynamic
419 ifneq ($(FREE_WINDOWS),true)
420 BINTARGETS += blenderplayer
421 BINTARGETS += blenderdynplayer
425 PULIB += $(OCGDIR)/blender/icons/$(DEBUG_DIR)winblender.res
426 PULIB += $(NAN_ZLIB)/lib/libz.a
427 SPLIB += $(OCGDIR)/blender/icons/$(DEBUG_DIR)winblender.res
428 SPLIB += $(NAN_ZLIB)/lib/libz.a
430 ifdef NAN_PLAYERSTATIC
431 PYPLAYERLIB = $(NAN_PYTHON)/static/python20.lib
432 BINTARGETS = blenderplayer
434 NAN_SND_LIBS = $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
435 NAN_SND_LIBS += $(OCGDIR)/gameengine/DummySoundSystem/$(DEBUG_DIR)libDummySoundSystem.a
436 NAN_SND_LIBS += $(OCGDIR)/gameengine/OpenALSoundSystem/$(DEBUG_DIR)libOpenALSoundSystem.a
437 NAN_SND_LIBS += $(NAN_OPENAL)/lib/openal_static.lib
438 NAN_SND_LIBS += $(OCGDIR)/gameengine/SoundSystem/$(DEBUG_DIR)libSoundSystem.a
440 PYINCLUDEOK := $(shell diff -qbB gameengine/Ketsji/KX_Python.h gameengine/Ketsji/KX_Python_static.h)
441 ifneq (x$(PYINCLUDEOK),x)
442 DUMMY := $(shell cat gameengine/Ketsji/KX_Python_static.h > gameengine/Ketsji/KX_Python.h)
445 PYINCLUDEOK := $(shell diff -qbB gameengine/Ketsji/KX_Python.h gameengine/Ketsji/KX_Python_dynamic.h)
446 ifneq (x$(PYINCLUDEOK),x)
447 DUMMY := $(shell cat gameengine/Ketsji/KX_Python_dynamic.h > gameengine/Ketsji/KX_Python.h)
452 # prepare for NAN_BUILDINFO compile at the *sigh* link rules below
457 include nan_compile.mk
460 ################## target rules ########################
463 @echo "****> Make $@ by $(ID)@$(HOST) at $(MAKE_START) on $(CONFIG_GUESS)"
465 @for n in $(NANENV); do \
473 include nan_subdirs.mk
475 ################## target rules ########################
480 @$(MAKE) link DEBUG_DIR="debug/" NANENV=$(NANENV)
482 clean:: linkclean debuglinkclean
485 @echo "****> Build $(MAKE_START) - `date '+%H:%M:%S %d-%b-%Y'`"
487 @for n in $(NANENV); do \
493 @$(RM) $(DIR)/blenderstatic* \
494 $(DIR)/blenderplayer* \
498 @$(RM) $(DIR)/debug/blenderstatic* \
499 $(DIR)/debug/blenderplayer* \
502 # Shortcut for Tinderbox release builds. Mortals don't use this.
504 @$(MAKE) -C ../release/ all || exit 1;
506 ############### Linker rules ###############
508 blenderstatic: $(DIR)/$(DEBUG_DIR)blenderstatic
509 blenderdynamic: $(DIR)/$(DEBUG_DIR)blenderdynamic$(EXT)
510 blenderplayer: $(DIR)/$(DEBUG_DIR)blenderplayer$(EXT)
511 blenderdynplayer: $(DIR)/$(DEBUG_DIR)blenderdynplayer$(EXT)
513 blenderplayer.app: blenderplayer
514 @$(MAKE) -C darwin/ APPLICATION=blenderplayer
516 blenderdynamic.app: blenderdynamic
517 @$(MAKE) -C darwin/ APPLICATION=blender
519 # XPCOM connector only for linux so far...
521 xplink: $(DIR)/$(DEBUG_DIR)Blender3DPlugin$(SOEXT)
525 ifeq ($(OS),$(findstring $(OS), "freebsd linux irix solaris"))
526 plugin: $(DIR)/$(DEBUG_DIR)npBlender3DPlugin$(SOEXT)
527 ptest: $(DIR)/$(DEBUG_DIR)npTestPlugin$(SOEXT)
529 # Windows needs a 8.3 name... Why? Dunno...
531 ifneq ($(FREE_WINDOWS),true)
532 plugin: $(DIR)/$(DEBUG_DIR)npB3DPlg$(SOEXT)
536 $(DIR)/$(DEBUG_DIR)blenderstatic: $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB)
537 @echo "****> Link $@"
539 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"static"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
541 mkdir -p $(DIR)/$(DEBUG_DIR)bin
542 $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderstatic $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(PYLIB) $(LLIBS) $(SADD) $(LOPTS)
544 /bin/rm $(BUILDINFO_O)
547 $(DIR)/$(DEBUG_DIR)blenderdynamic$(EXT): $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB)
548 @echo "****> Link $@"
550 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
552 mkdir -p $(DIR)/$(DEBUG_DIR)bin
553 $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blender$(EXT) $(BUILDINFO_O) $(OBJS) $(GRPLIB) $(COMLIB) $(PULIB) $(PYLIB) $(LLIBS) $(DADD) $(LOPTS)
555 /bin/rm $(BUILDINFO_O)
558 $(DIR)/$(DEBUG_DIR)blenderplayer$(EXT): $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB)
559 @echo "****> Link $@"
561 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
563 mkdir -p $(DIR)/$(DEBUG_DIR)bin
564 $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(PYPLAYERLIB) $(LLIBS) $(DADD) $(LOPTS)
566 /bin/rm $(BUILDINFO_O)
569 $(DIR)/$(DEBUG_DIR)blenderdynplayer$(EXT): $(OBJS) $(COMLIB) $(SPLIB)
570 @echo "****> Link $@"
572 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
574 mkdir -p $(DIR)/$(DEBUG_DIR)bin
575 $(CCC) $(LDFLAGS) -o $(DIR)/$(DEBUG_DIR)bin/blenderdynplayer$(EXT) $(BUILDINFO_O) $(OBJS) $(SPLIB1) $(COMLIB) $(SPLIB) $(PYLIB) $(LLIBS) $(DADD) $(LOPTS)
577 /bin/rm $(BUILDINFO_O)
581 $(DIR)/$(DEBUG_DIR)Blender3DPlugin$(SOEXT): $(PLUGAPPLIB_XPLINK)
582 @echo "****> Link $(DIR)/$(DEBUG_DIR)Blender3DPlugin.so"
584 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
586 $(CCC) $(DYNLDFLAGS) -o $@ $(PLUGAPPLIB_XPLINK) $(LOPTS)
588 /bin/rm $(BUILDINFO_O)
592 # Windows build needs a def file? Why? For exposing functions from the
593 # dll to the outside world. However, this is alsi done internally..
594 DEFFILE = ./gameengine/GamePlayer/netscape/src/npB3DPlg.def
596 # Windows needs a specific name format for dll.s so we give it one.
598 $(DIR)/$(DEBUG_DIR)npB3DPlg$(SOEXT): $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB)
599 @echo "****> Link $(DIR)/$(DEBUG_DIR)npBl3DPlg.$(SOEXT)"
601 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
603 # $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PYLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS)
604 $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PYLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS) /def:$(DEFFILE)
606 /bin/rm $(BUILDINFO_O)
610 ifeq ($(OS),$(findstring $(OS), "linux freebsd irix solaris"))
611 $(DIR)/$(DEBUG_DIR)npBlender3DPlugin$(SOEXT): $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB)
612 @echo "****> Link $(DIR)/$(DEBUG_DIR)Blender3DPlugin.so"
614 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
616 $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGAPPLIB) $(COMLIB) $(SPLIB) $(PYLIB) $(PLUGREMLIB) $(LLIBS) $(DADD) $(LOPTS)
618 /bin/rm $(BUILDINFO_O)
621 $(DIR)/$(DEBUG_DIR)npTestPlugin$(SOEXT): $(NSPLUGLIB)
622 @echo "****> Link $@"
624 $(CCC) $(REL_CFLAGS) -DBUILD_DATE='"$(BUILD_DATE)"' -DBUILD_TIME='"$(BUILD_TIME)"' -DBUILD_PLATFORM='"$(CONFIG_GUESS)"' -DBUILD_TYPE='"dynamic"' $(BUILDINFO_C) -c -o $(BUILDINFO_O) -DNAN_BUILDINFO
626 $(CCC) $(DYNLDFLAGS) -o $@ $(NSPLUGLIB) $(PLUGTESTLIB) $(LLIBS) $(DADD) $(LOPTS)
628 /bin/rm $(BUILDINFO_O)