EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', 'leopard', 'none' ), ignorecase=2),
BoolOption('DMALLOC', 'Compile and link using the dmalloc library', 0),
BoolOption('EXTRA_WARN', 'Compile with -Wextra, -ansi, and -pedantic. Might break compilation. For pedants', 0),
- BoolOption('FFT_ANALYSIS', 'Include FFT analysis window', 1),
BoolOption('FREESOUND', 'Include Freesound database lookup', 0),
BoolOption('FPU_OPTIMIZATION', 'Build runtime checked assembler code', 1),
BoolOption('LIBLO', 'Compile with support for liblo library', 1),
cmd += " | awk '/^Revision:/ { print $2}'"
return commands.getoutput (cmd)
+def fetch_git_revision (path):
+ cmd = "LANG= "
+ cmd += "git log --abbrev HEAD^..HEAD "
+ cmd += path
+ output = commands.getoutput (cmd)
+ output = output.splitlines ()
+
+ rev = output[0].replace ("commit", "git")[0:10]
+ for line in output:
+ try:
+ if "git-svn-id" in line:
+ line = line.split('@')
+ line = line[1].split(' ')
+ rev = line[0]
+ except:
+ pass
+
+ return rev
+
def create_stored_revision (target = None, source = None, env = None):
+ rev = ""
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')
- o.write (text)
- o.close ()
- except IOError:
- print "Could not open svn_revision.h for writing\n"
- sys.exit (-1)
+ elif os.path.exists('.git'):
+ rev = fetch_git_revision ('.');
+ elif os.path.exists('libs/ardour/svn_revision.cc'):
+ print "Using packaged svn revision"
+ return
else:
- print "You cannot use \"scons revision\" on without using a checked out"
- print "copy of the Ardour source code repository"
+ print "Your source does not include revision information."
+ print "Please check out the code from a repository or use a properly packaged version!"
sys.exit (-1)
+ try:
+ 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 libs/ardour/svn_revision.cc for writing\n"
+ sys.exit (-1)
+
#
# A generic builder for version.cc files
#
'lrdf' : '0.4.0',
'jack' : '0.109.0',
'libgnomecanvas-2.0' : '2.0',
- 'aubio' : '0.3.2'
+ 'aubio' : '0.3.2',
+ 'ogg' : '1.1.2',
+ 'flac' : '1.2.1',
+ 'sndfile' : '1.0.18'
}
def DependenciesRequiredMessage():
libraries['core'] = LibraryInfo (CCFLAGS = '-Ilibs')
-#libraries['sndfile'] = LibraryInfo()
-#libraries['sndfile'].ParseConfig('pkg-config --cflags --libs sndfile')
+libraries['sndfile'] = LibraryInfo()
+libraries['sndfile'].ParseConfig('pkg-config --cflags --libs sndfile')
libraries['lrdf'] = LibraryInfo()
libraries['lrdf'].ParseConfig('pkg-config --cflags --libs lrdf')
env = conf.Finish ()
-if env['FFT_ANALYSIS']:
- #
- # Check for fftw3 header as well as the library
- #
+#
+# Check for fftw3 header as well as the library
+#
- conf = Configure(libraries['fftw3'])
+conf = Configure(libraries['fftw3'])
- if conf.CheckHeader ('fftw3.h') == False:
- print ('Ardour cannot be compiled without the FFTW3 headers, which do not seem to be installed')
- sys.exit (1)
- conf.Finish()
+if conf.CheckHeader ('fftw3.h') == False:
+ print ('Ardour cannot be compiled without the FFTW3 headers, which do not seem to be installed')
+ sys.exit (1)
+conf.Finish()
if env['FREESOUND']:
#
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")
libraries['xslt'] = LibraryInfo()
libraries['xslt'].ParseConfig('pkg-config --cflags --libs libxslt')
+libraries['uuid'] = LibraryInfo()
+libraries['uuid'].ParseConfig('pkg-config --cflags --libs uuid')
+
libraries['glib2'] = LibraryInfo()
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs glib-2.0')
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gobject-2.0')
libraries['ardour'] = LibraryInfo (LIBS='ardour', LIBPATH='#libs/ardour', CPPPATH='#libs/ardour')
libraries['midi++2'] = LibraryInfo (LIBS='midi++', LIBPATH='#libs/midi++2', CPPPATH='#libs/midi++2')
+libraries['evoral'] = LibraryInfo (LIBS='evoral', LIBPATH='#libs/evoral', CPPPATH='#libs/evoral')
libraries['pbd'] = LibraryInfo (LIBS='pbd', LIBPATH='#libs/pbd', CPPPATH='#libs/pbd')
libraries['gtkmm2ext'] = LibraryInfo (LIBS='gtkmm2ext', LIBPATH='#libs/gtkmm2ext', CPPPATH='#libs/gtkmm2ext')
def prep_libcheck(topenv, libinfo):
if topenv['IS_OSX']:
#
- # rationale: GTK-Quartz uses jhbuild and installs to /opt/gtk by default.
+ # rationale: GTK-Quartz uses jhbuild and installs to $HOME/gtk/inst 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 ('~/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")
+ #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)
-
#
# these are part of the Ardour source tree because they are C++
#
libraries['usb'] = conf.Finish ()
-#
-# Check for FLAC
-
-libraries['flac'] = LibraryInfo ()
-prep_libcheck(env, libraries['flac'])
-libraries['flac'].Append(CPPPATH="/usr/local/include", LIBPATH="/usr/local/lib")
-
-#
-# june 1st 2007: look for a function that is in FLAC 1.1.2 and not in later versions
-# since the version of libsndfile we have internally does not support
-# the new API that libFLAC has adopted
-#
-
-conf = Configure (libraries['flac'])
-if conf.CheckLib ('FLAC', 'FLAC__seekable_stream_decoder_init', 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')
-
# boost (we don't link against boost, just use some header files)
libraries['boost'] = LibraryInfo ()
libraries['pangomm'].ParseConfig ('pkg-config --cflags --libs pangomm-1.4')
libraries['libgnomecanvasmm'] = LibraryInfo()
libraries['libgnomecanvasmm'].ParseConfig ('pkg-config --cflags --libs libgnomecanvasmm-2.6')
-
-#
-# cannot use system one for the time being
-#
-
- libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
- LIBPATH='#libs/libsndfile',
- CPPPATH=['#libs/libsndfile/src'])
+ libraries['taglib'] = LibraryInfo()
+ libraries['taglib'].ParseConfig ('pkg-config --cflags --libs taglib')
# libraries['libglademm'] = LibraryInfo()
# libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
LIBPATH='#libs/appleutility',
CPPPATH='#libs/appleutility')
+ libraries['sndfile'] = LibraryInfo()
+ libraries['sndfile'].ParseConfig ('pkg-config --cflags --libs sndfile')
+
coredirs = [
'templates',
'manual'
]
subdirs = [
- 'libs/libsndfile',
'libs/pbd',
'libs/midi++2',
+ 'libs/evoral',
'libs/ardour',
'libs/vamp-sdk',
'libs/vamp-plugins/',
libraries['soundtouch'] = LibraryInfo(LIBS='soundtouch',
LIBPATH='#libs/soundtouch',
CPPPATH=['#libs', '#libs/soundtouch'])
- libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
- LIBPATH='#libs/libsndfile',
- CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src'])
+ libraries['taglib'] = LibraryInfo(LIBS='libtaglib',
+ LIBPATH='#libs/taglib',
+ CPPPATH=['#libs/taglib/headers','#libs/taglib/headers/taglib'])
# libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
# LIBPATH='#libs/libglademm',
# CPPPATH='#libs/libglademm')
subdirs = [
'libs/sigc++2',
- 'libs/libsndfile',
+ 'libs/taglib',
'libs/pbd',
'libs/midi++2',
+ 'libs/evoral',
'libs/ardour',
'libs/vamp-sdk',
'libs/vamp-plugins/',
#
timefx_subdirs = ['libs/soundtouch']
-#if env['RUBBERBAND']:
-# timefx_subdirs += ['libs/rubberband']
+if env['RUBBERBAND']:
+ timefx_subdirs += ['libs/rubberband']
opts.Save('scache.conf', env)
Help(opts.GenerateHelpText(env))
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 use_flac')
+Export('env install_prefix final_prefix config_prefix final_config_prefix libraries i18n ardour_version subst_dict')
#
# the configuration file may be system dependent
Precious (env['DISTTREE'])
env.Distribute (env['DISTTREE'],
- [ 'SConstruct', 'svn_revision.h',
+ [ 'SConstruct',
'COPYING', 'PACKAGER_README', 'README',
'ardour.rc.in',
'tools/config.guess',
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
#