diff --git a/Makefile b/Makefile index 1a39c6d179..becce0e48c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -all: scons cscope +all: scons scons: scons diff --git a/SConstruct b/SConstruct index 99bd85264b..d53cf624ad 100644 --- a/SConstruct +++ b/SConstruct @@ -16,7 +16,7 @@ import SCons.Node.FS SConsignFile() EnsureSConsVersion(0, 96) -ardour_version = '2.0beta11.1' +ardour_version = '2.0rc1' subst_dict = { } @@ -41,9 +41,11 @@ opts.AddOptions( 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('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('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 0) + BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0), + BoolOption('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1) ) #---------------------------------------------------------------------- @@ -311,7 +313,7 @@ env.Append (BUILDERS = {'VersionBuild' : version_bld}) # def versioned_builder(target,source,env): - w, r = os.popen2( "svn info | awk '/^Revision:/ { print $2}'") + w, r = os.popen2( "LANG= svn info | awk '/^Revision:/ { print $2}'") last_revision = r.readline().strip() w.close() @@ -540,7 +542,10 @@ env = conf.Finish() # opt_flags = [] -debug_flags = [ '-g' ] +if env['GPROFILE'] == 1: + debug_flags = [ '-g', '-pg' ] +else: + debug_flags = [ '-g' ] # guess at the platform, used to define compiler flags @@ -606,7 +611,7 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6 if env['DIST_TARGET'] != 'i386': flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1] - x86_flags = flag_line.split (": ")[1:][0].split (' ') + x86_flags = flag_line.split (": ")[1:][0].split () if "mmx" in x86_flags: opt_flags.append ("-mmmx") @@ -670,13 +675,19 @@ opt_flags[:0] = [ "-fomit-frame-pointer", "-ffast-math", "-fstrength-reduce", - "-fno-strict-aliasing" + "-pipe" ] if env['DEBUG'] == 1: env.Append(CCFLAGS=" ".join (debug_flags)) + env.Append(LINKFLAGS=" ".join (debug_flags)) else: env.Append(CCFLAGS=" ".join (opt_flags)) + env.Append(LINKFLAGS=" ".join (opt_flags)) + +if env['UNIVERSAL'] == 1: + env.Append(CCFLAGS="-arch i386 -arch ppc") + env.Append(LINKFLAGS="-arch i386 -arch ppc") # # warnings flags @@ -686,8 +697,9 @@ env.Append(CCFLAGS="-Wall") env.Append(CXXFLAGS="-Woverloaded-virtual") if env['EXTRA_WARN']: - env.Append(CCFLAGS="-Wextra -pedantic") + env.Append(CCFLAGS="-Wextra -pedantic -ansi") env.Append(CXXFLAGS="-ansi") +# env.Append(CFLAGS="-iso") if env['LIBLO']: env.Append(CCFLAGS="-DHAVE_LIBLO") @@ -726,7 +738,8 @@ prep_libcheck(env, libraries['flac']) libraries['flac'].Append(CCFLAGS="-I/usr/local/include", LINKFLAGS="-L/usr/local/lib") conf = Configure (libraries['flac']) -conf.CheckLib ('FLAC', 'FLAC__stream_decoder_new', language='CXX') +if conf.CheckLib ('FLAC', 'FLAC__stream_decoder_new', language='CXX'): + conf.env.Append(CCFLAGS='-DHAVE_FLAC') libraries['flac'] = conf.Finish () # or if that fails... @@ -840,7 +853,7 @@ if env['SYSLIBS']: libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour', LIBPATH='#libs/libsndfile', - CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src']) + CPPPATH=['#libs/libsndfile/src']) # libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas') libraries['soundtouch'] = LibraryInfo() @@ -958,11 +971,14 @@ else: # its included in the tarball # -surface_subdirs = [ 'libs/surfaces/control_protocol', 'libs/surfaces/generic_midi', 'libs/surfaces/tranzport' ] +surface_subdirs = [ 'libs/surfaces/control_protocol', 'libs/surfaces/generic_midi', 'libs/surfaces/tranzport', 'libs/surfaces/mackie' ] if env['SURFACES']: if have_libusb: - env['TRANZPORT'] = 'yes' + env['TRANZPORT'] = 1 + else: + env['TRANZPORT'] = 0 + print 'Disabled building Tranzport code because libusb could not be found' if os.access ('libs/surfaces/sony9pin', os.F_OK): surface_subdirs += [ 'libs/surfaces/sony9pin' ] @@ -1069,6 +1085,13 @@ if not conf.CheckFunc('posix_memalign'): env = conf.Finish() rcbuild = env.SubstInFile ('ardour.rc','ardour.rc.in', SUBST_DICT = subst_dict) +subst_dict['%VERSION%'] = ardour_version[0:3] +subst_dict['%EXTRA_VERSION%'] = ardour_version[3:] +subst_dict['%REVISION_STRING%'] = '' +if os.path.exists('.svn'): + subst_dict['%REVISION_STRING%'] = '.' + fetch_svn_revision ('.') + 'svn' + +# specbuild = env.SubstInFile ('ardour.spec','ardour.spec.in', SUBST_DICT = subst_dict) the_revision = env.Command ('frobnicatory_decoy', [], create_stored_revision) diff --git a/ardour.dox b/ardour.dox index f2036d352e..6b4f419a9e 100644 --- a/ardour.dox +++ b/ardour.dox @@ -459,7 +459,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = libs/pbd libs/midi++2 libs/ardour libs/gtkmm2ext gtk2_ardour +INPUT = libs/pbd libs/midi++2 libs/ardour libs/surfaces libs/gtkmm2ext gtk2_ardour # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp @@ -556,7 +556,7 @@ FILTER_SOURCE_FILES = NO # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. @@ -603,7 +603,7 @@ VERBATIM_HEADERS = YES # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. -ALPHABETICAL_INDEX = NO +ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns @@ -766,7 +766,7 @@ COMPACT_LATEX = NO # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. -PAPER_TYPE = a4wide +PAPER_TYPE = letter # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. @@ -791,7 +791,7 @@ PDF_HYPERLINKS = NO # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. -USE_PDFLATEX = NO +USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep @@ -1005,7 +1005,7 @@ INCLUDE_FILE_PATTERNS = # undefined via #undef or recursively expanded use the := operator # instead of the = operator. -PREDEFINED = HAVE_COREAUDIO VST_SUPPORT HAVE_LIBLO FFT_ANALYSIS +PREDEFINED = HAVE_LIBLO FFT_ANALYSIS # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. diff --git a/ardour.rc.in b/ardour.rc.in index ab34ae29d4..44738f8062 100644 --- a/ardour.rc.in +++ b/ardour.rc.in @@ -2,6 +2,7 @@ +