forked from bartvdbraak/blender
Brecht Van Lommel
741f17f05b
This also updates the configurations to build kernels for compute capability 5.0 cards, when using and older CUDA toolkit version this will be skipped. Also includes tweaks to improve performance with this version: * Increase max registers on sm_30, sm_35 and sm_50 * No longer use texture storage on sm_30
268 lines
8.7 KiB
Python
268 lines
8.7 KiB
Python
from Modules.FindPython import FindPython
|
|
|
|
py = FindPython()
|
|
|
|
BF_PYTHON_ABI_FLAGS = py['ABI_FLAGS']
|
|
BF_PYTHON = py['PYTHON']
|
|
BF_PYTHON_LIBPATH = py['LIBPATH']
|
|
BF_PYTHON_LIBPATH_ARCH = py['LIBPATH_ARCH']
|
|
BF_PYTHON_CONFIG = py['CONFIG']
|
|
BF_PYTHON_VERSION = py['VERSION']
|
|
WITH_BF_STATICPYTHON = False
|
|
BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS} ' + BF_PYTHON_CONFIG
|
|
BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
|
|
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS}' # 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_LIBPATH_ARCH}/libpython${BF_PYTHON_VERSION}${BF_PYTHON_ABI_FLAGS}.a'
|
|
|
|
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'
|
|
|
|
BF_CXX = '/usr'
|
|
WITH_BF_STATICCXX = False
|
|
BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
|
|
|
|
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
|
|
WITH_BF_STATICSNDFILE = False
|
|
BF_SNDFILE = '/usr'
|
|
BF_SNDFILE_INC = '${BF_SNDFILE}/include/sndfile'
|
|
BF_SNDFILE_LIB = 'sndfile'
|
|
BF_SNDFILE_LIBPATH = '${BF_SNDFILE}/lib'
|
|
BF_SNDFILE_LIB_STATIC = '${BF_SNDFILE}/lib/libsndfile.a ${BF_OGG}/lib/libvorbis.a ${BF_OGG}/lib/libFLAC.a ${BF_OGG}/lib/libvorbisenc.a ${BF_OGG}/lib/libogg.a'
|
|
|
|
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_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_JPEG = True
|
|
BF_JPEG = '/usr'
|
|
BF_JPEG_INC = '${BF_JPEG}/include'
|
|
BF_JPEG_LIB = 'jpeg'
|
|
|
|
WITH_BF_PNG = True
|
|
BF_PNG = '/usr'
|
|
BF_PNG_INC = '${BF_PNG}/include'
|
|
BF_PNG_LIB = 'png'
|
|
|
|
WITH_BF_TIFF = True
|
|
BF_TIFF = '/usr'
|
|
BF_TIFF_INC = '${BF_TIFF}/include'
|
|
BF_TIFF_LIB = 'tiff'
|
|
|
|
WITH_BF_ZLIB = True
|
|
BF_ZLIB = '/usr'
|
|
BF_ZLIB_INC = '${BF_ZLIB}/include'
|
|
BF_ZLIB_LIB = 'z'
|
|
|
|
WITH_BF_INTERNATIONAL = True
|
|
|
|
WITH_BF_GAMEENGINE = True
|
|
WITH_BF_PLAYER = True
|
|
WITH_BF_OCEANSIM = True
|
|
|
|
WITH_BF_BULLET = True
|
|
BF_BULLET = '#extern/bullet2/src'
|
|
BF_BULLET_INC = '${BF_BULLET}'
|
|
BF_BULLET_LIB = 'extern_bullet'
|
|
|
|
WITH_BF_ELTOPO = False
|
|
BF_LAPACK = '/usr'
|
|
BF_LAPACK_LIB = 'lapack3gf blas clapack'
|
|
BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
|
|
|
|
BF_FREETYPE = '/usr'
|
|
BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
|
|
BF_FREETYPE_LIB = 'freetype'
|
|
#BF_FREETYPE_LIB_STATIC = '${BF_FREETYPE}/lib/libfreetype.a'
|
|
|
|
WITH_BF_ICONV = False
|
|
BF_ICONV = "/usr"
|
|
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
|
|
BF_FFMPEG = '/usr'
|
|
BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice'
|
|
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
|
|
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
|
|
#WITH_BF_STATICFFMPEG = True
|
|
#BF_FFMPEG_LIB_STATIC = '${BF_FFMPEG_LIBPATH}/libavformat.a ${BF_FFMPEG_LIBPATH/libavcodec.a ${BF_FFMPEG_LIBPATH}/libswscale.a ${BF_FFMPEG_LIBPATH}/libavutil.a ${BF_FFMPEG_LIBPATH}/libavdevice.a'
|
|
|
|
# enable ogg, vorbis and theora in ffmpeg
|
|
WITH_BF_OGG = False
|
|
BF_OGG = '/usr'
|
|
BF_OGG_INC = '${BF_OGG}/include'
|
|
BF_OGG_LIB = 'ogg vorbis vorbisenc theoraenc theoradec'
|
|
|
|
WITH_BF_OPENJPEG = True
|
|
BF_OPENJPEG = '#extern/libopenjpeg'
|
|
BF_OPENJPEG_LIB = ''
|
|
BF_OPENJPEG_INC = '${BF_OPENJPEG}'
|
|
BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
|
|
|
|
WITH_BF_FFTW3 = False
|
|
WITH_BF_STATICFFTW3 = False
|
|
BF_FFTW3 = '/usr'
|
|
BF_FFTW3_INC = '${BF_FFTW3}/include'
|
|
BF_FFTW3_LIB = 'fftw3'
|
|
BF_FFTW3_LIBPATH = '${BF_FFTW3}/lib'
|
|
BF_FFTW3_LIB_STATIC = '${BF_FFTW3_LIBPATH}/libfftw3.a'
|
|
|
|
WITH_BF_REDCODE = False
|
|
BF_REDCODE = '#extern/libredcode'
|
|
BF_REDCODE_LIB = ''
|
|
# BF_REDCODE_INC = '${BF_REDCODE}/include'
|
|
BF_REDCODE_INC = '${BF_REDCODE}/../' #C files request "libredcode/format.h" which is in "#extern/libredcode/format.h", stupid but compiles for now.
|
|
BF_REDCODE_LIBPATH='${BF_REDCODE}/lib'
|
|
|
|
# Mesa Libs should go here if your using them as well....
|
|
WITH_BF_STATICOPENGL = False
|
|
BF_OPENGL = '/usr'
|
|
BF_OPENGL_INC = '${BF_OPENGL}/include'
|
|
BF_OPENGL_LIB = 'GL GLU X11 Xi Xxf86vm'
|
|
BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
|
|
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'
|
|
|
|
WITH_BF_COLLADA = False
|
|
BF_COLLADA = '#source/blender/collada'
|
|
BF_COLLADA_INC = '${BF_COLLADA}'
|
|
BF_COLLADA_LIB = 'bf_collada'
|
|
BF_OPENCOLLADA = '/usr'
|
|
BF_OPENCOLLADA_INC = '${BF_OPENCOLLADA}/include/opencollada'
|
|
BF_OPENCOLLADA_LIB = 'OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver pcre buffer ftoa'
|
|
BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib/opencollada'
|
|
BF_PCRE = ''
|
|
BF_PCRE_LIB = 'pcre'
|
|
BF_PCRE_LIBPATH = '/usr/lib'
|
|
BF_EXPAT = '/usr'
|
|
BF_EXPAT_LIB = 'expat'
|
|
BF_EXPAT_LIBPATH = '/usr/lib'
|
|
|
|
WITH_BF_JEMALLOC = False
|
|
WITH_BF_STATICJEMALLOC = False
|
|
BF_JEMALLOC = '/usr'
|
|
BF_JEMALLOC_INC = '${BF_JEMALLOC}/include'
|
|
BF_JEMALLOC_LIBPATH = '${BF_JEMALLOC}/lib'
|
|
BF_JEMALLOC_LIB = 'jemalloc'
|
|
BF_JEMALLOC_LIB_STATIC = '${BF_JEMALLOC_LIBPATH}/libjemalloc.a'
|
|
|
|
WITH_BF_OIIO = False
|
|
WITH_BF_STATICOIIO = False
|
|
BF_OIIO = '/usr'
|
|
BF_OIIO_INC = '${BF_OIIO}/include'
|
|
BF_OIIO_LIB = 'OpenImageIO'
|
|
BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/libOpenImageIO.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_JPEG}/lib/libjpeg.a'
|
|
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
|
|
|
|
WITH_BF_OCIO = False
|
|
WITH_BF_STATICOCIO = False
|
|
BF_OCIO = '/usr'
|
|
BF_OCIO_INC = '${BF_OCIO}/include'
|
|
BF_OCIO_LIB = 'OpenColorIO yaml-cpp tinyxml'
|
|
BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
|
|
BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
|
|
|
|
WITH_BF_BOOST = True
|
|
WITH_BF_STATICBOOST = False
|
|
BF_BOOST = '/usr'
|
|
BF_BOOST_INC = '${BF_BOOST}/include'
|
|
BF_BOOST_LIB = 'boost_filesystem boost_regex boost_system boost_thread boost_date_time'
|
|
BF_BOOST_LIB_STATIC = '${BF_BOOST_LIBPATH}/libboost_filesystem.a ${BF_BOOST_LIBPATH}/libboost_date_time.a ' + \
|
|
'${BF_BOOST_LIBPATH}/libboost_regex.a ${BF_BOOST_LIBPATH}/libboost_locale.a ${BF_BOOST_LIBPATH}/libboost_system.a' + \
|
|
'${BF_BOOST_LIBPATH}/libboost_thread.a'
|
|
BF_BOOST_LIB_INTERNATIONAL = 'boost_locale'
|
|
BF_BOOST_LIBPATH = '${BF_BOOST}/lib'
|
|
|
|
WITH_BF_CYCLES = WITH_BF_OIIO and WITH_BF_BOOST
|
|
|
|
WITH_BF_CYCLES_CUDA_BINARIES = False
|
|
BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
|
|
BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21', 'sm_30', 'sm_35', 'sm_50']
|
|
|
|
WITH_BF_OPENMP = True
|
|
|
|
#Ray trace optimization
|
|
WITH_BF_RAYOPTIMIZATION = True
|
|
BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-pthread']
|
|
|
|
#SpaceNavigator and friends
|
|
WITH_BF_3DMOUSE = True
|
|
WITH_BF_STATIC3DMOUSE = False
|
|
BF_3DMOUSE = '/usr'
|
|
BF_3DMOUSE_INC = '${BF_3DMOUSE}/include'
|
|
BF_3DMOUSE_LIBPATH = '${BF_3DMOUSE}/lib'
|
|
BF_3DMOUSE_LIB = 'spnav'
|
|
BF_3DMOUSE_LIB_STATIC = '${BF_3DMOUSE_LIBPATH}/libspnav.a'
|
|
|
|
#Freestyle
|
|
WITH_BF_FREESTYLE = True
|
|
|
|
##
|
|
CC = 'gcc'
|
|
CXX = 'g++'
|
|
|
|
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing','-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64','-D_LARGEFILE64_SOURCE']
|
|
CXXFLAGS = []
|
|
|
|
CPPFLAGS = []
|
|
# g++ 4.6, only needed for bullet
|
|
CXXFLAGS += ['-fpermissive']
|
|
if WITH_BF_FFMPEG:
|
|
# libavutil needs UINT64_C()
|
|
CXXFLAGS += ['-D__STDC_CONSTANT_MACROS', ]
|
|
REL_CFLAGS = []
|
|
REL_CXXFLAGS = []
|
|
REL_CCFLAGS = ['-DNDEBUG', '-O2']
|
|
|
|
C_WARN = ['-Wno-char-subscripts', '-Wdeclaration-after-statement', '-Wunused-parameter', '-Wstrict-prototypes', '-Werror=declaration-after-statement', '-Werror=implicit-function-declaration', '-Werror=return-type']
|
|
CC_WARN = ['-Wall']
|
|
CXX_WARN = ['-Wno-invalid-offsetof', '-Wno-sign-compare']
|
|
|
|
LLIBS = ['util', 'c', 'm', 'dl', 'pthread']
|
|
|
|
BF_PROFILE = False
|
|
BF_PROFILE_CCFLAGS = ['-pg','-g']
|
|
BF_PROFILE_LINKFLAGS = ['-pg']
|
|
|
|
BF_DEBUG = False
|
|
BF_DEBUG_CCFLAGS = ['-g', '-D_DEBUG']
|
|
|
|
BF_BUILDDIR = '../build/linux'
|
|
BF_INSTALLDIR='../install/linux'
|
|
|
|
#Link against pthread
|
|
PLATFORM_LINKFLAGS = ['-pthread']
|
|
|
|
#Fix for LLVM conflict with Mesa llvmpipe
|
|
if WITH_BF_LLVM:
|
|
PLATFORM_LINKFLAGS += ['-Wl,--version-script=source/creator/blender.map']
|