Add PREFIX support to makefiles.
[blender-staging.git] / build_files / make / nan_definitions.mk
1 # -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
2 # vim: tabstop=8
3 #
4 # $Id$
5 #
6 # ***** BEGIN GPL LICENSE BLOCK *****
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License
10 # as published by the Free Software Foundation; either version 2
11 # of the License, or (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software Foundation,
20 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 #
22 # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23 # All rights reserved.
24 #
25 # The Original Code is: all of this file.
26 #
27 # Contributor(s): GSR, Stefan Gartner
28 #
29 # ***** END GPL LICENSE BLOCK *****
30 #
31 # set some defaults when these are not overruled (?=) by environment variables
32 #
33
34 sinclude ../../user-def.mk
35
36 # This warning only takes place once in source/
37 ifeq (debug, $(findstring debug, $(MAKECMDGOALS)))
38   ifeq (all, $(findstring all, $(MAKECMDGOALS)))
39     export ERRTXT = "ERROR: all and debug targets cannot be used together anymore"
40     export ERRTXT += "Use something like ..make all && make debug.. instead"
41   endif
42 endif
43
44 ifdef ERRTXT
45 $(error $(ERRTXT))
46 endif
47
48 ifndef CONFIG_GUESS
49   ifeq (debug, $(findstring debug, $(MAKECMDGOALS)))
50     export DEBUG_DIR = debug/
51     export ALL_OR_DEBUG = debug
52   endif
53   ifeq (all, $(findstring all, $(MAKECMDGOALS)))
54     export ALL_OR_DEBUG ?= all
55   endif
56
57   # First generic defaults for all platforms which should be constant.
58   # Note: ?= lets these defaults be overruled by environment variables,
59     export SRCHOME ?= $(NANBLENDERHOME)/source
60     export CONFIG_GUESS := $(shell ${SRCHOME}/tools/guess/guessconfig)
61     export OS := $(shell echo ${CONFIG_GUESS} | sed -e 's/-.*//')
62     export OS_VERSION := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-//' -e 's/-[^-]*//')
63     export CPU := $(shell echo ${CONFIG_GUESS} | sed -e 's/^[^-]*-[^-]*-//')
64     export MAKE_START := $(shell date "+%H:%M:%S %d-%b-%Y")
65     export NAN_LIBDIR ?= $(NANBLENDERHOME)/../lib
66     export NAN_OBJDIR ?= $(NANBLENDERHOME)/obj
67     # Library Config_Guess DIRectory
68     export LCGDIR = $(NAN_LIBDIR)/$(CONFIG_GUESS)
69     # Object Config_Guess DIRectory
70     export OCGDIR = $(NAN_OBJDIR)/$(CONFIG_GUESS)
71
72     # Determines what targets are built
73     export WITH_BF_DYNAMICOPENGL ?= true
74     export WITH_BF_STATICOPENGL ?= false
75     export WITH_BF_BLENDERGAMEENGINE ?= true
76     export WITH_BF_BLENDERPLAYER ?= true
77     ifeq ($(NAN_NO_PLUGIN), true)
78         export WITH_BF_WEBPLUGIN = false
79     else
80         export WITH_BF_WEBPLUGIN ?= false
81     endif
82
83     export NAN_MOTO ?= $(LCGDIR)/moto
84     export NAN_ITASC ?= $(LCGDIR)/itasc
85
86     export BF_PROFILE ?= false
87     export NAN_USE_BULLET ?= true
88     export NAN_BULLET2 ?= $(LCGDIR)/bullet2
89     export NAN_DECIMATION ?= $(LCGDIR)/decimation
90     export NAN_GUARDEDALLOC ?= $(LCGDIR)/guardedalloc
91     export NAN_IKSOLVER ?= $(LCGDIR)/iksolver
92     export NAN_BSP ?= $(LCGDIR)/bsp
93     export NAN_BOOLOP ?= $(LCGDIR)/boolop
94     export NAN_AUDASPACE ?= $(LCGDIR)/audaspace
95     export NAN_STRING ?= $(LCGDIR)/string
96     export NAN_MEMUTIL ?= $(LCGDIR)/memutil
97     export NAN_CONTAINER ?= $(LCGDIR)/container
98     export NAN_ACTION ?= $(LCGDIR)/action
99     export NAN_GHOST ?= $(LCGDIR)/ghost
100     export NAN_TEST_VERBOSITY ?= 1
101     export NAN_OPENNL ?= $(LCGDIR)/opennl
102     export NAN_ELBEEM ?= $(LCGDIR)/elbeem
103     export NAN_SMOKE ?= $(LCGDIR)/smoke
104     export NAN_SUPERLU ?= $(LCGDIR)/superlu
105     export NAN_GLEW ?= $(LCGDIR)/glew
106     ifeq ($(FREE_WINDOWS), true)
107       export NAN_FFMPEG ?= $(LCGDIR)/gcc/ffmpeg
108       export NAN_FFMPEGLIBS ?= $(NAN_FFMPEG)/lib/libavformat.a $(NAN_FFMPEG)/lib/libavutil.a $(NAN_FFMPEG)/lib/libavcodec.a $(NAN_FFMPEG)/lib/libavdevice.a
109     else
110       export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg
111       ifeq ($(OS), darwin)
112         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 $(NAN_FFMPEG)/lib/libtheora.a $(NAN_FFMPEG)/lib/libtheoradec.a $(NAN_FFMPEG)/lib/libtheoraenc.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libvorbisenc.a $(NAN_FFMPEG)/lib/libvorbisfile.a $(NAN_FFMPEG)/lib/libogg.a -lbz2
113       else
114         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
115       endif
116     endif
117     export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg
118
119     export WITH_OPENEXR ?= true
120     export WITH_DDS ?= true
121     export WITH_OPENJPEG ?= true
122     export WITH_LZO ?= true
123     export WITH_LZMA ?= true
124     export NAN_LZO ?= $(LCGDIR)/lzo
125     export NAN_LZMA ?= $(LCGDIR)/lzma
126     export WITH_OPENAL ?= false
127     export WITH_JACK ?= false
128     export WITH_SNDFILE ?= false
129     export WITH_FFTW3 ?= false
130
131   ifeq ($(WITH_OPENAL), true)
132     export NAN_OPENAL ?= /usr
133   endif
134
135   ifeq ($(WITH_JACK), true)
136     export NAN_JACK ?= $(LCGDIR)/jack
137     export NAN_JACKCFLAGS ?= -I$(NAN_JACK)/include/jack
138     export NAN_JACKLIBS ?= $(NAN_JACK)/lib/libjack.a
139   endif
140
141   ifeq ($(WITH_SNDFILE),true)
142     export NAN_SNDFILE ?= $(LCGDIR)/sndfile
143     export NAN_SNDFILECFLAGS ?= -I$(NAN_SNDFILE)/include
144     export NAN_SNDFILELIBS ?= $(NAN_SNDFILE)/lib/libsndfile.a $(NAN_SNDFILE)/lib/libFLAC.a $(NAN_SNDFILE)/lib/libogg.a
145   endif
146
147   ifeq ($(NAN_USE_FFMPEG_CONFIG), true)
148     export NAN_FFMPEG = $(shell pkg-config --variable=prefix libavcodec) # Assume they are all in the same prefix
149     export NAN_FFMPEGLIBS = $(shell pkg-config --libs libavcodec libavdevice libavformat libswscale libavutil)
150     export NAN_FFMPEGCFLAGS = $(shell pkg-config --cflags libavcodec libavdevice libavformat libswscale libavutil)
151   endif
152
153   ifeq ($(WITH_OPENCOLLADA), true)
154     export BF_OPENCOLLADA ?= $(LCGDIR)/opencollada
155     export BF_OPENCOLLADA_INC ?= $(BF_OPENCOLLADA)/include
156     export BF_OPENCOLLADA_LIBS ?= $(BF_OPENCOLLADA)/lib/libOpenCOLLADASaxFrameworkLoader.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAFramework.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADABaseUtils.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAStreamWriter.a $(BF_OPENCOLLADA)/lib/libMathMLSolver.a $(BF_OPENCOLLADA)/lib/libGeneratedSaxParser.a $(BF_OPENCOLLADA)/lib/libUTF.a -lxml2
157     export BF_PCRE ?= $(LCGDIR)/pcre
158     export BF_PCRE_LIBS ?= $(BF_PCRE)/lib/libpcre.a
159   endif
160
161   export WITH_TIFF ?= true
162
163   #enable raytracing optimization (currently only for i386 and x86_64)
164   ifeq ($(CPU),powerpc)
165     export WITH_BF_RAYOPTIMIZATION ?= false
166   else
167     export WITH_BF_RAYOPTIMIZATION ?= true
168   endif
169
170   export WITH_LCMS ?= false
171   export WITH_CINEON ?= true
172   export WITH_HDR ?= true
173   
174   # Compare recreated .mo files with committed ones
175   export BF_VERIFY_MO_FILES ?= true
176
177   # Platform Dependent settings go below:
178   ifeq ($(OS),darwin)
179
180     export ID = $(shell whoami)
181     export HOST = $(shell hostname -s)
182
183     # set target arch & os version
184     # architecture defaults to host arch, can be ppc, ppc64, i386, x86_64
185     ifeq ($(CPU),powerpc)
186         export MACOSX_ARCHITECTURE ?= ppc
187     else
188         export MACOSX_ARCHITECTURE ?= i386
189     endif
190     # target os version defaults to 10.4 for ppc & i386 (32 bit), 10.5 for ppc64, x86_64
191     ifeq (64,$(findstring 64, $(MACOSX_ARCHITECTURE)))
192         export MACOSX_MIN_VERS ?= 10.5
193         export MACOSX_DEPLOYMENT_TARGET ?= 10.5
194         export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.5.sdk
195     else
196         export MACOSX_MIN_VERS ?= 10.4
197         export MACOSX_DEPLOYMENT_TARGET ?= 10.4
198         export MACOSX_SDK ?= /Developer/SDKs/MacOSX10.4u.sdk
199     endif
200
201     # useful for crosscompiling
202     ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE), "ppc ppc64"))
203         export CPU = powerpc
204         export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU)
205         export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU)
206     endif
207     ifeq ($(MACOSX_ARCHITECTURE),$(findstring $(MACOSX_ARCHITECTURE),"i386 x86_64"))
208         export CPU = i386
209         export LCGDIR = $(NAN_LIBDIR)/$(OS)-$(OS_VERSION)-$(CPU)
210         export OCGDIR = $(NAN_OBJDIR)/$(OS)-$(OS_VERSION)-$(CPU)
211     endif
212
213     export NAN_PYTHON_VERSION = 3.1
214
215     ifeq ($(NAN_PYTHON_VERSION),3.1)
216       export PY_FRAMEWORK ?= 0
217       export NAN_PYTHON ?= $(LCGDIR)/python
218       export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/libpython$(NAN_PYTHON_VERSION).a
219     else
220       export PY_FRAMEWORK ?= 1
221       ifdef PY_FRAMEWORK
222         export NAN_PYTHON_VERSION ?= 3.1
223         export NAN_PYTHON ?= /System/Library/Frameworks/Python.framework/Versions/$(NAN_PYTHON_VERSION)
224         export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
225         export NAN_PYTHON_LIB ?= -framework Python
226       else
227         export NAN_PYTHON ?= /sw
228         export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
229         export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
230       endif
231     endif
232
233     export NAN_OPENAL ?= $(LCGDIR)/openal
234     export NAN_JPEG ?= $(LCGDIR)/jpeg
235     export NAN_PNG ?= $(LCGDIR)/png
236     export NAN_TIFF ?= $(LCGDIR)/tiff
237     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
238     export NAN_MESA ?= /usr/src/Mesa-3.1
239     export NAN_ZLIB ?= $(LCGDIR)/zlib
240     export NAN_NSPR ?= $(LCGDIR)/nspr
241     export NAN_FREETYPE ?= $(LCGDIR)/freetype
242     export NAN_GETTEXT ?= $(LCGDIR)/gettext
243     export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a
244     ifeq (($CPU), i386)
245         export NAN_GETTEXT_LIB += $(NAN_GETTEXT)/lib/libintl.a
246     endif
247     export NAN_SDL ?= $(LCGDIR)/sdl
248     export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include
249     export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a -framework Cocoa -framework IOKit
250
251     export NAN_OPENEXR ?= $(LCGDIR)/openexr
252     export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR
253     export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a
254
255     export NAN_NO_KETSJI=false
256
257     #ifeq ($(CPU), i386)
258     #  export WITH_OPENAL=false
259     #endif
260
261     # Location of MOZILLA/Netscape header files...
262     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
263     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
264     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
265     # if this is not set.
266
267     export NAN_BUILDINFO ?= true
268     # Be paranoid regarding library creation (do not update archives)
269     export NAN_PARANOID ?= true
270
271     # enable quicktime by default on OS X
272     export WITH_QUICKTIME ?= true
273
274     # enable l10n
275     export INTERNATIONAL ?= true
276
277     export NAN_SAMPLERATE ?= $(LCGDIR)/samplerate
278     export NAN_SAMPLERATE_LIBS ?= $(NAN_SAMPLERATE)/lib/libsamplerate.a 
279
280     # enable building with Cocoa
281     export WITH_COCOA ?= false
282     export USE_QTKIT ?= false
283     # use cocoa and qtkit for 64bit builds
284     ifeq (64, $(findstring 64, $(MACOSX_ARCHITECTURE)))
285         export WITH_COCOA = true
286         export USE_QTKIT = true
287     endif
288
289     export BF_PCRE = $(LCGDIR)/opencollada
290     export BF_OPENCOLLADA_LIBS = $(BF_OPENCOLLADA)/lib/libOpenCOLLADASaxFrameworkLoader.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAFramework.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADABaseUtils.a $(BF_OPENCOLLADA)/lib/libOpenCOLLADAStreamWriter.a $(BF_OPENCOLLADA)/lib/libMathMLSolver.a $(BF_OPENCOLLADA)/lib/libGeneratedSaxParser.a $(BF_OPENCOLLADA)/lib/libUTF.a $(BF_OPENCOLLADA)/lib/libftoa.a $(BF_OPENCOLLADA)/lib/libbuffer.a -lxml2
291
292   else
293   ifeq ($(OS),freebsd)
294
295     export ID = $(shell whoami)
296     export HOST = $(shell hostname -s)
297     export FREEDESKTOP ?= true
298
299     export BF_PREFIX ?= /usr/local
300     export NAN_PYTHON ?= /usr/local
301     export NAN_PYTHON_VERSION ?= 3.1
302     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
303     export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
304     export NAN_OPENAL ?= /usr/local
305     export NAN_JPEG ?= /usr/local
306     export NAN_PNG ?= /usr/local
307     export NAN_TIFF ?= /usr/local
308     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
309     export NAN_MESA ?= /usr/src/Mesa-3.1
310     export NAN_ZLIB ?= /usr
311     export NAN_NSPR ?= /usr/local
312     export NAN_FREETYPE ?= $(LCGDIR)/freetype
313     export NAN_GETTEXT ?= $(LCGDIR)/gettext
314     export NAN_SDL ?= $(shell sdl-config --prefix)
315     export NAN_SDLLIBS ?= $(shell sdl-config --libs)
316     export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags)
317
318     # Location of MOZILLA/Netscape header files...
319     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
320     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
321     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
322     # if this is not set.
323
324     export NAN_BUILDINFO ?= true
325     # Be paranoid regarding library creation (do not update archives)
326     export NAN_PARANOID ?= true
327
328     # enable l10n
329     # export INTERNATIONAL ?= true
330
331   else
332   ifeq ($(OS),irix)
333
334     export ID = $(shell whoami)
335     export HOST = $(shell /usr/bsd/hostname -s)
336     #export NAN_NO_KETSJI=true
337     export NAN_JUST_BLENDERDYNAMIC=true
338
339     export BF_PREFIX ?= /usr/local
340     export NAN_PYTHON_VERSION ?= 3.1
341     ifeq ($(IRIX_USE_GCC), true)
342         export NAN_PYTHON ?= $(LCGDIR)/python_gcc
343     else
344         export NAN_PYTHON ?= $(LCGDIR)/python
345     endif
346     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
347     export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a -lpthread
348     export NAN_OPENAL ?= $(LCGDIR)/openal
349     export NAN_JPEG ?= $(LCGDIR)/jpeg
350     export NAN_PNG ?= $(LCGDIR)/png
351     export NAN_TIFF ?= $(LCGDIR)/tiff
352     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
353     export NAN_MESA ?= /usr/src/Mesa-3.1
354     export NAN_ZLIB ?= $(LCGDIR)/zlib
355     export NAN_NSPR ?= $(LCGDIR)/nspr
356     export NAN_FREETYPE ?= $(LCGDIR)/freetype
357     export NAN_ICONV ?= $(LCGDIR)/iconv
358     export NAN_GETTEXT ?= $(LCGDIR)/gettext
359     export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a $(NAN_ICONV)/lib/libiconv.a
360     export NAN_SDL ?= $(LCGDIR)/sdl
361     export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a
362     export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include/SDL
363     export NAN_FFMPEG ?= $(LCGDIR)/ffmpeg
364     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/libogg.a $(NAN_FFMPEG)/lib/libfaad.a $(NAN_FFMPEG)/lib/libmp3lame.a $(NAN_FFMPEG)/lib/libvorbis.a $(NAN_FFMPEG)/lib/libx264.a $(NAN_FFMPEG)/lib/libfaac.a $(NAN_ZLIB)/lib/libz.a
365     export NAN_FFMPEGCFLAGS ?= -I$(NAN_FFMPEG)/include -I$(NANBLENDERHOME)/extern/ffmpeg
366
367     ifeq ($(IRIX_USE_GCC), true)
368       export NAN_OPENEXR ?= $(LCGDIR)/openexr/gcc
369     else
370       export NAN_OPENEXR ?= $(LCGDIR)/openexr
371     endif
372     export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR
373     export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a
374
375     # Location of MOZILLA/Netscape header files...
376     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
377     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
378     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
379     # if this is not set.
380
381     export NAN_BUILDINFO ?= true
382     # Be paranoid regarding library creation (do not update archives)
383     export NAN_PARANOID ?= true
384
385     # enable l10n
386     export INTERNATIONAL ?= true
387
388     # Different endianess will make it fail, rely on other platforms for checks
389     export BF_VERIFY_MO_FILES = false
390
391   else
392   ifeq ($(OS),linux)
393
394     export ID = $(shell whoami)
395     export HOST = $(shell hostname -s)
396     export FREEDESKTOP ?= true
397
398     export BF_PREFIX ?= /usr/local
399     export NAN_PYTHON ?= /usr
400     export NAN_PYTHON_VERSION ?= 3.1
401     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
402     # Next line if for static python, nan_link.mk uses -lpython$(NAN_PYTHON_VERSION)
403     #export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
404     export NAN_OPENAL ?= /usr
405     export NAN_JPEG ?= /usr
406     export NAN_PNG ?= /usr
407     export NAN_TIFF ?= /usr
408     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
409     export NAN_MESA ?= /usr
410     export NAN_ZLIB ?= /usr
411     export NAN_NSPR ?= $(LCGDIR)/nspr
412     export NAN_FREETYPE ?= /usr
413     export NAN_GETTEXT ?= /usr
414     export NAN_SDL ?= $(shell sdl-config --prefix)
415     export NAN_SDLLIBS ?= $(shell sdl-config --libs)
416     export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags)
417     export NAN_SAMPLERATE ?= /usr
418
419     ifeq ($(WITH_OPENEXR), true)
420       export NAN_OPENEXR ?= $(shell pkg-config --variable=prefix OpenEXR )
421       export NAN_OPENEXR_INC ?= $(shell pkg-config --cflags OpenEXR )
422       export NAN_OPENEXR_LIBS ?= $(addprefix ${NAN_OPENEXR}/lib/lib,$(addsuffix .a,$(shell pkg-config --libs-only-l OpenEXR | sed -s "s/-l//g" )))
423     endif
424
425     ifeq ($(WITH_FFTW3), true)
426       export BF_FFTW3 ?= $(shell pkg-config --variable=prefix fftw3 )
427       export BF_FFTW3_INC ?= $(shell pkg-config --variable=includedir fftw3 )
428       export BF_FFTW3_LIBS ?= $(shell pkg-config --libs fftw3 )
429     endif
430
431     # Uncomment the following line to use Mozilla inplace of netscape
432
433     # Location of MOZILLA/Netscape header files...
434     export NAN_MOZILLA_INC ?= /usr/include/mozilla
435     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
436     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
437     # if this is not set.
438
439     export NAN_BUILDINFO ?= true
440     # Be paranoid regarding library creation (do not update archives)
441     export NAN_PARANOID ?= true
442
443     # l10n
444     export INTERNATIONAL ?= true
445
446     export WITH_BINRELOC ?= true
447
448     # enable ffmpeg support
449     ifndef NAN_NO_FFMPEG
450       export WITH_FFMPEG ?= true
451     endif
452
453     ifeq ($(CPU), powerpc)
454         # Different endianess will make it fail, rely on other platforms for checks
455         export BF_VERIFY_MO_FILES = false
456     endif
457
458   else
459   ifeq ($(OS),openbsd)
460
461     export ID = $(shell whoami)
462     export HOST = $(shell hostname -s)
463     export FREEDESKTOP ?= true
464
465     export BF_PREFIX ?= /usr/local
466     export NAN_PYTHON ?= $(LCGDIR)/python
467     export NAN_PYTHON_VERSION ?= 3.1
468     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
469     export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
470     export NAN_OPENAL ?= $(LCGDIR)/openal
471     export NAN_JPEG ?= $(LCGDIR)/jpeg
472     export NAN_PNG ?= $(LCGDIR)/png
473     export NAN_TIFF ?= $(LCGDIR)/tiff
474     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
475     export NAN_MESA ?= /usr/src/Mesa-3.1
476     export NAN_ZLIB ?= $(LCGDIR)/zlib
477     export NAN_NSPR ?= $(LCGDIR)/nspr
478     export NAN_FREETYPE ?= $(LCGDIR)/freetype
479     export NAN_GETTEXT ?= $(LCGDIR)/gettext
480     export NAN_SDL ?= $(shell sdl-config --prefix)
481     export NAN_SDLLIBS ?= $(shell sdl-config --libs)
482     export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags)
483
484     # Location of MOZILLA/Netscape header files...
485     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
486     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
487     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
488     # if this is not set.
489
490     export NAN_BUILDINFO ?= true
491     # Be paranoid regarding library creation (do not update archives)
492     export NAN_PARANOID ?= true
493
494     # l10n
495     #export INTERNATIONAL ?= true
496
497   else
498   ifeq ($(OS),solaris)
499
500     export ID = $(shell /usr/ucb/whoami)
501     export HOST = $(shell hostname)
502
503     export BF_PREFIX ?= /usr/local
504     export NAN_PYTHON ?= $(LCGDIR)/python
505     export NAN_PYTHON_VERSION ?= 3.1
506     export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
507     export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
508     export NAN_OPENAL ?= $(LCGDIR)/openal
509     export NAN_JPEG ?= $(LCGDIR)/jpeg
510     export NAN_PNG ?= $(LCGDIR)/png
511     export NAN_TIFF ?= /usr
512     export NAN_TERRAPLAY ?=
513     export NAN_MESA ?= /usr/X11
514     export NAN_ZLIB ?= $(LCGDIR)/zlib
515     export NAN_NSPR ?= $(LCGDIR)/nspr
516     export NAN_FREETYPE ?= $(LCGDIR)/freetype
517     export NAN_GETTEXT ?= $(LCGDIR)/gettext
518     export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/libintl.a $(NAN_GETTEXT)/lib/libiconv.a
519     export NAN_SDL ?= $(LCGDIR)/sdl
520     export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include/SDL
521     export NAN_SDLLIBS ?= $(NAN_SDL)/lib/libSDL.a
522
523     # this only exists at the moment for i386-64 CPU Types at the moment
524     export NAN_OPENEXR ?= $(LCGDIR)/openexr
525     export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR
526     export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a $(NAN_OPENEXR)/lib/libIlmThread.a -lrt
527
528     # Location of MOZILLA/Netscape header files...
529     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
530     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
531     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
532     # if this is not set.
533
534     export NAN_BUILDINFO ?= true
535     # Be paranoid regarding library creation (do not update archives)
536     export NAN_PARANOID ?= true
537
538     # l10n
539     #export INTERNATIONAL ?= true
540
541   else
542   ifeq ($(OS),windows)
543
544     export ID = $(LOGNAME)
545     export NAN_PYTHON ?= $(LCGDIR)/python
546     export NAN_ICONV ?= $(LCGDIR)/iconv
547     export NAN_PYTHON_VERSION ?= 3.1
548     export NAN_OPENAL ?= $(LCGDIR)/openal
549     export NAN_JPEG ?= $(LCGDIR)/jpeg
550     export NAN_PNG ?= $(LCGDIR)/png
551     export NAN_TIFF ?= $(LCGDIR)/tiff
552     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
553     export NAN_MESA ?= /usr/src/Mesa-3.1
554     export NAN_ZLIB ?= $(LCGDIR)/zlib
555     export NAN_NSPR ?= $(LCGDIR)/nspr
556     export NAN_GETTEXT ?= $(LCGDIR)/gettext
557     ifeq ($(FREE_WINDOWS), true)
558       export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/freegettext.a $(NAN_ICONV)/lib/freeiconv.a
559       export NAN_PYTHON_BINARY ?= $(NAN_PYTHON)/bin/python$(NAN_PYTHON_VERSION)
560       export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/lib25_vs2005/libpython31.a # NOT TESTED, PROBABLY BROKEN
561       export NAN_FREETYPE ?= $(LCGDIR)/gcc/freetype
562       export NAN_SDL ?= $(LCGDIR)/gcc/sdl
563       export NAN_OPENEXR ?= $(LCGDIR)/gcc/openexr
564       export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/OpenEXR
565       export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/libIlmImf.a $(NAN_OPENEXR)/lib/libHalf.a $(NAN_OPENEXR)/lib/libIex.a
566       export NAN_PTHREADS ?= $(LCGDIR)/pthreads
567     else
568       export NAN_GETTEXT_LIB ?= $(NAN_GETTEXT)/lib/gnu_gettext.lib $(NAN_ICONV)/lib/iconv.lib
569       export NAN_PYTHON_BINARY ?= python
570       export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python31.lib # NOT TESTED, PROBABLY BROKEN
571       export NAN_FREETYPE ?= $(LCGDIR)/freetype
572       export NAN_SDL ?= $(LCGDIR)/sdl
573       export NAN_OPENEXR ?= $(LCGDIR)/openexr
574       export NAN_OPENEXR_INC ?= -I$(NAN_OPENEXR)/include -I$(NAN_OPENEXR)/include/IlmImf -I$(NAN_OPENEXR)/include/Imath -I$(NAN_OPENEXR)/include/Iex
575       export NAN_OPENEXR_LIBS ?= $(NAN_OPENEXR)/lib/IlmImf.lib $(NAN_OPENEXR)/lib/Half.lib $(NAN_OPENEXR)/lib/Iex.lib
576     endif
577     export NAN_SDLCFLAGS ?= -I$(NAN_SDL)/include
578
579     export NAN_WINTAB ?= $(LCGDIR)/wintab
580
581     # Location of MOZILLA/Netscape header files...
582     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
583     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
584     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
585     # if this is not set.
586     export NAN_PYTHON_BINARY ?= python
587     export NAN_BUILDINFO ?= true
588     # Be paranoid regarding library creation (do not update archives)
589     export NAN_PARANOID ?= true
590
591     # l10n
592     export INTERNATIONAL ?= true
593
594     # enable quicktime support
595     # export WITH_QUICKTIME ?= true
596
597   else # Platform not listed above
598
599     export NAN_PYTHON ?= $(LCGDIR)/python
600     export NAN_PYTHON_VERSION ?= 3.1
601     export NAN_PYTHON_BINARY ?= python
602     export NAN_PYTHON_LIB ?= $(NAN_PYTHON)/lib/python$(NAN_PYTHON_VERSION)/config/libpython$(NAN_PYTHON_VERSION).a
603
604     export NAN_OPENAL ?= $(LCGDIR)/openal
605     export NAN_JPEG ?= $(LCGDIR)/jpeg
606     export NAN_PNG ?= $(LCGDIR)/png
607     export NAN_TIFF ?= $(LCGDIR)/tiff
608     export NAN_SDL ?= $(LCGDIR)/sdl
609     export NAN_TERRAPLAY ?= $(LCGDIR)/terraplay
610     export NAN_MESA ?= /usr/src/Mesa-3.1
611     export NAN_ZLIB ?= $(LCGDIR)/zlib
612     export NAN_NSPR ?= $(LCGDIR)/nspr
613     export NAN_FREETYPE ?= $(LCGDIR)/freetype
614     export NAN_GETTEXT ?= $(LCGDIR)/gettext
615     export NAN_SDL ?= $(shell sdl-config --prefix)
616     export NAN_SDLLIBS ?= $(shell sdl-config --libs)
617     export NAN_SDLCFLAGS ?= $(shell sdl-config --cflags)
618
619     # Location of MOZILLA/Netscape header files...
620     export NAN_MOZILLA_INC ?= $(LCGDIR)/mozilla/include
621     export NAN_MOZILLA_LIB ?= $(LCGDIR)/mozilla/lib/
622     # Will fall back to look in NAN_MOZILLA_INC/nspr and NAN_MOZILLA_LIB
623     # if this is not set.
624
625     export NAN_BUILDINFO ?= true
626     # Be paranoid regarding library creation (do not update archives)
627     export NAN_PARANOID ?= true
628
629     # l10n
630     #export INTERNATIONAL ?= true
631
632   endif # windows + fallback
633   endif # solaris
634   endif # openbsd
635   endif # linux
636   endif # irix
637   endif # freebsd
638   endif # darwin
639
640   # default tiff libs
641   export NAN_TIFF_LIBS ?= $(NAN_TIFF)/lib/libtiff.a
642
643   # default path to lcms, may be overidden in platform sections above or in user-def.mk
644   export BF_LCMS ?= $(LCGDIR)/lcms
645   export BF_LCMS_INC ?= $(BF_LCMS)/include
646   export BF_LCMS_LIBS ?= $(BF_LCMS)/lib/liblcms.a
647
648 endif # CONFIG_GUESS
649
650 # Don't want to build the gameengine?
651 ifeq ($(NAN_NO_KETSJI), true)
652    export NAN_JUST_BLENDERDYNAMIC=true
653 endif