X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=SConstruct;h=d462a155cbda6883c5c60e3b31dcf8aa6a41a8c4;hb=b9b6ba8be490622dff662c23d9c77c9eee1291b3;hp=2875ace5e476efd9713ab01adf254e340c0d7718;hpb=54de4975722073a555ff79a01f7015217313065f;p=ardour.git diff --git a/SConstruct b/SConstruct index 2875ace5e4..d462a155cb 100644 --- a/SConstruct +++ b/SConstruct @@ -16,7 +16,7 @@ import SCons.Node.FS SConsignFile() EnsureSConsVersion(0, 96) -ardour_version = '2.0beta12' +ardour_version = '2.1pre' subst_dict = { } @@ -28,24 +28,25 @@ 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', 0), + BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 1), PathOption('DESTDIR', 'Set the intermediate install "prefix"', '/'), EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', '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', 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) ) #---------------------------------------------------------------------- @@ -382,14 +383,22 @@ env.Append (BUILDERS = {'Tarball' : tarball_bld}) # if env['VST']: - sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ") - answer = sys.stdin.readline () - answer = answer.rstrip().strip() - if answer != "yes" and answer != "y": - print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.' - sys.exit (-1); + if os.path.isfile('.personal_use_only'): + print "Enabling VST support. Note that distributing a VST-enabled ardour\nis a violation of several different licences.\nBuild with VST=false if you intend to distribute ardour to others." else: - print "OK, VST support will be enabled" + sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ") + answer = sys.stdin.readline () + answer = answer.rstrip().strip() + if answer == "yes" or answer == "y": + fh = open('.personal_use_only', 'w') + fh.close() + print "OK, VST support will be enabled" + else: + print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.' + sys.exit (-1); +else: + if os.path.isfile('.personal_use_only'): + os.remove('.personal_use_only') ####################### @@ -405,7 +414,7 @@ deps = \ 'samplerate' : '0.1.0', 'raptor' : '1.4.2', 'lrdf' : '0.4.0', - 'jack' : '0.101.1', + 'jack' : '0.105.0', 'libgnomecanvas-2.0' : '2.0' } @@ -616,8 +625,8 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6 opt_flags.append ("-march=i686") if ((env['DIST_TARGET'] == 'i686') or (env['DIST_TARGET'] == 'x86_64')) and build_host_supports_sse: - opt_flags.extend (["-msse", "-mfpmath=sse"]) - debug_flags.extend (["-msse", "-mfpmath=sse"]) + opt_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) + debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) # end of processor-specific section # optimization section @@ -718,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 () # @@ -727,11 +742,19 @@ libraries['flac'] = LibraryInfo () prep_libcheck(env, libraries['flac']) libraries['flac'].Append(CCFLAGS="-I/usr/local/include", LINKFLAGS="-L/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__stream_decoder_new', language='CXX'): +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') @@ -784,18 +807,25 @@ libraries['dmalloc'] = conf.Finish () # conf = Configure(env) - -if conf.CheckCHeader('alsa/asoundlib.h'): +if conf.CheckCHeader('jack/midiport.h'): + libraries['sysmidi'] = LibraryInfo (LIBS='jack') + env['SYSMIDI'] = 'JACK MIDI' + subst_dict['%MIDITAG%'] = "control" + subst_dict['%MIDITYPE%'] = "jack" + print "Using JACK MIDI" +elif conf.CheckCHeader('alsa/asoundlib.h'): libraries['sysmidi'] = LibraryInfo (LIBS='asound') env['SYSMIDI'] = 'ALSA Sequencer' subst_dict['%MIDITAG%'] = "seq" subst_dict['%MIDITYPE%'] = "alsa/sequencer" + print "Using ALSA MIDI" elif conf.CheckCHeader('/System/Library/Frameworks/CoreMIDI.framework/Headers/CoreMIDI.h'): # this line is needed because scons can't handle -framework in ParseConfig() yet. libraries['sysmidi'] = LibraryInfo (LINKFLAGS= '-framework CoreMIDI -framework CoreFoundation -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox -bind_at_load') env['SYSMIDI'] = 'CoreMIDI' subst_dict['%MIDITAG%'] = "ardour" subst_dict['%MIDITYPE%'] = "coremidi" + print "Using CoreMIDI" else: print "It appears you don't have the required MIDI libraries installed. For Linux this means you are missing the development package for ALSA libraries." sys.exit (1) @@ -826,6 +856,8 @@ if env['SYSLIBS']: libraries['sigc2'].ParseConfig('pkg-config --cflags --libs sigc++-2.0') libraries['glibmm2'] = LibraryInfo() libraries['glibmm2'].ParseConfig('pkg-config --cflags --libs glibmm-2.4') + libraries['cairomm'] = LibraryInfo() + libraries['cairomm'].ParseConfig('pkg-config --cflags --libs cairomm-1.0') libraries['gdkmm2'] = LibraryInfo() libraries['gdkmm2'].ParseConfig ('pkg-config --cflags --libs gdkmm-2.4') libraries['gtkmm2'] = LibraryInfo() @@ -850,9 +882,9 @@ if env['SYSLIBS']: # libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas') libraries['soundtouch'] = LibraryInfo() - libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs soundtouch-1.0') + libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs libSoundTouch') # Comment the previous line and uncomment this for Debian: - #libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs libSoundTouch') + #libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs libSoundTouch') libraries['appleutility'] = LibraryInfo(LIBS='libappleutility', LIBPATH='#libs/appleutility', @@ -963,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: @@ -971,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)) @@ -1011,6 +1058,14 @@ else: config_prefix = '$DESTDIR' + final_config_prefix +# For colorgcc +if os.environ.has_key('PATH'): + env['PATH'] = os.environ['PATH'] +if os.environ.has_key('TERM'): + env['TERM'] = os.environ['TERM'] +if os.environ.has_key('HOME'): + env['HOME'] = os.environ['HOME'] + # # everybody needs this # @@ -1053,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 @@ -1065,8 +1120,8 @@ if conf.CheckCHeader('/System/Library/Frameworks/CoreAudio.framework/Versions/A/ subst_dict['%JACK_INPUT%'] = "coreaudio:Built-in Audio:in" subst_dict['%JACK_OUTPUT%'] = "coreaudio:Built-in Audio:out" else: - subst_dict['%JACK_INPUT%'] = "alsa_pcm:playback_" - subst_dict['%JACK_OUTPUT%'] = "alsa_pcm:capture_" + subst_dict['%JACK_INPUT%'] = "system:playback_" + subst_dict['%JACK_OUTPUT%'] = "system:capture_" # posix_memalign available if not conf.CheckFunc('posix_memalign'): @@ -1076,7 +1131,12 @@ if not conf.CheckFunc('posix_memalign'): env = conf.Finish() -rcbuild = env.SubstInFile ('ardour.rc','ardour.rc.in', SUBST_DICT = subst_dict) +# 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) + +# add to the substitution dictionary + subst_dict['%VERSION%'] = ardour_version[0:3] subst_dict['%EXTRA_VERSION%'] = ardour_version[3:] subst_dict['%REVISION_STRING%'] = '' @@ -1089,9 +1149,8 @@ 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 @@ -1101,7 +1160,6 @@ env.Distribute (env['DISTTREE'], [ 'SConstruct', 'svn_revision.h', 'COPYING', 'PACKAGER_README', 'README', 'ardour.rc.in', - 'ardour_system.rc', 'tools/config.guess', 'icons/icon/ardour_icon_mac_mask.png', 'icons/icon/ardour_icon_mac.png',