Fixes to static linking.
authorCarl Hetherington <carl@ubuntu-12-10-32.lan>
Sat, 8 Dec 2012 00:04:51 +0000 (00:04 +0000)
committerCarl Hetherington <carl@ubuntu-12-10-32.lan>
Sat, 8 Dec 2012 00:04:51 +0000 (00:04 +0000)
src/tools/wscript
test/wscript
wscript

index c8601ad1f2637d05a88e965c0f258a3149a0df3c..58dfa9544c66182a3fe70794721797580f4ea0a1 100644 (file)
@@ -1,7 +1,7 @@
 def build(bld):
     for t in ['makedcp', 'fixlengths', 'servomatic_cli']:
         obj = bld(features = 'cxx cxxprogram')
-       obj.uselib = 'BOOST_THREAD DCP'
+       obj.uselib = 'BOOST_THREAD OPENJPEG DCP AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC'
        obj.includes = ['..']
         obj.use    = ['libdvdomatic']
         obj.source = '%s.cc' % t
@@ -10,7 +10,7 @@ def build(bld):
     if not bld.env.DISABLE_GUI:
         for t in ['dvdomatic', 'servomatic_gui']:
             obj = bld(features = 'cxx cxxprogram')
-            obj.uselib = 'DCP'
+            obj.uselib = 'DCP OPENJPEG AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC'
             obj.includes = ['..']
             obj.use    = ['libdvdomatic', 'libdvdomatic-wx']
             obj.source = '%s.cc' % t
index 3b809f9399e17c759b79d67e1c0b7901bae8e98f..15d5410b3edbcc37f71172638c304295ce85a783 100644 (file)
@@ -8,7 +8,7 @@ def configure(conf):
 def build(bld):
     obj = bld(features = 'cxx cxxprogram')
     obj.name   = 'unit-tests'
-    obj.uselib = 'BOOST_TEST DCP'
+    obj.uselib = 'BOOST_TEST DCP OPENJPEG AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC'
     obj.use    = 'libdvdomatic'
     obj.source = 'test.cc'
     obj.target = 'unit-tests'
diff --git a/wscript b/wscript
index 21e3ff9a82d7630b2799f1c79d4247d858a73ab6..028a6b6de7caa462188664b0e3f55684c5529d2c 100644 (file)
--- a/wscript
+++ b/wscript
@@ -50,28 +50,36 @@ def configure(conf):
     else:
         conf.env.append_value('CXXFLAGS', '-O2')
 
-    conf.check_cfg(package = 'libavformat', args = '--cflags --libs', uselib_store = 'AVFORMAT', mandatory = True)
-    conf.check_cfg(package = 'libavfilter', args = '--cflags --libs', uselib_store = 'AVFILTER', mandatory = True)
-    conf.check_cfg(package = 'libavcodec', args = '--cflags --libs', uselib_store = 'AVCODEC', mandatory = True)
-    conf.check_cfg(package = 'libavutil', args = '--cflags --libs', uselib_store = 'AVUTIL', mandatory = True)
-    conf.check_cfg(package = 'libswscale', args = '--cflags --libs', uselib_store = 'SWSCALE', mandatory = True)
-    conf.check_cfg(package = 'libswresample', args = '--cflags --libs', uselib_store = 'SWRESAMPLE', mandatory = False)
-    conf.check_cfg(package = 'libpostproc', args = '--cflags --libs', uselib_store = 'POSTPROC', mandatory = True)
-    conf.check_cfg(package = 'sndfile', args = '--cflags --libs', uselib_store = 'SNDFILE', mandatory = True)
-    libdcp_args = '--cflags --libs'
+    # Arguments to pkg-config for things that we might want to link statically
+    pkgconfig_args = '--cflags --libs'
     if conf.options.static:
-        libdcp_args += ' --static'
-    conf.check_cfg(package = 'libdcp', atleast_version = '0.33', args = libdcp_args, uselib_store = 'DCP', mandatory = True)
+        pkgconfig_args += ' --static'
+
+    conf.check_cfg(package = 'libavformat', args = pkgconfig_args, uselib_store = 'AVFORMAT', mandatory = True)
+    conf.check_cfg(package = 'libavfilter', args = pkgconfig_args, uselib_store = 'AVFILTER', mandatory = True)
+    conf.check_cfg(package = 'libavcodec', args = pkgconfig_args, uselib_store = 'AVCODEC', mandatory = True)
+    conf.check_cfg(package = 'libavutil', args = pkgconfig_args, uselib_store = 'AVUTIL', mandatory = True)
+    conf.check_cfg(package = 'libswscale', args = pkgconfig_args, uselib_store = 'SWSCALE', mandatory = True)
+    conf.check_cfg(package = 'libswresample', args = pkgconfig_args, uselib_store = 'SWRESAMPLE', mandatory = False)
+    conf.check_cfg(package = 'libpostproc', args = pkgconfig_args, uselib_store = 'POSTPROC', mandatory = True)
+    conf.check_cfg(package = 'sndfile', args = '--cflags --libs', uselib_store = 'SNDFILE', mandatory = True)
+    conf.check_cfg(package = 'libdcp', atleast_version = '0.33', args = pkgconfig_args, uselib_store = 'DCP', mandatory = True)
     conf.check_cfg(package = 'glib-2.0', args = '--cflags --libs', uselib_store = 'GLIB', mandatory = True)
     conf.check_cfg(package = '', path = 'Magick++-config', args = '--cppflags --cxxflags --libs', uselib_store = 'MAGICK', mandatory = True)
-    conf.check_cc(fragment  = """
-                             #include <stdio.h>\n
-                             #include <openjpeg.h>\n
-                             int main () {\n
-                             void* p = (void *) opj_image_create;\n
-                             return 0;\n
-                             }
-                             """, msg = 'Checking for library openjpeg', lib = 'openjpeg', uselib_store = 'OPENJPEG')
+
+    openjpeg_fragment = """
+                       #include <stdio.h>\n
+                       #include <openjpeg.h>\n
+                       int main () {\n
+                       void* p = (void *) opj_image_create;\n
+                       return 0;\n
+                       }
+                       """
+
+    if conf.options.static:
+        conf.check_cc(fragment  = openjpeg_fragment, msg = 'Checking for library openjpeg', stlib = 'openjpeg', uselib_store = 'OPENJPEG')
+    else:
+        conf.check_cc(fragment  = openjpeg_fragment, msg = 'Checking for library openjpeg', lib = 'openjpeg', uselib_store = 'OPENJPEG')
 
     conf.check_cc(fragment  = """
                               #include <libssh/libssh.h>\n