#!/usr/bin/python import sys import os Import('env') defs = '' cflags = [] if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): defs += ' WIN32 NDEBUG _WINDOWS' #cflags += ['/MT', '/W3', '/GX', '/O2', '/Op'] cflags += ['/MT', '/W3', '/GX', '/Og', '/Ot', '/Ob1', '/Op', '/G6', '/O3', '/EHcs'] elif env['OURPLATFORM'] in ('win32-mingw', 'linuxcross', 'win64-mingw'): defs += ' NDEBUG' cflags += ['-O2'] elif env['OURPLATFORM'] in ('linux', 'freebsd4', 'freebsd5'): defs += ' NDEBUG' cflags += ['-O2'] elif sys.platform=='darwin': defs += ' NDEBUG' cflags += ['-O2','-pipe', '-fPIC', '-funsigned-char', '-ffast-math'] bullet2_src = env.Glob("LinearMath/*.cpp") bullet2_src += env.Glob("BulletCollision/BroadphaseCollision/*.cpp") bullet2_src += env.Glob("BulletCollision/CollisionDispatch/*.cpp") bullet2_src += env.Glob("BulletCollision/Gimpact/*.cpp") bullet2_src += env.Glob("BulletCollision/CollisionShapes/*.cpp") bullet2_src += env.Glob("BulletCollision/NarrowPhaseCollision/*.cpp") bullet2_src += env.Glob("BulletDynamics/Vehicle/*.cpp") bullet2_src += env.Glob("BulletDynamics/ConstraintSolver/*.cpp") bullet2_src += env.Glob("BulletDynamics/Dynamics/*.cpp") bullet2_src += env.Glob("BulletDynamics/Character/*.cpp") bullet2_src += env.Glob("BulletDynamics/Featherstone/*.cpp") bullet2_src += env.Glob("BulletDynamics/MLCPSolvers/*.cpp") bullet2_src += env.Glob("BulletSoftBody/*.cpp") incs = '. BulletCollision BulletDynamics LinearMath BulletSoftBody' if sys.platform=='darwin' and env['CC'][:-2].endswith('4.6'): # workaround for an gcc-4.6 compiler bug env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags, cc_compilerchange='/usr/bin/gcc', cxx_compilerchange='/usr/bin/g++' ) else: env.BlenderLib ( libname = 'extern_bullet2', sources=bullet2_src, includes=Split(incs), defines=Split(defs), libtype=['extern','player'], priority=[20,137], compileflags=cflags )