forked from bartvdbraak/blender
e7abdd7d56
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/Unix_FHS for scons WITH_BF_FHS enabled an alternative layout eg. scons WITH_BF_FHS=1 BF_INSTALLDIR="/usr/local" for CMake just run "make install" after make (CMAKE_INSTALL_PREFIX is used for the base path) Currently only scripts use both the system and user path correctly, other areas of blender have their own path code inline with lots of ifdefs, needs to be carefully updated.
277 lines
8.7 KiB
Python
277 lines
8.7 KiB
Python
import commands
|
|
|
|
# IMPORTANT NOTE : OFFICIAL BUILDS SHOULD BE DONE WITH SDKs
|
|
USE_SDK=True
|
|
|
|
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}'
|
|
|
|
BF_PYTHON_VERSION = '3.1'
|
|
|
|
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
|
|
FFMPEG_PRECOMPILED = False
|
|
if FFMPEG_PRECOMPILED:
|
|
# use precompiled ffmpeg in /lib
|
|
BF_FFMPEG = LIBDIR + '/ffmpeg'
|
|
BF_FFMPEG_INC = "#extern/ffmpeg"
|
|
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
|
|
BF_FFMPEG_LIB = 'avcodec avdevice avformat avutil mp3lame swscale x264 xvidcore'
|
|
else:
|
|
# use ffmpeg in extern
|
|
BF_FFMPEG = "#extern/ffmpeg"
|
|
BF_FFMPEG_INC = '${BF_FFMPEG}'
|
|
if USE_SDK==True:
|
|
BF_FFMPEG_EXTRA = '-isysroot '+MACOSX_SDK+' -mmacosx-version-min='+MAC_MIN_VERS
|
|
BF_XVIDCORE_CONFIG = '--disable-assembly' # currently causes errors, even with yasm installed
|
|
BF_X264_CONFIG = '--disable-pthread'
|
|
|
|
if BF_PYTHON_VERSION=='3.1':
|
|
# python 3.1 uses precompiled libraries in bf svn /lib by default
|
|
|
|
BF_PYTHON = LIBDIR + '/python'
|
|
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_LIBPATH = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}'
|
|
# BF_PYTHON_LINKFLAGS = ['-u', '_PyMac_Error', '-framework', 'System']
|
|
else:
|
|
# python 2.5 etc. uses built-in framework
|
|
|
|
# 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
|
|
|
|
BF_PYTHON = '/System/Library/Frameworks/Python.framework/Versions/'
|
|
|
|
BF_PYTHON_INC = '${BF_PYTHON}${BF_PYTHON_VERSION}/include/python${BF_PYTHON_VERSION}'
|
|
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','_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'
|
|
|
|
#different lib must be used following version of gcc
|
|
# for gcc 3.3
|
|
#BF_OPENAL = LIBDIR + '/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'
|
|
|
|
BF_LIBSAMPLERATE = LIBDIR + '/samplerate'
|
|
BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
|
|
BF_LIBSAMPLERATE_LIB = 'samplerate'
|
|
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
|
|
|
# TODO - set proper paths here (add precompiled to lib/ ? )
|
|
WITH_BF_JACK = False
|
|
BF_JACK = '/usr'
|
|
BF_JACK_INC = '${BF_JACK}/include/jack'
|
|
BF_JACK_LIB = 'jack'
|
|
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
|
|
|
WITH_BF_SNDFILE = False
|
|
BF_SNDFILE = LIBDIR + '/sndfile'
|
|
BF_SNDFILE_INC = '${BF_SNDFILE}/include'
|
|
BF_SNDFILE_LIB = 'sndfile'
|
|
BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
|
|
|
|
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_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_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
|
|
BF_PNG = LIBDIR + '/png'
|
|
BF_PNG_INC = '${BF_PNG}/include'
|
|
BF_PNG_LIB = 'png'
|
|
BF_PNG_LIBPATH = '${BF_PNG}/lib'
|
|
|
|
BF_TIFF = LIBDIR + '/tiff'
|
|
BF_TIFF_INC = '${BF_TIFF}/include'
|
|
|
|
WITH_BF_ZLIB = True
|
|
BF_ZLIB = '/usr'
|
|
BF_ZLIB_INC = '${BF_ZLIB}/include'
|
|
BF_ZLIB_LIB = 'z'
|
|
|
|
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_GAMEENGINE=True
|
|
WITH_BF_PLAYER = False
|
|
|
|
WITH_BF_BULLET = True
|
|
BF_BULLET = '#extern/bullet2/src'
|
|
BF_BULLET_INC = '${BF_BULLET}'
|
|
BF_BULLET_LIB = 'extern_bullet'
|
|
|
|
WITH_BF_FFTW3 = False
|
|
BF_FFTW3 = LIBDIR + '/fftw3'
|
|
BF_FFTW3_INC = '${BF_FFTW3}/include'
|
|
BF_FFTW3_LIB = 'libfftw3'
|
|
BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
|
|
|
|
#WITH_BF_NSPR = True
|
|
#BF_NSPR = $(LIBDIR)/nspr
|
|
#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
|
|
#BF_NSPR_LIB =
|
|
|
|
# Uncomment the following line to use Mozilla inplace of netscape
|
|
#CPPFLAGS += -DMOZ_NOT_NET
|
|
# Location of MOZILLA/Netscape header files...
|
|
#BF_MOZILLA = $(LIBDIR)/mozilla
|
|
#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
|
|
#BF_MOZILLA_LIB =
|
|
# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
|
|
# if this is not set.
|
|
#
|
|
# Be paranoid regarding library creation (do not update archives)
|
|
#BF_PARANOID = True
|
|
|
|
# enable freetype2 support for text objects
|
|
BF_FREETYPE = LIBDIR + '/freetype'
|
|
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_ICONV = True
|
|
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
|
|
BF_OPENGL_LIB = 'GL GLU'
|
|
BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
|
|
BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL']
|
|
|
|
CFLAGS = ['-pipe','-fPIC','-funsigned-char']
|
|
|
|
CPPFLAGS = ['-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']
|
|
|
|
#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.append('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
|
|
##ARFLAGSQUIET = ru
|
|
##
|
|
CC = 'gcc'
|
|
CXX = 'g++'
|
|
C_WARN = ['-Wdeclaration-after-statement']
|
|
|
|
CC_WARN = ['-Wall', '-Wno-long-double']
|
|
|
|
##FIX_STUBS_WARNINGS = -Wno-unused
|
|
|
|
##LOPTS = --dynamic
|
|
##DYNLDFLAGS = -shared $(LDFLAGS)
|
|
|
|
BF_PROFILE_CCFLAGS = ['-pg', '-g ']
|
|
BF_PROFILE_LINKFLAGS = ['-pg']
|
|
BF_PROFILE = False
|
|
|
|
BF_DEBUG = False
|
|
BF_DEBUG_CCFLAGS = ['-g']
|
|
|
|
BF_BUILDDIR='../build/darwin'
|
|
BF_INSTALLDIR='../install/darwin'
|