Scons options for static linking to libsamplerate, sndfile and fftw3
authorSergey Sharybin <sergey.vfx@gmail.com>
Tue, 5 Oct 2010 16:43:01 +0000 (16:43 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 5 Oct 2010 16:43:01 +0000 (16:43 +0000)
build_files/scons/config/linux2-config.py
build_files/scons/tools/Blender.py
build_files/scons/tools/btools.py

index 75428937b3980a0fdc8b5826fce955d240ec98d7..a9c74d692d78f5f869346aa7f55cd682be85e642 100644 (file)
@@ -23,9 +23,11 @@ WITH_BF_STATICCXX = False
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
 BF_LIBSAMPLERATE = '/usr'
+WITH_BF_STATICLIBSAMPLERATE = False
 BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
 BF_LIBSAMPLERATE_LIB = 'samplerate'
 BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+BF_LIBSAMPLERATE_LIB_STATIC = '${BF_LIBSAMPLERATE}/lib/libsamplerate.a'
 
 WITH_BF_JACK = False
 BF_JACK = '/usr'
@@ -34,10 +36,12 @@ 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)
@@ -136,10 +140,12 @@ BF_OPENJPEG_INC = '${BF_OPENJPEG}'
 BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
 
 WITH_BF_FFTW3 = False
-BF_FFTW3 = LIBDIR + '/usr'
+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'
index c855d9ee07e4ec6e812f01658f754dcce72a3538..1f503a5ea2dba5a0641b6894182a360bdd4b511b 100644 (file)
@@ -158,6 +158,8 @@ def setup_staticlibs(lenv):
         statlibs += Split(lenv['BF_ZLIB_LIB_STATIC'])
     if lenv['WITH_BF_FFTW3']:
         libincs += Split(lenv['BF_FFTW3_LIBPATH'])
+        if lenv['WITH_BF_STATICFFTW3']:
+            statlibs += Split(lenv['BF_FFTW3_LIB_STATIC'])
     if lenv['WITH_BF_FFMPEG'] and lenv['WITH_BF_STATICFFMPEG']:
         statlibs += Split(lenv['BF_FFMPEG_LIB_STATIC'])
     if lenv['WITH_BF_INTERNATIONAL']:
@@ -178,6 +180,9 @@ def setup_staticlibs(lenv):
     if lenv['WITH_BF_PYTHON'] and lenv['WITH_BF_STATICPYTHON']:
         statlibs += Split(lenv['BF_PYTHON_LIB_STATIC'])
 
+    if lenv['WITH_BF_SNDFILE'] and lenv['WITH_BF_STATICSNDFILE']:
+        statlibs += Split(lenv['BF_SNDFILE_LIB_STATIC'])
+
     if lenv['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
         libincs += Split(lenv['BF_PTHREADS_LIBPATH'])
 
@@ -191,6 +196,9 @@ def setup_staticlibs(lenv):
         if lenv['OURPLATFORM'] == 'linuxcross':
             libincs += Split(lenv['BF_OPENMP_LIBPATH'])
 
+    if lenv['WITH_BF_STATICLIBSAMPLERATE']:
+        statlibs += Split(lenv['BF_LIBSAMPLERATE_LIB_STATIC'])
+
     # setting this last so any overriding of manually libs could be handled
     if lenv['OURPLATFORM'] not in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
         libincs.append('/usr/lib')
@@ -202,7 +210,6 @@ def setup_syslibs(lenv):
         
         lenv['BF_JPEG_LIB'],
         lenv['BF_PNG_LIB'],
-        lenv['BF_LIBSAMPLERATE_LIB']
         ]
 
     if not lenv['WITH_BF_FREETYPE_STATIC']:
@@ -236,9 +243,9 @@ def setup_syslibs(lenv):
             syslibs += Split(lenv['BF_OGG_LIB'])
     if lenv['WITH_BF_JACK']:
             syslibs += Split(lenv['BF_JACK_LIB'])
-    if lenv['WITH_BF_SNDFILE']:
+    if lenv['WITH_BF_SNDFILE'] and not lenv['WITH_BF_STATICSNDFILE']:
             syslibs += Split(lenv['BF_SNDFILE_LIB'])
-    if lenv['WITH_BF_FFTW3']:
+    if lenv['WITH_BF_FFTW3'] and not lenv['WITH_BF_STATICFFTW3']:
         syslibs += Split(lenv['BF_FFTW3_LIB'])
     if lenv['WITH_BF_SDL']:
         syslibs += Split(lenv['BF_SDL_LIB'])
@@ -253,6 +260,9 @@ def setup_syslibs(lenv):
         syslibs += Split(lenv['BF_OPENCOLLADA_LIB'])
         syslibs.append(lenv['BF_EXPAT_LIB'])
 
+    if not lenv['WITH_BF_STATICLIBSAMPLERATE']:
+        syslibs += Split(lenv['BF_LIBSAMPLERATE_LIB'])
+
 
     syslibs += lenv['LLIBS']
 
index ce8ddcf0858a925d060227af769b2e18cba7fab8..37d9048d70d44a1fedb66de2fd2ff58589f82439 100644 (file)
@@ -39,9 +39,9 @@ def validate_arguments(args, bc):
             'WITH_BF_PYTHON', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC', 'BF_PYTHON_DLL',
             '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_LIBSAMPLERATE', 'BF_LIBSAMPLERATE_INC', 'BF_LIBSAMPLERATE_LIB', 'BF_LIBSAMPLERATE_LIBPATH',
+            'BF_LIBSAMPLERATE', 'BF_LIBSAMPLERATE_INC', 'BF_LIBSAMPLERATE_LIB', 'BF_LIBSAMPLERATE_LIBPATH', 'WITH_BF_STATICLIBSAMPLERATE', 'BF_LIBSAMPLERATE_LIB_STATIC',
             'WITH_BF_JACK', 'BF_JACK', 'BF_JACK_INC', 'BF_JACK_LIB', 'BF_JACK_LIBPATH',
-            'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH',
+            'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH', 'WITH_BF_STATICSNDFILE', 'BF_SNDFILE_LIB_STATIC',
             'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
             '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_CINEON', 'WITH_BF_HDR',
@@ -61,7 +61,7 @@ def validate_arguments(args, bc):
             'BF_WINTAB', 'BF_WINTAB_INC',
             'WITH_BF_FREETYPE', 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH', 'BF_FREETYPE_LIB_STATIC', 'WITH_BF_FREETYPE_STATIC',
             'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
-            'WITH_BF_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH',
+            'WITH_BF_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH', 'WITH_BF_STATICFFTW3', 'BF_FFTW3_LIB_STATIC',
             'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC',
             'WITH_BF_COLLADA', 'BF_COLLADA', 'BF_COLLADA_INC', 'BF_COLLADA_LIB', 'BF_OPENCOLLADA', 'BF_OPENCOLLADA_INC', 'BF_OPENCOLLADA_LIB', 'BF_OPENCOLLADA_LIBPATH', 'BF_PCRE', 'BF_PCRE_LIB', 'BF_PCRE_LIBPATH', 'BF_EXPAT', 'BF_EXPAT_LIB', 'BF_EXPAT_LIBPATH',
             'WITH_BF_PLAYER',
@@ -206,6 +206,8 @@ def read_opts(env, cfg, args):
         ('BF_LIBSAMPLERATE_INC', 'libsamplerate aka SRC include path', ''),
         ('BF_LIBSAMPLERATE_LIB', 'libsamplerate aka SRC library', ''),
         ('BF_LIBSAMPLERATE_LIBPATH', 'libsamplerate aka SRC library path', ''),
+        ('BF_LIBSAMPLERATE_LIB_STATIC', 'Path to libsamplerate static library', ''),
+        (BoolVariable('WITH_BF_STATICLIBSAMPLERATE', 'Staticly link to libsamplerate', False)),
 
         (BoolVariable('WITH_BF_JACK', 'Enable jack support if true', True)),
         ('BF_JACK', 'jack base path', ''),
@@ -217,7 +219,9 @@ def read_opts(env, cfg, args):
         ('BF_SNDFILE', 'sndfile base path', ''),
         ('BF_SNDFILE_INC', 'sndfile include path', ''),
         ('BF_SNDFILE_LIB', 'sndfile library', ''),
+        ('BF_SNDFILE_LIB_STATIC', 'Path to sndfile static library', ''),
         ('BF_SNDFILE_LIBPATH', 'sndfile library path', ''),
+        (BoolVariable('WITH_BF_STATICSNDFILE', 'Staticly link to sndfile', False)),
 
         ('BF_PTHREADS', 'Pthreads base path', ''),
         ('BF_PTHREADS_INC', 'Pthreads include path', ''),
@@ -352,7 +356,9 @@ def read_opts(env, cfg, args):
         ('BF_FFTW3', 'FFTW3 base path', ''),
         ('BF_FFTW3_INC', 'FFTW3 include path', ''),
         ('BF_FFTW3_LIB', 'FFTW3 library', ''),
+        ('BF_FFTW3_LIB_STATIC', 'FFTW3 static libraries', ''),
         ('BF_FFTW3_LIBPATH', 'FFTW3 library path', ''),
+        (BoolVariable('WITH_BF_STATICFFTW3', 'Staticly link to FFTW3', False)),
 
         (BoolVariable('WITH_BF_STATICOPENGL', 'Use MESA if true', True)),
         ('BF_OPENGL', 'OpenGL base path', ''),