diff --git a/csound-scons-on-py3.patch b/csound-scons-on-py3.patch new file mode 100644 index 0000000..776882b --- /dev/null +++ b/csound-scons-on-py3.patch @@ -0,0 +1,962 @@ +Index: Csound5.18.02/SConstruct +=================================================================== +--- Csound5.18.02.orig/SConstruct ++++ Csound5.18.02/SConstruct +@@ -1,5 +1,5 @@ + #J vim:syntax=python +-print ''' ++print (''' + C S O U N D 5 + + SCons build file for Csound 5: +@@ -16,7 +16,7 @@ For MinGW, run in the MSys shell + and use www.python.org WIN32 Python to run scons. + For Microsoft Visual C++, run in the Platform SDK + command shell, and use www.python.org WIN32 Python to run scons. +-''' ++''') + + import time + import glob +@@ -67,7 +67,7 @@ def getPlatform(): + # + ############################################################################# + +-print "System platform is '" + getPlatform() + "'." ++print ("System platform is '" + getPlatform() + "'.") + + + # Create options that can be set from the command line. +@@ -326,10 +326,10 @@ elif getPlatform() == 'win32': + optionsFilename = 'custom-mingw.py' + + if(not FindFile(optionsFilename, '.')): +- print "\n\n*************************************************" +- print "%s NOT FOUND, please copy one of the custom-***.py" % optionsFilename +- print "as %s and modify it to suit your system, if necessary" % optionsFilename +- print "*************************************************" ++ print ("\n\n*************************************************") ++ print ("%s NOT FOUND, please copy one of the custom-***.py" % optionsFilename) ++ print ("as %s and modify it to suit your system, if necessary" % optionsFilename) ++ print ("*************************************************") + Exit(-1) + + +@@ -341,7 +341,7 @@ if commonEnvironment['custom']: + Requires(optionsFilename, commonEnvironment) + + +-print "Using options from '%s.'" % optionsFilename ++print ("Using options from '%s.'" % optionsFilename) + + fileOptions = Options(optionsFilename) + fileOptions.Add('customCPPPATH', 'List of custom CPPPATH variables') +@@ -370,21 +370,21 @@ commonEnvironment.Prepend(SWIGFLAGS = cu + + # Define options for different platforms. + if getPlatform() != 'win32' and getPlatform() != 'sunos': +- print "Build platform is '" + getPlatform() + "'." ++ print ("Build platform is '" + getPlatform() + "'.") + elif getPlatform() == 'sunos': + if compilerSun(): +- print "Build platform is Sun Studio." ++ print ("Build platform is Sun Studio.") + elif compilerGNU(): +- print "Build platform is '" + getPlatform() + "'." ++ print ("Build platform is '" + getPlatform() + "'.") + else: + if compilerMicrosoft(): +- print "Build platform is Microsoft Visual C++ (MSVC)." ++ print ("Build platform is Microsoft Visual C++ (MSVC).") + elif compilerIntel(): +- print "Build platform is the Intel C++ Compiler (ICL)." ++ print ("Build platform is the Intel C++ Compiler (ICL).") + elif compilerGNU(): +- print "Build platform is MinGW/MSYS" ++ print ("Build platform is MinGW/MSYS") + +-print "SCons tools on this platform: ", commonEnvironment['TOOLS'] ++print ("SCons tools on this platform: ", commonEnvironment['TOOLS']) + + commonEnvironment.Prepend(CPPPATH = ['.', './H']) + if commonEnvironment['useLrint'] != '0': +@@ -393,7 +393,7 @@ if commonEnvironment['useLrint'] != '0': + cf = Configure(commonEnvironment) + if commonEnvironment['useGettext'] == '1': + if cf.CheckHeader("libintl.h"): +- print "CONFIGURATION DECISION: Using GNU gettext scheme" ++ print ("CONFIGURATION DECISION: Using GNU gettext scheme") + commonEnvironment.Prepend(CCFLAGS = ['-DGNU_GETTEXT']) + if getPlatform() == "win32": + commonEnvironment.Append(LIBS=['intl']) +@@ -402,7 +402,7 @@ if commonEnvironment['useGettext'] == '1 + if getPlatform() == "sunos": + commonEnvironment.Append(LIBS=['intl']) + else: +- print "CONFIGURATION DECISION: No localisation" ++ print ("CONFIGURATION DECISION: No localisation") + + commonEnvironment = cf.Finish() + +@@ -481,9 +481,9 @@ if commonEnvironment['Word64'] == '1': + commonEnvironment.Append(CCFLAGS = ['-fPIC']) + + if commonEnvironment['useDouble'] == '0': +- print 'CONFIGURATION DECISION: Using single-precision floating point for audio samples.' ++ print ('CONFIGURATION DECISION: Using single-precision floating point for audio samples.') + else: +- print 'CONFIGURATION DECISION: Using double-precision floating point for audio samples.' ++ print ('CONFIGURATION DECISION: Using double-precision floating point for audio samples.') + commonEnvironment.Append(CPPFLAGS = ['-DUSE_DOUBLE']) + + # Define different build environments for different types of targets. +@@ -510,7 +510,7 @@ elif getPlatform() == 'darwin': + commonEnvironment.Append(CPPPATH = '/usr/local/include') + commonEnvironment.Append(CCFLAGS = "-DPIPES") + if commonEnvironment['useAltivec'] == '1': +- print 'CONFIGURATION DECISION: Using Altivec optimisation' ++ print ('CONFIGURATION DECISION: Using Altivec optimisation') + commonEnvironment.Append(CCFLAGS = "-faltivec") + elif getPlatform() == 'win32': + commonEnvironment.Append(CCFLAGS = '-D_WIN32') +@@ -551,7 +551,7 @@ elif getPlatform() == 'win32': + if compilerMicrosoft(): + commonEnvironment.Append(CCFLAGS = '/arch:sse') + if compilerIntel(): +- print 'Generating code optimized for Intel Core 2 Duo and Pentium 4 that will run on other processors also.' ++ print ('Generating code optimized for Intel Core 2 Duo and Pentium 4 that will run on other processors also.') + commonEnvironment.Append(CCFLAGS = Split('/O3 /QaxTP')) + + if getPlatform() == 'linux': +@@ -586,7 +586,7 @@ elif getPlatform() == 'darwin': + kernelstr = fout.readline() + fout.close() + OSXvers = int(kernelstr[:kernelstr.find('.')]) - 4 +- print "Mac OS X version 10.%d" % OSXvers ++ print ("Mac OS X version 10.%d" % OSXvers) + # dictionary mapping OS X version to Apple Python version + # ex. 4:3 maps OS X 10.4 to Python 2.3 + # Note that OS X 10.2 did not ship with a Python framework +@@ -594,21 +594,21 @@ elif getPlatform() == 'darwin': + OSXSystemPythonVersions = { 0:0, 1:0, 2:2, 3:3, 4:3, 5:5, 6:6, 7:7 } + sysPyVers = OSXSystemPythonVersions[OSXvers] + if OSXvers >= 2: +- print "Apple Python version is 2.%d" % sysPyVers ++ print ("Apple Python version is 2.%d" % sysPyVers) + # vers = (int(sys.hexversion) >> 24, (int(sys.hexversion) >> 16) & 255) + vers = sys.version_info + pvers = "%s.%s" % (vers[0], vers[1]) + # This logic is not quite right on OS X 10.2 and earlier + # or if the MacPython version equals the expected Apple Python version + if vers[1] == sysPyVers: +- print "Current Python version is %s, using Apple Python Framework" % pvers ++ print ("Current Python version is %s, using Apple Python Framework" % pvers) + pyBasePath = '/System/Library/Frameworks' + else: +- print "Current Python version is %s, using MacPython Framework" % pvers ++ print ("Current Python version is %s, using MacPython Framework" % pvers) + pyBasePath = '/Library/Frameworks' + if commonEnvironment['pythonVersion'] != pvers: + commonEnvironment['pythonVersion'] = pvers +- print "WARNING python version used is " + pvers ++ print ("WARNING python version used is " + pvers) + pythonIncludePath = ['%s/Python.Framework/Headers' % pyBasePath] + pythonLinkFlags = [ '-F' + pyBasePath, '-framework', 'python'] + path1 = '%s/Python.framework/Versions/Current/lib' % pyBasePath +@@ -665,15 +665,15 @@ configure = commonEnvironment.Configure( + }) + + if not configure.CheckHeader("stdio.h", language = "C"): +- print " *** Failed to compile a simple test program. The compiler is" +- print " *** possibly not set up correctly, or is used with invalid flags." +- print " *** Check config.log to find out more about the error." ++ print (" *** Failed to compile a simple test program. The compiler is") ++ print (" *** possibly not set up correctly, or is used with invalid flags.") ++ print (" *** Check config.log to find out more about the error.") + Exit(-1) + if not configure.CheckLibWithHeader("sndfile", "sndfile.h", language = "C"): +- print "The sndfile library is required to build Csound 5." ++ print ("The sndfile library is required to build Csound 5.") + Exit(-1) + if not configure.CheckLibWithHeader("pthread", "pthread.h", language = "C"): +- print "The pthread library is required to build Csound 5." ++ print ("The pthread library is required to build Csound 5.") + Exit(-1) + + # Support for GEN49 (load MP3 file) +@@ -681,24 +681,24 @@ if not configure.CheckLibWithHeader("pth + if commonEnvironment['includeWii'] != '0' and configure.CheckHeader("wiiuse.h", language = "C"): + wiifound = 1 + wiiversion = commonEnvironment['includeWii'] +- print 'CONFIGURATION DECISION: Building with Wiimote support' ++ print ('CONFIGURATION DECISION: Building with Wiimote support') + else: + wiifound = 0 +- print 'CONFIGURATION DECISION: No Wiimote support' ++ print ('CONFIGURATION DECISION: No Wiimote support') + + if commonEnvironment['includeP5Glove'] == '1' : + p5gfound = 1 +- print 'CONFIGURATION DECISION: Building with P5 Glove support' ++ print ('CONFIGURATION DECISION: Building with P5 Glove support') + else: + p5gfound = 0 +- print 'CONFIGURATION DECISION: No P5 Glove support' ++ print ('CONFIGURATION DECISION: No P5 Glove support') + + if commonEnvironment['includeSerial'] == '1' : + serialfound = 1 +- print 'CONFIGURATION DECISION: Building with Serial code support' ++ print ('CONFIGURATION DECISION: Building with Serial code support') + else: + serialfound = 0 +- print 'CONFIGURATION DECISION: No Serial code support' ++ print ('CONFIGURATION DECISION: No Serial code support') + + + #pthreadSpinlockFound = configure.CheckLibWithHeader('pthread', 'pthread.h', 'C', 'pthread_spin_lock(0);') +@@ -706,13 +706,13 @@ if getPlatform() != 'darwin': # pthreadS + commonEnvironment.Append(CPPFLAGS = ['-DHAVE_PTHREAD_SPIN_LOCK']) + pthreadBarrierFound = configure.CheckLibWithHeader('pthread', 'pthread.h', 'C', 'pthread_barrier_init(0, NULL, 0);') + if pthreadBarrierFound: +- print 'CONFIGURATION DECISION: Using HAVE_PTHREAD_BARRIER_INIT' ++ print ('CONFIGURATION DECISION: Using HAVE_PTHREAD_BARRIER_INIT') + commonEnvironment.Append(CPPFLAGS = ['-DHAVE_PTHREAD_BARRIER_INIT']) + else: +- print 'CONFIGURATION DECISION: Not using HAVE_PTHREAD_BARRIER_INIT' ++ print ('CONFIGURATION DECISION: Not using HAVE_PTHREAD_BARRIER_INIT') + openMpFound = configure.CheckLibWithHeader('gomp', 'omp.h', 'C++', 'int n = omp_get_num_threads();') + if openMpFound and pthreadBarrierFound and commonEnvironment['useOpenMP'] == '1': +- print 'CONFIGURATION DECISION: Using OpenMP.' ++ print ('CONFIGURATION DECISION: Using OpenMP.') + commonEnvironment.Append(CFLAGS = ['-fopenmp']) + commonEnvironment.Append(CXXFLAGS = ['-fopenmp']) + commonEnvironment.Append(CPPFLAGS = ['-DUSE_OPENMP']) +@@ -725,7 +725,7 @@ else: + syncLockTestAndSetFound = configure.CheckLibWithHeader('m', 'stdint.h', 'C', '__sync_lock_test_and_set((int32_t *)0, 0);') + if syncLockTestAndSetFound: + commonEnvironment.Append(CPPFLAGS = ['-DHAVE_SYNC_LOCK_TEST_AND_SET']) +- print 'found sync lock' ++ print ('found sync lock') + vstSdkFound = configure.CheckHeader("frontends/CsoundVST/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.h", language = "C++") + portaudioFound = configure.CheckHeader("portaudio.h", language = "C") + #portmidiFound = configure.CheckHeader("portmidi.h", language = "C") +@@ -758,8 +758,8 @@ midiPluginSdkFound = configure.CheckHead + luaFound = configure.CheckHeader("lua.h", language = "C") + #print 'LUA: %s' % (['no', 'yes'][int(luaFound)]) + swigFound = 'swig' in commonEnvironment['TOOLS'] +-print 'Checking for SWIG... %s' % (['no', 'yes'][int(swigFound)]) +-print "Python Version: " + commonEnvironment['pythonVersion'] ++print ('Checking for SWIG... %s' % (['no', 'yes'][int(swigFound)])) ++print ("Python Version: " + commonEnvironment['pythonVersion']) + pythonFound = configure.CheckHeader("Python.h", language = "C") + if not pythonFound: + if getPlatform() == 'darwin': +@@ -827,7 +827,7 @@ elif configure.CheckHeader("dirent.h", l + commonEnvironment.Append(CPPFLAGS = ['-DHAVE_DIRENT_H']) + + if not configure.CheckSndFile(): +- print "The sndfile library >= 1.0.19 is required to build Csound 5." ++ print ("The sndfile library >= 1.0.19 is required to build Csound 5.") + Exit(-1) + + # Package contents. +@@ -881,9 +881,9 @@ lexBuild = csoundLibraryEnvironment.CFil + preBuild = csoundLibraryEnvironment.CFile(target = 'Engine/csound_prelex.c', + source = 'Engine/csound_pre.lex') + if commonEnvironment['NewParserDebug'] != '0': +- print 'CONFIGURATION DECISION: Building with new parser debugging' ++ print ('CONFIGURATION DECISION: Building with new parser debugging') + csoundLibraryEnvironment.Append(CPPFLAGS = ['-DPARSER_DEBUG=1']) +-else: print 'CONFIGURATION DECISION: Not building with new parser debugging' ++else: print ('CONFIGURATION DECISION: Not building with new parser debugging') + + csoundLibraryEnvironment.Append(CPPFLAGS = ['-D__BUILDING_LIBCSOUND']) + if commonEnvironment['buildRelease'] != '0': +@@ -978,7 +978,7 @@ if buildOSXFramework: + tmp += ['%s/Resources/Opcodes64' % OSXFrameworkCurrentVersion] + for i in tmp: + try: +- os.mkdir(i, 0755) ++ os.mkdir(i, 0o755) + except: + pass + # set up symbolic links +@@ -1007,7 +1007,7 @@ def MacOSX_InstallHeader(headerName): + + def MacOSX_InstallPlugin(fileName): + if buildOSXFramework: +- print "COPYINNG plugin" ++ print ("COPYINNG plugin") + pluginDir = '%s/Resources/Opcodes' % OSXFrameworkCurrentVersion + if commonEnvironment['useDouble'] != '0': + pluginDir += '64' +@@ -1194,7 +1194,7 @@ libCsoundSources += newParserSources + + csoundLibraryEnvironment.Append(CCFLAGS='-fPIC') + if commonEnvironment['dynamicCsoundLibrary'] == '1': +- print 'CONFIGURATION DECISION: Building dynamic Csound library' ++ print ('CONFIGURATION DECISION: Building dynamic Csound library') + if getPlatform() == 'linux' or getPlatform() == 'sunos': + libName = 'lib' + csoundLibraryName + '.so' + libName2 = libName + '.' + csoundLibraryVersion +@@ -1246,7 +1246,7 @@ if commonEnvironment['dynamicCsoundLibra + csoundLibrary = csoundDynamicLibraryEnvironment.SharedLibrary( + csoundLibraryName, libCsoundSources) + else: +- print 'CONFIGURATION DECISION: Building static Csound library' ++ print ('CONFIGURATION DECISION: Building static Csound library') + csoundLibraryEnvironment.Append(CCFLAGS='-fPIC') + csoundLibrary = csoundLibraryEnvironment.Library( + csoundLibraryName, libCsoundSources) +@@ -1316,7 +1316,7 @@ def makePythonModule(env, targetName, so + pyModule_ = env.SharedLibrary('_%s' % targetName, sources, SHLIBSUFFIX = '.pyd') + if getPlatform() == 'win32' and pythonLibs[0] < 'python24': + Depends(pyModule_, pythonImportLibrary) +- print "PYTHON MODULE %s..." % targetName ++ print ("PYTHON MODULE %s..." % targetName) + pythonModules.append(pyModule_) + pythonModules.append('%s.py' % targetName) + return pyModule_ +@@ -1330,15 +1330,15 @@ def makeLuaModule(env, targetName, srcs) + luaModule_ = env.SharedLibrary('%s' % targetName, srcs, SHLIBPREFIX="", SHLIBSUFFIX = '.so') + else: + luaModule_ = env.SharedLibrary('%s' % targetName, srcs, SHLIBSUFFIX = '.dll') +- print "LUA MODULE %s..." % targetName ++ print ("LUA MODULE %s..." % targetName) + return luaModule_ + + # libcsnd.so is used by all wrapper libraries. + + if not (commonEnvironment['buildInterfaces'] == '1'): +- print 'CONFIGURATION DECISION: Not building Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Not building Csound C++ interface library.') + else: +- print 'CONFIGURATION DECISION: Building Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Building Csound C++ interface library.') + csoundInterfacesEnvironment.Append(CPPPATH = ['interfaces']) + if musicXmlFound: + csoundInterfacesEnvironment.Prepend(LIBS = 'musicxml2') +@@ -1416,36 +1416,36 @@ else: + option = '-I' + option + csoundWrapperEnvironment.Append(SWIGFLAGS = [option]) + swigflags = csoundWrapperEnvironment['SWIGFLAGS'] +- print 'swigflags:', swigflags ++ print ('swigflags:', swigflags) + luaWrapper = None + if not (luaFound and commonEnvironment['buildLuaWrapper'] != '0'): +- print 'CONFIGURATION DECISION: Not building Lua wrapper to Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Not building Lua wrapper to Csound C++ interface library.') + else: +- print 'CONFIGURATION DECISION: Building Lua wrapper to Csound C++ interface library.' +- luaWrapperEnvironment = csoundWrapperEnvironment.Clone() ++ print ('CONFIGURATION DECISION: Building Lua wrapper to Csound C++ interface library.') ++ luaWrapperEnvironment = csoundWrapperEnvironment.Clone() + if getPlatform() != 'win32': + csoundWrapperEnvironment.Append(CPPPATH=['/usr/include/lua5.1']) + if getPlatform() == 'win32': + csoundLuaInterface = luaWrapperEnvironment.SharedObject( + 'interfaces/lua_interface.i', + SWIGFLAGS = [swigflags, '-lua', '-module', 'luaCsnd', '-outdir', '.']) +- luaWrapperEnvironment.Prepend(LIBS = ['csnd','lua51']) +- else: +- csoundLuaInterface = luaWrapperEnvironment.SharedObject( +- 'interfaces/lua_interface.i', +- SWIGFLAGS = [swigflags, '-lua', '-module', 'luaCsnd', '-outdir', '.']) ++ luaWrapperEnvironment.Prepend(LIBS = ['csnd','lua51']) ++ else: ++ csoundLuaInterface = luaWrapperEnvironment.SharedObject( ++ 'interfaces/lua_interface.i', ++ SWIGFLAGS = [swigflags, '-lua', '-module', 'luaCsnd', '-outdir', '.']) + luaWrapperEnvironment.Prepend(LIBS = ['csnd','luajit-5.1']) + luaWrapper = makeLuaModule(luaWrapperEnvironment, 'luaCsnd', [csoundLuaInterface]) +- Depends(luaWrapper, csoundLuaInterface) ++ Depends(luaWrapper, csoundLuaInterface) + + if not (javaFound and commonEnvironment['buildJavaWrapper'] != '0'): +- print 'CONFIGURATION DECISION: Not building Java wrapper to Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Not building Java wrapper to Csound C++ interface library.') + else: +- print 'CONFIGURATION DECISION: Building Java wrapper to Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Building Java wrapper to Csound C++ interface library.') + javaWrapperEnvironment = csoundWrapperEnvironment.Clone() + if getPlatform() == 'darwin': + javaWrapperEnvironment.Append(LINKFLAGS = ['-L.', '-l_csnd']) +- else: javaWrapperEnvironment.Prepend(LIBS = ['csnd']) ++ else: javaWrapperEnvironment.Prepend(LIBS = ['csnd']) + if getPlatform() == 'darwin': + javaWrapperEnvironment.Append(CPPPATH = + ['/System/Library/Frameworks/JavaVM.framework/Headers']) +@@ -1485,7 +1485,7 @@ else: + target = './interfaces', source = './interfaces', + JAVACFLAGS = ['-source', '5', '-target', '5']) + try: +- os.mkdir('interfaces/csnd', 0755) ++ os.mkdir('interfaces/csnd', 0o755) + except: + pass + jcsndJar = javaWrapperEnvironment.Jar( +@@ -1495,57 +1495,57 @@ else: + # Please do not remove these two variables, needed to get things to build on Windows... + pythonWrapper = None + if not (pythonFound and commonEnvironment['buildPythonWrapper'] != '0'): +- print 'CONFIGURATION DECISION: Not building Python wrapper to Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Not building Python wrapper to Csound C++ interface library.') + else: +- print 'CONFIGURATION DECISION: Building Python wrapper to Csound C++ interface library.' ++ print ('CONFIGURATION DECISION: Building Python wrapper to Csound C++ interface library.') + pythonWrapperEnvironment = csoundWrapperEnvironment.Clone() + if getPlatform() == 'darwin': + pythonWrapperEnvironment.Append(LINKFLAGS = ['-L.', '-l_csnd']) + else: pythonWrapperEnvironment.Prepend(LIBS = Split('csnd')) +- if getPlatform() == 'linux': +- os.spawnvp(os.P_WAIT, 'rm', ['rm', '-f', '_csnd.so']) +- # os.symlink('lib_csnd.so', '_csnd.so') +- pythonWrapperEnvironment.Append(LINKFLAGS = ['-Wl,-rpath-link,.']) +- if getPlatform() == 'darwin': ++ if getPlatform() == 'linux': ++ os.spawnvp(os.P_WAIT, 'rm', ['rm', '-f', '_csnd.so']) ++ # os.symlink('lib_csnd.so', '_csnd.so') ++ pythonWrapperEnvironment.Append(LINKFLAGS = ['-Wl,-rpath-link,.']) ++ if getPlatform() == 'darwin': + #pythonWrapperEnvironment.Append(LINKFLAGS = pythonLinkFlags) +- if commonEnvironment['dynamicCsoundLibrary'] == '1': +- #ilibName = "lib_csnd.dylib" +- #ilibVersion = csoundLibraryVersion +- #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-Xlinker -compatibility_version -Xlinker %s''' % ilibVersion)) +- #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-Xlinker -current_version -Xlinker %s''' % ilibVersion)) +- #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-install_name /Library/Frameworks/%s/%s''' % (OSXFrameworkCurrentVersion, ilibName))) +- pythonWrapperEnvironment.Append(LINKFLAGS = Split('''-undefined dynamic_lookup''')) ++ if commonEnvironment['dynamicCsoundLibrary'] == '1': ++ #ilibName = "lib_csnd.dylib" ++ #ilibVersion = csoundLibraryVersion ++ #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-Xlinker -compatibility_version -Xlinker %s''' % ilibVersion)) ++ #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-Xlinker -current_version -Xlinker %s''' % ilibVersion)) ++ #pythonWrapperEnvironment.Append(SHLINKFLAGS = Split('''-install_name /Library/Frameworks/%s/%s''' % (OSXFrameworkCurrentVersion, ilibName))) ++ pythonWrapperEnvironment.Append(LINKFLAGS = Split('''-undefined dynamic_lookup''')) + pythonWrapperEnvironment.Append(CPPPATH = pythonIncludePath) +- #pythonWrapper = pythonWrapperEnvironment.SharedLibrary('_csnd', pythonWrapperSources) +- pyVersToken = '-DPYTHON_24_or_newer' +- csoundPythonInterface = pythonWrapperEnvironment.SharedObject( +- 'interfaces/python_interface.i', +- SWIGFLAGS = [swigflags, '-python', '-outdir', '.', pyVersToken]) +- pythonWrapperEnvironment.Clean('.', 'interfaces/python_interface_wrap.h') +- #try: os.symlink('lib_csnd.dylib', 'libcsnd.dylib') +- #except: print "link exists..." +- else: +- pythonWrapperEnvironment.Append(LINKFLAGS = pythonLinkFlags) +- pythonWrapperEnvironment.Prepend(LIBPATH = pythonLibraryPath) +- if getPlatform() == 'win32': +- pythonWrapperEnvironment.Prepend(LIBS = pythonLibs) +- pythonWrapperEnvironment.Append(CPPPATH = pythonIncludePath) +- fixCFlagsForSwig(pythonWrapperEnvironment) +- pyVersToken = '-DPYTHON_24_or_newer' +- csoundPythonInterface = pythonWrapperEnvironment.SharedObject( +- 'interfaces/python_interface.i', +- SWIGFLAGS = [swigflags, '-python', '-outdir', '.', pyVersToken]) +- pythonWrapperEnvironment.Clean('.', 'interfaces/python_interface_wrap.h') +- if getPlatform() == 'win32' and pythonLibs[0] < 'python24' and compilerGNU(): +- Depends(csoundPythonInterface, pythonImportLibrary) +- pythonWrapper = makePythonModule(pythonWrapperEnvironment, 'csnd', [csoundPythonInterface]) +- pythonModules.append('csnd.py') +- Depends(pythonWrapper, csnd) ++ #pythonWrapper = pythonWrapperEnvironment.SharedLibrary('_csnd', pythonWrapperSources) ++ pyVersToken = '-DPYTHON_24_or_newer' ++ csoundPythonInterface = pythonWrapperEnvironment.SharedObject( ++ 'interfaces/python_interface.i', ++ SWIGFLAGS = [swigflags, '-python', '-outdir', '.', pyVersToken]) ++ pythonWrapperEnvironment.Clean('.', 'interfaces/python_interface_wrap.h') ++ #try: os.symlink('lib_csnd.dylib', 'libcsnd.dylib') ++ #except: print ("link exists...") ++ else: ++ pythonWrapperEnvironment.Append(LINKFLAGS = pythonLinkFlags) ++ pythonWrapperEnvironment.Prepend(LIBPATH = pythonLibraryPath) ++ if getPlatform() == 'win32': ++ pythonWrapperEnvironment.Prepend(LIBS = pythonLibs) ++ pythonWrapperEnvironment.Append(CPPPATH = pythonIncludePath) ++ fixCFlagsForSwig(pythonWrapperEnvironment) ++ pyVersToken = '-DPYTHON_24_or_newer' ++ csoundPythonInterface = pythonWrapperEnvironment.SharedObject( ++ 'interfaces/python_interface.i', ++ SWIGFLAGS = [swigflags, '-python', '-outdir', '.', pyVersToken]) ++ pythonWrapperEnvironment.Clean('.', 'interfaces/python_interface_wrap.h') ++ if getPlatform() == 'win32' and pythonLibs[0] < 'python24' and compilerGNU(): ++ Depends(csoundPythonInterface, pythonImportLibrary) ++ pythonWrapper = makePythonModule(pythonWrapperEnvironment, 'csnd', [csoundPythonInterface]) ++ pythonModules.append('csnd.py') ++ Depends(pythonWrapper, csnd) + + if commonEnvironment['generatePdf'] == '0': +- print 'CONFIGURATION DECISION: Not generating Csound API PDF documentation.' ++ print ('CONFIGURATION DECISION: Not generating Csound API PDF documentation.') + else: +- print 'CONFIGURATION DECISION: Generating Csound API PDF documentation.' ++ print ('CONFIGURATION DECISION: Generating Csound API PDF documentation.') + refmanTex = commonEnvironment.Command('doc/latex/refman.tex', 'Doxyfile', ['doxygen $SOURCE']) + Depends(refmanTex, csoundLibrary) + csoundPdf = commonEnvironment.Command('refman.pdf', 'doc/latex/refman.tex', ['pdflatex --include-directory=doc/latex --interaction=nonstopmode --job-name=CsoundAPI $SOURCE']) +@@ -1678,9 +1678,9 @@ makePlugin(pluginEnvironment, 'cellular' + ############################################################################# + # UDP opcodes + if commonEnvironment['useUDP'] == '0': +- print "CONFIGURATION DECISION: Not building UDP plugins." ++ print ("CONFIGURATION DECISION: Not building UDP plugins.") + else: +- print "CONFIGURATION DECISION: Building UDP plugins." ++ print ("CONFIGURATION DECISION: Building UDP plugins.") + udpEnvironment = pluginEnvironment.Clone() + udpEnvironment.Append(LIBS = ['pthread']) + if getPlatform() == 'win32': +@@ -1692,9 +1692,9 @@ else: + + # OSC opcodes + if not (commonEnvironment['useOSC'] == '1' and oscFound): +- print "CONFIGURATION DECISION: Not building OSC plugin." ++ print ("CONFIGURATION DECISION: Not building OSC plugin.") + else: +- print "CONFIGURATION DECISION: Building OSC plugin." ++ print ("CONFIGURATION DECISION: Building OSC plugin.") + oscEnvironment = pluginEnvironment.Clone() + oscEnvironment.Append(LIBS = ['lo', 'pthread']) + if getPlatform() == 'win32': +@@ -1728,32 +1728,32 @@ if jackFound and commonEnvironment['useJ + jpluginEnvironment.Append(LIBS = ['jackdmp']) + elif getPlatform() == 'darwin': + jpluginEnvironment.Append(LIBS = ['pthread']) +- jpluginEnvironment.Append(LINKFLAGS = ['-framework', 'Jackmp']) ++ jpluginEnvironment.Append(LINKFLAGS = ['-framework', 'Jackmp']) + makePlugin(jpluginEnvironment, 'jackTransport', 'Opcodes/jackTransport.c') + makePlugin(jpluginEnvironment, 'jacko', 'Opcodes/jacko.cpp') + if boostFound: + makePlugin(pluginEnvironment, 'chua', 'Opcodes/chua/ChuaOscillator.cpp') + if gmmFound and commonEnvironment['useDouble'] != '0': + makePlugin(pluginEnvironment, 'linear_algebra', 'Opcodes/linear_algebra.cpp') +- print 'CONFIGURATION DECISION: Building linear algebra opcodes.' ++ print ('CONFIGURATION DECISION: Building linear algebra opcodes.') + else: +- print 'CONFIGURATION DECISION: Not building linear algebra opcodes.' ++ print ('CONFIGURATION DECISION: Not building linear algebra opcodes.') + + if commonEnvironment['buildImageOpcodes'] == '1': + if getPlatform() == 'win32': + if configure.CheckHeader("png.h", language="C") and zlibhfound: +- print 'CONFIGURATION DECISION: Building image opcodes' ++ print ('CONFIGURATION DECISION: Building image opcodes') + imEnv = pluginEnvironment.Clone() + imEnv.Append(LIBS= Split(''' fltk_png fltk_z ''')) + makePlugin(imEnv, 'image', ['Opcodes/imageOpcodes.c']) + else: + if configure.CheckHeader("png.h", language="C") and zlibhfound: +- print 'CONFIGURATION DECISION: Building image opcodes' ++ print ('CONFIGURATION DECISION: Building image opcodes') + imEnv = pluginEnvironment.Clone() + imEnv.Append(LIBS= Split(''' png z ''')) + makePlugin(imEnv, 'image', ['Opcodes/imageOpcodes.c']) + else: +- print 'CONFIGURATION DECISION: Not building image opcodes' ++ print ('CONFIGURATION DECISION: Not building image opcodes') + + # FLTK widgets + +@@ -1767,11 +1767,11 @@ if getPlatform() != 'darwin': + if ((commonEnvironment['buildCsoundVST'] == '1') and boostFound and fltkFound): + try: + if vstEnvironment.ParseConfig(fltkConfigFlags): +- print 'Parsed fltk-config.' ++ print ('Parsed fltk-config.') + else: +- print 'Could not parse fltk-config.' ++ print ('Could not parse fltk-config.') + except: +- print 'Exception when attempting to parse fltk-config.' ++ print ('Exception when attempting to parse fltk-config.') + if getPlatform() == 'darwin': + vstEnvironment.Append(LIBS = ['fltk', 'fltk_images']) # png z jpeg are not on OSX at the mo + if getPlatform() == 'win32': +@@ -1804,7 +1804,7 @@ else: + csoundProgramEnvironment.Append(LINKFLAGS = Split('''-framework Carbon -framework CoreAudio -framework CoreMIDI''')) + + if (not (commonEnvironment['useFLTK'] == '1' and fltkFound)): +- print 'CONFIGURATION DECISION: Not building with FLTK graphs and widgets.' ++ print ('CONFIGURATION DECISION: Not building with FLTK graphs and widgets.') + else: + widgetsEnvironment = pluginEnvironment.Clone() + if (commonEnvironment['buildvst4cs'] == '1'): +@@ -1832,9 +1832,9 @@ else: + ['InOut/FL_graph.cpp', 'InOut/winFLTK.c', 'InOut/widgets.cpp']) + + if commonEnvironment['buildVirtual'] == '0' or not fltk117Found: +- print "CONFIGURATION DECISION: Not building Virtual Keyboard plugin. (FLTK 1.1.7+ required)" ++ print ("CONFIGURATION DECISION: Not building Virtual Keyboard plugin. (FLTK 1.1.7+ required)") + else: +- print "CONFIGURATION DECISION: Building Virtual Keyboard plugin." ++ print ("CONFIGURATION DECISION: Building Virtual Keyboard plugin.") + widgetsEnvironment.Append(CPPPATH = ['./InOut', './InOut/virtual_keyboard']) + makePlugin(widgetsEnvironment, 'virtual', + ['InOut/virtual_keyboard/FLTKKeyboard.cpp', +@@ -1850,7 +1850,7 @@ else: + # REAL TIME AUDIO AND MIDI + + if commonEnvironment['useCoreAudio'] == '1' and getPlatform() == 'darwin': +- print "CONFIGURATION DECISION: Building CoreAudio plugin." ++ print ("CONFIGURATION DECISION: Building CoreAudio plugin.") + coreaudioEnvironment = pluginEnvironment.Clone() + coreaudioEnvironment.Append(CCFLAGS = ['-I/System/Library/Frameworks/CoreAudio.framework/Headers']) + # makePlugin(coreaudioEnvironment, 'rtcoreaudio', ['InOut/rtcoreaudio.c']) +@@ -1858,18 +1858,18 @@ if commonEnvironment['useCoreAudio'] == + coreaudioEnvironment.Append(LINKFLAGS = ['-framework', 'AudioUnit']) + makePlugin(coreaudioEnvironment, 'rtauhal', ['InOut/rtauhal.c']) + else: +- print "CONFIGURATION DECISION: Not building CoreAudio plugin." ++ print ("CONFIGURATION DECISION: Not building CoreAudio plugin.") + + if not (commonEnvironment['useALSA'] == '1' and alsaFound): +- print "CONFIGURATION DECISION: Not building ALSA plugin." ++ print ("CONFIGURATION DECISION: Not building ALSA plugin.") + else: +- print "CONFIGURATION DECISION: Building ALSA plugin." ++ print ("CONFIGURATION DECISION: Building ALSA plugin.") + alsaEnvironment = pluginEnvironment.Clone() + alsaEnvironment.Append(LIBS = ['asound', 'pthread']) + makePlugin(alsaEnvironment, 'rtalsa', ['InOut/rtalsa.c']) + + if pulseaudioFound and (getPlatform() == 'linux' or getPlatform() == 'sunos'): +- print "CONFIGURATION DECISION: Building PulseAudio plugin" ++ print ("CONFIGURATION DECISION: Building PulseAudio plugin") + pulseaudioEnv = pluginEnvironment.Clone() + pulseaudioEnv.Append(LIBS = ['pulse-simple']) + makePlugin(pulseaudioEnv, 'rtpulse', ['InOut/rtpulse.c']) +@@ -1880,9 +1880,9 @@ if getPlatform() == 'win32': + makePlugin(winmmEnvironment, 'rtwinmm', ['InOut/rtwinmm.c']) + + if not (commonEnvironment['usePortAudio'] == '1' and portaudioFound): +- print "CONFIGURATION DECISION: Not building PortAudio module." ++ print ("CONFIGURATION DECISION: Not building PortAudio module.") + else: +- print "CONFIGURATION DECISION: Building PortAudio module." ++ print ("CONFIGURATION DECISION: Building PortAudio module.") + portaudioEnvironment = pluginEnvironment.Clone() + if getPlatform() == 'win32': + portaudioEnvironment.Append(LIBS = ['portaudio']) +@@ -1890,7 +1890,7 @@ else: + portaudioEnvironment.Append(LIBS = ['portaudio']) + if (getPlatform() == 'linux'): + if (commonEnvironment['useJack']=='1' and jackFound): +- print "Adding Jack library for PortAudio" ++ print ("Adding Jack library for PortAudio") + portaudioEnvironment.Append(LIBS = ['jack']) + portaudioEnvironment.Append(LIBS = ['asound', 'pthread']) + makePlugin(portaudioEnvironment, 'rtpa', ['InOut/rtpa.c']) +@@ -1902,9 +1902,9 @@ else: + makePlugin(portaudioEnvironment, 'rtpa', ['InOut/rtpa.c']) + + if not (commonEnvironment['useJack'] == '1' and jackFound): +- print "CONFIGURATION DECISION: Not building JACK plugin." ++ print ("CONFIGURATION DECISION: Not building JACK plugin.") + else: +- print "CONFIGURATION DECISION: Building JACK plugin." ++ print ("CONFIGURATION DECISION: Building JACK plugin.") + jackEnvironment = pluginEnvironment.Clone() + if getPlatform() == 'linux': + jackEnvironment.Append(LIBS = ['jack', 'asound', 'pthread']) +@@ -1915,7 +1915,7 @@ else: + makePlugin(jackEnvironment, 'rtjack', ['InOut/rtjack.c']) + + if commonEnvironment['usePortMIDI'] == '1' and portmidiFound: +- print 'CONFIGURATION DECISION: Building with PortMIDI.' ++ print ('CONFIGURATION DECISION: Building with PortMIDI.') + portMidiEnvironment = pluginEnvironment.Clone() + portMidiEnvironment.Append(LIBS = ['portmidi']) + if getPlatform() != 'darwin' and getPlatform() != 'win32': +@@ -1927,7 +1927,7 @@ if commonEnvironment['usePortMIDI'] == ' + portMidiEnvironment.Append(LIBS = ['asound']) + makePlugin(portMidiEnvironment, 'pmidi', ['InOut/pmidi.c']) + else: +- print 'CONFIGURATION DECISION: Not building with PortMIDI.' ++ print ('CONFIGURATION DECISION: Not building with PortMIDI.') + + if getPlatform() == 'darwin': + coreMidiEnvironment = pluginEnvironment.Clone() +@@ -1939,30 +1939,30 @@ if getPlatform() == 'darwin': + # FLUIDSYNTH OPCODES + + if not configure.CheckHeader("fluidsynth.h", language = "C"): +- print "CONFIGURATION DECISION: Not building fluid opcodes." ++ print ("CONFIGURATION DECISION: Not building fluid opcodes.") + else: +- print "CONFIGURATION DECISION: Building fluid opcodes." ++ print ("CONFIGURATION DECISION: Building fluid opcodes.") + fluidEnvironment = pluginEnvironment.Clone() + if getPlatform() == 'win32': +- if compilerGNU(): +- fluidEnvironment.Append(LIBS = ['fluidsynth']) +- else: +- fluidEnvironment.Append(LIBS = ['fluidsynth']) +- fluidEnvironment.Append(CPPFLAGS = ['-DFLUIDSYNTH_NOT_A_DLL']) +- fluidEnvironment.Append(LIBS = ['winmm', 'dsound']) +- fluidEnvironment.Append(LIBS = csoundWindowsLibraries) ++ if compilerGNU(): ++ fluidEnvironment.Append(LIBS = ['fluidsynth']) ++ else: ++ fluidEnvironment.Append(LIBS = ['fluidsynth']) ++ fluidEnvironment.Append(CPPFLAGS = ['-DFLUIDSYNTH_NOT_A_DLL']) ++ fluidEnvironment.Append(LIBS = ['winmm', 'dsound']) ++ fluidEnvironment.Append(LIBS = csoundWindowsLibraries) + elif getPlatform() == 'linux' or getPlatform() == 'darwin': +- fluidEnvironment.Append(LIBS = ['fluidsynth']) +- fluidEnvironment.Append(LIBS = ['pthread']) ++ fluidEnvironment.Append(LIBS = ['fluidsynth']) ++ fluidEnvironment.Append(LIBS = ['pthread']) + makePlugin(fluidEnvironment, 'fluidOpcodes', + ['Opcodes/fluidOpcodes/fluidOpcodes.cpp']) + + # VST HOST OPCODES + + if (commonEnvironment['buildvst4cs'] != '1'): +- print "CONFIGURATION DECISION: Not building vst4cs opcodes." ++ print ("CONFIGURATION DECISION: Not building vst4cs opcodes.") + else: +- print "CONFIGURATION DECISION: Building vst4cs opcodes." ++ print ("CONFIGURATION DECISION: Building vst4cs opcodes.") + if (getPlatform() == 'win32'or getPlatform() == 'linux') and fltkFound: + vst4Environment = vstEnvironment.Clone() + vst4Environment.Append(CPPFLAGS = ['-DCS_VSTHOST']) +@@ -1996,19 +1996,19 @@ else: + # DSSI HOST OPCODES + + if (commonEnvironment['buildDSSI'] == '1' and (getPlatform() == 'linux' or getPlatform() == 'darwin') and configure.CheckHeader("ladspa.h", language = "C")) and configure.CheckHeader("dssi.h", language = "C"): +- print "CONFIGURATION DECISION: Building DSSI plugin host opcodes." ++ print ("CONFIGURATION DECISION: Building DSSI plugin host opcodes.") + dssiEnvironment = pluginEnvironment.Clone() + dssiEnvironment.Append(LIBS = ['dl']) + makePlugin(dssiEnvironment, 'dssi4cs', + ['Opcodes/dssi4cs/src/load.c', 'Opcodes/dssi4cs/src/dssi4cs.c']) + else: +- print "CONFIGURATION DECISION: Not building DSSI plugin host opcodes." ++ print ("CONFIGURATION DECISION: Not building DSSI plugin host opcodes.") + + # Loris opcodes + #if not (commonEnvironment['buildLoris'] == '1' and configure.CheckHeader("Opcodes/Loris/src/loris.h") and configure.CheckHeader("fftw3.h")): +-# print "CONFIGURATION DECISION: Not building Loris Python extension and Csound opcodes." ++# print ("CONFIGURATION DECISION: Not building Loris Python extension and Csound opcodes."( + #else: +-# print "CONFIGURATION DECISION: Building Loris Python extension and Csound opcodes." ++# print ("CONFIGURATION DECISION: Building Loris Python extension and Csound opcodes.") + # For Loris, we build only the loris Python extension module and + # the Csound opcodes (modified for Csound 5). + # It is assumed that you have copied all contents of the Loris +@@ -2065,9 +2065,9 @@ else: + # STK opcodes + + if not (commonEnvironment['buildStkOpcodes'] == '1' and stkFound): +- print 'CONFIGURATION DECISION: Not building STK opcodes.' ++ print ('CONFIGURATION DECISION: Not building STK opcodes.') + else: +- print 'CONFIGURATION DECISION: Building STK opcodes.' ++ print ('CONFIGURATION DECISION: Building STK opcodes.') + # For the STK opcodes, the STK distribution include, src, and rawwaves + # directories should be copied thusly: + # csound5/Opcodes/stk/include +@@ -2126,9 +2126,9 @@ else: + # Python opcodes + + if not (pythonFound and commonEnvironment['buildPythonOpcodes'] != '0'): +- print "CONFIGURATION DECISION: Not building Python opcodes." ++ print ("CONFIGURATION DECISION: Not building Python opcodes.") + else: +- print "CONFIGURATION DECISION: Building Python opcodes." ++ print ("CONFIGURATION DECISION: Building Python opcodes.") + pyEnvironment = pluginEnvironment.Clone() + if getPlatform() != 'darwin': + pyEnvironment.Append(CPPPATH = pythonIncludePath) +@@ -2152,9 +2152,9 @@ else: + # Python opcodes + + if not (commonEnvironment['buildLuaOpcodes'] != '0'): +- print "CONFIGURATION DECISION: Not building Lua opcodes." ++ print ("CONFIGURATION DECISION: Not building Lua opcodes.") + else: +- print "CONFIGURATION DECISION: Building Lua opcodes." ++ print ("CONFIGURATION DECISION: Building Lua opcodes.") + luaEnvironment = pluginEnvironment.Clone() + + if getPlatform() == 'linux': +@@ -2269,9 +2269,9 @@ def fluidTarget(env, dirName, baseName, + # Build Csound5gui (FLTK frontend) + + if not (commonEnvironment['buildCsound5GUI'] != '0' and fltk117Found): +- print 'CONFIGURATION DECISION: Not building FLTK CSOUND5GUI frontend.' ++ print ('CONFIGURATION DECISION: Not building FLTK CSOUND5GUI frontend.') + else: +- print 'CONFIGURATION DECISION: Building FLTK GUI CSOUND5GUI frontend.' ++ print ('CONFIGURATION DECISION: Building FLTK GUI CSOUND5GUI frontend.') + csound5GUIEnvironment = csoundProgramEnvironment.Clone() + csound5GUIEnvironment.Append(CPPPATH = ['./interfaces']) + if jackFound: +@@ -2347,9 +2347,9 @@ else: + # Build CsoundAC + + if not ((commonEnvironment['buildCsoundAC'] == '1') and fltkFound and boostFound and fltkFound and eigenFound): +- print 'CONFIGURATION DECISION: Not building CsoundAC extension module for Csound with algorithmic composition.' ++ print ('CONFIGURATION DECISION: Not building CsoundAC extension module for Csound with algorithmic composition.') + else: +- print 'CONFIGURATION DECISION: Building CsoundAC extension module for Csound with algorithmic composition.' ++ print ('CONFIGURATION DECISION: Building CsoundAC extension module for Csound with algorithmic composition.') + acEnvironment = vstEnvironment.Clone() + if getPlatform() == 'linux': + acEnvironment.ParseConfig('fltk-config --use-images --cflags --cxxflags --ldflags') +@@ -2414,7 +2414,7 @@ else: + for option in acEnvironment['CPPPATH']: + option = '-I' + option + acEnvironment.Append(SWIGFLAGS = [option]) +- print 'PATH =', commonEnvironment['ENV']['PATH'] ++ print ('PATH =', commonEnvironment['ENV']['PATH']) + csoundAcSources = Split(''' + frontends/CsoundAC/allegro.cpp + frontends/CsoundAC/allegrord.cpp +@@ -2485,7 +2485,7 @@ else: + csoundAcPythonModule = makePythonModule(pythonCsoundACWrapperEnvironment, 'CsoundAC', + csoundAcPythonWrapper) + if getPlatform() == 'win32' and pythonLibs[0] < 'python24' and compilerGNU(): +- Depends(csoundAcPythonModule, pythonImportLibrary) ++ Depends(csoundAcPythonModule, pythonImportLibrary) + pythonModules.append('CsoundAC.py') + Depends(csoundAcPythonModule, pythonWrapper) + Depends(csoundAcPythonModule, csoundac) +@@ -2510,9 +2510,9 @@ else: + # Build CsoundVST + + if not ((commonEnvironment['buildCsoundVST'] == '1') and boostFound and fltkFound): +- print 'CONFIGURATION DECISION: Not building CsoundVST plugin and standalone.' ++ print ('CONFIGURATION DECISION: Not building CsoundVST plugin and standalone.') + else: +- print 'CONFIGURATION DECISION: Building CsoundVST plugin and standalone.' ++ print ('CONFIGURATION DECISION: Building CsoundVST plugin and standalone.') + headers += glob.glob('frontends/CsoundVST/*.h') + headers += glob.glob('frontends/CsoundVST/*.hpp') + vstEnvironment.Prepend(CPPPATH = ['interfaces', 'frontends/CsoundVST']) +@@ -2544,7 +2544,7 @@ else: + vstEnvironment.Append(LIBS = Split('fltk fltk_images fltk_png fltk_jpeg fltk_z')) + else: + vstEnvironment.Append(LIBS = Split('csound64 csnd fltk fltkimages fltkpng fltkjpeg fltkz')) +- print 'PATH =', commonEnvironment['ENV']['PATH'] ++ print ('PATH =', commonEnvironment['ENV']['PATH']) + csoundVstSources = Split(''' + frontends/CsoundVST/vstsdk2.4/public.sdk/source/vst2.x/audioeffect.cpp + frontends/CsoundVST/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.cpp +@@ -2578,9 +2578,9 @@ else: + + # Build csoundapi~ (pd class) + +-print commonEnvironment['buildPDClass'], pdhfound ++print (commonEnvironment['buildPDClass'], pdhfound) + if commonEnvironment['buildPDClass'] == '1' and pdhfound: +- print "CONFIGURATION DECISION: Building PD csoundapi~ class" ++ print ("CONFIGURATION DECISION: Building PD csoundapi~ class") + pdClassEnvironment = commonEnvironment.Clone() + pdClassEnvironment.Append(LINKFLAGS = libCsoundLinkFlags) + pdClassEnvironment.Append(LIBS = libCsoundLibs) +@@ -2610,7 +2610,7 @@ if commonEnvironment['buildPDClass'] == + # Build tclcsound + + if commonEnvironment['buildTclcsound'] == '1' and tclhfound: +- print "CONFIGURATION DECISION: Building Tclcsound frontend" ++ print ("CONFIGURATION DECISION: Building Tclcsound frontend") + csTclEnvironment = commonEnvironment.Clone() + csTclEnvironment.Append(LINKFLAGS = libCsoundLinkFlags) + csTclEnvironment.Append(LIBS = libCsoundLibs) +@@ -2662,7 +2662,7 @@ if commonEnvironment['buildTclcsound'] = + executables.append(csTk) + libs.append(Tclcsoundlib) + try: +- os.mkdir('tclcsound', 0755) ++ os.mkdir('tclcsound', 0o755) + except: + pass + # if getPlatform() == 'darwin': +@@ -2674,12 +2674,12 @@ if commonEnvironment['buildTclcsound'] = + # csTclEnvironment.Command('tclcsound/pkgIndex.tcl', 'tclcsound/tclcsound.dll','tclsh84 pkgbuild.tcl') + + else: +- print "CONFIGURATION DECISION: Not building Tclcsound" ++ print ("CONFIGURATION DECISION: Not building Tclcsound") + + # Build Winsound FLTK frontend + + if commonEnvironment['buildWinsound'] == '1' and fltkFound: +- print "CONFIGURATION DECISION: Building Winsound frontend" ++ print ("CONFIGURATION DECISION: Building Winsound frontend") + # should these be installed ? + # headers += glob.glob('frontends/winsound/*.h') + csWinEnvironment = commonEnvironment.Clone() +@@ -2726,10 +2726,10 @@ if commonEnvironment['buildWinsound'] == + Depends(winsound5, csoundLibrary) + executables.append(winsound5) + else: +- print "CONFIGURATION DECISION: Not building Winsound" ++ print ("CONFIGURATION DECISION: Not building Winsound") + + #if (getPlatform() == 'darwin' and commonEnvironment['buildOSXGUI'] == '1'): +-# print "CONFIGURATION DECISION: building OSX GUI frontend" ++# print ("CONFIGURATION DECISION: building OSX GUI frontend") + # csOSXGUIEnvironment = commonEnvironment.Clone() + # OSXGUI = csOSXGUIEnvironment.Command( + # '''frontends/OSX/build/Csound 5.app/Contents/MacOS/Csound 5''', +@@ -2737,10 +2737,10 @@ else: + # "cd frontends/OSX; xcodebuild -buildstyle Deployment") + # Depends(OSXGUI, csoundLibrary) + #else: +-# print "CONFIGURATION DECISION: Not building OSX GUI frontend" ++# print ("CONFIGURATION DECISION: Not building OSX GUI frontend") + + # build csLADSPA +-print "CONFIGURATION DEFAULT: Building csLadspa." ++print ("CONFIGURATION DEFAULT: Building csLadspa.") + csLadspaEnv = commonEnvironment.Clone() + csLadspaEnv.Append(LINKFLAGS = libCsoundLinkFlags) + csLadspaEnv.Append(LIBS=libCsoundLibs) +@@ -2759,9 +2759,9 @@ libs.append(csladspa) + # Build beats (score generator) + + if not (commonEnvironment['buildBeats'] != '0'): +- print 'CONFIGURATION DECISION: Not building beats score frontend.' ++ print ('CONFIGURATION DECISION: Not building beats score frontend.') + else: +- print "CONFIGURATION DECISION: Building beats score frontend" ++ print ("CONFIGURATION DECISION: Building beats score frontend") + csBeatsEnvironment = commonEnvironment.Clone() + csBeatsEnvironment.Append(LINKFLAGS = ['-lm']) + csBeatsEnvironment.Append(YACCFLAGS = ['-d']) +@@ -2777,9 +2777,9 @@ else: + executables.append(bb) + + if not (commonEnvironment['buildcatalog'] != '0'): +- print 'CONFIGURATION DECISION: Not building catalog builder.' ++ print ('CONFIGURATION DECISION: Not building catalog builder.') + else: +- print "CONFIGURATION DECISION: Building catalog builder" ++ print ("CONFIGURATION DECISION: Building catalog builder") + catEnvironment = Environment(ENV = os.environ) + catEnvironment.Append(LINKFLAGS = ['-ldl']) + bb = catEnvironment.Program('mkdb', ['mkdb.c']) +@@ -2787,9 +2787,9 @@ else: + + + if (commonEnvironment['generateTags']=='0') or (getPlatform() != 'darwin' and getPlatform() != 'linux'): +- print "CONFIGURATION DECISION: Not calling TAGS" ++ print ("CONFIGURATION DECISION: Not calling TAGS") + else: +- print "CONFIGURATION DECISION: Calling TAGS" ++ print ("CONFIGURATION DECISION: Calling TAGS") + allSources = string.join(glob.glob('*/*.h*')) + allSources = allSources + ' ' + string.join(glob.glob('*/*.c')) + allSources = allSources + ' ' + string.join(glob.glob('*/*.cpp')) +@@ -2860,7 +2860,7 @@ if commonEnvironment['install'] == '1': + Alias('install', [installExecutables, installOpcodes, installLibs, installHeaders, installPythonModules]) + + if getPlatform() == 'darwin' and commonEnvironment['useFLTK'] == '1': +- print "CONFIGURATION DECISION: Adding resource fork for csound" ++ print ("CONFIGURATION DECISION: Adding resource fork for csound") + addOSXResourceFork(commonEnvironment, 'csound', '') + + ###Code to create pkconfig files diff --git a/csound.changes b/csound.changes index d9e44e6..5507973 100644 --- a/csound.changes +++ b/csound.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Nov 23 14:49:33 UTC 2017 - dimstar@opensuse.org + +- Add csound-scons-on-py3.patch: Fix build with scons using python3 + as interpreter. + ------------------------------------------------------------------- Wed Nov 8 18:22:43 UTC 2017 - dimstar@opensuse.org diff --git a/csound.spec b/csound.spec index 81c24a3..0625758 100644 --- a/csound.spec +++ b/csound.spec @@ -46,6 +46,7 @@ Group: Productivity/Multimedia/Sound/Utilities Url: http://www.csounds.com Source: Csound%{version}.tar.gz Source1: README.SUSE +Patch0: csound-scons-on-py3.patch Patch3: %{name}-strncat-fix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -64,6 +65,7 @@ Development files for Csound. %prep %setup -q -n Csound%{version} +%patch0 -p1 %patch3 # remove __DATE__ from source files, causes unnecessary rebuilds sed -i 's:__DATE__:"":' Engine/musmon.c frontends/CsoundVST/CsoundVstFltk.cpp Top/main.c