Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2008-11-07 22:21:52 +0300
committerNathan Letwory <nathan@letworyinteractive.com>2008-11-07 22:21:52 +0300
commit6eaaf2ce7254235081d21cde3f2815f8050faf21 (patch)
tree47562719f6b91648c53f2e7670c5efd5b38c198d
parent7e8ba5c84d4d35fe6ee4e3d73d08265ae931e2d3 (diff)
=== SCons ===
* merge the recent scons changes from trunk, so this means that the same rules now apply: - scons-local available - platform default configs updated - check your user-config.py if you have made a full copy of default config Note: BGE and blenderplayer still not working, but that is normal ;) (so turn them off!)
-rw-r--r--SConstruct42
-rw-r--r--config/darwin-config.py190
-rw-r--r--config/linux2-config.py96
-rw-r--r--config/linuxcross-config.py52
-rw-r--r--config/openbsd3-config.py58
-rw-r--r--config/sunos5-config.py68
-rw-r--r--config/win32-mingw-config.py60
-rw-r--r--config/win32-vc-config.py65
-rw-r--r--extern/verse/dist/SConstruct8
-rw-r--r--source/blender/makesdna/intern/SConscript4
-rw-r--r--source/blender/makesrna/intern/SConscript4
-rw-r--r--source/gameengine/Physics/Sumo/SConscript4
-rw-r--r--tools/Blender.py774
-rwxr-xr-xtools/bcolors.py26
-rwxr-xr-xtools/btools.py1004
15 files changed, 1343 insertions, 1112 deletions
diff --git a/SConstruct b/SConstruct
index 03b5b2885e3..991ef3d4168 100644
--- a/SConstruct
+++ b/SConstruct
@@ -42,6 +42,8 @@ import tools.Blender
import tools.btools
import tools.bcolors
+EnsureSConsVersion(1,0,0)
+
BlenderEnvironment = tools.Blender.BlenderEnvironment
btools = tools.btools
B = tools.Blender
@@ -122,6 +124,7 @@ if not env:
print "Could not create a build environment"
Exit()
+
cc = B.arguments.get('CC', None)
cxx = B.arguments.get('CXX', None)
if cc:
@@ -136,8 +139,6 @@ elif env['CC'] in ['gcc'] and sys.platform=='win32':
env.SConscriptChdir(0)
-btools.MainEnv = env
-
crossbuild = B.arguments.get('BF_CROSS', None)
if crossbuild and platform!='win32':
platform = 'linuxcross'
@@ -173,6 +174,9 @@ opts.Update(env)
if not env['BF_FANCY']:
B.bc.disable()
+SetOption('num_jobs', int(env['BF_NUMJOBS']))
+print "Build with %d parallel jobs" % (GetOption('num_jobs'))
+
# disable elbeem (fluidsim) compilation?
if env['BF_NO_ELBEEM'] == 1:
env['CPPFLAGS'].append('-DDISABLE_ELBEEM')
@@ -223,7 +227,7 @@ if env['OURPLATFORM'] == 'linux2' :
context.Result(result)
return result
- env2 = env.Copy( LIBPATH = env['BF_OPENAL'] )
+ env2 = env.Clone( LIBPATH = env['BF_OPENAL'] )
sconf_temp = mkdtemp()
conf = Configure( env2, {'CheckFreeAlut' : CheckFreeAlut}, sconf_temp, '/dev/null' )
if conf.CheckFreeAlut( env2 ):
@@ -278,15 +282,16 @@ if 'blenderlite' in B.targets:
env['WITH_BF_BINRELOC'] = False
env['BF_BUILDINFO'] = False
env['BF_NO_ELBEEM'] = True
-
-
+ env['WITH_BF_PYTHON'] = False
# lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
#B.root_build_dir = B.arguments.get('BF_BUILDDIR', '..'+os.sep+'build'+os.sep+platform+os.sep)
B.root_build_dir = env['BF_BUILDDIR']
-env['BUILDDIR'] = B.root_build_dir
+B.doc_build_dir = env['BF_DOCDIR']
if not B.root_build_dir[-1]==os.sep:
B.root_build_dir += os.sep
+if not B.doc_build_dir[-1]==os.sep:
+ B.doc_build_dir += os.sep
# We do a shortcut for clean when no quicklist is given: just delete
# builddir without reading in SConscripts
@@ -295,8 +300,18 @@ if 'clean' in B.targets:
do_clean = True
if not quickie and do_clean:
+ if os.path.exists(B.doc_build_dir):
+ print B.bc.HEADER+'Cleaning doc dir...'+B.bc.ENDC
+ dirs = os.listdir(B.doc_build_dir)
+ for entry in dirs:
+ if os.path.isdir(B.doc_build_dir + entry) == 1:
+ print "clean dir %s"%(B.doc_build_dir+entry)
+ shutil.rmtree(B.doc_build_dir+entry)
+ else: # remove file
+ print "remove file %s"%(B.doc_build_dir+entry)
+ os.remove(B.root_build_dir+entry)
if os.path.exists(B.root_build_dir):
- print B.bc.HEADER+'Cleaning...'+B.bc.ENDC
+ print B.bc.HEADER+'Cleaning build dir...'+B.bc.ENDC
dirs = os.listdir(B.root_build_dir)
for entry in dirs:
if os.path.isdir(B.root_build_dir + entry) == 1:
@@ -322,6 +337,8 @@ if not os.path.isdir ( B.root_build_dir):
os.makedirs ( B.root_build_dir + 'extern' )
os.makedirs ( B.root_build_dir + 'lib' )
os.makedirs ( B.root_build_dir + 'bin' )
+if not os.path.isdir(B.doc_build_dir):
+ os.makedirs ( B.doc_build_dir )
Help(opts.GenerateHelpText(env))
@@ -364,7 +381,8 @@ dobj = B.buildinfo(env, "dynamic") + B.resources
thestatlibs, thelibincs = B.setup_staticlibs(env)
thesyslibs = B.setup_syslibs(env)
-env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist + thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
+if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']:
+ env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist + thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
if env['WITH_BF_PLAYER']:
playerlist = B.create_blender_liblist(env, 'player')
env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist + thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
@@ -535,6 +553,10 @@ nsisaction = env.Action(btools.NSIS_Installer, btools.NSIS_print)
nsiscmd = env.Command('nsisinstaller', None, nsisaction)
nsisalias = env.Alias('nsis', nsiscmd)
+if 'blender' in B.targets:
+ blenderexe= env.Alias('blender', B.program_list)
+ Depends(blenderexe,installtarget)
+
if env['WITH_BF_PLAYER']:
blenderplayer = env.Alias('blenderplayer', B.program_list)
Depends(blenderplayer,installtarget)
@@ -561,5 +583,7 @@ if not env['WITHOUT_BF_INSTALL']:
# TODO: build stubs and link into blenderplayer
#------------ EPYDOC
-# TODO: run epydoc
+if env['WITH_BF_DOCS']:
+ SConscript('source/blender/python/api2_2x/doc/SConscript')
+ SConscript('source/gameengine/PyDoc/SConscript')
diff --git a/config/darwin-config.py b/config/darwin-config.py
index 51ecaae1331..7c118b78861 100644
--- a/config/darwin-config.py
+++ b/config/darwin-config.py
@@ -1,21 +1,63 @@
-LCGDIR = '#../lib/darwin-6.1-powerpc'
+#
+# Note : if you want to alter this file
+# copy it as a whole in the upper folder
+# as user-config.py
+# dont create a new file with only some
+# vars changed.
+
+import commands
+
+# IMPORTANT NOTE : OFFICIAL BUILDS SHOULD BE DONE WITH SDKs
+USE_SDK=True
+
+BF_PYTHON_VERSION = '2.3'
+
+cmd = 'uname -p'
+MAC_PROC=commands.getoutput(cmd)
+cmd = 'uname -r'
+cmd_res=commands.getoutput(cmd)
+if cmd_res[0]=='7':
+ MAC_CUR_VER='10.3'
+elif cmd_res[0]=='8':
+ MAC_CUR_VER='10.4'
+else:
+ MAC_CUR_VER='10.5'
+
+if MAC_PROC == 'powerpc':
+ LCGDIR = '#../lib/darwin-6.1-powerpc'
+else :
+ LCGDIR = '#../lib/darwin-8.x.i386'
LIBDIR = '${LCGDIR}'
+if MAC_PROC== 'powerpc' and BF_PYTHON_VERSION == '2.3':
+ MAC_MIN_VERS = '10.3'
+ MACOSX_SDK='/Developer/SDKs/MacOSX10.3.9.sdk'
+else:
+ MAC_MIN_VERS = '10.4'
+ MACOSX_SDK='/Developer/SDKs/MacOSX10.4u.sdk'
+
+
# enable ffmpeg support
-WITH_BF_FFMPEG = 'true' # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR +'/ffmpeg'
+WITH_BF_FFMPEG = True # -DWITH_FFMPEG
+BF_FFMPEG = "#extern/ffmpeg"
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat.a avcodec.a avutil.a'
+if USE_SDK==True:
+ BF_FFMPEG_EXTRA = '-isysroot '+MACOSX_SDK+' -mmacosx-version-min='+MAC_MIN_VERS
+#BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
+#BF_FFMPEG_LIB = 'avformat.a avcodec.a avutil.a'
-WITH_BF_VERSE = 'false'
+WITH_BF_VERSE = False
BF_VERSE = "#extern/verse/dist"
BF_VERSE_LIBPATH = "${BF_BUILDDIR}/extern/verse/dist"
BF_VERSE_INCLUDE = BF_VERSE
BF_VERSE_LIBS = "libverse"
-# python.org libs install in /library
-BF_PYTHON_VERSION = '2.3'
+# python.org libs install in /library we want to use that for 2.5
+#
+# if you want py2.5 on leopard without installing
+# change value to BF_PYTHON = '/Library/Frameworks/Python.framework/Versions/'
+# BEWARE: in that case it will work only on leopard
+
if BF_PYTHON_VERSION=='2.3':
BF_PYTHON = '/System/Library/Frameworks/Python.framework/Versions/'
else:
@@ -25,43 +67,66 @@ BF_PYTHON_INC = '${BF_PYTHON}${BF_PYTHON_VERSION}/include/python${BF_PYTHON_VERS
BF_PYTHON_BINARY = '${BF_PYTHON}${BF_PYTHON_VERSION}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = ''
BF_PYTHON_LIBPATH = '${BF_PYTHON}${BF_PYTHON_VERSION}/lib/python${BF_PYTHON_VERSION}/config'
-BF_PYTHON_LINKFLAGS = '-u __dummy -u _PyMac_Error -framework System -framework Python'
-
-WITH_BF_OPENAL = 'true'
+BF_PYTHON_LINKFLAGS = '-u _PyMac_Error -framework System -framework Python'
+if MAC_CUR_VER=='10.3' or MAC_CUR_VER=='10.4':
+ BF_PYTHON_LINKFLAGS ='-u __dummy '+BF_PYTHON_LINKFLAGS
+
+BF_QUIET = '1'
+WITH_BF_OPENMP = '0'
+
+# Note : should be true, but openal simply dont work on intel
+if MAC_PROC == 'i386':
+ WITH_BF_OPENAL = False
+else:
+ WITH_BF_OPENAL = True
#different lib must be used following version of gcc
# for gcc 3.3
#BF_OPENAL = LIBDIR + '/openal'
-# for gcc 3.4
-BF_OPENAL = '#../lib/darwin-8.0.0-powerpc/openal'
+# for gcc 3.4 and ulterior
+if MAC_PROC == 'powerpc':
+ BF_OPENAL = '#../lib/darwin-8.0.0-powerpc/openal'
+else :
+ BF_OPENAL = LIBDIR + '/openal'
+WITH_BF_STATICOPENAL = False
BF_OPENAL_INC = '${BF_OPENAL}/include'
BF_OPENAL_LIB = 'openal'
BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
+
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_CXX = '/usr'
+WITH_BF_STATICCXX = False
+BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-WITH_BF_SDL = 'true'
+WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
BF_SDL_LIBPATH = '${BF_SDL}/lib'
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = '${LCGDIR}/openexr'
BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath IlmThread'
BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = LIBDIR + '/jpeg'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = LIBDIR + '/png'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIB = 'png'
@@ -70,32 +135,32 @@ BF_PNG_LIBPATH = '${BF_PNG}/lib'
BF_TIFF = LIBDIR + '/tiff'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = '/usr'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIB = 'z'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = LIBDIR + '/gettext'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'intl'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE='true'
-WITH_BF_PLAYER='true'
+WITH_BF_GAMEENGINE=True
+WITH_BF_PLAYER=True
-WITH_BF_ODE = 'false'
+WITH_BF_ODE = False
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = '${BF_ODE}/include'
BF_ODE_LIB = '${BF_ODE}/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -104,9 +169,9 @@ BF_SOLID = '#extern/solid'
BF_SOLID_INC = '${BF_SOLID}'
BF_SOLID_LIB = 'extern_solid'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -121,7 +186,7 @@ WITH_BF_YAFRAY = 'true'
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
+#BF_PARANOID = True
# enable freetype2 support for text objects
BF_FREETYPE = LIBDIR + '/freetype'
@@ -129,35 +194,56 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-WITH_BF_QUICKTIME = 'true' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = True # -DWITH_QUICKTIME
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = True
BF_ICONV = LIBDIR + "/iconv"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
+#BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'true'
+WITH_BF_STATICOPENGL = True
BF_OPENGL_LIB = 'GL GLU'
BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
BF_OPENGL_LINKFLAGS = '-framework OpenGL'
-##
-##CC = gcc
-##CCC = g++
-##ifeq ($CPU),alpha)
-## CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
-
-CFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
+CFLAGS = ['-pipe','-fPIC','-funsigned-char']
CPPFLAGS = ['-fpascal-strings']
-CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing', '-fpascal-strings']
-CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing', '-fpascal-strings']
+CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fpascal-strings']
+CXXFLAGS = [ '-pipe','-fPIC','-funsigned-char', '-fpascal-strings']
PLATFORM_LINKFLAGS = '-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime'
-REL_CFLAGS = ['-O2']
-REL_CCFLAGS = ['-O2']
-##BF_DEPEND = 'true'
+
+#note to build succesfully on 10.3.9 SDK you need to patch 10.3.9 by adding the SystemStubs.a lib from 10.4
+LLIBS = 'stdc++ SystemStubs'
+
+# some flags shuffling for different Os versions
+if MAC_MIN_VERS == '10.3':
+ CFLAGS = ['-fuse-cxa-atexit']+CFLAGS
+ CXXFLAGS = ['-fuse-cxa-atexit']+CXXFLAGS
+ PLATFORM_LINKFLAGS = '-fuse-cxa-atexit '+PLATFORM_LINKFLAGS
+ LLIBS = LLIBS + ' crt3.o'
+
+if USE_SDK==True:
+ SDK_FLAGS=['-isysroot', MACOSX_SDK,'-mmacosx-version-min='+MAC_MIN_VERS]
+ PLATFORM_LINKFLAGS = '-mmacosx-version-min='+MAC_MIN_VERS+ ' -Wl,-syslibroot,' + MACOSX_SDK+" "+PLATFORM_LINKFLAGS
+ CCFLAGS=SDK_FLAGS+CCFLAGS
+ CXXFLAGS=SDK_FLAGS+CXXFLAGS
+
+# you can add -mssse3 if gcc >= 4.2
+if MAC_PROC == 'i386':
+ REL_CFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3']
+ REL_CCFLAGS = ['-O2','-ftree-vectorize','-msse','-msse2','-msse3']
+else:
+ CFLAGS = CFLAGS+['-fno-strict-aliasing']
+ CCFLAGS = CCFLAGS+['-fno-strict-aliasing']
+ CXXFLAGS = CXXFLAGS+['-fno-strict-aliasing']
+
+ REL_CFLAGS = ['-O2']
+ REL_CCFLAGS = ['-O2']
+
+##BF_DEPEND = True
##
##AR = ar
##ARFLAGS = ruv
@@ -165,21 +251,21 @@ REL_CCFLAGS = ['-O2']
##
CC = 'gcc'
CXX = 'g++'
-C_WARN = ' -Wall -Wno-long-double -Wdeclaration-after-statement '
+C_WARN = ['-Wdeclaration-after-statement']
-CC_WARN = ' -Wall -Wno-long-double'
+CC_WARN = ['-Wall', '-Wno-long-double']
##FIX_STUBS_WARNINGS = -Wno-unused
-LLIBS = 'stdc++ SystemStubs'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
-BF_PROFILE_FLAGS = ' -pg -g '
-BF_PROFILE = 'false'
+BF_PROFILE_CCFLAGS = ['-pg', '-g ']
+BF_PROFILE = False
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS = '-g'
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS = ['-g']
BF_BUILDDIR='../build/darwin'
BF_INSTALLDIR='../install/darwin'
+BF_DOCDIR='../install/doc'
diff --git a/config/linux2-config.py b/config/linux2-config.py
index 013020ee78d..19b62dd2395 100644
--- a/config/linux2-config.py
+++ b/config/linux2-config.py
@@ -1,45 +1,62 @@
LCGDIR = '../lib/linux2'
LIBDIR = "${LCGDIR}"
-WITH_BF_VERSE = 'false'
+WITH_BF_VERSE = False
BF_VERSE_INCLUDE = "#extern/verse/dist"
BF_PYTHON = '/usr'
BF_PYTHON_VERSION = '2.5'
+WITH_BF_STATICPYTHON = False
BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}' #BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
BF_PYTHON_LINKFLAGS = ['-Xlinker', '-export-dynamic']
+BF_PYTHON_LIB_STATIC = '${BF_PYTHON}/lib/libpython${BF_PYTHON_VERSION}.a'
-WITH_BF_OPENAL = 'true'
+WITH_BF_OPENAL = True
+WITH_BF_STATICOPENAL = False
BF_OPENAL = '/usr'
BF_OPENAL_INC = '${BF_OPENAL}/include'
BF_OPENAL_LIB = 'openal'
+BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
+
# some distros have a separate libalut
# if you get linker complaints, you need to uncomment the line below
# BF_OPENAL_LIB = 'openal alut'
+# BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a ${BF_OPENAL}/lib/libalut.a'
+
+BF_CXX = '/usr'
+WITH_BF_STATICCXX = False
+BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-WITH_BF_SDL = 'true'
+WITH_BF_SDL = True
BF_SDL = '/usr' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = '/usr'
+# when compiling with your own openexr lib you might need to set...
+# BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR ${BF_OPENEXR}/include'
+
BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR'
BF_OPENEXR_LIB = 'Half IlmImf Iex Imath '
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
+# BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
+
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = '/usr'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'jpeg'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = '/usr'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIB = 'png'
@@ -47,31 +64,31 @@ BF_PNG_LIB = 'png'
BF_TIFF = '/usr'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = '/usr'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIB = 'z'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = '/usr'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettextlib'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE='false'
+WITH_BF_GAMEENGINE=False
-WITH_BF_ODE = 'false'
+WITH_BF_ODE = False
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -80,9 +97,9 @@ BF_SOLID = '#extern/solid'
BF_SOLID_INC = '${BF_SOLID}'
BF_SOLID_LIB = 'extern_solid'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -97,25 +114,27 @@ WITH_BF_YAFRAY = 'true'
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
+#BF_PARANOID = True
# enable freetype2 support for text objects
BF_FREETYPE = '/usr'
BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = False
BF_ICONV = LIBDIR + "/iconv"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
+WITH_BF_BINRELOC = True
+
# enable ffmpeg support
-WITH_BF_FFMPEG = 'true' # -DWITH_FFMPEG
+WITH_BF_FFMPEG = True # -DWITH_FFMPEG
BF_FFMPEG = '#extern/ffmpeg'
BF_FFMPEG_LIB = ''
# Uncomment the following two lines to use system's ffmpeg
@@ -124,13 +143,31 @@ BF_FFMPEG_LIB = ''
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
+# enable ogg, vorbis and theora in ffmpeg
+WITH_BF_OGG = False # -DWITH_OGG
+BF_OGG = '/usr'
+BF_OGG_INC = '${BF_OGG}/include'
+BF_OGG_LIB = 'ogg vorbis theoraenc theoradec'
+
+WITH_BF_OPENJPEG = True
+BF_OPENJPEG = '#extern/libopenjpeg'
+BF_OPENJPEG_LIB = ''
+BF_OPENJPEG_INC = '${BF_OPENJPEG}/include'
+BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
+
+WITH_BF_REDCODE = False
+BF_REDCODE = '#extern/libredcode'
+BF_REDCODE_LIB = ''
+BF_REDCODE_INC = '${BF_REDCODE}/include'
+BF_REDCODE_LIBPATH='${BF_REDCODE}/lib'
+
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'false'
+WITH_BF_STATICOPENGL = False
BF_OPENGL = '/usr'
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIB = 'GL GLU X11 Xi'
BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
-BF_OPENGL_LIB_STATIC = '${BF_OPENGL}/libGL.a ${BF_OPENGL}/libGLU.a ${BF_OPENGL}/libXxf86vm.a ${BF_OPENGL}/libX11.a ${BF_OPENGL}/libXi.a ${BF_OPENGL}/libXext.a ${BF_OPENGL}/libXxf86vm.a'
+BF_OPENGL_LIB_STATIC = '${BF_OPENGL_LIBPATH}/libGL.a ${BF_OPENGL_LIBPATH}/libGLU.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a ${BF_OPENGL_LIBPATH}/libX11.a ${BF_OPENGL_LIBPATH}/libXi.a ${BF_OPENGL_LIBPATH}/libXext.a ${BF_OPENGL_LIBPATH}/libXxf86vm.a'
##
CC = 'gcc'
@@ -144,15 +181,15 @@ CPPFLAGS = ['-DXP_UNIX']
CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
REL_CFLAGS = ['-O2']
REL_CCFLAGS = ['-O2']
-##BF_DEPEND = 'true'
+##BF_DEPEND = True
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
-C_WARN = '-Wall -Wno-char-subscripts -Wdeclaration-after-statement'
+C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement']
-CC_WARN = '-Wall'
+CC_WARN = ['-Wall']
##FIX_STUBS_WARNINGS = -Wno-unused
@@ -160,14 +197,15 @@ LLIBS = 'util c m dl pthread stdc++'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
-BF_PROFILE_FLAGS = ['-pg','-g']
-BF_PROFILE = 'false'
+BF_PROFILE = False
+BF_PROFILE_CCFLAGS = ['-pg','-g']
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS = '-g'
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS = ['-g']
BF_BUILDDIR = '../build/linux2'
BF_INSTALLDIR='../install/linux2'
+BF_DOCDIR='../install/doc'
#Link against pthread
diff --git a/config/linuxcross-config.py b/config/linuxcross-config.py
index 231e4c451e9..4c5f4859a6c 100644
--- a/config/linuxcross-config.py
+++ b/config/linuxcross-config.py
@@ -1,10 +1,10 @@
LCGDIR = '../lib/windows'
LIBDIR = '${LCGDIR}'
-WITH_BF_VERSE = 'false'
+WITH_BF_VERSE = False
BF_VERSE_INCLUDE = "#extern/verse/dist"
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
BF_PYTHON = LIBDIR + '/python'
BF_PYTHON_VERSION = '2.5'
@@ -13,13 +13,21 @@ BF_PYTHON_BINARY = 'python'
BF_PYTHON_LIB = 'python25'
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-WITH_BF_OPENAL = 'true'
+WITH_BF_OPENAL = True
+WITH_BF_STATICOPENAL = False
BF_OPENAL = LIBDIR + '/openal'
BF_OPENAL_INC = '${BF_OPENAL}/include'
BF_OPENAL_LIB = 'openal_static'
BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-WITH_BF_SDL = 'true'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_CXX = '/usr'
+WITH_BF_STATICCXX = False
+BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
+
+WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include'
BF_SDL_LIB = 'SDL'
@@ -30,24 +38,27 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
BF_PTHREADS_LIB = 'pthreadGC2'
BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = LIBDIR + '/gcc/openexr'
BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
BF_OPENEXR_LIB = ' Half IlmImf Iex '
BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = LIBDIR + '/jpeg'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = LIBDIR + '/png'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIB = 'png'
@@ -56,32 +67,32 @@ BF_PNG_LIBPATH = '${BF_PNG}/lib'
BF_TIFF = LIBDIR + '/tiff'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = LIBDIR + '/zlib'
BF_ZLIB_INC = '${BF_ZLIB}/include'
#BF_ZLIB_LIB = 'z'
BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = LIBDIR + '/gettext'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE = 'false'
+WITH_BF_GAMEENGINE = False
-WITH_BF_ODE = 'true'
+WITH_BF_ODE = True
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -96,18 +107,18 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = False
BF_ICONV = LIBDIR + "/iconv"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'false'
+WITH_BF_STATICOPENGL = False
BF_OPENGL = 'C:\\MingW'
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'
@@ -132,8 +143,9 @@ CC_WARN = [ '-Wall' ]
LLIBS = [ '-ldxguid', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz'] #'-lutil', '-lc', '-lm', '-ldl', '-lpthread' ]
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS= ''
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS= []
BF_BUILDDIR = '../build/linuxcross'
BF_INSTALLDIR='../install/linuxcross'
+BF_DOCDIR='../install/doc'
diff --git a/config/openbsd3-config.py b/config/openbsd3-config.py
index c860f295e6a..cd46d11867e 100644
--- a/config/openbsd3-config.py
+++ b/config/openbsd3-config.py
@@ -8,35 +8,40 @@ BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}'
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}/config'
-WITH_BF_OPENAL = 'false'
+WITH_BF_OPENAL = False
+# WITH_BF_STATICOPENAL = False
#BF_OPENAL = LIBDIR + '/openal'
#BF_OPENAL_INC = '${BF_OPENAL}/include'
#BF_OPENAL_LIB = 'openal'
#BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
+#BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-WITH_BF_SDL = 'true'
+WITH_BF_SDL = True
BF_SDL = '/usr/local' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
BF_SDL_LIBPATH = '${BF_SDL}/lib'
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'false'
+WITH_BF_OPENEXR = False
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = '/usr/local'
BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR'
BF_OPENEXR_LIB = 'Half IlmImf Iex Imath '
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = '/usr/local'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = '/usr/local'
BF_PNG_INC = '${BF_PNG}/include/libpng'
BF_PNG_LIB = 'png'
@@ -45,31 +50,31 @@ BF_PNG_LIBPATH = '${BF_PNG}/lib'
BF_TIFF = '/usr/local'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = '/usr/local'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIB = 'z'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = '/usr/local'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'intl iconv'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE='false'
+WITH_BF_GAMEENGINE=False
-WITH_BF_ODE = 'false'
+WITH_BF_ODE = False
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = '${BF_ODE}/include'
BF_ODE_LIB = '${BF_ODE}/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -78,9 +83,9 @@ BF_SOLID = '#extern/solid'
BF_SOLID_INC = '${BF_SOLID}'
BF_SOLID_LIB = 'extern_solid'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -95,7 +100,7 @@ WITH_BF_YAFRAY = 'true'
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
+#BF_PARANOID = True
# enable freetype2 support for text objects
BF_FREETYPE = '/usr/X11R6'
@@ -103,16 +108,16 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = False
BF_ICONV = LIBDIR + "/iconv"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'true'
+WITH_BF_STATICOPENGL = True
BF_OPENGL = '/usr/X11R6'
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIB = 'GL GLU X11 Xi'
@@ -132,7 +137,7 @@ CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
REL_CFLAGS = ['-O2']
REL_CCFLAGS = ['-O2']
-##BF_DEPEND = 'true'
+##BF_DEPEND = True
##
##AR = ar
##ARFLAGS = ruv
@@ -140,9 +145,9 @@ REL_CCFLAGS = ['-O2']
##
CC = 'gcc'
CXX = 'g++'
-C_WARN = '-Wall -Wdeclaration-after-statement'
+C_WARN = ['-Wdeclaration-after-statement']
-CC_WARN = '-Wall'
+CC_WARN = ['-Wall']
##FIX_STUBS_WARNINGS = -Wno-unused
@@ -150,11 +155,12 @@ LLIBS = 'm stdc++ pthread util'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
-BF_PROFILE_FLAGS = ' -pg -g '
-BF_PROFILE = 'false'
+BF_PROFILE_CCFLAGS = ['-pg', '-g']
+BF_PROFILE = False
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS = '-g'
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS = ['-g']
BF_BUILDDIR='../build/openbsd3'
BF_INSTALLDIR='../install/openbsd3'
+BF_DOCDIR='../install/doc'
diff --git a/config/sunos5-config.py b/config/sunos5-config.py
index ee661e99824..4e7e99bc884 100644
--- a/config/sunos5-config.py
+++ b/config/sunos5-config.py
@@ -8,36 +8,47 @@ BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}' #BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
BF_PYTHON_LINKFLAGS = ['-Xlinker', '-export-dynamic']
-WITH_BF_OPENAL = 'true'
+WITH_BF_OPENAL = True
+WITH_BF_STATICOPENAL = False
BF_OPENAL = '/usr/local'
BF_OPENAL_INC = '${BF_OPENAL}/include'
BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
BF_OPENAL_LIB = 'openal'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-WITH_BF_SDL = 'true'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_CXX = '/usr'
+WITH_BF_STATICCXX = False
+BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
+
+WITH_BF_SDL = True
BF_SDL = '/usr/local' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
BF_SDL_LIBPATH = '${BF_SDL}/lib'
BF_SDL_LIB = 'SDL' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = '/usr/local'
BF_OPENEXR_INC = ['${BF_OPENEXR}/include', '${BF_OPENEXR}/include/OpenEXR' ]
BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
BF_OPENEXR_LIB = 'Half IlmImf Iex Imath '
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = '/usr/local'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
BF_JPEG_LIB = 'jpeg'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = '/usr/local'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIBPATH = '${BF_PNG}/lib'
@@ -46,32 +57,32 @@ BF_PNG_LIB = 'png'
BF_TIFF = '/usr/local'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = '/usr'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
BF_ZLIB_LIB = 'z'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = '/usr/local'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettextlib'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE='false'
+WITH_BF_GAMEENGINE=False
-WITH_BF_ODE = 'false'
+WITH_BF_ODE = False
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -80,9 +91,9 @@ BF_SOLID = '#extern/solid'
BF_SOLID_INC = '${BF_SOLID}'
BF_SOLID_LIB = 'extern_solid'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -97,7 +108,7 @@ WITH_BF_YAFRAY = 'true'
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
+#BF_PARANOID = True
# enable freetype2 support for text objects
BF_FREETYPE = '/usr/local'
@@ -105,25 +116,25 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
BF_FREETYPE_LIB = 'freetype'
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
-WITH_BF_ICONV = 'true'
+WITH_BF_ICONV = True
BF_ICONV = "/usr"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
# enable ffmpeg support
-WITH_BF_FFMPEG = 'false' # -DWITH_FFMPEG
+WITH_BF_FFMPEG = False # -DWITH_FFMPEG
BF_FFMPEG = '/usr/local'
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
BF_FFMPEG_LIB = 'avformat avcodec avutil'
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'false'
+WITH_BF_STATICOPENGL = False
BF_OPENGL = '/usr/openwin'
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIB = 'GL GLU X11 Xi'
@@ -142,15 +153,15 @@ CPPFLAGS = ['-DXP_UNIX', '-DSUN_OGL_NO_VERTEX_MACROS']
CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
REL_CFLAGS = ['-O2']
REL_CCFLAGS = ['-O2']
-##BF_DEPEND = 'true'
+##BF_DEPEND = True
##
##AR = ar
##ARFLAGS = ruv
##ARFLAGSQUIET = ru
##
-C_WARN = '-Wall -Wno-char-subscripts -Wdeclaration-after-statement'
+C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement']
-CC_WARN = '-Wall'
+CC_WARN = ['-Wall']
##FIX_STUBS_WARNINGS = -Wno-unused
@@ -158,14 +169,15 @@ LLIBS = 'c m dl pthread stdc++'
##LOPTS = --dynamic
##DYNLDFLAGS = -shared $(LDFLAGS)
-BF_PROFILE_FLAGS = ['-pg','-g']
-BF_PROFILE = 'false'
+BF_PROFILE_CCFLAGS = ['-pg','-g']
+BF_PROFILE = False
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS = ''
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS = []
BF_BUILDDIR = '../build/sunos5'
BF_INSTALLDIR='../install/sunos5'
+BF_DOCDIR='../install/doc'
-PLATFORM_LINKFLAGS = ['']
+PLATFORM_LINKFLAGS = []
diff --git a/config/win32-mingw-config.py b/config/win32-mingw-config.py
index 3284f6fab77..15bfce80f89 100644
--- a/config/win32-mingw-config.py
+++ b/config/win32-mingw-config.py
@@ -1,7 +1,7 @@
LCGDIR = '#../lib/windows'
LIBDIR = "${LCGDIR}"
-WITH_BF_VERSE = 'false'
+WITH_BF_VERSE = False
BF_VERSE_INCLUDE = "#extern/verse/dist"
BF_PYTHON = LIBDIR + '/python'
@@ -11,18 +11,21 @@ BF_PYTHON_BINARY = 'python'
BF_PYTHON_LIB = 'python25'
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-WITH_BF_OPENAL = 'true'
+WITH_BF_OPENAL = True
+WITH_BF_STATICOPENAL = False
BF_OPENAL = LIBDIR + '/openal'
BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'openal_static'
+BF_OPENAL_LIB = 'dxguid openal_static'
BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-WITH_BF_FFMPEG = 'false'
+WITH_BF_FFMPEG = False
BF_FFMPEG_LIB = 'avformat swscale avcodec avutil xvidcore x264'
BF_FFMPEG_LIBPATH = LIBDIR + '/gcc/ffmpeg/lib'
BF_FFMPEG_INC = LIBDIR + '/gcc/ffmpeg/include'
-WITH_BF_SDL = 'true'
+WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include'
BF_SDL_LIB = 'SDL'
@@ -33,24 +36,27 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
BF_PTHREADS_LIB = 'pthreadGC2'
BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = LIBDIR + '/gcc/openexr'
BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/OpenEXR'
BF_OPENEXR_LIB = ' Half IlmImf Iex '
BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
+# Warning, this static lib configuration is untested! users of this OS please confirm.
+BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = LIBDIR + '/jpeg'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'jpeg'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = LIBDIR + '/png'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIB = 'png'
@@ -59,31 +65,31 @@ BF_PNG_LIBPATH = '${BF_PNG}/lib'
BF_TIFF = LIBDIR + '/tiff'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = LIBDIR + '/zlib'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = LIBDIR + '/gettext'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE = 'false'
+WITH_BF_GAMEENGINE = False
-WITH_BF_ODE = 'true'
+WITH_BF_ODE = True
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -95,9 +101,9 @@ BF_SOLID_LIB = 'extern_solid'
BF_WINTAB = LIBDIR + '/wintab'
BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -117,18 +123,18 @@ BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = False # -DWITH_QUICKTIME
BF_QUICKTIME = '/usr/local'
BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = False
BF_ICONV = LIBDIR + "/iconv"
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'false'
+WITH_BF_STATICOPENGL = False
BF_OPENGL = 'C:\\MingW'
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'
@@ -147,14 +153,18 @@ CXXFLAGS = ['-pipe', '-mwindows', '-funsigned-char', '-fno-strict-aliasing' ]
REL_CFLAGS = [ '-O2' ]
REL_CCFLAGS = [ '-O2' ]
-C_WARN = [ '-Wall' , '-Wno-char-subscripts', '-Wdeclaration-after-statement' ]
+C_WARN = [ '-Wno-char-subscripts', '-Wdeclaration-after-statement' ]
CC_WARN = [ '-Wall' ]
-LLIBS = ['-lshell32', '-lshfolder', '-ldxguid', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++']
+LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32', '-lm', '-lws2_32', '-lz', '-lstdc++']
-BF_DEBUG = 'true'
-BF_DEBUG_FLAGS= '-g'
+BF_DEBUG = False
+BF_DEBUG_CCFLAGS= ['-g']
+
+BF_PROFILE_CCFLAGS = ['-pg','-g']
+BF_PROFILE = False
BF_BUILDDIR = '..\\build\\win32-mingw'
BF_INSTALLDIR='..\\install\\win32-mingw'
+BF_DOCDIR = '..\\install\\doc' \ No newline at end of file
diff --git a/config/win32-vc-config.py b/config/win32-vc-config.py
index 1b7737ed004..9a41f7ee557 100644
--- a/config/win32-vc-config.py
+++ b/config/win32-vc-config.py
@@ -1,11 +1,11 @@
LCGDIR = '#../lib/windows'
LIBDIR = '${LCGDIR}'
-WITH_BF_VERSE = 'false'
+WITH_BF_VERSE = False
BF_VERSE_INCLUDE = "#extern/verse/dist"
# enable ffmpeg support
-WITH_BF_FFMPEG = 'true' # -DWITH_FFMPEG
+WITH_BF_FFMPEG = True # -DWITH_FFMPEG
BF_FFMPEG = LIBDIR +'/ffmpeg'
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
@@ -18,8 +18,8 @@ BF_PYTHON_BINARY = 'python'
BF_PYTHON_LIB = 'python25'
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib'
-WITH_BF_OPENAL = 'true'
-WITH_BF_STATICOPENAL = 'false'
+WITH_BF_OPENAL = True
+WITH_BF_STATICOPENAL = False
BF_OPENAL = LIBDIR + '/openal'
BF_OPENAL_INC = '${BF_OPENAL}/include ${BF_OPENAL}/include/AL '
BF_OPENAL_LIB = 'dxguid openal_static'
@@ -29,16 +29,16 @@ BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
# TODO - are these useful on win32?
# BF_CXX = '/usr'
-# WITH_BF_STATICCXX = 'false'
+# WITH_BF_STATICCXX = False
# BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-WITH_BF_ICONV = 'true'
+WITH_BF_ICONV = True
BF_ICONV = LIBDIR + '/iconv'
BF_ICONV_INC = '${BF_ICONV}/include'
BF_ICONV_LIB = 'iconv'
BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-WITH_BF_SDL = 'true'
+WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include'
BF_SDL_LIB = 'SDL.lib'
@@ -49,11 +49,11 @@ BF_PTHREADS_INC = '${BF_PTHREADS}/include'
BF_PTHREADS_LIB = 'pthreadVC2'
BF_PTHREADS_LIBPATH = '${BF_PTHREADS}/lib'
-WITH_BF_FMOD = 'false'
+WITH_BF_FMOD = False
BF_FMOD = LIBDIR + '/fmod'
-WITH_BF_OPENEXR = 'true'
-WITH_BF_STATICOPENEXR = 'false'
+WITH_BF_OPENEXR = True
+WITH_BF_STATICOPENEXR = False
BF_OPENEXR = LIBDIR + '/openexr'
BF_OPENEXR_INC = '${BF_OPENEXR}/include ${BF_OPENEXR}/include/IlmImf ${BF_OPENEXR}/include/Iex ${BF_OPENEXR}/include/Imath '
BF_OPENEXR_LIB = ' Iex Half IlmImf Imath IlmThread '
@@ -61,15 +61,15 @@ BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib_vs2008'
# Warning, this static lib configuration is untested! users of this OS please confirm.
BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-WITH_BF_DDS = 'true'
+WITH_BF_DDS = True
-WITH_BF_JPEG = 'true'
+WITH_BF_JPEG = True
BF_JPEG = LIBDIR + '/jpeg'
BF_JPEG_INC = '${BF_JPEG}/include'
BF_JPEG_LIB = 'libjpeg'
BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-WITH_BF_PNG = 'true'
+WITH_BF_PNG = True
BF_PNG = LIBDIR + '/png'
BF_PNG_INC = '${BF_PNG}/include'
BF_PNG_LIB = 'libpng_st'
@@ -78,33 +78,33 @@ BF_PNG_LIBPATH = '${BF_PNG}/lib'
BF_TIFF = LIBDIR + '/tiff'
BF_TIFF_INC = '${BF_TIFF}/include'
-WITH_BF_ZLIB = 'true'
+WITH_BF_ZLIB = True
BF_ZLIB = LIBDIR + '/zlib'
BF_ZLIB_INC = '${BF_ZLIB}/include'
BF_ZLIB_LIB = 'libz'
BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-WITH_BF_INTERNATIONAL = 'true'
+WITH_BF_INTERNATIONAL = True
BF_GETTEXT = LIBDIR + '/gettext'
BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-WITH_BF_FTGL = 'true'
+WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
-WITH_BF_GAMEENGINE = 'true'
-WITH_BF_PLAYER = 'true'
+WITH_BF_GAMEENGINE = True
+WITH_BF_PLAYER = True
-WITH_BF_ODE = 'true'
+WITH_BF_ODE = True
BF_ODE = LIBDIR + '/ode'
BF_ODE_INC = BF_ODE + '/include'
BF_ODE_LIB = BF_ODE + '/lib/libode.a'
-WITH_BF_BULLET = 'true'
+WITH_BF_BULLET = True
BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
@@ -116,11 +116,11 @@ BF_SOLID_LIB = 'extern_solid'
BF_WINTAB = LIBDIR + '/wintab'
BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
-WITH_BF_YAFRAY = 'true'
+WITH_BF_YAFRAY = True
-WITH_BF_BINRELOC = 'false'
+WITH_BF_BINRELOC = False
-#WITH_BF_NSPR = 'true'
+#WITH_BF_NSPR = True
#BF_NSPR = $(LIBDIR)/nspr
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
#BF_NSPR_LIB =
@@ -135,21 +135,27 @@ WITH_BF_BINRELOC = 'false'
# if this is not set.
#
# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
+#BF_PARANOID = True
# enable freetype2 support for text objects
+BF_WITH_FREETYPE = True
BF_FREETYPE = LIBDIR + '/freetype'
BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype2ST'
BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-WITH_BF_QUICKTIME = 'true' # -DWITH_QUICKTIME
+WITH_BF_QUICKTIME = True # -DWITH_QUICKTIME
BF_QUICKTIME = LIBDIR + '/QTDevWin'
BF_QUICKTIME_INC = '${BF_QUICKTIME}/CIncludes'
BF_QUICKTIME_LIB = 'qtmlClient'
BF_QUICKTIME_LIBPATH = '${BF_QUICKTIME}/Libraries'
-WITH_BF_STATICOPENGL = 'false'
+WITH_BF_OPENJPEG = True
+
+WITH_BF_REDCODE = False
+BF_REDCODE_INC = '#extern'
+
+WITH_BF_STATICOPENGL = False
BF_OPENGL_INC = '${BF_OPENGL}/include'
BF_OPENGL_LIBINC = '${BF_OPENGL}/lib'
BF_OPENGL_LIB = 'opengl32 glu32'
@@ -160,14 +166,18 @@ CC = 'cl.exe'
CXX = 'cl.exe'
CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/MT']
+CXXFLAGS = ['/EHsc']
-BF_DEBUG_FLAGS = ['/Zi', '/FR${TARGET}.sbr']
+BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
CPPFLAGS = ['-DWIN32','-D_CONSOLE', '-D_LIB', '-DFTGL_LIBRARY_STATIC', '-D_CRT_SECURE_NO_DEPRECATE']
REL_CFLAGS = ['-O2', '-DNDEBUG']
REL_CCFLAGS = ['-O2', '-DNDEBUG']
+REL_CXXFLAGS = ['-O2', '-DNDEBUG']
+
C_WARN = []
CC_WARN = []
+CXX_WARN = []
LLIBS = 'ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid'
@@ -187,3 +197,4 @@ PLATFORM_LINKFLAGS = '''
BF_BUILDDIR = '..\\build\\win32-vc'
BF_INSTALLDIR='..\\install\\win32-vc'
+BF_DOCDIR='..\\install\\doc'
diff --git a/extern/verse/dist/SConstruct b/extern/verse/dist/SConstruct
index ecdc3178028..a80a1ac79e9 100644
--- a/extern/verse/dist/SConstruct
+++ b/extern/verse/dist/SConstruct
@@ -56,7 +56,7 @@ else:
platform_linkflags += ['/DEBUG','/PDB:verse.pdb']
-verse_env = env.Copy()
+verse_env = env.Clone()
cmd_gen_files = (['v_cmd_gen.c',
'v_cmd_def_a.c',
@@ -71,7 +71,7 @@ cmd_gen_files = (['v_cmd_gen.c',
cmd_gen_deps = (['v_gen_pack_init.c'])
-proto_env = env.Copy()
+proto_env = env.Clone()
proto_env.Append(CPPDEFINES=['V_GENERATE_FUNC_MODE'])
mkprot_tool = proto_env.Program(target = 'mkprot', source = cmd_gen_files)
@@ -130,10 +130,10 @@ server_source_files = (['vs_connection.c',
'vs_node_text.c'
])
-verselib_env = verse_env.Copy()
+verselib_env = verse_env.Clone()
verselib_env.Append(CPPDEFINES = defines)
-verseserver_env = verse_env.Copy()
+verseserver_env = verse_env.Clone()
verseserver_env.Append(CPPDEFINES = defines)
verseserver_env.Append (LIBPATH = ['.'])
verseserver_env.Append (LIBS= ['verse'])
diff --git a/source/blender/makesdna/intern/SConscript b/source/blender/makesdna/intern/SConscript
index 65072d1fed2..23d6f84942f 100644
--- a/source/blender/makesdna/intern/SConscript
+++ b/source/blender/makesdna/intern/SConscript
@@ -10,8 +10,8 @@ root_build_dir=env['BF_BUILDDIR']
source_files = ['makesdna.c']
header_files = env.Glob('../*.h')
-makesdna_tool = env.Copy()
-dna = env.Copy()
+makesdna_tool = env.Clone()
+dna = env.Clone()
makesdna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesdna/\\"" ')
makesdna_tool.Append (CPPPATH = ['#/intern/guardedalloc',
diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript
index 01fbbb9856e..f8d623dfa2b 100644
--- a/source/blender/makesrna/intern/SConscript
+++ b/source/blender/makesrna/intern/SConscript
@@ -14,8 +14,8 @@ source_files = env.Glob('*.c')
source_files.remove('rna_access.c')
source_files.remove('rna_dependency.c')
-makesrna_tool = env.Copy()
-rna = env.Copy()
+makesrna_tool = env.Clone()
+rna = env.Clone()
makesrna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesrna/\\"" ')
makesrna_tool.Append (CPPPATH = ['#/intern/guardedalloc',
diff --git a/source/gameengine/Physics/Sumo/SConscript b/source/gameengine/Physics/Sumo/SConscript
index bc1db07b313..b5900919321 100644
--- a/source/gameengine/Physics/Sumo/SConscript
+++ b/source/gameengine/Physics/Sumo/SConscript
@@ -1,7 +1,7 @@
#!/usr/bin/python
Import ('env')
-sumoenv = env.Copy()
+sumoenv = env.Clone()
sources = ['SumoPHYCallbackBridge.cpp',
'SumoPhysicsController.cpp',
'SumoPhysicsEnvironment.cpp',
@@ -9,7 +9,7 @@ sources = ['SumoPHYCallbackBridge.cpp',
'Fuzzics/src/SM_Object.cpp',
'Fuzzics/src/SM_Scene.cpp',
'Fuzzics/src/SM_MotionState.cpp'
- ]
+ ]
incs =['.',
'../common',
diff --git a/tools/Blender.py b/tools/Blender.py
index 228f5cb6edc..a1cf9cec073 100644
--- a/tools/Blender.py
+++ b/tools/Blender.py
@@ -35,6 +35,7 @@ GetBuildPath = SConsEnvironment.GetBuildPath
# a few globals
root_build_dir = ''
+doc_build_dir = ''
quickie = None # Anything else than None if BF_QUICK has been passed
quicklist = [] # The list of libraries/programs to compile during a quickie
program_list = [] # A list holding Nodes to final binaries, used to create installs
@@ -51,434 +52,443 @@ possible_types = ['core'] # can be set in ie. SConstruct
libs = {}
def getresources():
- return resources
+ return resources
def init_lib_dict():
- for pt in possible_types:
- libs[pt] = {}
+ for pt in possible_types:
+ libs[pt] = {}
# helper func for add_lib_to_dict
def internal_lib_to_dict(dict = None, libtype = None, libname = None, priority = 100):
- if not libname in dict[libtype]:
- done = None
- while not done:
- if dict[libtype].has_key(priority):
- priority = priority + 1
- else:
- done = True
- dict[libtype][priority] = libname
+ if not libname in dict[libtype]:
+ done = None
+ while not done:
+ if dict[libtype].has_key(priority):
+ priority = priority + 1
+ else:
+ done = True
+ dict[libtype][priority] = libname
# libtype and priority can both be lists, for defining lib in multiple places
def add_lib_to_dict(env, dict = None, libtype = None, libname = None, priority = 100):
- if not dict or not libtype or not libname:
- print "Passed wrong arg"
- env.Exit()
-
- if type(libtype) is str and type(priority) is int:
- internal_lib_to_dict(dict, libtype, libname, priority)
- elif type(libtype) is list and type(priority) is list:
- if len(libtype)==len(priority):
- for lt, p in zip(libtype, priority):
- internal_lib_to_dict(dict, lt, libname, p)
- else:
- print "libtype and priority lists are unequal in length"
- env.Exit()
- else:
- print "Wrong type combinations for libtype and priority. Only str and int or list and list"
- env.Exit()
+ if not dict or not libtype or not libname:
+ print "Passed wrong arg"
+ env.Exit()
+
+ if type(libtype) is str and type(priority) is int:
+ internal_lib_to_dict(dict, libtype, libname, priority)
+ elif type(libtype) is list and type(priority) is list:
+ if len(libtype)==len(priority):
+ for lt, p in zip(libtype, priority):
+ internal_lib_to_dict(dict, lt, libname, p)
+ else:
+ print "libtype and priority lists are unequal in length"
+ env.Exit()
+ else:
+ print "Wrong type combinations for libtype and priority. Only str and int or list and list"
+ env.Exit()
def create_blender_liblist(lenv = None, libtype = None):
- if not lenv or not libtype:
- print "missing arg"
+ if not lenv or not libtype:
+ print "missing arg"
- lst = []
- if libtype in possible_types:
- curlib = libs[libtype]
- sortlist = curlib.keys()
- sortlist.sort()
- for sk in sortlist:
- v = curlib[sk]
- lst.append('#' + root_build_dir + 'lib/'+lenv['LIBPREFIX'] + v + lenv['LIBSUFFIX'])
+ lst = []
+ if libtype in possible_types:
+ curlib = libs[libtype]
+ sortlist = curlib.keys()
+ sortlist.sort()
+ for sk in sortlist:
+ v = curlib[sk]
+ lst.append('#' + root_build_dir + 'lib/'+lenv['LIBPREFIX'] + v + lenv['LIBSUFFIX'])
- return lst
+ return lst
## TODO: static linking
def setup_staticlibs(lenv):
- statlibs = [
- #here libs for static linking
- ]
- libincs = [
- '/usr/lib',
- lenv['BF_PYTHON_LIBPATH'],
- lenv['BF_OPENGL_LIBPATH'],
- lenv['BF_JPEG_LIBPATH'],
- lenv['BF_PNG_LIBPATH'],
- lenv['BF_ZLIB_LIBPATH'],
- lenv['BF_ICONV_LIBPATH']
- ]
-
- if lenv['WITH_BF_SDL']:
- libincs += Split(lenv['BF_SDL_LIBPATH'])
- if lenv['WITH_BF_FFMPEG']:
- libincs += Split(lenv['BF_FFMPEG_LIBPATH'])
- if lenv['WITH_BF_STATICCXX']:
- statlibs += Split(lenv['BF_CXX_LIB_STATIC'])
- if lenv['WITH_BF_OPENEXR']:
- libincs += Split(lenv['BF_OPENEXR_LIBPATH'])
- if lenv['WITH_BF_STATICOPENEXR']:
- statlibs += Split(lenv['BF_OPENEXR_LIB_STATIC'])
- if lenv['WITH_BF_INTERNATIONAL']:
- libincs += Split(lenv['BF_GETTEXT_LIBPATH'])
- libincs += Split(lenv['BF_FREETYPE_LIBPATH'])
- if lenv['WITH_BF_OPENAL']:
- libincs += Split(lenv['BF_OPENAL_LIBPATH'])
- if lenv['WITH_BF_STATICOPENAL']:
- statlibs += Split(lenv['BF_OPENAL_LIB_STATIC'])
- if lenv['WITH_BF_STATICOPENGL']:
- statlibs += Split(lenv['BF_OPENGL_LIB_STATIC'])
-
- if lenv['WITH_BF_STATICPYTHON']:
- statlibs += Split(lenv['BF_PYTHON_LIB_STATIC'])
-
- if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross'):
- libincs += Split(lenv['BF_PTHREADS_LIBPATH'])
-
- return statlibs, libincs
+ statlibs = [
+ #here libs for static linking
+ ]
+ libincs = [
+ '/usr/lib',
+ lenv['BF_OPENGL_LIBPATH'],
+ lenv['BF_JPEG_LIBPATH'],
+ lenv['BF_PNG_LIBPATH'],
+ lenv['BF_ZLIB_LIBPATH'],
+ lenv['BF_ICONV_LIBPATH']
+ ]
+
+ if lenv['WITH_BF_PYTHON']:
+ libincs += Split(lenv['BF_PYTHON_LIBPATH'])
+ if lenv['WITH_BF_SDL']:
+ libincs += Split(lenv['BF_SDL_LIBPATH'])
+ if lenv['WITH_BF_FFMPEG']:
+ libincs += Split(lenv['BF_FFMPEG_LIBPATH'])
+ if lenv['WITH_BF_STATICCXX']:
+ statlibs += Split(lenv['BF_CXX_LIB_STATIC'])
+ if lenv['WITH_BF_OPENEXR']:
+ libincs += Split(lenv['BF_OPENEXR_LIBPATH'])
+ if lenv['WITH_BF_STATICOPENEXR']:
+ statlibs += Split(lenv['BF_OPENEXR_LIB_STATIC'])
+ if lenv['WITH_BF_INTERNATIONAL']:
+ libincs += Split(lenv['BF_GETTEXT_LIBPATH'])
+ libincs += Split(lenv['BF_FREETYPE_LIBPATH'])
+ if lenv['WITH_BF_OPENAL']:
+ libincs += Split(lenv['BF_OPENAL_LIBPATH'])
+ if lenv['WITH_BF_STATICOPENAL']:
+ statlibs += Split(lenv['BF_OPENAL_LIB_STATIC'])
+ if lenv['WITH_BF_STATICOPENGL']:
+ statlibs += Split(lenv['BF_OPENGL_LIB_STATIC'])
+
+ if lenv['WITH_BF_PYTHON'] and lenv['WITH_BF_STATICPYTHON']:
+ statlibs += Split(lenv['BF_PYTHON_LIB_STATIC'])
+
+ if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross'):
+ libincs += Split(lenv['BF_PTHREADS_LIBPATH'])
+
+ return statlibs, libincs
def setup_syslibs(lenv):
- syslibs = [
-
- lenv['BF_JPEG_LIB'],
- lenv['BF_PNG_LIB'],
- lenv['BF_ZLIB_LIB']
- ]
-
- if not lenv['WITH_BF_STATICPYTHON']:
- if lenv['BF_DEBUG']==1 and lenv['OURPLATFORM'] in ('win32-vc'):
- syslibs.append(lenv['BF_PYTHON_LIB']+'_d')
- else:
- syslibs.append(lenv['BF_PYTHON_LIB'])
- if lenv['WITH_BF_INTERNATIONAL']:
- syslibs += Split(lenv['BF_FREETYPE_LIB'])
- syslibs += Split(lenv['BF_GETTEXT_LIB'])
- if lenv['WITH_BF_OPENAL']:
- if not lenv['WITH_BF_STATICOPENAL']:
- syslibs += Split(lenv['BF_OPENAL_LIB'])
- if lenv['WITH_BF_OPENMP'] and lenv['CC'] != 'icc':
- if lenv['CC'] == 'cl.exe':
- syslibs += ['vcomp']
- else:
- syslibs += ['gomp']
- if lenv['WITH_BF_ICONV']:
- syslibs += Split(lenv['BF_ICONV_LIB'])
- if lenv['WITH_BF_OPENEXR']:
- if not lenv['WITH_BF_STATICOPENEXR']:
- syslibs += Split(lenv['BF_OPENEXR_LIB'])
- if lenv['WITH_BF_FFMPEG']:
- syslibs += Split(lenv['BF_FFMPEG_LIB'])
- if lenv['WITH_BF_SDL']:
- syslibs += Split(lenv['BF_SDL_LIB'])
- if not lenv['WITH_BF_STATICOPENGL']:
- syslibs += Split(lenv['BF_OPENGL_LIB'])
- if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw','linuxcross'):
- syslibs += Split(lenv['BF_PTHREADS_LIB'])
-
- syslibs += Split(lenv['LLIBS'])
-
- return syslibs
+ syslibs = [
+
+ lenv['BF_JPEG_LIB'],
+ lenv['BF_PNG_LIB'],
+ lenv['BF_ZLIB_LIB']
+ ]
+
+ if lenv['WITH_BF_PYTHON'] and not lenv['WITH_BF_STATICPYTHON']:
+ if lenv['BF_DEBUG'] and lenv['OURPLATFORM'] in ('win32-vc'):
+ syslibs.append(lenv['BF_PYTHON_LIB']+'_d')
+ else:
+ syslibs.append(lenv['BF_PYTHON_LIB'])
+ if lenv['WITH_BF_INTERNATIONAL']:
+ syslibs += Split(lenv['BF_FREETYPE_LIB'])
+ syslibs += Split(lenv['BF_GETTEXT_LIB'])
+ if lenv['WITH_BF_OPENAL']:
+ if not lenv['WITH_BF_STATICOPENAL']:
+ syslibs += Split(lenv['BF_OPENAL_LIB'])
+ if lenv['WITH_BF_OPENMP'] and lenv['CC'] != 'icc':
+ if lenv['CC'] == 'cl.exe':
+ syslibs += ['vcomp']
+ else:
+ syslibs += ['gomp']
+ if lenv['WITH_BF_ICONV']:
+ syslibs += Split(lenv['BF_ICONV_LIB'])
+ if lenv['WITH_BF_OPENEXR']:
+ if not lenv['WITH_BF_STATICOPENEXR']:
+ syslibs += Split(lenv['BF_OPENEXR_LIB'])
+ if lenv['WITH_BF_FFMPEG']:
+ syslibs += Split(lenv['BF_FFMPEG_LIB'])
+ if lenv['WITH_BF_OGG']:
+ syslibs += Split(lenv['BF_OGG_LIB'])
+ if lenv['WITH_BF_SDL']:
+ syslibs += Split(lenv['BF_SDL_LIB'])
+ if not lenv['WITH_BF_STATICOPENGL']:
+ syslibs += Split(lenv['BF_OPENGL_LIB'])
+ if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw','linuxcross'):
+ syslibs += Split(lenv['BF_PTHREADS_LIB'])
+
+ syslibs += Split(lenv['LLIBS'])
+
+ return syslibs
def propose_priorities():
- print bc.OKBLUE+"Priorities:"+bc.ENDC
- for t in possible_types:
- print bc.OKGREEN+"\t"+t+bc.ENDC
- new_priority = 0
- curlib = libs[t]
- sortlist = curlib.keys()
- sortlist.sort()
-
- for sk in sortlist:
- v = curlib[sk]
- #for p,v in sorted(libs[t].iteritems()):
- print "\t\t",new_priority, v
- new_priority += 5
+ print bc.OKBLUE+"Priorities:"+bc.ENDC
+ for t in possible_types:
+ print bc.OKGREEN+"\t"+t+bc.ENDC
+ new_priority = 0
+ curlib = libs[t]
+ sortlist = curlib.keys()
+ sortlist.sort()
+
+ for sk in sortlist:
+ v = curlib[sk]
+ #for p,v in sorted(libs[t].iteritems()):
+ print "\t\t",new_priority, v
+ new_priority += 5
## TODO: see if this can be made in an emitter
def buildinfo(lenv, build_type):
- """
- Generate a buildinfo object
- """
- build_date = time.strftime ("%Y-%m-%d")
- build_time = time.strftime ("%H:%M:%S")
- build_rev = os.popen('svnversion').read()[:-1] # remove \n
-
- obj = []
- if lenv['BF_BUILDINFO']==1: #user_options_dict['USE_BUILDINFO'] == 1:
- if sys.platform=='win32':
- build_info_file = open("source/creator/winbuildinfo.h", 'w')
- build_info_file.write("char *build_date=\"%s\";\n"%build_date)
- build_info_file.write("char *build_time=\"%s\";\n"%build_time)
- build_info_file.write("char *build_rev=\"%s\";\n"%build_rev)
- build_info_file.write("char *build_platform=\"win32\";\n")
- build_info_file.write("char *build_type=\"dynamic\";\n")
- build_info_file.close()
- lenv.Append (CPPDEFINES = ['NAN_BUILDINFO', 'BUILD_DATE'])
- else:
- lenv.Append (CPPDEFINES = ['BUILD_TIME=\'"%s"\''%(build_time),
- 'BUILD_DATE=\'"%s"\''%(build_date),
- 'BUILD_TYPE=\'"dynamic"\'',
- 'BUILD_REV=\'"%s"\''%(build_rev),
- 'NAN_BUILDINFO',
- 'BUILD_PLATFORM=\'"%s"\''%(sys.platform)])
- obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type,
- [root_build_dir+'source/creator/buildinfo.c'])]
- return obj
+ """
+ Generate a buildinfo object
+ """
+ build_date = time.strftime ("%Y-%m-%d")
+ build_time = time.strftime ("%H:%M:%S")
+ build_rev = os.popen('svnversion').read()[:-1] # remove \n
+
+ obj = []
+ if lenv['BF_BUILDINFO']:
+ if sys.platform=='win32':
+ build_info_file = open("source/creator/winbuildinfo.h", 'w')
+ build_info_file.write("char *build_date=\"%s\";\n"%build_date)
+ build_info_file.write("char *build_time=\"%s\";\n"%build_time)
+ build_info_file.write("char *build_rev=\"%s\";\n"%build_rev)
+ build_info_file.write("char *build_platform=\"win32\";\n")
+ build_info_file.write("char *build_type=\"dynamic\";\n")
+ build_info_file.close()
+ lenv.Append (CPPDEFINES = ['NAN_BUILDINFO', 'BUILD_DATE'])
+ else:
+ lenv.Append (CPPDEFINES = ['BUILD_TIME=\'"%s"\''%(build_time),
+ 'BUILD_DATE=\'"%s"\''%(build_date),
+ 'BUILD_TYPE=\'"dynamic"\'',
+ 'BUILD_REV=\'"%s"\''%(build_rev),
+ 'NAN_BUILDINFO',
+ 'BUILD_PLATFORM=\'"%s"\''%(sys.platform)])
+ obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type,
+ [root_build_dir+'source/creator/buildinfo.c'])]
+ return obj
##### END LIB STUFF ############
##### ACTION STUFF #############
def my_compile_print(target, source, env):
- a = '%s' % (source[0])
- d, f = os.path.split(a)
- return bc.OKBLUE+"Compiling"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
+ a = '%s' % (source[0])
+ d, f = os.path.split(a)
+ return bc.OKBLUE+"Compiling"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def my_moc_print(target, source, env):
- a = '%s' % (source[0])
- d, f = os.path.split(a)
- return bc.OKBLUE+"Creating MOC"+bc.ENDC+ " ==> '"+bc.OKGREEN+"%s" %(f) + "'"+bc.ENDC
+ a = '%s' % (source[0])
+ d, f = os.path.split(a)
+ return bc.OKBLUE+"Creating MOC"+bc.ENDC+ " ==> '"+bc.OKGREEN+"%s" %(f) + "'"+bc.ENDC
def my_linking_print(target, source, env):
- t = '%s' % (target[0])
- d, f = os.path.split(t)
- return bc.OKBLUE+"Linking library"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
+ t = '%s' % (target[0])
+ d, f = os.path.split(t)
+ return bc.OKBLUE+"Linking library"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def my_program_print(target, source, env):
- t = '%s' % (target[0])
- d, f = os.path.split(t)
- return bc.OKBLUE+"Linking program"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
+ t = '%s' % (target[0])
+ d, f = os.path.split(t)
+ return bc.OKBLUE+"Linking program"+bc.ENDC +" ==> '"+bc.OKGREEN+"%s" % (f) + "'"+bc.ENDC
def msvc_hack(env):
- static_lib = SCons.Tool.createStaticLibBuilder(env)
- program = SCons.Tool.createProgBuilder(env)
-
- env['BUILDERS']['Library'] = static_lib
- env['BUILDERS']['StaticLibrary'] = static_lib
- env['BUILDERS']['Program'] = program
-
+ static_lib = SCons.Tool.createStaticLibBuilder(env)
+ program = SCons.Tool.createProgBuilder(env)
+
+ env['BUILDERS']['Library'] = static_lib
+ env['BUILDERS']['StaticLibrary'] = static_lib
+ env['BUILDERS']['Program'] = program
+
def set_quiet_output(env):
- mycaction = Action("$CCCOM", strfunction=my_compile_print)
- myshcaction = Action("$SHCCCOM", strfunction=my_compile_print)
- mycppaction = Action("$CXXCOM", strfunction=my_compile_print)
- myshcppaction = Action("$SHCXXCOM", strfunction=my_compile_print)
- mylibaction = Action("$ARCOM", strfunction=my_linking_print)
- mylinkaction = Action("$LINKCOM", strfunction=my_program_print)
-
- static_ob, shared_ob = SCons.Tool.createObjBuilders(env)
- static_ob.add_action('.c', mycaction)
- static_ob.add_action('.cpp', mycppaction)
- shared_ob.add_action('.c', myshcaction)
- shared_ob.add_action('.cpp', myshcppaction)
-
- static_lib = SCons.Builder.Builder(action = mylibaction,
- emitter = '$LIBEMITTER',
- prefix = '$LIBPREFIX',
- suffix = '$LIBSUFFIX',
- src_suffix = '$OBJSUFFIX',
- src_builder = 'StaticObject')
-
- program = SCons.Builder.Builder(action = mylinkaction,
- emitter = '$PROGEMITTER',
- prefix = '$PROGPREFIX',
- suffix = '$PROGSUFFIX',
- src_suffix = '$OBJSUFFIX',
- src_builder = 'Object',
- target_scanner = SCons.Defaults.ProgScan)
-
- env['BUILDERS']['Object'] = static_ob
- env['BUILDERS']['StaticObject'] = static_ob
- env['BUILDERS']['StaticLibrary'] = static_lib
- env['BUILDERS']['Library'] = static_lib
- env['BUILDERS']['Program'] = program
+ mycaction = Action("$CCCOM", strfunction=my_compile_print)
+ myshcaction = Action("$SHCCCOM", strfunction=my_compile_print)
+ mycppaction = Action("$CXXCOM", strfunction=my_compile_print)
+ myshcppaction = Action("$SHCXXCOM", strfunction=my_compile_print)
+ mylibaction = Action("$ARCOM", strfunction=my_linking_print)
+ mylinkaction = Action("$LINKCOM", strfunction=my_program_print)
+
+ static_ob, shared_ob = SCons.Tool.createObjBuilders(env)
+ static_ob.add_action('.c', mycaction)
+ static_ob.add_action('.cpp', mycppaction)
+ shared_ob.add_action('.c', myshcaction)
+ shared_ob.add_action('.cpp', myshcppaction)
+
+ static_lib = SCons.Builder.Builder(action = mylibaction,
+ emitter = '$LIBEMITTER',
+ prefix = '$LIBPREFIX',
+ suffix = '$LIBSUFFIX',
+ src_suffix = '$OBJSUFFIX',
+ src_builder = 'StaticObject')
+
+ program = SCons.Builder.Builder(action = mylinkaction,
+ emitter = '$PROGEMITTER',
+ prefix = '$PROGPREFIX',
+ suffix = '$PROGSUFFIX',
+ src_suffix = '$OBJSUFFIX',
+ src_builder = 'Object',
+ target_scanner = SCons.Defaults.ProgScan)
+
+ env['BUILDERS']['Object'] = static_ob
+ env['BUILDERS']['StaticObject'] = static_ob
+ env['BUILDERS']['StaticLibrary'] = static_lib
+ env['BUILDERS']['Library'] = static_lib
+ env['BUILDERS']['Program'] = program
def my_appit_print(target, source, env):
- a = '%s' % (target[0])
- d, f = os.path.split(a)
- return "making bundle for " + f
+ a = '%s' % (target[0])
+ d, f = os.path.split(a)
+ return "making bundle for " + f
def AppIt(target=None, source=None, env=None):
- import shutil
- import commands
- import os.path
-
-
- a = '%s' % (target[0])
- builddir, b = os.path.split(a)
-
- bldroot = env.Dir('.').abspath
- binary = env['BINARYKIND']
-
- if b=='verse':
- print bc.OKBLUE+"no bundle for verse"+bc.ENDC
- return 0
+ import shutil
+ import commands
+ import os.path
+
+
+ a = '%s' % (target[0])
+ builddir, b = os.path.split(a)
+
+ bldroot = env.Dir('.').abspath
+ binary = env['BINARYKIND']
+
+ if b=='verse':
+ print bc.OKBLUE+"no bundle for verse"+bc.ENDC
+ return 0
-
- sourcedir = bldroot + '/source/darwin/%s.app'%binary
- sourceinfo = bldroot + "/source/darwin/%s.app/Contents/Info.plist"%binary
- targetinfo = builddir +'/' + "%s.app/Contents/Info.plist"%binary
- cmd = builddir + '/' +'%s.app'%binary
-
- if os.path.isdir(cmd):
- shutil.rmtree(cmd)
- shutil.copytree(sourcedir, cmd)
- cmd = "cat %s | sed s/VERSION/`cat release/VERSION`/ | sed s/DATE/`date +'%%Y-%%b-%%d'`/ > %s"%(sourceinfo,targetinfo)
- commands.getoutput(cmd)
- cmd = 'cp %s/%s %s/%s.app/Contents/MacOS/%s'%(builddir, binary,builddir, binary, binary)
- commands.getoutput(cmd)
- cmd = 'mkdir %s/%s.app/Contents/MacOS/.blender/'%(builddir, binary)
- print cmd
- commands.getoutput(cmd)
- cmd = builddir + '/%s.app/Contents/MacOS/.blender'%binary
- shutil.copy(bldroot + '/bin/.blender/.bfont.ttf', cmd)
- shutil.copy(bldroot + '/bin/.blender/.Blanguages', cmd)
- cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary)
- commands.getoutput(cmd)
- cmd = 'cp %s/bin/.blender/.Blanguages %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary)
- commands.getoutput(cmd)
- cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary)
- commands.getoutput(cmd)
- cmd = 'chmod +x %s/%s.app/Contents/MacOS/%s'%(builddir,binary, binary)
- commands.getoutput(cmd)
- cmd = 'find %s/%s.app -name .svn -prune -exec rm -rf {} \;'%(builddir, binary)
- commands.getoutput(cmd)
- cmd = 'find %s/%s.app -name .DS_Store -exec rm -rf {} \;'%(builddir, binary)
- commands.getoutput(cmd)
+
+ sourcedir = bldroot + '/source/darwin/%s.app'%binary
+ sourceinfo = bldroot + "/source/darwin/%s.app/Contents/Info.plist"%binary
+ targetinfo = builddir +'/' + "%s.app/Contents/Info.plist"%binary
+ cmd = builddir + '/' +'%s.app'%binary
+
+ if os.path.isdir(cmd):
+ shutil.rmtree(cmd)
+ shutil.copytree(sourcedir, cmd)
+ cmd = "cat %s | sed s/VERSION/`cat release/VERSION`/ | sed s/DATE/`date +'%%Y-%%b-%%d'`/ > %s"%(sourceinfo,targetinfo)
+ commands.getoutput(cmd)
+ cmd = 'cp %s/%s %s/%s.app/Contents/MacOS/%s'%(builddir, binary,builddir, binary, binary)
+ commands.getoutput(cmd)
+ cmd = 'mkdir %s/%s.app/Contents/MacOS/.blender/'%(builddir, binary)
+ print cmd
+ commands.getoutput(cmd)
+ cmd = builddir + '/%s.app/Contents/MacOS/.blender'%binary
+ shutil.copy(bldroot + '/bin/.blender/.bfont.ttf', cmd)
+ shutil.copy(bldroot + '/bin/.blender/.Blanguages', cmd)
+ cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary)
+ commands.getoutput(cmd)
+ cmd = 'cp -R %s/bin/.blender/locale %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary)
+ commands.getoutput(cmd)
+ cmd = 'cp %s/bin/.blender/.Blanguages %s/%s.app/Contents/Resources/'%(bldroot,builddir,binary)
+ commands.getoutput(cmd)
+ cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/.blender/'%(bldroot,builddir,binary)
+ commands.getoutput(cmd)
+ cmd = 'chmod +x %s/%s.app/Contents/MacOS/%s'%(builddir,binary, binary)
+ commands.getoutput(cmd)
+ cmd = 'find %s/%s.app -name .svn -prune -exec rm -rf {} \;'%(builddir, binary)
+ commands.getoutput(cmd)
+ cmd = 'find %s/%s.app -name .DS_Store -exec rm -rf {} \;'%(builddir, binary)
+ commands.getoutput(cmd)
#### END ACTION STUFF #########
def bsc(env, target, source):
-
- bd = os.path.dirname(target[0].abspath)
- bscfile = '\"'+target[0].abspath+'\"'
- bscpathcollect = '\"'+bd + os.sep + '*.sbr\"'
- bscpathtmp = '\"'+bd + os.sep + 'bscmake.tmp\"'
-
- os.system('dir /b/s '+bscpathcollect+' >'+bscpathtmp)
-
- myfile = open(bscpathtmp[1:-1], 'r')
- lines = myfile.readlines()
- myfile.close()
-
- newfile = open(bscpathtmp[1:-1], 'w')
- for l in lines:
- newfile.write('\"'+l[:-1]+'\"\n')
- newfile.close()
-
- os.system('bscmake /nologo /n /o'+bscfile+' @'+bscpathtmp)
- os.system('del '+bscpathtmp)
+
+ bd = os.path.dirname(target[0].abspath)
+ bscfile = '\"'+target[0].abspath+'\"'
+ bscpathcollect = '\"'+bd + os.sep + '*.sbr\"'
+ bscpathtmp = '\"'+bd + os.sep + 'bscmake.tmp\"'
+
+ os.system('dir /b/s '+bscpathcollect+' >'+bscpathtmp)
+
+ myfile = open(bscpathtmp[1:-1], 'r')
+ lines = myfile.readlines()
+ myfile.close()
+
+ newfile = open(bscpathtmp[1:-1], 'w')
+ for l in lines:
+ newfile.write('\"'+l[:-1]+'\"\n')
+ newfile.close()
+
+ os.system('bscmake /nologo /n /o'+bscfile+' @'+bscpathtmp)
+ os.system('del '+bscpathtmp)
class BlenderEnvironment(SConsEnvironment):
- def BlenderRes(self=None, libname=None, source=None, libtype=['core'], priority=[100]):
- global libs
- if not self or not libname or not source:
- print bc.FAIL+'Cannot continue. Missing argument for BlenderRes '+libname+bc.ENDC
- self.Exit()
- if self['OURPLATFORM'] not in ('win32-vc','win32-mingw','linuxcross'):
- print bc.FAIL+'BlenderRes is for windows only!'+bc.END
- self.Exit()
-
- print bc.HEADER+'Configuring resource '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC
- lenv = self.Clone()
- res = lenv.RES('#'+root_build_dir+'lib/'+libname, source)
-
- SConsEnvironment.Default(self, res)
- resources.append(res)
-
- def BlenderLib(self=None, libname=None, sources=None, includes=[], defines=[], libtype='common', priority = 100, compileflags=None):
- if not self or not libname or not sources:
- print bc.FAIL+'Cannot continue. Missing argument for BuildBlenderLib '+libname+bc.ENDC
- self.Exit()
- if libname in quickie or len(quickie)==0:
- if libname in quickdebug:
- print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname +bc.ENDC+bc.OKBLUE+ " (debug mode)" + bc.ENDC
- else:
- print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname + bc.ENDC
- lenv = self.Clone()
- lenv.Append(CPPPATH=includes)
- lenv.Append(CPPDEFINES=defines)
- if lenv['WITH_BF_GAMEENGINE']:
- lenv.Append(CPPDEFINES=['GAMEBLENDER=1'])
- if lenv['WITH_BF_BULLET']:
- lenv.Append(CPPDEFINES=['WITH_BULLET=1'])
- # debug or not
- # CXXFLAGS defaults to CCFLAGS, therefore
- # we Replace() rather than Append() to CXXFLAGS the first time
- lenv.Replace(CXXFLAGS = lenv['CCFLAGS'])
- if lenv['BF_DEBUG'] or (libname in quickdebug):
- lenv.Append(CCFLAGS = Split(lenv['BF_DEBUG_FLAGS']))
- lenv.Append( CXXFLAGS = Split(lenv['BF_DEBUG_FLAGS']))
- else:
- lenv.Append(CCFLAGS = lenv['REL_CFLAGS'])
- lenv.Append(CXXFLAGS = lenv['REL_CCFLAGS'])
- if lenv['BF_PROFILE']:
- lenv.Append(CCFLAGS = Split(lenv['BF_PROFILE_FLAGS']),
- CXXFLAGS = Split(lenv['BF_PROFILE_FLAGS']))
- if compileflags:
- lenv.Append(CCFLAGS = compileflags)
- lenv.Append(CXXFLAGS = compileflags)
- lenv.Append(CCFLAGS = Split(lenv['C_WARN']))
- lenv.Append(CXXFLAGS = Split(lenv['CC_WARN']))
- lib = lenv.Library(target= '#'+root_build_dir+'lib/'+libname, source=sources)
- SConsEnvironment.Default(self, lib) # we add to default target, because this way we get some kind of progress info during build
- else:
- print bc.WARNING+'Not building '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC+' for '+bc.OKBLUE+'BF_QUICK'+bc.ENDC
- # note: libs is a global
- add_lib_to_dict(self, libs, libtype, libname, priority)
-
- def BlenderProg(self=None, builddir=None, progname=None, sources=None, includes=None, libs=None, libpath=None, binarykind=''):
- print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
- lenv = self.Clone()
- if lenv['OURPLATFORM'] in ['win32-vc', 'cygwin']:
- lenv.Append(LINKFLAGS = Split(lenv['PLATFORM_LINKFLAGS']))
- if lenv['BF_DEBUG']:
- lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb'])
- if lenv['OURPLATFORM']=='linux2':
- lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- if lenv['OURPLATFORM']=='sunos5':
- lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- if lenv['CXX'].endswith('CC'):
- lenv.Replace(LINK = '$CXX')
- if lenv['OURPLATFORM']=='darwin':
- lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
- lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
- if lenv['BF_PROFILE']:
- lenv.Append(LINKFLAGS = lenv['BF_PROFILE_FLAGS'])
- lenv.Append(CPPPATH=includes)
- lenv.Append(LIBPATH=libpath)
- lenv.Append(LIBS=libs)
- if lenv['WITH_BF_QUICKTIME']:
- lenv.Append(LIBS = lenv['BF_QUICKTIME_LIB'])
- lenv.Append(LIBPATH = lenv['BF_QUICKTIME_LIBPATH'])
- prog = lenv.Program(target=builddir+'bin/'+progname, source=sources)
- if lenv['BF_DEBUG'] and lenv['OURPLATFORM']=='win32-vc' and lenv['BF_BSC']:
- f = lenv.File(progname + '.bsc', builddir)
- brs = lenv.Command(f, prog, [bsc])
- SConsEnvironment.Default(self, brs)
- SConsEnvironment.Default(self, prog)
- program_list.append(prog)
- if lenv['OURPLATFORM']=='darwin':
- lenv['BINARYKIND'] = binarykind
- lenv.AddPostAction(prog,Action(AppIt,strfunction=my_appit_print))
- return prog
-
- def Glob(lenv, pattern):
- path = string.replace(GetBuildPath(lenv,'SConscript'),'SConscript', '')
- files = []
- for i in glob.glob(path + pattern):
- files.append(string.replace(i, path, ''))
- return files
+ def BlenderRes(self=None, libname=None, source=None, libtype=['core'], priority=[100]):
+ global libs
+ if not self or not libname or not source:
+ print bc.FAIL+'Cannot continue. Missing argument for BlenderRes '+libname+bc.ENDC
+ self.Exit()
+ if self['OURPLATFORM'] not in ('win32-vc','win32-mingw','linuxcross'):
+ print bc.FAIL+'BlenderRes is for windows only!'+bc.END
+ self.Exit()
+
+ print bc.HEADER+'Configuring resource '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC
+ lenv = self.Clone()
+ res = lenv.RES('#'+root_build_dir+'lib/'+libname, source)
+
+ SConsEnvironment.Default(self, res)
+ resources.append(res)
+
+ def BlenderLib(self=None, libname=None, sources=None, includes=[], defines=[], libtype='common', priority = 100, compileflags=None, cc_compileflags=None, cxx_compileflags=None):
+ if not self or not libname or not sources:
+ print bc.FAIL+'Cannot continue. Missing argument for BuildBlenderLib '+libname+bc.ENDC
+ self.Exit()
+ if libname in quickie or len(quickie)==0:
+ if libname in quickdebug:
+ print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname +bc.ENDC+bc.OKBLUE+ " (debug mode)" + bc.ENDC
+ else:
+ print bc.HEADER+'Configuring library '+bc.ENDC+bc.OKGREEN+libname + bc.ENDC
+ lenv = self.Clone()
+ lenv.Append(CPPPATH=includes)
+ lenv.Append(CPPDEFINES=defines)
+ if lenv['WITH_BF_GAMEENGINE']:
+ lenv.Append(CPPDEFINES=['GAMEBLENDER=1'])
+ if lenv['WITH_BF_BULLET']:
+ lenv.Append(CPPDEFINES=['WITH_BULLET=1'])
+ if lenv['BF_DEBUG'] or (libname in quickdebug):
+ lenv.Append(CFLAGS = lenv['BF_DEBUG_CFLAGS'])
+ lenv.Append(CCFLAGS = lenv['BF_DEBUG_CCFLAGS'])
+ lenv.Append(CXXFLAGS = lenv['BF_DEBUG_CXXFLAGS'])
+ else:
+ lenv.Append(CFLAGS = lenv['REL_CFLAGS'])
+ lenv.Append(CCFLAGS = lenv['REL_CCFLAGS'])
+ lenv.Append(CXXFLAGS = lenv['REL_CXXFLAGS'])
+ if lenv['BF_PROFILE']:
+ lenv.Append(CFLAGS = lenv['BF_PROFILE_CFLAGS'])
+ lenv.Append(CCFLAGS = lenv['BF_PROFILE_CCFLAGS'])
+ lenv.Append(CXXFLAGS = lenv['BF_PROFILE_CXXFLAGS'])
+ if compileflags:
+ lenv.Append(CFLAGS = compileflags)
+ if cc_compileflags:
+ lenv.Append(CCFLAGS = cc_compileflags)
+ if cxx_compileflags:
+ lenv.Append(CXXFLAGS = cxx_compileflags)
+ lenv.Append(CFLAGS = lenv['C_WARN'])
+ lenv.Append(CXXFLAGS = lenv['CC_WARN'])
+ lenv.Append(CXXFLAGS = lenv['CXX_WARN'])
+ lib = lenv.Library(target= '#'+root_build_dir+'lib/'+libname, source=sources)
+ SConsEnvironment.Default(self, lib) # we add to default target, because this way we get some kind of progress info during build
+ else:
+ print bc.WARNING+'Not building '+bc.ENDC+bc.OKGREEN+libname+bc.ENDC+' for '+bc.OKBLUE+'BF_QUICK'+bc.ENDC
+ # note: libs is a global
+ add_lib_to_dict(self, libs, libtype, libname, priority)
+
+ def BlenderProg(self=None, builddir=None, progname=None, sources=None, includes=None, libs=None, libpath=None, binarykind=''):
+ print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
+ lenv = self.Clone()
+ if lenv['OURPLATFORM'] in ['win32-vc', 'cygwin']:
+ lenv.Append(LINKFLAGS = Split(lenv['PLATFORM_LINKFLAGS']))
+ if lenv['BF_DEBUG']:
+ lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb'])
+ if lenv['OURPLATFORM']=='linux2':
+ lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
+ if lenv['WITH_BF_PYTHON']:
+ lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
+ if lenv['OURPLATFORM']=='sunos5':
+ lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
+ if lenv['WITH_BF_PYTHON']:
+ lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
+ if lenv['CXX'].endswith('CC'):
+ lenv.Replace(LINK = '$CXX')
+ if lenv['OURPLATFORM']=='darwin':
+ lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
+ if lenv['WITH_BF_PYTHON']:
+ lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
+ lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
+ if lenv['BF_PROFILE']:
+ lenv.Append(LINKFLAGS = lenv['BF_PROFILE_FLAGS'])
+ lenv.Append(CPPPATH=includes)
+ lenv.Append(LIBPATH=libpath)
+ lenv.Append(LIBS=libs)
+ if lenv['WITH_BF_QUICKTIME']:
+ lenv.Append(LIBS = lenv['BF_QUICKTIME_LIB'])
+ lenv.Append(LIBPATH = lenv['BF_QUICKTIME_LIBPATH'])
+ prog = lenv.Program(target=builddir+'bin/'+progname, source=sources)
+ if lenv['BF_DEBUG'] and lenv['OURPLATFORM']=='win32-vc' and lenv['BF_BSC']:
+ f = lenv.File(progname + '.bsc', builddir)
+ brs = lenv.Command(f, prog, [bsc])
+ SConsEnvironment.Default(self, brs)
+ SConsEnvironment.Default(self, prog)
+ program_list.append(prog)
+ if lenv['OURPLATFORM']=='darwin':
+ lenv['BINARYKIND'] = binarykind
+ lenv.AddPostAction(prog,Action(AppIt,strfunction=my_appit_print))
+ return prog
+
+ def Glob(lenv, pattern):
+ path = string.replace(GetBuildPath(lenv,'SConscript'),'SConscript', '')
+ files = []
+ for i in glob.glob(path + pattern):
+ files.append(string.replace(i, path, ''))
+ return files
diff --git a/tools/bcolors.py b/tools/bcolors.py
index b01bb781524..a6b92134148 100755
--- a/tools/bcolors.py
+++ b/tools/bcolors.py
@@ -1,16 +1,16 @@
class bcolors:
- HEADER = '\033[95m'
- OKBLUE = '\033[94m'
- OKGREEN = '\033[92m'
- WARNING = '\033[93m'
- FAIL = '\033[91m'
- ENDC = '\033[0m'
+ HEADER = '\033[95m'
+ OKBLUE = '\033[94m'
+ OKGREEN = '\033[92m'
+ WARNING = '\033[93m'
+ FAIL = '\033[91m'
+ ENDC = '\033[0m'
- def disable(self):
- self.HEADER = ''
- self.OKBLUE = ''
- self.OKGREEN = ''
- self.WARNING = ''
- self.FAIL = ''
- self.ENDC = ''
+ def disable(self):
+ self.HEADER = ''
+ self.OKBLUE = ''
+ self.OKGREEN = ''
+ self.WARNING = ''
+ self.FAIL = ''
+ self.ENDC = ''
diff --git a/tools/btools.py b/tools/btools.py
index 58b667b486f..24548571f5e 100755
--- a/tools/btools.py
+++ b/tools/btools.py
@@ -1,267 +1,277 @@
-
import os
import os.path
import SCons.Options
+
+import SCons.Variables
try:
- import SCons.Options.BoolOption
-except ImportError:
- pass
-try:
- import subprocess
+ import subprocess
except ImportError:
- pass
+ pass
import string
import glob
import shutil
import sys
-Options = SCons.Options
-BoolOption = SCons.Options.BoolOption
+Variables = SCons.Variables
+BoolVariable = SCons.Variables.BoolVariable
def print_arguments(args, bc):
- if len(args):
- for k,v in args.iteritems():
- print '\t'+bc.OKBLUE+k+bc.ENDC+' = '+bc.OKGREEN + v + bc.ENDC
- else:
- print '\t'+bc.WARNING+'No command-line arguments given'+bc.ENDC
+ if len(args):
+ for k,v in args.iteritems():
+ print '\t'+bc.OKBLUE+k+bc.ENDC+' = '+bc.OKGREEN + v + bc.ENDC
+ else:
+ print '\t'+bc.WARNING+'No command-line arguments given'+bc.ENDC
def validate_arguments(args, bc):
- opts_list = [
- 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'BF_PYTHON_LINKFLAGS', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC',
- 'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC',
- 'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
- 'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
- 'WITH_BF_FMOD',
- 'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
- 'WITH_BF_DDS',
- 'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG', 'BF_FFMPEG_INC',
- 'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
- 'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH',
- 'BF_TIFF', 'BF_TIFF_INC',
- 'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH',
- 'WITH_BF_INTERNATIONAL',
- 'BF_GETTEXT', 'BF_GETTEXT_INC', 'BF_GETTEXT_LIB', 'BF_GETTEXT_LIBPATH',
- 'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
- 'WITH_BF_ODE', 'BF_ODE', 'BF_ODE_INC', 'BF_ODE_LIB',
- 'WITH_BF_GAMEENGINE', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
- 'BF_SOLID', 'BF_SOLID_INC', 'BF_WINTAB', 'BF_WINTAB_INC',
- 'WITH_BF_YAFRAY',
- 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH',
- 'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
- 'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
- 'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
- 'WITH_BF_PLAYER',
- 'WITH_BF_BINRELOC',
- 'CFLAGS', 'CCFLAGS', 'CPPFLAGS',
- 'REL_CFLAGS', 'REL_CCFLAGS',
- 'C_WARN', 'CC_WARN', 'LLIBS', 'PLATFORM_LINKFLAGS',
- 'BF_PROFILE_FLAGS', 'LCGDIR',
- 'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC'
- 'WITH_BF_VERSE', 'BF_VERSE_INCLUDE',
- 'VERSE_BUILD_BINARY', 'VERSE_BUILD_DIR', 'VERSE_REGEN_PROTO',
- 'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
- 'WITHOUT_BF_INSTALL',
- 'WITH_BF_OPENMP',
- 'WITHOUT_BF_INSTALL',
- 'BF_FANCY', 'BF_QUIET',
- 'BF_X264_CONFIG',
- 'BF_XVIDCORE_CONFIG',
- ]
-
- arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE',
- 'BF_INSTALLDIR', 'BF_TOOLSET', 'BF_BINNAME',
- 'BF_BUILDDIR', 'BF_FANCY', 'BF_QUICK', 'BF_PROFILE',
- 'BF_DEBUG_FLAGS', 'BF_BSC', 'BF_CONFIG',
- 'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
- 'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG']
-
- all_list = opts_list + arg_list
- okdict = {}
-
- for k,v in args.iteritems():
- if k in all_list:
- okdict[k] = v
- else:
- print '\t'+bc.WARNING+'Invalid argument: '+bc.ENDC+k+'='+v
-
- return okdict
+ opts_list = [
+ 'WITH_BF_PYTHON', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'BF_PYTHON_LINKFLAGS', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC',
+ 'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC',
+ 'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
+ 'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
+ 'WITH_BF_FMOD',
+ 'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
+ 'WITH_BF_DDS',
+ 'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG', 'BF_FFMPEG_INC',
+ 'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
+ 'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
+ 'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH',
+ 'BF_TIFF', 'BF_TIFF_INC',
+ 'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH',
+ 'WITH_BF_INTERNATIONAL',
+ 'BF_GETTEXT', 'BF_GETTEXT_INC', 'BF_GETTEXT_LIB', 'BF_GETTEXT_LIBPATH',
+ 'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
+ 'WITH_BF_ODE', 'BF_ODE', 'BF_ODE_INC', 'BF_ODE_LIB',
+ 'WITH_BF_GAMEENGINE', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
+ 'BF_SOLID', 'BF_SOLID_INC', 'BF_WINTAB', 'BF_WINTAB_INC',
+ 'WITH_BF_YAFRAY',
+ 'WITH_BF_FREETYPE', 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH',
+ 'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
+ 'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
+ 'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
+ 'WITH_BF_PLAYER',
+ 'WITH_BF_NOBLENDER',
+ 'WITH_BF_BINRELOC',
+ 'CFLAGS', 'CCFLAGS', 'CXXFLAGS', 'CPPFLAGS',
+ 'REL_CFLAGS', 'REL_CCFLAGS', 'REL_CXXFLAGS',
+ 'BF_PROFILE_FLAGS', 'BF_PROFILE_FLAGS', 'BF_PROFILE_CXXFLAGS',
+ 'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS',
+ 'C_WARN', 'CC_WARN', 'CXX_WARN',
+ 'LLIBS', 'PLATFORM_LINKFLAGS',
+ 'LCGDIR',
+ 'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC'
+ 'WITH_BF_VERSE', 'BF_VERSE_INCLUDE',
+ 'VERSE_BUILD_BINARY', 'VERSE_BUILD_DIR', 'VERSE_REGEN_PROTO',
+ 'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
+ 'WITHOUT_BF_INSTALL',
+ 'WITH_BF_OPENMP',
+ 'WITHOUT_BF_INSTALL',
+ 'BF_FANCY', 'BF_QUIET',
+ 'BF_X264_CONFIG',
+ 'BF_XVIDCORE_CONFIG',
+ 'WITH_BF_DOCS',
+ 'BF_NUMJOBS',
+ ]
+
+ arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE',
+ 'BF_INSTALLDIR', 'BF_TOOLSET', 'BF_BINNAME',
+ 'BF_BUILDDIR', 'BF_FANCY', 'BF_QUICK', 'BF_PROFILE',
+ 'BF_BSC', 'BF_CONFIG',
+ 'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
+ 'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG',
+ 'BF_DOCDIR']
+
+ all_list = opts_list + arg_list
+ okdict = {}
+
+ for k,v in args.iteritems():
+ if k in all_list:
+ okdict[k] = v
+ else:
+ print '\t'+bc.WARNING+'Invalid argument: '+bc.ENDC+k+'='+v
+
+ return okdict
def print_targets(targs, bc):
- if len(targs)>0:
- for t in targs:
- print '\t'+bc.OKBLUE+t+bc.ENDC
- else:
- print '\t'+bc.WARNING+'No targets given, using '+bc.ENDC+bc.OKGREEN+'default'+bc.ENDC
+ if len(targs)>0:
+ for t in targs:
+ print '\t'+bc.OKBLUE+t+bc.ENDC
+ else:
+ print '\t'+bc.WARNING+'No targets given, using '+bc.ENDC+bc.OKGREEN+'default'+bc.ENDC
def validate_targets(targs, bc):
- valid_list = ['.', 'blender', 'blenderstatic', 'blenderplayer', 'webplugin',
- 'blendernogame', 'blenderstaticnogame', 'blenderlite', 'release',
- 'everything', 'clean', 'install-bin', 'install', 'nsis']
- oklist = []
- for t in targs:
- if t in valid_list:
- oklist.append(t)
- else:
- print '\t'+bc.WARNING+'Invalid target: '+bc.ENDC+t
- return oklist
+ valid_list = ['.', 'blender', 'blenderstatic', 'blenderplayer', 'webplugin',
+ 'blendernogame', 'blenderstaticnogame', 'blenderlite', 'release',
+ 'everything', 'clean', 'install-bin', 'install', 'nsis']
+ oklist = []
+ for t in targs:
+ if t in valid_list:
+ oklist.append(t)
+ else:
+ print '\t'+bc.WARNING+'Invalid target: '+bc.ENDC+t
+ return oklist
class ourSpawn:
- def ourspawn(self, sh, escape, cmd, args, env):
- newargs = string.join(args[1:], ' ')
- cmdline = cmd + " " + newargs
- startupinfo = subprocess.STARTUPINFO()
- startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
- proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False)
- data, err = proc.communicate()
- rv = proc.wait()
- if rv:
- print "====="
- print err
- print "====="
- return rv
+ def ourspawn(self, sh, escape, cmd, args, env):
+ newargs = string.join(args[1:], ' ')
+ cmdline = cmd + " " + newargs
+ startupinfo = subprocess.STARTUPINFO()
+ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+ proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False)
+ data, err = proc.communicate()
+ rv = proc.wait()
+ if rv:
+ print "====="
+ print err
+ print "====="
+ return rv
def SetupSpawn( env ):
- buf = ourSpawn()
- buf.ourenv = env
- env['SPAWN'] = buf.ourspawn
+ buf = ourSpawn()
+ buf.ourenv = env
+ env['SPAWN'] = buf.ourspawn
def read_opts(cfg, args):
- localopts = Options.Options(cfg, args)
- localopts.AddOptions(
- ('VERSE_BUILD_BINARY', 'Build a release or debug binary.', 'release'),
- ('VERSE_BUILD_DIR', 'Target directory for intermediate files.', "${BF_BUILDDIR}/extern/verse"),
- ('VERSE_REGEN_PROTO', 'Whether to regenerate the protocol files', 'yes'),
- (BoolOption('WITH_BF_VERSE', 'Use VERSE if true', 'false')),
- ('BF_VERSE_INCLUDE', 'verse include dir', '/usr/include'),
- ('LCGDIR', 'location of cvs lib dir'),
- ('VERSE_BUILD_BINARY', 'Build a release or debug binary.', 'release'),
- ('VERSE_BUILD_DIR', 'Target directory for intermediate files.', "${BF_BUILDDIR}/extern/verse"),
- ('VERSE_REGEN_PROTO', 'Whether to regenerate the protocol files', 'yes'),
- ('BF_DEBUG_LIBS', 'list of libraries to build with debug symbols'),
-
- ('BF_PYTHON', 'base path for python', ''),
- ('BF_PYTHON_VERSION', 'Python version to use', ''),
- ('BF_PYTHON_INC', 'include path for Python headers', ''),
- ('BF_PYTHON_BINARY', 'Path to the Python interpreter', ''),
- ('BF_PYTHON_LIB', 'Python library', ''),
- ('BF_PYTHON_LIB_STATIC', 'Python static libraries', ''),
- ('BF_PYTHON_LIBPATH', 'Library path', ''),
- ('BF_PYTHON_LINKFLAGS', 'Python link flags', ''),
- (BoolOption('WITH_BF_STATICPYTHON', 'Staticly link to python', 'false')),
-
- (BoolOption('BF_NO_ELBEEM', 'Disable Fluid Sim', 'false')),
- (BoolOption('WITH_BF_YAFRAY', 'Enable Yafray', 'true')),
-
- (BoolOption('WITH_BF_OPENAL', 'Use OpenAL if true', '')),
- ('BF_OPENAL', 'base path for OpenAL', ''),
- ('BF_OPENAL_INC', 'include path for python headers', ''),
- ('BF_OPENAL_LIB', 'Path to OpenAL library', ''),
- ('BF_OPENAL_LIB_STATIC', 'Path to OpenAL static library', ''),
- ('BF_OPENAL_LIBPATH', 'Path to OpenAL library', ''),
- (BoolOption('WITH_BF_STATICOPENAL', 'Staticly link to openal', 'false')),
-
- (BoolOption('WITH_BF_SDL', 'Use SDL if true', '')),
- ('BF_SDL', 'SDL base path', ''),
- ('BF_SDL_INC', 'SDL include path', ''), #$(shell $(BF_SDL)/bin/sdl-config --cflags)
- ('BF_SDL_LIB', 'SDL library', ''), #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
- ('BF_SDL_LIBPATH', 'SDL library path', ''),
-
- ('BF_PTHREADS', 'Pthreads base path', ''),
- ('BF_PTHREADS_INC', 'Pthreads include path', ''),
- ('BF_PTHREADS_LIB', 'Pthreads library', ''),
- ('BF_PTHREADS_LIBPATH', 'Pthreads library path', ''),
-
- (BoolOption('WITH_BF_FMOD', 'Use FMOD if true', 'false')),
- # BF_FMOD = $(LCGDIR)/fmod
-
- (BoolOption('WITH_BF_OPENEXR', 'Use OPENEXR if true', 'true')),
- (BoolOption('WITH_BF_STATICOPENEXR', 'Staticly link to OpenEXR', 'false')),
- ('BF_OPENEXR', 'OPENEXR base path', ''),
- ('BF_OPENEXR_INC', 'OPENEXR include path', ''),
- ('BF_OPENEXR_LIB', 'OPENEXR library', ''),
- ('BF_OPENEXR_LIBPATH', 'OPENEXR library path', ''),
- ('BF_OPENEXR_LIB_STATIC', 'OPENEXR static library', ''),
-
- (BoolOption('WITH_BF_DDS', 'Use DDS if true', 'true')),
-
- (BoolOption('WITH_BF_FFMPEG', 'Use FFMPEG if true', 'false')),
- ('BF_FFMPEG', 'FFMPEG base path', ''),
- ('BF_FFMPEG_LIB', 'FFMPEG library', ''),
- ('BF_FFMPEG_EXTRA', 'FFMPEG flags that must be preserved', ''),
-
- ('BF_FFMPEG_INC', 'FFMPEG includes', ''),
- ('BF_FFMPEG_LIBPATH', 'FFMPEG library path', ''),
-
-
- (BoolOption('WITH_BF_JPEG', 'Use JPEG if true', 'true')),
- ('BF_JPEG', 'JPEG base path', ''),
- ('BF_JPEG_INC', 'JPEG include path', ''),
- ('BF_JPEG_LIB', 'JPEG library', ''),
- ('BF_JPEG_LIBPATH', 'JPEG library path', ''),
-
- (BoolOption('WITH_BF_OPENJPEG', 'Use OPENJPEG if true', 'false')),
- ('BF_OPENJPEG', 'OPENJPEG base path', ''),
- ('BF_OPENJPEG_INC', 'OPENJPEG include path', ''),
- ('BF_OPENJPEG_LIB', 'OPENJPEG library', ''),
- ('BF_OPENJPEG_LIBPATH', 'OPENJPEG library path', ''),
-
- (BoolOption('WITH_BF_REDCODE', 'Use REDCODE if true', 'false')),
- ('BF_REDCODE', 'REDCODE base path', ''),
- ('BF_REDCODE_INC', 'REDCODE include path', ''),
- ('BF_REDCODE_LIB', 'REDCODE library', ''),
- ('BF_REDCODE_LIBPATH', 'REDCODE library path', ''),
-
- (BoolOption('WITH_BF_PNG', 'Use PNG if true', 'true')),
- ('BF_PNG', 'PNG base path', ''),
- ('BF_PNG_INC', 'PNG include path', ''),
- ('BF_PNG_LIB', 'PNG library', ''),
- ('BF_PNG_LIBPATH', 'PNG library path', ''),
-
- ('BF_TIFF', 'TIFF base path', ''),
- ('BF_TIFF_INC', 'TIFF include path', ''),
-
- (BoolOption('WITH_BF_ZLIB', 'Use ZLib if true', 'true')),
- ('BF_ZLIB', 'ZLib base path', ''),
- ('BF_ZLIB_INC', 'ZLib include path', ''),
- ('BF_ZLIB_LIB', 'ZLib library', ''),
- ('BF_ZLIB_LIBPATH', 'ZLib library path', ''),
-
- (BoolOption('WITH_BF_INTERNATIONAL', 'Use Gettext and Freetype if true', 'true')),
-
- ('BF_GETTEXT', 'gettext base path', ''),
- ('BF_GETTEXT_INC', 'gettext include path', ''),
- ('BF_GETTEXT_LIB', 'gettext library', ''),
- ('BF_GETTEXT_LIBPATH', 'gettext library path', ''),
-
- (BoolOption('WITH_BF_ICONV', 'Use iconv if true', 'true')),
- ('BF_ICONV', 'iconv base path', ''),
- ('BF_ICONV_INC', 'iconv include path', ''),
- ('BF_ICONV_LIB', 'iconv library', ''),
- ('BF_ICONV_LIBPATH', 'iconv library path', ''),
-
- (BoolOption('WITH_BF_GAMEENGINE', 'Build with gameengine' , 'true')),
-
- (BoolOption('WITH_BF_ODE', 'Use ODE if true', 'true')),
- ('BF_ODE', 'ODE base path', ''),
- ('BF_ODE_INC', 'ODE include path' , ''),
- ('BF_ODE_LIB', 'ODE library', ''),
-
- (BoolOption('WITH_BF_BULLET', 'Use Bullet if true', 'true')),
- ('BF_BULLET', 'Bullet base dir', ''),
- ('BF_BULLET_INC', 'Bullet include path', ''),
- ('BF_BULLET_LIB', 'Bullet library', ''),
-
- ('BF_SOLID', 'Solid base dir', '#/extern/solid'),
- ('BF_SOLID_INC', 'Solid include path', ''),
- ('BF_WINTAB', 'WinTab base dir', ''),
- ('BF_WINTAB_INC', 'WinTab include dir', ''),
- ('BF_CXX', 'c++ base path for libstdc++, only used when static linking', ''),
- (BoolOption('WITH_BF_STATICCXX', 'static link to stdc++', 'false')),
- ('BF_CXX_LIB_STATIC', 'static library path for stdc++', ''),
+ localopts = Variables.Variables(cfg, args)
+ localopts.AddVariables(
+ ('VERSE_BUILD_BINARY', 'Build a release or debug binary.', 'release'),
+ ('VERSE_BUILD_DIR', 'Target directory for intermediate files.', "${BF_BUILDDIR}/extern/verse"),
+ ('VERSE_REGEN_PROTO', 'Whether to regenerate the protocol files', 'yes'),
+ (BoolVariable('WITH_BF_VERSE', 'Use VERSE if true', False)),
+ ('BF_VERSE_INCLUDE', 'verse include dir', '/usr/include'),
+ ('LCGDIR', 'location of cvs lib dir'),
+ ('VERSE_BUILD_BINARY', 'Build a release or debug binary.', 'release'),
+ ('VERSE_BUILD_DIR', 'Target directory for intermediate files.', "${BF_BUILDDIR}/extern/verse"),
+ ('VERSE_REGEN_PROTO', 'Whether to regenerate the protocol files', 'yes'),
+ ('BF_DEBUG_LIBS', 'list of libraries to build with debug symbols'),
+
+ (BoolVariable('WITH_BF_PYTHON', 'Compile with python', True)),
+ ('BF_PYTHON', 'base path for python', ''),
+ ('BF_PYTHON_VERSION', 'Python version to use', ''),
+ ('BF_PYTHON_INC', 'include path for Python headers', ''),
+ ('BF_PYTHON_BINARY', 'Path to the Python interpreter', ''),
+ ('BF_PYTHON_LIB', 'Python library', ''),
+ ('BF_PYTHON_LIB_STATIC', 'Python static libraries', ''),
+ ('BF_PYTHON_LIBPATH', 'Library path', ''),
+ ('BF_PYTHON_LINKFLAGS', 'Python link flags', ''),
+ (BoolVariable('WITH_BF_STATICPYTHON', 'Staticly link to python', False)),
+
+ (BoolVariable('BF_NO_ELBEEM', 'Disable Fluid Sim', False)),
+ (BoolVariable('WITH_BF_YAFRAY', 'Enable Yafray', True)),
+
+ (BoolVariable('WITH_BF_OPENAL', 'Use OpenAL if true', False)),
+ ('BF_OPENAL', 'base path for OpenAL', ''),
+ ('BF_OPENAL_INC', 'include path for python headers', ''),
+ ('BF_OPENAL_LIB', 'Path to OpenAL library', ''),
+ ('BF_OPENAL_LIB_STATIC', 'Path to OpenAL static library', ''),
+ ('BF_OPENAL_LIBPATH', 'Path to OpenAL library', ''),
+ (BoolVariable('WITH_BF_STATICOPENAL', 'Staticly link to openal', False)),
+
+ (BoolVariable('WITH_BF_SDL', 'Use SDL if true', False)),
+ ('BF_SDL', 'SDL base path', ''),
+ ('BF_SDL_INC', 'SDL include path', ''), #$(shell $(BF_SDL)/bin/sdl-config --cflags)
+ ('BF_SDL_LIB', 'SDL library', ''), #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
+ ('BF_SDL_LIBPATH', 'SDL library path', ''),
+
+ ('BF_PTHREADS', 'Pthreads base path', ''),
+ ('BF_PTHREADS_INC', 'Pthreads include path', ''),
+ ('BF_PTHREADS_LIB', 'Pthreads library', ''),
+ ('BF_PTHREADS_LIBPATH', 'Pthreads library path', ''),
+
+ (BoolVariable('WITH_BF_FMOD', 'Use FMOD if true', False)),
+ # BF_FMOD = $(LCGDIR)/fmod
+
+ (BoolVariable('WITH_BF_OPENEXR', 'Use OPENEXR if true', True)),
+ (BoolVariable('WITH_BF_STATICOPENEXR', 'Staticly link to OpenEXR', False)),
+ ('BF_OPENEXR', 'OPENEXR base path', ''),
+ ('BF_OPENEXR_INC', 'OPENEXR include path', ''),
+ ('BF_OPENEXR_LIB', 'OPENEXR library', ''),
+ ('BF_OPENEXR_LIBPATH', 'OPENEXR library path', ''),
+ ('BF_OPENEXR_LIB_STATIC', 'OPENEXR static library', ''),
+
+ (BoolVariable('WITH_BF_DDS', 'Use DDS if true', True)),
+
+ (BoolVariable('WITH_BF_FFMPEG', 'Use FFMPEG if true', False)),
+ ('BF_FFMPEG', 'FFMPEG base path', ''),
+ ('BF_FFMPEG_LIB', 'FFMPEG library', ''),
+ ('BF_FFMPEG_EXTRA', 'FFMPEG flags that must be preserved', ''),
+
+ ('BF_FFMPEG_INC', 'FFMPEG includes', ''),
+ ('BF_FFMPEG_LIBPATH', 'FFMPEG library path', ''),
+
+ (BoolVariable('WITH_BF_OGG', 'Use OGG, THEORA, VORBIS in FFMPEG if true',
+ False)),
+ ('BF_OGG', 'OGG base path', ''),
+ ('BF_OGG_LIB', 'OGG library', ''),
+
+ (BoolVariable('WITH_BF_JPEG', 'Use JPEG if true', True)),
+ ('BF_JPEG', 'JPEG base path', ''),
+ ('BF_JPEG_INC', 'JPEG include path', ''),
+ ('BF_JPEG_LIB', 'JPEG library', ''),
+ ('BF_JPEG_LIBPATH', 'JPEG library path', ''),
+
+ (BoolVariable('WITH_BF_OPENJPEG', 'Use OPENJPEG if true', False)),
+ ('BF_OPENJPEG', 'OPENJPEG base path', ''),
+ ('BF_OPENJPEG_INC', 'OPENJPEG include path', ''),
+ ('BF_OPENJPEG_LIB', 'OPENJPEG library', ''),
+ ('BF_OPENJPEG_LIBPATH', 'OPENJPEG library path', ''),
+
+ (BoolVariable('WITH_BF_REDCODE', 'Use REDCODE if true', False)),
+ ('BF_REDCODE', 'REDCODE base path', ''),
+ ('BF_REDCODE_INC', 'REDCODE include path', ''),
+ ('BF_REDCODE_LIB', 'REDCODE library', ''),
+ ('BF_REDCODE_LIBPATH', 'REDCODE library path', ''),
+
+ (BoolVariable('WITH_BF_PNG', 'Use PNG if true', True)),
+ ('BF_PNG', 'PNG base path', ''),
+ ('BF_PNG_INC', 'PNG include path', ''),
+ ('BF_PNG_LIB', 'PNG library', ''),
+ ('BF_PNG_LIBPATH', 'PNG library path', ''),
+
+ ('BF_TIFF', 'TIFF base path', ''),
+ ('BF_TIFF_INC', 'TIFF include path', ''),
+
+ (BoolVariable('WITH_BF_ZLIB', 'Use ZLib if true', True)),
+ ('BF_ZLIB', 'ZLib base path', ''),
+ ('BF_ZLIB_INC', 'ZLib include path', ''),
+ ('BF_ZLIB_LIB', 'ZLib library', ''),
+ ('BF_ZLIB_LIBPATH', 'ZLib library path', ''),
+
+ (BoolVariable('WITH_BF_INTERNATIONAL', 'Use Gettext and Freetype if true', True)),
+
+ ('BF_GETTEXT', 'gettext base path', ''),
+ ('BF_GETTEXT_INC', 'gettext include path', ''),
+ ('BF_GETTEXT_LIB', 'gettext library', ''),
+ ('BF_GETTEXT_LIBPATH', 'gettext library path', ''),
+
+ (BoolVariable('WITH_BF_ICONV', 'Use iconv if true', True)),
+ ('BF_ICONV', 'iconv base path', ''),
+ ('BF_ICONV_INC', 'iconv include path', ''),
+ ('BF_ICONV_LIB', 'iconv library', ''),
+ ('BF_ICONV_LIBPATH', 'iconv library path', ''),
+
+ (BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine' , True)),
+
+ (BoolVariable('WITH_BF_ODE', 'Use ODE if true', True)),
+ ('BF_ODE', 'ODE base path', ''),
+ ('BF_ODE_INC', 'ODE include path' , ''),
+ ('BF_ODE_LIB', 'ODE library', ''),
+
+ (BoolVariable('WITH_BF_BULLET', 'Use Bullet if true', True)),
+ ('BF_BULLET', 'Bullet base dir', ''),
+ ('BF_BULLET_INC', 'Bullet include path', ''),
+ ('BF_BULLET_LIB', 'Bullet library', ''),
+
+ ('BF_SOLID', 'Solid base dir', '#/extern/solid'),
+ ('BF_SOLID_INC', 'Solid include path', ''),
+ ('BF_WINTAB', 'WinTab base dir', ''),
+ ('BF_WINTAB_INC', 'WinTab include dir', ''),
+ ('BF_CXX', 'c++ base path for libstdc++, only used when static linking', ''),
+ (BoolVariable('WITH_BF_STATICCXX', 'static link to stdc++', False)),
+ ('BF_CXX_LIB_STATIC', 'static library path for stdc++', ''),
##
-##WITH_BF_NSPR = 'true'
+##WITH_BF_NSPR = True
##BF_NSPR = $(LCGDIR)/nspr
##BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
##BF_NSPR_LIB =
@@ -275,264 +285,276 @@ def read_opts(cfg, args):
### if this is not set.
##
### Be paranoid regarding library creation (do not update archives)
-##BF_PARANOID = 'true'
+##BF_PARANOID = True
##
### enable freetype2 support for text objects
- ('BF_FREETYPE', 'Freetype base path', ''),
- ('BF_FREETYPE_INC', 'Freetype include path', ''),
- ('BF_FREETYPE_LIB', 'Freetype library', ''),
- ('BF_FREETYPE_LIBPATH', 'Freetype library path', ''),
-
- (BoolOption('WITH_BF_OPENMP', 'Use OpenMP if true', 'false')),
-
- (BoolOption('WITH_BF_QUICKTIME', 'Use QuickTime if true', 'false')),
- ('BF_QUICKTIME', 'QuickTime base path', ''),
- ('BF_QUICKTIME_INC', 'QuickTime include path', ''),
- ('BF_QUICKTIME_LIB', 'QuickTime library', ''),
- ('BF_QUICKTIME_LIBPATH', 'QuickTime library path', ''),
-
- (BoolOption('WITH_BF_STATICOPENGL', 'Use MESA if true', 'true')),
- ('BF_OPENGL', 'OpenGL base path', ''),
- ('BF_OPENGL_INC', 'OpenGL include path', ''),
- ('BF_OPENGL_LIB', 'OpenGL libraries', ''),
- ('BF_OPENGL_LIBPATH', 'OpenGL library path', ''),
- ('BF_OPENGL_LIB_STATIC', 'OpenGL static libraries', ''),
- ('BF_OPENGL_LINKFLAGS', 'OpenGL link flags', ''),
-
- (BoolOption('WITH_BF_FTGL', 'Use FTGL if true', 'true')),
- ('BF_FTGL', 'FTGL base path', ''),
- ('BF_FTGL_INC', 'FTGL include path', ''),
- ('BF_FTGL_LIB', 'FTGL libraries', ''),
-
- (BoolOption('WITH_BF_PLAYER', 'Build blenderplayer if true', 'false')),
-
- ('CFLAGS', 'C-compiler flags', ''),
- ('CCFLAGS', 'C++-compiler flags', ''),
- ('CPPFLAGS', 'Defines', ''),
- ('REL_CFLAGS', 'C release flags', ''),
- ('REL_CCFLAGS', 'C++ release flags', ''),
-
- ('C_WARN', 'C warning flags', ''),
- ('CC_WARN', 'C++ warning flags', ''),
-
- ('LLIBS', 'Platform libs', ''),
- ('PLATFORM_LINKFLAGS', 'Platform linkflags', ''),
-
- (BoolOption('BF_PROFILE', 'Add profiling information if true', 'false')),
- ('BF_PROFILE_FLAGS', 'Profiling flags', ''),
-
- (BoolOption('BF_DEBUG', 'Add debug flags if true', 'false')),
- ('BF_DEBUG_FLAGS', 'Debug flags', ''),
-
- (BoolOption('BF_BSC', 'Create .bsc files (msvc only)', 'true')),
-
- ('BF_BUILDDIR', 'Build dir', ''),
- ('BF_INSTALLDIR', 'Installation dir', ''),
-
- ('CC', 'C compiler to use', ''),
- ('CXX', 'C++ compiler to use', ''),
-
- (BoolOption('BF_BUILDINFO', 'Buildtime in splash if true', 'true')),
-
- (BoolOption('BF_TWEAK_MODE', 'Enable tweak mode if true', 'false')),
- (BoolOption('BF_SPLIT_SRC', 'Split src lib into several chunks if true', 'false')),
- (BoolOption('WITHOUT_BF_INSTALL', 'dont install if true', 'false')),
- (BoolOption('BF_FANCY', 'Enable fancy output if true', 'true')),
- (BoolOption('BF_QUIET', 'Enable silent output if true', 'true')),
- (BoolOption('WITH_BF_BINRELOC', 'Enable relocatable binary (linux only)', 'false')),
-
- ('BF_X264_CONFIG', 'configuration flags for x264', ''),
- ('BF_XVIDCORE_CONFIG', 'configuration flags for xvidcore', ''),
-
- ('BF_CONFIG', 'SCons python config file used to set default options', 'user_config.py'),
-
- ) # end of opts.AddOptions()
-
- return localopts
+ (BoolVariable('WITH_BF_FREETYPE', 'Use FreeType2 if true', False)),
+ ('BF_FREETYPE', 'Freetype base path', ''),
+ ('BF_FREETYPE_INC', 'Freetype include path', ''),
+ ('BF_FREETYPE_LIB', 'Freetype library', ''),
+ ('BF_FREETYPE_LIBPATH', 'Freetype library path', ''),
+
+ (BoolVariable('WITH_BF_OPENMP', 'Use OpenMP if true', False)),
+
+ (BoolVariable('WITH_BF_QUICKTIME', 'Use QuickTime if true', False)),
+ ('BF_QUICKTIME', 'QuickTime base path', ''),
+ ('BF_QUICKTIME_INC', 'QuickTime include path', ''),
+ ('BF_QUICKTIME_LIB', 'QuickTime library', ''),
+ ('BF_QUICKTIME_LIBPATH', 'QuickTime library path', ''),
+
+ (BoolVariable('WITH_BF_STATICOPENGL', 'Use MESA if true', True)),
+ ('BF_OPENGL', 'OpenGL base path', ''),
+ ('BF_OPENGL_INC', 'OpenGL include path', ''),
+ ('BF_OPENGL_LIB', 'OpenGL libraries', ''),
+ ('BF_OPENGL_LIBPATH', 'OpenGL library path', ''),
+ ('BF_OPENGL_LIB_STATIC', 'OpenGL static libraries', ''),
+ ('BF_OPENGL_LINKFLAGS', 'OpenGL link flags', ''),
+
+ (BoolVariable('WITH_BF_FTGL', 'Use FTGL if true', True)),
+ ('BF_FTGL', 'FTGL base path', ''),
+ ('BF_FTGL_INC', 'FTGL include path', ''),
+ ('BF_FTGL_LIB', 'FTGL libraries', ''),
+
+ (BoolVariable('WITH_BF_PLAYER', 'Build blenderplayer if true', False)),
+ (BoolVariable('WITH_BF_NOBLENDER', 'Do not build blender if true', False)),
+
+ ('CFLAGS', 'C only flags', ''),
+ ('CCFLAGS', 'Generic C and C++ flags', ''),
+ ('CXXFLAGS', 'C++ only flags', ''),
+ ('CPPFLAGS', 'Defines', ''),
+ ('REL_CFLAGS', 'C only release flags', ''),
+ ('REL_CCFLAGS', 'Generic C and C++ release flags', ''),
+ ('REL_CXXFLAGS', 'C++ only release flags', ''),
+
+ ('C_WARN', 'C warning flags', ''),
+ ('CC_WARN', 'Generic C and C++ warning flags', ''),
+ ('CXX_WARN', 'C++ only warning flags', ''),
+
+ ('LLIBS', 'Platform libs', ''),
+ ('PLATFORM_LINKFLAGS', 'Platform linkflags', ''),
+
+ (BoolVariable('BF_PROFILE', 'Add profiling information if true', False)),
+ ('BF_PROFILE_CFLAGS', 'C only profiling flags', ''),
+ ('BF_PROFILE_CCFLAGS', 'C and C++ profiling flags', ''),
+ ('BF_PROFILE_CXXFLAGS', 'C++ only profiling flags', ''),
+
+ (BoolVariable('BF_DEBUG', 'Add debug flags if true', False)),
+ ('BF_DEBUG_CFLAGS', 'C only debug flags', ''),
+ ('BF_DEBUG_CCFLAGS', 'C and C++ debug flags', ''),
+ ('BF_DEBUG_CXXFLAGS', 'C++ only debug flags', ''),
+
+ (BoolVariable('BF_BSC', 'Create .bsc files (msvc only)', True)),
+
+ ('BF_BUILDDIR', 'Build dir', ''),
+ ('BF_INSTALLDIR', 'Installation dir', ''),
+ ('BF_DOCDIR', 'Dir where BPy documentation will be created', ''),
+
+ ('CC', 'C compiler to use', ''),
+ ('CXX', 'C++ compiler to use', ''),
+
+ (BoolVariable('BF_BUILDINFO', 'Buildtime in splash if true', True)),
+
+ (BoolVariable('BF_TWEAK_MODE', 'Enable tweak mode if true', False)),
+ (BoolVariable('BF_SPLIT_SRC', 'Split src lib into several chunks if true', False)),
+ (BoolVariable('WITHOUT_BF_INSTALL', 'dont install if true', False)),
+ (BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),
+ (BoolVariable('BF_QUIET', 'Enable silent output if true', True)),
+ (BoolVariable('WITH_BF_BINRELOC', 'Enable relocatable binary (linux only)', False)),
+
+ ('BF_X264_CONFIG', 'configuration flags for x264', ''),
+ ('BF_XVIDCORE_CONFIG', 'configuration flags for xvidcore', ''),
+ (BoolVariable('WITH_BF_DOCS', 'Generate API documentation', False)),
+
+ ('BF_CONFIG', 'SCons python config file used to set default options', 'user_config.py'),
+ ('BF_NUMJOBS', 'Number of build processes to spawn', '1')
+
+ ) # end of opts.AddOptions()
+
+ return localopts
def NSIS_print(target, source, env):
- return "Creating NSIS installer for Blender 3D"
+ return "Creating NSIS installer for Blender 3D"
def NSIS_Installer(target=None, source=None, env=None):
- if env['OURPLATFORM'] != 'win32-vc' and env['OURPLATFORM'] != 'win32-mingw':
- print "NSIS installer is only available on Windows."
- Exit()
-
- start_dir = os.getcwd()
- rel_dir = start_dir + "\\release\\windows\\installer\\"
- install_base_dir = start_dir + "\\"
-
- if not os.path.exists(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include'):
- os.mkdir(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
-
- for f in glob.glob('source/blender/blenpluginapi/*.h'):
- shutil.copy(f,install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
-
- shutil.copy('source/blender/blenpluginapi/plugin.def',install_base_dir+env['BF_INSTALLDIR']+'/plugins/include/')
-
- os.chdir("release")
- v = open("VERSION")
- version = v.read()[:-1]
- shortver = version.split('.')[0] + version.split('.')[1]
- v.close()
-
- #### change to suit install dir ####
- inst_dir = install_base_dir + env['BF_INSTALLDIR']
-
- os.chdir("windows/installer")
-
- ns = open("00.sconsblender.nsi","r")
-
- ns_cnt = str(ns.read())
- ns.close()
-
- # do root
- rootlist = []
- rootdir = os.listdir(inst_dir+"\\")
- for rootitem in rootdir:
- if os.path.isdir(inst_dir+"\\"+ rootitem) == 0:
- rootlist.append("File \"" + os.path.normpath(inst_dir) + "\\" + rootitem+"\"")
- rootstring = string.join(rootlist, "\n ")
- rootstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[ROOTDIRCONTS]", rootstring)
-
- # do delete items
- delrootlist = []
- for rootitem in rootdir:
- if os.path.isdir(inst_dir + rootitem) == 0:
- delrootlist.append("Delete $INSTDIR\\" + rootitem)
- delrootstring = string.join(delrootlist, "\n ")
- delrootstring += "\n"
- ns_cnt = string.replace(ns_cnt, "[DELROOTDIRCONTS]", delrootstring)
-
- # do scripts
- scriptlist = []
- scriptpath = "%s%s" % (inst_dir, "\\.blender\\scripts")
- scriptdir = os.listdir(scriptpath)
- for scriptitem in scriptdir:
- scriptfile = "%s\\%s" % (scriptpath, scriptitem)
- if os.path.isdir(scriptfile) == 0:
- scriptfile = os.path.normpath(scriptfile)
- scriptlist.append("File \"%s\"" % scriptfile)
- scriptstring = string.join(scriptlist, "\n ")
- scriptstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[SCRIPTCONTS]", scriptstring)
-
- # do scripts\bpymodules
- bpymodlist = []
- bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules")
- bpymoddir = os.listdir(bpymodpath)
-
- for bpymoditem in bpymoddir:
- bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
- if os.path.isdir(bpymodfile) == 0:
- bpymodfile = os.path.normpath(bpymodfile)
- bpymodlist.append("File \"%s\"" % bpymodfile)
- bpymodstring = string.join(bpymodlist, "\n ")
- bpymodstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCONTS]", bpymodstring)
-
- # do scripts\bpymodules\colladaimex
- colladalist = []
- bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules\\ColladaImEx")
- bpymoddir = os.listdir(bpymodpath)
-
- for bpymoditem in bpymoddir:
- bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
- if os.path.isdir(bpymodfile) == 0:
- bpymodfile=os.path.normpath(bpymodfile)
- colladalist.append("File \"%s\"" % bpymodfile)
- bpymodstring = string.join(colladalist, "\n ")
- bpymodstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCOLLADACONT]", bpymodstring)
-
- # do scripts\bpydata
- bpydatalist = []
- bpydatapath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata")
- bpydatadir = os.listdir(bpydatapath)
- for bpydataitem in bpydatadir:
- bpydatafile = "%s\\%s" % (bpydatapath, bpydataitem)
- if os.path.isdir(bpydatafile) == 0:
- bpydatalist.append("File \"%s\"" % bpydatafile)
- bpydatastring = string.join(bpydatalist, "\n ")
- bpydatastring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACONTS]", bpydatastring)
-
- # do plugins\include
- plugincludelist = []
- plugincludepath = "%s%s" % (inst_dir, "\\plugins\\include")
- plugincludedir = os.listdir(plugincludepath)
- for plugincludeitem in plugincludedir:
- plugincludefile = "%s\\%s" % (plugincludepath, plugincludeitem)
- if os.path.isdir(plugincludefile) == 0:
- if plugincludefile.find('.h') or plugincludefile.find('.DEF'):
- plugincludefile = os.path.normpath(plugincludefile)
- plugincludelist.append("File \"%s\"" % plugincludefile)
- plugincludestring = string.join(plugincludelist, "\n ")
- plugincludestring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[PLUGINCONTS]", plugincludestring)
-
- # do scripts\bpydata\config
- cfglist = []
- cfgpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata\\config")
- cfgdir = os.listdir(cfgpath)
- for cfgitem in cfgdir:
- cfgfile = "%s\\%s" % (cfgpath, cfgitem)
- if os.path.isdir(cfgfile) == 0:
- cfglist.append("File \"%s\"" % cfgfile)
- cfgstring = string.join(cfglist, "\n ")
- cfgstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACFGCONTS]", cfgstring)
-
- # do dotblender
- dotblendlist = []
- dotblenddir = os.listdir(inst_dir+"\\.blender")
- for dotblenditem in dotblenddir:
- if os.path.isdir(inst_dir + "\\.blender\\" + dotblenditem) == 0:
- dotblendlist.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\" +
- dotblenditem+"\"")
- dotblendstring = string.join(dotblendlist, "\n ")
- dotblendstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[DOTBLENDERCONTS]", dotblendstring)
-
- # do language files
- langlist = []
- langfiles = []
- langdir = os.listdir(inst_dir + "\\.blender\\locale")
- for langitem in langdir:
- if os.path.isdir(inst_dir + "\\.blender\\locale\\" + langitem) == 1:
- langfiles.append("SetOutPath $BLENDERHOME\\.blender\\locale\\" + langitem + "\\LC_MESSAGES")
- langfiles.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\locale\\"
- + langitem + "\\LC_MESSAGES\\blender.mo\"")
- langstring = string.join(langfiles, "\n ")
- langstring += "\n\n"
- ns_cnt = string.replace(ns_cnt, "[LANGUAGECONTS]", langstring)
-
- # var replacements
- ns_cnt = string.replace(ns_cnt, "DISTDIR", os.path.normpath(inst_dir+"\\"))
- ns_cnt = string.replace(ns_cnt, "SHORTVER", shortver)
- ns_cnt = string.replace(ns_cnt, "VERSION", version)
- ns_cnt = string.replace(ns_cnt, "RELDIR", os.path.normpath(rel_dir))
-
- tmpnsi = os.path.normpath(install_base_dir+os.sep+env['BF_BUILDDIR']+os.sep+"00.blender_tmp.nsi")
- new_nsis = open(tmpnsi, 'w')
- new_nsis.write(ns_cnt)
- new_nsis.close()
-
- os.chdir(start_dir)
-
- cmdline = "makensis " + "\""+tmpnsi+"\""
-
- startupinfo = subprocess.STARTUPINFO()
- startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
- proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, startupinfo=startupinfo, shell = True)
- data, err = proc.communicate()
- rv = proc.wait()
-
- if rv != 0:
- print
- print data.strip().split("\n")[-1]
- return rv
+ if env['OURPLATFORM'] != 'win32-vc' and env['OURPLATFORM'] != 'win32-mingw':
+ print "NSIS installer is only available on Windows."
+ Exit()
+
+ start_dir = os.getcwd()
+ rel_dir = start_dir + "\\release\\windows\\installer\\"
+ install_base_dir = start_dir + "\\"
+
+ if not os.path.exists(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include'):
+ os.mkdir(install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
+
+ for f in glob.glob('source/blender/blenpluginapi/*.h'):
+ shutil.copy(f,install_base_dir+env['BF_INSTALLDIR']+'/plugins/include')
+
+ shutil.copy('source/blender/blenpluginapi/plugin.def',install_base_dir+env['BF_INSTALLDIR']+'/plugins/include/')
+
+ os.chdir("release")
+ v = open("VERSION")
+ version = v.read()[:-1]
+ shortver = version.split('.')[0] + version.split('.')[1]
+ v.close()
+
+ #### change to suit install dir ####
+ inst_dir = install_base_dir + env['BF_INSTALLDIR']
+
+ os.chdir("windows/installer")
+
+ ns = open("00.sconsblender.nsi","r")
+
+ ns_cnt = str(ns.read())
+ ns.close()
+
+ # do root
+ rootlist = []
+ rootdir = os.listdir(inst_dir+"\\")
+ for rootitem in rootdir:
+ if os.path.isdir(inst_dir+"\\"+ rootitem) == 0:
+ rootlist.append("File \"" + os.path.normpath(inst_dir) + "\\" + rootitem+"\"")
+ rootstring = string.join(rootlist, "\n ")
+ rootstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[ROOTDIRCONTS]", rootstring)
+
+ # do delete items
+ delrootlist = []
+ for rootitem in rootdir:
+ if os.path.isdir(inst_dir + rootitem) == 0:
+ delrootlist.append("Delete $INSTDIR\\" + rootitem)
+ delrootstring = string.join(delrootlist, "\n ")
+ delrootstring += "\n"
+ ns_cnt = string.replace(ns_cnt, "[DELROOTDIRCONTS]", delrootstring)
+
+ # do scripts
+ scriptlist = []
+ scriptpath = "%s%s" % (inst_dir, "\\.blender\\scripts")
+ scriptdir = os.listdir(scriptpath)
+ for scriptitem in scriptdir:
+ scriptfile = "%s\\%s" % (scriptpath, scriptitem)
+ if os.path.isdir(scriptfile) == 0:
+ scriptfile = os.path.normpath(scriptfile)
+ scriptlist.append("File \"%s\"" % scriptfile)
+ scriptstring = string.join(scriptlist, "\n ")
+ scriptstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[SCRIPTCONTS]", scriptstring)
+
+ # do scripts\bpymodules
+ bpymodlist = []
+ bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules")
+ bpymoddir = os.listdir(bpymodpath)
+
+ for bpymoditem in bpymoddir:
+ bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
+ if os.path.isdir(bpymodfile) == 0:
+ bpymodfile = os.path.normpath(bpymodfile)
+ bpymodlist.append("File \"%s\"" % bpymodfile)
+ bpymodstring = string.join(bpymodlist, "\n ")
+ bpymodstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCONTS]", bpymodstring)
+
+ # do scripts\bpymodules\colladaimex
+ colladalist = []
+ bpymodpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpymodules\\ColladaImEx")
+ bpymoddir = os.listdir(bpymodpath)
+
+ for bpymoditem in bpymoddir:
+ bpymodfile = "%s\\%s" % (bpymodpath, bpymoditem)
+ if os.path.isdir(bpymodfile) == 0:
+ bpymodfile=os.path.normpath(bpymodfile)
+ colladalist.append("File \"%s\"" % bpymodfile)
+ bpymodstring = string.join(colladalist, "\n ")
+ bpymodstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[SCRIPTMODCOLLADACONT]", bpymodstring)
+
+ # do scripts\bpydata
+ bpydatalist = []
+ bpydatapath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata")
+ bpydatadir = os.listdir(bpydatapath)
+ for bpydataitem in bpydatadir:
+ bpydatafile = "%s\\%s" % (bpydatapath, bpydataitem)
+ if os.path.isdir(bpydatafile) == 0:
+ bpydatalist.append("File \"%s\"" % bpydatafile)
+ bpydatastring = string.join(bpydatalist, "\n ")
+ bpydatastring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACONTS]", bpydatastring)
+
+ # do plugins\include
+ plugincludelist = []
+ plugincludepath = "%s%s" % (inst_dir, "\\plugins\\include")
+ plugincludedir = os.listdir(plugincludepath)
+ for plugincludeitem in plugincludedir:
+ plugincludefile = "%s\\%s" % (plugincludepath, plugincludeitem)
+ if os.path.isdir(plugincludefile) == 0:
+ if plugincludefile.find('.h') or plugincludefile.find('.DEF'):
+ plugincludefile = os.path.normpath(plugincludefile)
+ plugincludelist.append("File \"%s\"" % plugincludefile)
+ plugincludestring = string.join(plugincludelist, "\n ")
+ plugincludestring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[PLUGINCONTS]", plugincludestring)
+
+ # do scripts\bpydata\config
+ cfglist = []
+ cfgpath = "%s%s" % (inst_dir, "\\.blender\\scripts\\bpydata\\config")
+ cfgdir = os.listdir(cfgpath)
+ for cfgitem in cfgdir:
+ cfgfile = "%s\\%s" % (cfgpath, cfgitem)
+ if os.path.isdir(cfgfile) == 0:
+ cfglist.append("File \"%s\"" % cfgfile)
+ cfgstring = string.join(cfglist, "\n ")
+ cfgstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[SCRIPTDATACFGCONTS]", cfgstring)
+
+ # do dotblender
+ dotblendlist = []
+ dotblenddir = os.listdir(inst_dir+"\\.blender")
+ for dotblenditem in dotblenddir:
+ if os.path.isdir(inst_dir + "\\.blender\\" + dotblenditem) == 0:
+ dotblendlist.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\" +
+ dotblenditem+"\"")
+ dotblendstring = string.join(dotblendlist, "\n ")
+ dotblendstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[DOTBLENDERCONTS]", dotblendstring)
+
+ # do language files
+ langlist = []
+ langfiles = []
+ langdir = os.listdir(inst_dir + "\\.blender\\locale")
+ for langitem in langdir:
+ if os.path.isdir(inst_dir + "\\.blender\\locale\\" + langitem) == 1:
+ langfiles.append("SetOutPath $BLENDERHOME\\.blender\\locale\\" + langitem + "\\LC_MESSAGES")
+ langfiles.append("File \"" + os.path.normpath(inst_dir) + "\\.blender\\locale\\"
+ + langitem + "\\LC_MESSAGES\\blender.mo\"")
+ langstring = string.join(langfiles, "\n ")
+ langstring += "\n\n"
+ ns_cnt = string.replace(ns_cnt, "[LANGUAGECONTS]", langstring)
+
+ # var replacements
+ ns_cnt = string.replace(ns_cnt, "DISTDIR", os.path.normpath(inst_dir+"\\"))
+ ns_cnt = string.replace(ns_cnt, "SHORTVER", shortver)
+ ns_cnt = string.replace(ns_cnt, "VERSION", version)
+ ns_cnt = string.replace(ns_cnt, "RELDIR", os.path.normpath(rel_dir))
+
+ tmpnsi = os.path.normpath(install_base_dir+os.sep+env['BF_BUILDDIR']+os.sep+"00.blender_tmp.nsi")
+ new_nsis = open(tmpnsi, 'w')
+ new_nsis.write(ns_cnt)
+ new_nsis.close()
+
+ os.chdir(start_dir)
+
+ cmdline = "makensis " + "\""+tmpnsi+"\""
+
+ startupinfo = subprocess.STARTUPINFO()
+ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
+ proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE, startupinfo=startupinfo, shell = True)
+ data, err = proc.communicate()
+ rv = proc.wait()
+
+ if rv != 0:
+ print
+ print data.strip().split("\n")[-1]
+ return rv