Support for building bf-blender under windows with gcc (huge thanks to
[blender.git] / source / nan_definitions.mk
1 #
2 # $Id$
3 #
4 # ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
5 #
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
12 # about this.
13 #
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.
18 #
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.
22 #
23 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24 # All rights reserved.
25 #
26 # The Original Code is: all of this file.
27 #
28 # Contributor(s): none yet.
29 #
30 # ***** END GPL/BL DUAL LICENSE BLOCK *****
31 #
32 # set some defaults when these are not overruled (?=) by environment variables
33 #
34
35 ifndef CONFIG_GUESS
36   ifeq (debug, $(findstring debug, $(MAKECMDGOALS)))
37     ifeq (all, $(findstring all, $(MAKECMDGOALS)))
38 all debug::
39       ERRTXT = "ERROR: all and debug targets cannot be used together anymore"
40       ERRTXT += "Use something like ..make all && make debug.. instead"
41       $(error $(ERRTXT))
42     endif
43   endif
44
45   # First generic defaults for all platforms which should be constant.
46   # Note: ?= lets these defaults be overruled by environment variables,
47
48     export SRCHOME ?= $(NANBLENDERHOME)/source
49     export CONFIG_GUESS := $(shell ${SRCHOME}/tools/guess/guessconfig)
50     export OS := $(shell echo ${CONFIG_GUESS} | sed -e 's/-.*//')
51     export OS_VERSION := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-//' -e 's/-[^-]*//')
52     export CPU := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-[^-]*-//')
53     export MAKE_START := $(shell date "+%H:%M:%S %d-%b-%Y")
54     export NAN_LIBDIR ?= $(NANBLENDERHOME)/../lib
55     export NAN_OBJDIR ?= $(NANBLENDERHOME)/obj
56     # Library Config_Guess DIRectory
57     export LCGDIR = $(NAN_LIBDIR)/$(CONFIG_GUESS)
58     # Object Config_Guess DIRectory
59     export OCGDIR = $(NAN_OBJDIR)/$(CONFIG_GUESS)
60     export NAN_MOTO ?= $(LCGDIR)/moto
61     export NAN_SOLID ?= $(SRCHOME)/sumo/SOLID-3.0
62     export NAN_SUMO ?= $(SRCHOME)/gameengine/Physics/Sumo
63     export NAN_FUZZICS ?= $(SRCHOME)/gameengine/Physics/Sumo/Fuzzics
64     export NAN_BLENKEY ?= $(LCGDIR)/blenkey
65     export NAN_DECIMATION ?= $(LCGDIR)/decimation
66     export NAN_GUARDEDALLOC ?= $(LCGDIR)/guardedalloc
67     export NAN_IKSOLVER ?= $(LCGDIR)/iksolver
68     export NAN_BSP ?= $(LCGDIR)/bsp
69     export NAN_STRING ?= $(LCGDIR)/string
70     export NAN_MEMUTIL ?= $(LCGDIR)/memutil
71     export NAN_CONTAINER ?= $(LCGDIR)/container
72     export NAN_ACTION ?= $(LCGDIR)/action
73     export NAN_IMG ?= $(LCGDIR)/img
74     export NAN_GHOST ?= $(LCGDIR)/ghost
75     export NAN_TEST_VERBOSITY ?= 1
76     export NAN_BMFONT ?= $(LCGDIR)/bmfont
77     ifeq ($(FREE_WINDOWS), true)
78       export NAN_FTGL ?= $(LCGDIR)/gcc/ftgl
79     else
80       export NAN_FTGL ?= $(LCGDIR)/ftgl
81     endif
82
83
84   # Platform Dependent settings go below:
85
86   ifeq ($(OS),beos)
87
88     export ID = $(USER)
89     export HOST = $(HOSTNAME)
90     export NAN_PYTHON ?= $(LCGDIR)/python
91     export NAN_PYTHON_VERSION ?= 2.0
92     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
93     export NAN_MXTEXTTOOLS ?= $(shell $(NAN_PYTHON_BINARY) -c \
94         'import mx; print mx.__path__[0]')/TextTools/mxTextTools/mxTextTools.so
95     export NAN_OPENAL ?= $(LCGDIR)/openal
96     export NAN_FMOD ?= $(LCGDIR)/fmod
97     export NAN_JPEG ?= $(LCGDIR)/jpeg
98     export NAN_PNG ?= $(LCGDIR)/png
99     export NAN_SDL ?= $(LCGDIR)/sdl
100     export NAN_ODE ?= $(LCGDIR)/ode
101     export NAN_OPENSSL ?= $(LCGDIR)/openssl
102     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
103     export NAN_MESA ?= /usr/src/Mesa-3.1
104     export NAN_ZLIB ?= $(LCGDIR)/zlib
105     export NAN_NSPR ?= $(LCGDIR)/nspr
106     export NAN_FREETYPE ?= $(LCGDIR)/freetype
107     export NAN_GETTEXT ?= $(LCGDIR)/gettext     
108
109     # Uncomment the following line to use Mozilla inplace of netscape
110     # CPPFLAGS +=-DMOZ_NOT_NET
111     # Location of MOZILLA/Netscape header files...
112     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
113     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
114     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
115     # if this is not set.
116
117     export NAN_BUILDINFO ?= true
118     # Be paranoid regarding library creation (do not update archives)
119     export NAN_PARANOID ?= true
120
121     # l10n
122     #export INTERNATIONAL ?= true
123
124     # enable freetype2 support for text objects
125     #export WITH_FREETYPE2 ?= true
126
127   else
128   ifeq ($(OS),darwin)
129
130     export ID = $(shell whoami)
131     export HOST = $(shell hostname -s)
132     export NAN_PYTHON ?= /sw
133     export NAN_PYTHON_VERSION ?= 2.2
134     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
135     export NAN_MXTEXTTOOLS ?= $(shell $(NAN_PYTHON_BINARY) -c \
136         'import mx; print mx.__path__[0]')/TextTools/mxTextTools/mxTextTools.so
137     export NAN_OPENAL ?= $(LCGDIR)/openal
138     export NAN_FMOD ?= $(LCGDIR)/fmod
139     export NAN_JPEG ?= /sw
140     export NAN_PNG ?= /sw
141     export NAN_SDL ?= $(LCGDIR)/sdl
142     export NAN_ODE ?= $(LCGDIR)/ode
143     export NAN_OPENSSL ?= /sw
144     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
145     export NAN_MESA ?= /usr/src/Mesa-3.1
146     export NAN_ZLIB ?= $(LCGDIR)/zlib
147     export NAN_NSPR ?= $(LCGDIR)/nspr
148     export NAN_FREETYPE ?= /sw
149     export NAN_GETTEXT ?= $(LCGDIR)/gettext
150
151     # Uncomment the following line to use Mozilla inplace of netscape
152     # CPPFLAGS +=-DMOZ_NOT_NET
153     # Location of MOZILLA/Netscape header files...
154     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
155     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
156     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
157     # if this is not set.
158
159     export NAN_BUILDINFO ?= true
160     # Be paranoid regarding library creation (do not update archives)
161     export NAN_PARANOID ?= true
162
163     # enable quicktime by default on OS X
164     export WITH_QUICKTIME ?= true
165
166     # enable l10n
167     export INTERNATIONAL ?= true
168
169     # enable freetype2 support for text objects
170     export WITH_FREETYPE2 ?= true
171
172   else
173   ifeq ($(OS),freebsd)
174
175     export ID = $(shell whoami)
176     export HOST = $(shell hostname -s)
177     export NAN_PYTHON ?= /usr/local
178     export NAN_PYTHON_VERSION ?= 2.2
179     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
180     export NAN_MXTEXTTOOLS ?= 
181     export NAN_OPENAL ?= /usr/local
182     export NAN_FMOD ?= $(LCGDIR)/fmod
183     export NAN_JPEG ?= /usr/local
184     export NAN_PNG ?= /usr/local
185     export NAN_SDL ?= /usr/local
186     export NAN_ODE ?= $(LCGDIR)/ode
187     export NAN_OPENSSL ?= /usr
188     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
189     export NAN_MESA ?= /usr/src/Mesa-3.1
190     export NAN_ZLIB ?= /usr
191     export NAN_NSPR ?= /usr/local
192     export NAN_FREETYPE ?= $(LCGDIR)/freetype
193     export NAN_GETTEXT ?= $(LCGDIR)/gettext
194
195     # Uncomment the following line to use Mozilla inplace of netscape
196     # CPPFLAGS +=-DMOZ_NOT_NET
197     # Location of MOZILLA/Netscape header files...
198     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
199     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
200     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
201     # if this is not set.
202
203     export NAN_BUILDINFO ?= true
204     # Be paranoid regarding library creation (do not update archives)
205     export NAN_PARANOID ?= true
206
207     # enable l10n
208     # export INTERNATIONAL ?= true
209
210     # enable freetype2 support for text objects
211     # export WITH_FREETYPE2 ?= true
212
213   else
214   ifeq ($(OS),irix)
215
216     export ID = $(shell whoami)
217     export HOST = $(shell /usr/bsd/hostname -s)
218     export NAN_PYTHON ?= $(LCGDIR)/python
219     export NAN_PYTHON_VERSION ?= 2.1
220     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
221     export NAN_MXTEXTTOOLS ?= 
222     export NAN_OPENAL ?= $(LCGDIR)/openal
223     export NAN_FMOD ?= $(LCGDIR)/fmod
224     export NAN_JPEG ?= $(LCGDIR)/jpeg
225     export NAN_PNG ?= $(LCGDIR)/png
226     export NAN_SDL ?= $(LCGDIR)/sdl
227     export NAN_ODE ?= $(LCGDIR)/ode
228     export NAN_OPENSSL ?= $(LCGDIR)/openssl
229     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
230     export NAN_MESA ?= /usr/src/Mesa-3.1
231     export NAN_ZLIB ?= /usr/freeware
232     export NAN_NSPR ?= /usr/local/apps/openblender/nspr/target/dist
233     export NAN_FREETYPE ?= /usr/freeware
234     export NAN_GETTEXT ?= /usr/freeware
235
236     # Uncomment the following line to use Mozilla inplace of netscape
237     # CPPFLAGS +=-DMOZ_NOT_NET
238     # Location of MOZILLA/Netscape header files...
239     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
240     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
241     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
242     # if this is not set.
243
244     export NAN_BUILDINFO ?= true
245     # Be paranoid regarding library creation (do not update archives)
246     export NAN_PARANOID ?= true
247
248     # enable l10n
249     export INTERNATIONAL ?= true
250
251     # enable freetype2 support for text objects
252     export WITH_FREETYPE2 ?= true
253
254   else
255   ifeq ($(OS),linux)
256
257     export ID = $(shell whoami)
258     export HOST = $(shell hostname -s)
259     export NAN_PYTHON ?= /usr
260     export NAN_PYTHON_VERSION ?= 2.2
261     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
262     export NAN_MXTEXTTOOLS ?=
263     export NAN_OPENAL ?= /usr
264     export NAN_FMOD ?= $(LCGDIR)/fmod
265     export NAN_JPEG ?= /usr
266     export NAN_PNG ?= /usr
267     export NAN_SDL ?= /usr
268     export NAN_ODE ?= $(LCGDIR)/ode
269     export NAN_OPENSSL ?= /usr
270     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
271     export NAN_MESA ?= /usr
272     export NAN_ZLIB ?= /usr
273     export NAN_NSPR ?= $(LCGDIR)/nspr
274     export NAN_FREETYPE ?= /usr
275     export NAN_GETTEXT ?= /usr
276
277     # Uncomment the following line to use Mozilla inplace of netscape
278     export CPPFLAGS += -DMOZ_NOT_NET
279     # Location of MOZILLA/Netscape header files...
280     export NAN_MOZILLA_INC ?= /usr/include/mozilla
281     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
282     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
283     # if this is not set.
284
285     export NAN_BUILDINFO ?= true
286     # Be paranoid regarding library creation (do not update archives)
287     export NAN_PARANOID ?= true
288
289     # l10n
290     #export INTERNATIONAL ?= true
291
292     # enable freetype2 support for text objects
293     #export WITH_FREETYPE2 ?= true
294
295
296   else
297   ifeq ($(OS),openbsd)
298
299     export ID = $(shell whoami)
300     export HOST = $(shell hostname -s)
301     export NAN_PYTHON ?= $(LCGDIR)/python
302     export NAN_PYTHON_VERSION ?= 2.0
303     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
304     export NAN_MXTEXTTOOLS ?= $(shell $(NAN_PYTHON_BINARY) -c \
305         'import mx; print mx.__path__[0]')/TextTools/mxTextTools/mxTextTools.so
306     export NAN_OPENAL ?= $(LCGDIR)/openal
307     export NAN_FMOD ?= $(LCGDIR)/fmod
308     export NAN_JPEG ?= $(LCGDIR)/jpeg
309     export NAN_PNG ?= $(LCGDIR)/png
310     export NAN_SDL ?= $(LCGDIR)/sdl
311     export NAN_ODE ?= $(LCGDIR)/ode
312     export NAN_OPENSSL ?= $(LCGDIR)/openssl
313     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
314     export NAN_MESA ?= /usr/src/Mesa-3.1
315     export NAN_ZLIB ?= $(LCGDIR)/zlib
316     export NAN_NSPR ?= $(LCGDIR)/nspr
317     export NAN_FREETYPE ?= $(LCGDIR)/freetype
318     export NAN_GETTEXT ?= $(LCGDIR)/gettext
319
320     # Uncomment the following line to use Mozilla inplace of netscape
321     # CPPFLAGS +=-DMOZ_NOT_NET
322     # Location of MOZILLA/Netscape header files...
323     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
324     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
325     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
326     # if this is not set.
327
328     export NAN_BUILDINFO ?= true
329     # Be paranoid regarding library creation (do not update archives)
330     export NAN_PARANOID ?= true
331
332     # l10n
333     #export INTERNATIONAL ?= true
334
335     # enable freetype2 support for text objects
336     #export WITH_FREETYPE2 ?= true
337
338   else
339   ifeq ($(OS),solaris)
340
341     export ID = $(shell /usr/ucb/whoami)
342     export HOST = $(shell hostname)
343     export NAN_PYTHON ?= /usr/local
344     export NAN_PYTHON_VERSION ?= 2.2
345     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
346     export NAN_MXTEXTTOOLS ?=
347     export NAN_OPENAL ?= /usr/local
348     export NAN_FMOD ?= $(LCGDIR)/fmod
349     export NAN_JPEG ?= /usr/local
350     export NAN_PNG ?= /usr/local
351     export NAN_SDL ?= /usr/local
352     export NAN_ODE ?= $(LCGDIR)/ode
353     export NAN_OPENSSL ?= /usr/local/ssl
354     export NAN_TERRAPLAY ?=
355     export NAN_MESA ?= /usr/src/Mesa-3.1
356     export NAN_ZLIB ?= /usr
357     export NAN_NSPR ?= $(LCGDIR)/nspr
358     export NAN_FREETYPE ?= $(LCGDIR)/freetype
359     export NAN_GETTEXT ?= $(LCGDIR)/gettext
360
361     # Uncomment the following line to use Mozilla inplace of netscape
362     # CPPFLAGS +=-DMOZ_NOT_NET
363     # Location of MOZILLA/Netscape header files...
364     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
365     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
366     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
367     # if this is not set.
368
369     export NAN_BUILDINFO ?= true
370     # Be paranoid regarding library creation (do not update archives)
371     export NAN_PARANOID ?= true
372
373     # l10n
374     #export INTERNATIONAL ?= true
375
376     # enable freetype2 support for text objects
377     #export WITH_FREETYPE2 ?= true
378
379   else
380   ifeq ($(OS),windows)
381
382     export ID = $(LOGNAME)
383     export NAN_PYTHON ?= $(LCGDIR)/python
384     export NAN_ICONV ?= $(LCGDIR)/iconv
385     export NAN_PYTHON_VERSION ?= 2.2
386     ifeq ($(FREE_WINDOWS), true)
387       export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
388       export NAN_OPENSSL ?= $(LCGDIR)/gcc/openssl
389       export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype
390       export NAN_ODE ?= $(LCGDIR)/gcc/ode
391     else
392       export NAN_PYTHON_BINARY ?= python
393       export NAN_OPENSSL ?= $(LCGDIR)/openssl
394       export NAN_FREETYPE ?= $(LCGDIR)/freetype
395       export NAN_ODE ?= $(LCGDIR)/ode
396     endif
397     export NAN_MXTEXTTOOLS ?= $(shell $(NAN_PYTHON_BINARY) -c \
398         'import mx; print mx.__path__[0]')/TextTools/mxTextTools/mxTextTools.so
399     export NAN_OPENAL ?= $(LCGDIR)/openal
400     export NAN_FMOD ?= $(LCGDIR)/fmod
401     export NAN_JPEG ?= $(LCGDIR)/jpeg
402     export NAN_PNG ?= $(LCGDIR)/png
403     export NAN_SDL ?= $(LCGDIR)/sdl
404     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
405     export NAN_MESA ?= /usr/src/Mesa-3.1
406     export NAN_ZLIB ?= $(LCGDIR)/zlib
407     export NAN_NSPR ?= $(LCGDIR)/nspr
408     export NAN_GETTEXT ?= $(LCGDIR)/gettext
409
410     # Uncomment the following line to use Mozilla inplace of netscape
411     # CPPFLAGS +=-DMOZ_NOT_NET
412     # Location of MOZILLA/Netscape header files...
413     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
414     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
415     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
416     # if this is not set.
417 export NAN_PYTHON_BINARY ?= python
418     export NAN_BUILDINFO ?= true
419     # Be paranoid regarding library creation (do not update archives)
420     export NAN_PARANOID ?= true
421
422     # l10n
423     export INTERNATIONAL ?= true
424
425     # enable freetype2 support for text objects
426     export WITH_FREETYPE2 ?= true
427     
428     # enable quicktime support
429     # export WITH_QUICKTIME ?= true
430
431   else # Platform not listed above
432
433     export NAN_PYTHON ?= $(LCGDIR)/python
434     export NAN_PYTHON_VERSION ?= 2.0
435         export NAN_PYTHON_BINARY ?= python
436     export NAN_MXTEXTTOOLS ?= $(shell $(NAN_PYTHON_BINARY) -c \
437         'import mx; print mx.__path__[0]')/TextTools/mxTextTools/mxTextTools.so
438     export NAN_OPENAL ?= $(LCGDIR)/openal
439     export NAN_FMOD ?= $(LCGDIR)/fmod
440     export NAN_JPEG ?= $(LCGDIR)/jpeg
441     export NAN_PNG ?= $(LCGDIR)/png
442     export NAN_SDL ?= $(LCGDIR)/sdl
443     export NAN_ODE ?= $(LCGDIR)/ode
444     export NAN_OPENSSL ?= $(LCGDIR)/openssl
445     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
446     export NAN_MESA ?= /usr/src/Mesa-3.1
447     export NAN_ZLIB ?= $(LCGDIR)/zlib
448     export NAN_NSPR ?= $(LCGDIR)/nspr
449     export NAN_FREETYPE ?= $(LCGDIR)/freetype
450     export NAN_GETTEXT ?= $(LCGDIR)/gettext
451
452     # Uncomment the following line to use Mozilla inplace of netscape
453     # CPPFLAGS +=-DMOZ_NOT_NET
454     # Location of MOZILLA/Netscape header files...
455     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
456     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
457     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
458     # if this is not set.
459
460     export NAN_BUILDINFO ?= true
461     # Be paranoid regarding library creation (do not update archives)
462     export NAN_PARANOID ?= true
463
464     # l10n
465     #export INTERNATIONAL ?= true
466
467     # enable freetype2 support for text objects
468     #export WITH_FREETYPE2 ?= true
469   endif
470 endif
471 endif
472 endif
473 endif
474 endif
475 endif
476 endif
477 endif