Touch select (hold left <Shift> or <Control>).
[ardour.git] / SConstruct
index d0ba26b3be94621de803053cb9039740cce995a9..d462a155cbda6883c5c60e3b31dcf8aa6a41a8c4 100644 (file)
@@ -28,6 +28,7 @@ opts = Options('scache.conf')
 opts.AddOptions(
     ('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
     BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
+    BoolOption('CMT', 'Compile with support for CMT Additions', 1),
     BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
     BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 1),
     PathOption('DESTDIR', 'Set the intermediate install "prefix"', '/'),
@@ -36,17 +37,16 @@ opts.AddOptions(
     BoolOption('EXTRA_WARN', 'Compile with -Wextra, -ansi, and -pedantic.  Might break compilation.  For pedants', 0),
     BoolOption('FFT_ANALYSIS', 'Include FFT analysis window', 0),
     BoolOption('FPU_OPTIMIZATION', 'Build runtime checked assembler code', 1),
+    BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0),
     BoolOption('LIBLO', 'Compile with support for liblo library', 1),
     BoolOption('NLS', 'Set to turn on i18n support', 1),
     PathOption('PREFIX', 'Set the install "prefix"', '/usr/local'),
     BoolOption('SURFACES', 'Build support for control surfaces', 1),
     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('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1),
     BoolOption('UNIVERSAL', 'Compile as universal binary.  Requires that external libraries are already universal.', 0),
     BoolOption('VERSIONED', 'Add revision information to ardour/gtk executable name inside the build directory', 0),
     BoolOption('VST', 'Compile with support for VST', 0),
-    BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0),
-    BoolOption('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1),
-    BoolOption('CMT', 'Compile with support for CMT Additions', 1)
 )
 
 #----------------------------------------------------------------------
@@ -727,6 +727,12 @@ if conf.CheckLib ('usb', 'usb_interrupt_write'):
 else:
     have_libusb = False
 
+# check for linux/input.h while we're at it for powermate
+if conf.CheckHeader('linux/input.h'):
+    have_linux_input = True
+else:
+    have_linux_input = False
+
 libraries['usb'] = conf.Finish ()
 
 #
@@ -745,8 +751,10 @@ libraries['flac'].Append(CCFLAGS="-I/usr/local/include", LINKFLAGS="-L/usr/local
 conf = Configure (libraries['flac'])
 if conf.CheckLib ('FLAC', 'FLAC__seekable_stream_decoder_set_read_callback', language='CXX'):
     conf.env.Append(CCFLAGS='-DHAVE_FLAC')
+    use_flac = True
+else:
+    use_flac = False
 libraries['flac'] = conf.Finish ()
-
 # or if that fails...
 #libraries['flac']    = LibraryInfo (LIBS='FLAC')
 
@@ -987,7 +995,12 @@ else:
 #   its included in the tarball
 #
 
-surface_subdirs = [ 'libs/surfaces/control_protocol', 'libs/surfaces/generic_midi', 'libs/surfaces/tranzport', 'libs/surfaces/mackie' ]
+surface_subdirs = [ 'libs/surfaces/control_protocol',
+                    'libs/surfaces/generic_midi',
+                    'libs/surfaces/tranzport',
+                    'libs/surfaces/mackie',
+                    'libs/surfaces/powermate'
+                    ]
 
 if env['SURFACES']:
     if have_libusb:
@@ -995,8 +1008,18 @@ if env['SURFACES']:
     else:
         env['TRANZPORT'] = 0
         print 'Disabled building Tranzport code because libusb could not be found'
+
+    if have_linux_input:
+        env['POWERMATE'] = 1
+    else:
+        env['POWERMATE'] = 0
+        print 'Disabled building Powermate code because linux/input.h could not be found'
+
     if os.access ('libs/surfaces/sony9pin', os.F_OK):
         surface_subdirs += [ 'libs/surfaces/sony9pin' ]
+else:
+    env['POWERMATE'] = 0
+    env['TRANZPORT'] = 0
 
 opts.Save('scache.conf', env)
 Help(opts.GenerateHelpText(env))
@@ -1085,7 +1108,7 @@ env = conf.Finish()
 if env['NLS'] == 1:
     env.Append(CCFLAGS="-DENABLE_NLS")
 
-Export('env install_prefix final_prefix config_prefix final_config_prefix libraries i18n ardour_version subst_dict')
+Export('env install_prefix final_prefix config_prefix final_config_prefix libraries i18n ardour_version subst_dict use_flac')
 
 #
 # the configuration file may be system dependent
@@ -1110,7 +1133,6 @@ env = conf.Finish()
 
 # generate the per-user and system rc files from the same source
 
-rcbuild = env.SubstInFile ('ardour.rc','ardour.rc.in', SUBST_DICT = subst_dict)
 sysrcbuild = env.SubstInFile ('ardour_system.rc','ardour.rc.in', SUBST_DICT = subst_dict)
 
 # add to the substitution dictionary
@@ -1127,9 +1149,7 @@ the_revision = env.Command ('frobnicatory_decoy', [], create_stored_revision)
 
 env.Alias('revision', the_revision)
 env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour_system.rc'))
-env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.rc'))
 
-Default (rcbuild)
 Default (sysrcbuild)
 
 # source tarball