Check glib atomic implementation for mutex use.
[ardour.git] / SConstruct
index 634e3373ac16ca7caf27623cf27ea39eeef38afb..49eb08a4599b835d00c7f0b71228edb39699d859 100644 (file)
@@ -21,7 +21,7 @@ import SCons.Node.FS
 SConsignFile()
 EnsureSConsVersion(0, 96)
 
-ardour_version = '2.5'
+ardour_version = '2.6.1'
 
 subst_dict = { }
 
@@ -54,7 +54,7 @@ opts.AddOptions(
     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('LV2', 'Compile with support for LV2 (if slv2 is available)', 0),
+    BoolOption('LV2', 'Compile with support for LV2 (if slv2 is available)', 1),
     BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0),
     BoolOption('FREEDESKTOP', 'Install MIME type, icons and .desktop file as per the freedesktop.org spec (requires xdg-utils and shared-mime-info). "scons uninstall" removes associations in desktop database', 0),
     BoolOption('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1),
@@ -262,21 +262,21 @@ def create_stored_revision (target = None, source = None, env = None):
     if os.path.exists('.svn'):    
         rev = fetch_svn_revision ('.');
         try:
-            text  = "#ifndef __ardour_svn_revision_h__\n"
-            text += "#define __ardour_svn_revision_h__\n"
-            text += "static const char* ardour_svn_revision = \"" + rev + "\";\n";
-            text += "#endif\n"
-            print '============> writing svn revision info to svn_revision.h\n'
-            o = file ('svn_revision.h', 'w')
+            text  = "#include <ardour/svn_revision.h>\n"
+            text += "namespace ARDOUR {\n";
+            text += "extern const char* svn_revision = \"" + rev + "\";\n";
+            text += "}\n";
+            print '============> writing svn revision info to libs/ardour/svn_revision.cc\n'
+            o = file ('libs/ardour/svn_revision.cc', 'w')
             o.write (text)
             o.close ()
         except IOError:
-            print "Could not open svn_revision.h for writing\n"
+            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
@@ -453,7 +453,6 @@ deps = \
        'lrdf'                 : '0.4.0',
        'jack'                 : '0.109.0',
        'libgnomecanvas-2.0'   : '2.0',
-        'aubio'                : '0.3.2'
 }
 
 def DependenciesRequiredMessage():
@@ -566,17 +565,14 @@ else:
        print 'FREESOUND support is not enabled.  Build with \'scons FREESOUND=1\' to enable.'
 
 if env['LV2']:
-       conf = env.Configure(custom_tests = { 'CheckPKGExists' : CheckPKGExists })
+       conf = env.Configure(custom_tests = { 'CheckPKGVersion' : CheckPKGVersion})
        
-       if conf.CheckPKGExists ('\"slv2 >= 0.6.0\"'):
+       if conf.CheckPKGVersion('slv2', '0.6.0'):
                libraries['slv2'] = LibraryInfo()
                libraries['slv2'].ParseConfig('pkg-config --cflags --libs slv2')
                 env.Append (CCFLAGS="-DHAVE_LV2")
        else:
-               print 'Building Ardour with LV2 support requires SLV2 >= 0.6.0'
-               print 'WARNING: SLV2 not found, or too old.  Ardour will be built without LV2 support.'
-               print 'Until the 2.4 release, Ardour requires SLV2 out of SVN.'
-               print 'Testing would be very much appreciated!  svn co http://svn.drobilla.net/lad/slv2'
+               print 'LV2 support is not enabled (SLV2 not found or older than 0.6.0)'
                env['LV2'] = 0
        conf.Finish()
 else:
@@ -706,8 +702,9 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6
     
     build_host_supports_sse = 0
     
-    debug_flags.append ("-DARCH_X86")
-    opt_flags.append ("-DARCH_X86")
+    if (re.search ("i[0-9]86", config[config_cpu]) != None):
+        debug_flags.append ("-DARCH_X86")
+        opt_flags.append ("-DARCH_X86")
     
     if config[config_kernel] == 'linux' :
         
@@ -841,12 +838,13 @@ def prep_libcheck(topenv, libinfo):
        #
        # 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
        if topenv['GTKOSX']:
-               gtkroot = os.path.expanduser ("~");
-               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")
+       #libinfo.Append(CPPPATH="/opt/local/include", LIBPATH="/opt/local/lib")
+       #libinfo.Append(CXXFLAGS="-I/opt/local/include", LINKFLAGS="-L/opt/local/lib")
 
 prep_libcheck(env, env)
 
@@ -1341,7 +1339,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',
@@ -1374,6 +1372,12 @@ env.Alias ('srctar', srcdist)
 env.AddPreAction (env['DISTTREE'], Action ('rm -rf ' + str (File (env['DISTTREE']))))
 env.AddPostAction (srcdist, Action ('rm -rf ' + str (File (env['DISTTREE']))))
 
+#
+# Update revision info before going into subdirs
+#
+
+create_stored_revision()
+
 #
 # the subdirs
 #