allow for mandatory control protocols, plus some ongoing work on automation control...
[ardour.git] / SConstruct
index 04d1b3545fe21caed7d8dc61084c9cc1832963fa..19decf99b8ff5ac64f6c1fccebd823052c4503ef 100644 (file)
@@ -28,14 +28,15 @@ opts.AddOptions(
     BoolOption('SYSLIBS', 'USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS: Use existing system versions of various libraries instead of internal ones', 0),
     BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 0),
     PathOption('DESTDIR', 'Set the intermediate install "prefix"', '/'),
-    BoolOption('DEVBUILD', 'Use shared libardour (developers only)', 0),
     BoolOption('NLS', 'Set to turn on i18n support', 1),
     PathOption('PREFIX', 'Set the install "prefix"', '/usr/local'),
     BoolOption('VST', 'Compile with support for VST', 0),
     BoolOption('VERSIONED', 'Add version information to ardour/gtk executable name inside the build directory', 0),
     EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', 'none' ), ignorecase=2),
     BoolOption('FPU_OPTIMIZATION', 'Build runtime checked assembler code', 1),
-       BoolOption('FFT_ANALYSIS', 'Include FFT analysis window', 0)
+    BoolOption('FFT_ANALYSIS', 'Include FFT analysis window', 0),
+    BoolOption('SURFACES', 'Build support for control surfaces', 0),
+    BoolOption('DMALLOC', 'Compile and link using the dmalloc library', 0)
   )
 
 #----------------------------------------------------------------------
@@ -372,6 +373,9 @@ libraries['jack'].ParseConfig('pkg-config --cflags --libs jack')
 libraries['xml'] = LibraryInfo()
 libraries['xml'].ParseConfig('pkg-config --cflags --libs libxml-2.0')
 
+libraries['xslt'] = LibraryInfo()
+libraries['xslt'].ParseConfig('pkg-config --cflags --libs libxslt')
+
 libraries['glib2'] = LibraryInfo()
 libraries['glib2'].ParseConfig ('pkg-config --cflags --libs glib-2.0')
 libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gobject-2.0')
@@ -386,11 +390,6 @@ libraries['pango'].ParseConfig ('pkg-config --cflags --libs pango')
 libraries['libgnomecanvas2'] = LibraryInfo()
 libraries['libgnomecanvas2'].ParseConfig ('pkg-config --cflags --libs libgnomecanvas-2.0')
 
-libraries['glade2'] = LibraryInfo()
-libraries['glade2'].ParseConfig ('pkg-config --cflags --libs libglade-2.0')
-
-libraries['usb'] = LibraryInfo (LIBS='usb')
-
 #libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas')
 
 libraries['ardour'] = LibraryInfo (LIBS='ardour', LIBPATH='#libs/ardour', CPPPATH='#libs/ardour')
@@ -403,6 +402,50 @@ libraries['fst'] = LibraryInfo()
 if env['VST']:
     libraries['fst'].ParseConfig('pkg-config --cflags --libs libfst')
 
+#
+# Check for libusb
+
+libraries['usb'] = LibraryInfo ()
+
+conf = Configure (libraries['usb'])
+if conf.CheckLib ('usb', 'usb_interrupt_write'):
+    have_libusb = True
+else:
+    have_libusb = False
+    
+libraries['usb'] = conf.Finish ()
+
+#
+# Check for liblo
+
+libraries['lo'] = LibraryInfo ()
+
+conf = Configure (libraries['lo'])
+if conf.CheckLib ('lo', 'lo_server_new') == False:
+    print "liblo does not appear to be installed."
+    exit (0)
+    
+libraries['lo'] = conf.Finish ()
+
+#
+# Check for dmalloc
+
+libraries['dmalloc'] = LibraryInfo ()
+
+#
+# look for the threaded version
+#
+
+conf = Configure (libraries['dmalloc'])
+if conf.CheckLib ('dmallocth', 'dmalloc_shutdown'):
+    have_libdmalloc = True
+else:
+    have_libdmalloc = False
+    
+libraries['dmalloc'] = conf.Finish ()
+
+#
+
 #
 # Audio/MIDI library (needed for MIDI, since audio is all handled via JACK)
 # 
@@ -439,8 +482,9 @@ if env['SYSLIBS']:
     libraries['pangomm'].ParseConfig ('pkg-config --cflags --libs pangomm-1.4')
     libraries['libgnomecanvasmm'] = LibraryInfo()
     libraries['libgnomecanvasmm'].ParseConfig ('pkg-config --cflags --libs libgnomecanvasmm-2.6')
-    libraries['libglademm'] = LibraryInfo()
-    libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
+
+#    libraries['libglademm'] = LibraryInfo()
+#    libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
 
 #    libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas')
     libraries['soundtouch'] = LibraryInfo()
@@ -488,9 +532,9 @@ else:
     libraries['soundtouch'] = LibraryInfo(LIBS='soundtouch',
                                           LIBPATH='#libs/soundtouch',
                                           CPPPATH=['#libs', '#libs/soundtouch'])
-    libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
-                                          LIBPATH='#libs/libglademm',
-                                          CPPPATH='#libs/libglademm')
+#    libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
+#                                          LIBPATH='#libs/libglademm',
+#                                          CPPPATH='#libs/libglademm')
 
     coredirs = [
         'libs/soundtouch',
@@ -498,7 +542,7 @@ else:
     ]
 
     subdirs = [
-#      'libs/cassowary',
+#          'libs/cassowary',
         'libs/sigc++2',
         'libs/pbd3',
         'libs/midi++2',
@@ -511,18 +555,19 @@ else:
        'libs/gtkmm2/atk',
        'libs/gtkmm2/gdk',
        'libs/gtkmm2/gtk',
-    'libs/libglademm',
        'libs/libgnomecanvasmm',
 #      'libs/flowcanvas',
     'libs/gtkmm2ext',
     'gtk2_ardour'
         ]
 
-surface_subdirs = [
-    'libs/surfaces/tranzport',
-    'libs/surfaces/generic_midi'
-    ]
+surface_subdirs = []
 
+if env['SURFACES']:
+    surface_subdirs += [ 'libs/surfaces/generic_midi' ]
+    if have_libusb:
+        surface_subdirs += [ 'libs/surfaces/tranzport' ]
+    
 opts.Save('scache.conf', env)
 Help(opts.GenerateHelpText(env))
 
@@ -545,6 +590,8 @@ if os.environ.has_key('DISTCC_HOSTS'):
 final_prefix = '$PREFIX'
 install_prefix = '$DESTDIR/$PREFIX'
 
+subst_dict['INSTALL_PREFIX'] = install_prefix;
+
 if env['PREFIX'] == '/usr':
     final_config_prefix = '/etc'
 else:
@@ -797,9 +844,9 @@ for subdir in coredirs:
     SConscript (subdir + '/SConscript')
 
 for sublistdir in [subdirs, gtk_subdirs, surface_subdirs]:
-       for subdir in sublistdir:
-               SConscript (subdir + '/SConscript')
-
+    for subdir in sublistdir:
+        SConscript (subdir + '/SConscript')
+            
 # cleanup
 env.Clean ('scrub', [ 'scache.conf', '.sconf_temp', '.sconsign.dblite', 'config.log'])