fix up shorter versions of coreaudio file format strings
[ardour.git] / SConstruct
index 6e8b16e41e9237b9c8ffbbedea56bb62a0d53094..e7df3c76b6a43dd666865d517fc5800ecc2a93c5 100644 (file)
@@ -21,7 +21,7 @@ import SCons.Node.FS
 SConsignFile()
 EnsureSConsVersion(0, 96)
 
-ardour_version = '2.6'
+ardour_version = '2.7.1'
 
 subst_dict = { }
 
@@ -50,6 +50,7 @@ opts.AddOptions(
     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('WIIMOTE', 'Build the wiimote control surface', 0),
     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('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),
@@ -274,9 +275,9 @@ def create_stored_revision (target = None, source = None, env = None):
             print "Could not open libs/ardour/svn_revision.cc for writing\n"
             sys.exit (-1)
     else:
-        print "You cannot use \"scons revision\" on without using a checked out"
-        print "copy of the Ardour source code repository"
-        sys.exit (-1)
+        if not os.path.exists('libs/ardour/ardour/svn_revision.h'):    
+            print "This release of ardour is missing libs/ardour/ardour/svn_revision.h. Blame the packager."
+            sys.exit (-1)
 
 #
 # A generic builder for version.cc files
@@ -567,7 +568,7 @@ else:
 if env['LV2']:
        conf = env.Configure(custom_tests = { 'CheckPKGVersion' : CheckPKGVersion})
        
-       if conf.CheckPKGVersion('slv2', '0.6.0'):
+       if conf.CheckPKGVersion('slv2', '0.6.1'):
                libraries['slv2'] = LibraryInfo()
                libraries['slv2'].ParseConfig('pkg-config --cflags --libs slv2')
                 env.Append (CCFLAGS="-DHAVE_LV2")
@@ -578,6 +579,9 @@ if env['LV2']:
 else:
        print 'LV2 support is not enabled.  Build with \'scons LV2=1\' to enable.'
 
+if not env['WIIMOTE']:
+       print 'WIIMOTE not enabled. Build with \'scons WIIMOTE=1\' to enable support.'
+
 libraries['jack'] = LibraryInfo()
 libraries['jack'].ParseConfig('pkg-config --cflags --libs jack')
 
@@ -702,7 +706,12 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6
     
     build_host_supports_sse = 0
     
-    if (re.search ("i[0-9]86", config[config_cpu]) != None):
+    #
+    # ARCH_X86 means anything in the x86 family from i386 to x86_64
+    # USE_X86_64_ASM is used to distingush 32 and 64 bit assembler
+    #
+
+    if (re.search ("(i[0-9]86|x86_64)", config[config_cpu]) != None):
         debug_flags.append ("-DARCH_X86")
         opt_flags.append ("-DARCH_X86")
     
@@ -836,15 +845,15 @@ if env['LIBLO']:
 def prep_libcheck(topenv, libinfo):
     if topenv['IS_OSX']:
        #
-       # rationale: GTK-Quartz uses jhbuild and installs to /opt/gtk by default.
-       #            All libraries needed should be built against this location
-       # However.. now jhbuild installs to ~/gtk/inst by default.. changed to accomodate this
+       # rationale: GTK-Quartz uses jhbuild and installs to ~/gtk/inst by default.
+       # All libraries needed should be built against this location
        if topenv['GTKOSX']:
-               GTKROOT = os.path.expanduser ('~/gtk/inst')
-               libinfo.Append(CPPPATH= GTKROOT + "/include", LIBPATH= GTKROOT + "/lib")
-               libinfo.Append(CXXFLAGS="-I" + GTKROOT + "/include", LINKFLAGS="-L" + GTKROOT + "/lib")
-       #libinfo.Append(CPPPATH="/opt/local/include", LIBPATH="/opt/local/lib")
-       #libinfo.Append(CXXFLAGS="-I/opt/local/include", LINKFLAGS="-L/opt/local/lib")
+            GTKROOT = os.path.expanduser ('~/gtk/inst')
+            libinfo.Append(CPPPATH= GTKROOT + "/include", LIBPATH= GTKROOT + "/lib")
+            libinfo.Append(CXXFLAGS="-I" + GTKROOT + "/include", LINKFLAGS="-L" + GTKROOT + "/lib")
+
+
+                
 
 prep_libcheck(env, env)
 
@@ -902,6 +911,20 @@ else:
 
 libraries['usb'] = conf.Finish ()
 
+#
+# Check for wiimote dependencies
+
+if env['WIIMOTE']:
+    wiimoteConf = env.Configure ( )
+    if not wiimoteConf.CheckHeader('cwiid.h'):
+       print 'WIIMOTE configured but you are missing libcwiid!'
+        sys.exit(1)
+    if not wiimoteConf.CheckHeader('bluetooth/bluetooth.h'):
+        print 'WIIMOTE configured but you are missing the libbluetooth headers which you need to compile wiimote support!'
+        sys.exit(1)
+    wiimoteConf.Finish()
+
+
 #
 # Check for FLAC
 
@@ -1020,6 +1043,11 @@ else:
 
 env = conf.Finish()
 
+if env['GTKOSX']:
+    clearlooks_version = 'libs/clearlooks-newer'
+else:
+    clearlooks_version = 'libs/clearlooks-older'
+
 if env['SYSLIBS']:
 
     syslibdeps = \
@@ -1105,7 +1133,7 @@ if env['SYSLIBS']:
 #        'libs/flowcanvas',
         'libs/gtkmm2ext',
         'gtk2_ardour',
-        'libs/clearlooks'
+        clearlooks_version
         ]
 
 else:
@@ -1118,6 +1146,9 @@ else:
     libraries['pangomm'] = LibraryInfo(LIBS='pangomm',
                                     LIBPATH='#libs/gtkmm2/pango',
                                     CPPPATH='#libs/gtkmm2/pango')
+    libraries['cairomm'] = LibraryInfo(LIBS='cairomm',
+                                    LIBPATH='#libs/cairomm',
+                                    CPPPATH='#libs/cairomm')
     libraries['atkmm'] = LibraryInfo(LIBS='atkmm',
                                      LIBPATH='#libs/gtkmm2/atk',
                                      CPPPATH='#libs/gtkmm2/atk')
@@ -1177,21 +1208,22 @@ else:
         'libs/libgnomecanvasmm',
         'libs/gtkmm2ext',
         'gtk2_ardour',
-        'libs/clearlooks'
+        clearlooks_version
         ]
 
 #
 # * always build the LGPL control protocol lib, since we link against it from libardour
 # * ditto for generic MIDI
-# * tranzport checks whether it should build internally, but we need here so that
-#   its included in the tarball
+# * tranzport & wiimote check whether they should build internally, but we need them here
+#   so that they are included in the tarball
 #
 
 surface_subdirs = [ 'libs/surfaces/control_protocol',
                     'libs/surfaces/generic_midi',
                     'libs/surfaces/tranzport',
                     'libs/surfaces/mackie',
-                    'libs/surfaces/powermate'
+                    'libs/surfaces/powermate',
+                   'libs/surfaces/wiimote'
                     ]
 
 if env['SURFACES']:
@@ -1307,6 +1339,21 @@ if not conf.CheckFunc('posix_memalign'):
 
 env = conf.Finish()
 
+# Which GTK tooltips API
+
+gtktestenv = env.Clone ()
+gtktestenv.Merge ([
+        libraries['gtk2']
+        ])
+
+conf = gtktestenv.Configure ()
+
+if conf.CheckFunc('gtk_widget_set_tooltip_text'):
+    env.Append (CXXFLAGS='-DGTK_NEW_TOOLTIP_API')
+
+conf.Finish ()
+
+
 # generate the per-user and system rc files from the same source
 
 sysrcbuild = env.SubstInFile ('ardour_system.rc','ardour.rc.in', SUBST_DICT = subst_dict)
@@ -1339,7 +1386,7 @@ Default (sysrcbuild)
 Precious (env['DISTTREE'])
 
 env.Distribute (env['DISTTREE'],
-               [ 'SConstruct', 'svn_revision.h',
+               [ 'SConstruct', 
                   'COPYING', 'PACKAGER_README', 'README',
                   'ardour.rc.in',
                   'tools/config.guess',
@@ -1354,12 +1401,10 @@ env.Distribute (env['DISTTREE'],
                   'icons/icon/ardour_icon_tango_48px_blue.png',
                   'icons/icon/ardour_icon_tango_48px_red.png'
                   ] +
-                glob.glob ('DOCUMENTATION/AUTHORS*') +
-                glob.glob ('DOCUMENTATION/CONTRIBUTORS*') +
-                glob.glob ('DOCUMENTATION/TRANSLATORS*') +
-                glob.glob ('DOCUMENTATION/BUILD*') +
-                glob.glob ('DOCUMENTATION/FAQ*') +
-                glob.glob ('DOCUMENTATION/README*')
+                glob.glob ('ardour.1*') +
+                glob.glob ('libs/clearlooks-newer/*.c') +
+                glob.glob ('libs/clearlooks-newer/*.h') +
+                glob.glob ('libs/clearlooks-newer/SConscript')
                 )
 
 srcdist = env.Tarball(env['TARBALL'], [ env['DISTTREE'], the_revision ])