You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-sound/csound/files/csound-5.17.2-scons.patch

278 lines
13 KiB

--- Csound5.17.2/SConstruct
+++ Csound5.17.2/SConstruct
@@ -89,6 +89,9 @@
commandOptions.Add('usePortMIDI',
'Build PortMidi plugin for real time MIDI input and output.',
'1')
+commandOptions.Add('usePulseAudio',
+ 'Set to 1 to use PulseAudio for real-time audio and MIDI input and output.',
+ '1')
commandOptions.Add('useALSA',
'Set to 1 to use ALSA for real-time audio and MIDI input and output.',
'1')
@@ -101,6 +104,9 @@
commandOptions.Add('noFLTKThreads',
'Set to 1 to disable use of a separate thread for FLTK widgets.',
'1')
+commandOptions.Add('useLuaJIT',
+ 'Set to 1 to use the Just-In-Time Compiler for Lua',
+ '1')
commandOptions.Add('pythonVersion',
'Set to the Python version to be used.',
'%d.%d' % (int(sys.hexversion) >> 24, (int(sys.hexversion) >> 16) & 255))
@@ -180,6 +186,15 @@
commandOptions.Add('dynamicCsoundLibrary',
'Build dynamic Csound library instead of libcsound.a',
'0')
+commandOptions.Add('buildChuaOpcodes',
+ 'Set to 1 to build chua opcodes.',
+ '1')
+commandOptions.Add('buildLinearOpcodes',
+ 'Set to 1 to build linear algebra opcodes.',
+ '1')
+commandOptions.Add('buildFluidOpcodes',
+ 'Set to 1 to build Fluidsynth opcodes.',
+ '1')
commandOptions.Add('buildStkOpcodes',
"Build opcodes encapsulating Perry Cook's Synthesis Toolkit in C++ instruments and effects",
'0')
@@ -352,6 +367,7 @@
fileOptions.Add('customCXXFLAGS')
fileOptions.Add('customLIBS')
fileOptions.Add('customLIBPATH')
+fileOptions.Add('customLINKFLAGS')
fileOptions.Add('customSHLINKFLAGS')
fileOptions.Add('customSWIGFLAGS')
fileOptions.Update(commonEnvironment)
@@ -366,6 +382,8 @@
commonEnvironment.Prepend(LIBS = customLIBS)
customLIBPATH = commonEnvironment['customLIBPATH']
commonEnvironment.Prepend(LIBPATH = customLIBPATH)
+customLINKFLAGS = commonEnvironment['customLINKFLAGS']
+commonEnvironment.Prepend(LINKFLAGS = customLINKFLAGS)
customSHLINKFLAGS = commonEnvironment['customSHLINKFLAGS']
commonEnvironment.Prepend(SHLINKFLAGS = customSHLINKFLAGS)
customSWIGFLAGS = commonEnvironment['customSWIGFLAGS']
@@ -469,14 +487,6 @@
if commonEnvironment['buildRelease'] == '0':
commonEnvironment.Prepend(CPPFLAGS = ['-DBETA'])
-if commonEnvironment['Lib64'] == '1':
- if getPlatform() == 'sunos':
- commonEnvironment.Prepend(LIBPATH = ['.', '#.', '/lib/64', '/usr/lib/64'])
- else:
- commonEnvironment.Prepend(LIBPATH = ['.', '#.', '/usr/local/lib64'])
-else:
- commonEnvironment.Prepend(LIBPATH = ['.', '#.', '/usr/local/lib'])
-
if commonEnvironment['Word64'] == '1':
if compilerSun():
commonEnvironment.Append(CCFLAGS = ['-xcode=pic32'])
@@ -494,10 +504,7 @@
if getPlatform() == 'linux':
commonEnvironment.Append(CCFLAGS = ["-DLINUX"])
commonEnvironment.Append(CPPFLAGS = ['-DHAVE_SOCKETS'])
- commonEnvironment.Append(CPPPATH = ['/usr/local/include'])
- commonEnvironment.Append(CPPPATH = ['/usr/include'])
commonEnvironment.Append(CPPPATH = ['/usr/include'])
- commonEnvironment.Append(CPPPATH = ['/usr/X11R6/include'])
commonEnvironment.Append(CCFLAGS = ["-DPIPES"])
commonEnvironment.Append(LINKFLAGS = ['-Wl,-Bdynamic'])
elif getPlatform() == 'sunos':
@@ -559,18 +566,17 @@
if getPlatform() == 'linux':
path1 = '/usr/include/python%s' % commonEnvironment['pythonVersion']
- path2 = '/usr/local/include/python%s' % commonEnvironment['pythonVersion']
- pythonIncludePath = [path1, path2]
+ pythonIncludePath = [path1]
path1 = '/usr/include/tcl%s' % commonEnvironment['tclversion']
path2 = '/usr/include/tk%s' % commonEnvironment['tclversion']
tclIncludePath = [path1, path2]
pythonLinkFlags = []
if commonEnvironment['Lib64'] == '1':
tmp = '/usr/lib64/python%s/config' % commonEnvironment['pythonVersion']
- pythonLibraryPath = ['/usr/local/lib64', '/usr/lib64', tmp]
+ pythonLibraryPath = ['/usr/lib64', tmp]
else:
tmp = '/usr/lib/python%s/config' % commonEnvironment['pythonVersion']
- pythonLibraryPath = ['/usr/local/lib', '/usr/lib', tmp]
+ pythonLibraryPath = ['/usr/lib', tmp]
pythonLibs = ['python%s' % commonEnvironment['pythonVersion']]
elif getPlatform() == 'sunos':
path1 = '/usr/include/python%s' % commonEnvironment['pythonVersion']
@@ -777,6 +783,7 @@
zlibhfound = configure.CheckHeader("zlib.h", language = "C")
midiPluginSdkFound = configure.CheckHeader("funknown.h", language = "C++")
luaFound = configure.CheckHeader("lua.h", language = "C")
+luajitFound = configure.CheckLibWithHeader("luajit-5.1", "luajit-2.0/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)])
@@ -1452,25 +1459,31 @@
swigflags = csoundWrapperEnvironment['SWIGFLAGS']
print 'swigflags:', swigflags
luaWrapper = None
- if not (luaFound and commonEnvironment['buildLuaWrapper'] != '0'):
+ if not ((luaFound or luajitFound) and commonEnvironment['buildLuaWrapper'] != '0'):
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()
if getPlatform() != 'win32':
- csoundWrapperEnvironment.Append(CPPPATH=['/usr/include/lua5.1'])
+ if luajitFound and commonEnvironment['useLuaJIT'] == '1':
+ csoundWrapperEnvironment.Append(CPPPATH=['/usr/include/luajit-2.0'])
+ else:
+ 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','luajit-5.1'])
- luaWrapper = makeLuaModule(luaWrapperEnvironment, 'luaCsnd', [csoundLuaInterface])
- Depends(luaWrapper, csoundLuaInterface)
+ else:
+ csoundLuaInterface = luaWrapperEnvironment.SharedObject(
+ 'interfaces/lua_interface.i',
+ SWIGFLAGS = [swigflags, '-lua', '-module', 'luaCsnd', '-outdir', '.'])
+ if luajitFound and commonEnvironment['useLuaJIT'] == '1':
+ luaWrapperEnvironment.Prepend(LIBS = ['csnd','luajit-5.1'])
+ else:
+ luaWrapperEnvironment.Prepend(LIBS = ['csnd','lua'])
+ luaWrapper = makeLuaModule(luaWrapperEnvironment, 'luaCsnd', [csoundLuaInterface])
+ Depends(luaWrapper, csoundLuaInterface)
if not (javaFound and commonEnvironment['buildJavaWrapper'] != '0'):
print 'CONFIGURATION DECISION: Not building Java wrapper to Csound C++ interface library.'
@@ -1510,6 +1523,9 @@
javaWrapper = javaWrapperEnvironment.Program(
'lib_jcsound.jnilib', javaWrapperSources)
else:
+ soname = 'lib_jcsound.so'
+ soflag = [ '-Wl,-soname=%s' % soname ]
+ javaWrapperEnvironment.Prepend(LINKFLAGS = [soflag])
javaWrapper = javaWrapperEnvironment.SharedLibrary(
'_jcsound', javaWrapperSources)
#Depends(javaWrapper, csoundLibrary)
@@ -1759,9 +1775,12 @@
jpluginEnvironment.Append(LINKFLAGS = ['-framework', 'Jackmp'])
makePlugin(jpluginEnvironment, 'jackTransport', 'Opcodes/jackTransport.c')
makePlugin(jpluginEnvironment, 'jacko', 'Opcodes/jacko.cpp')
-if boostFound:
+if commonEnvironment['buildChuaOpcodes'] == '1' and boostFound:
+ print 'CONFIGURATION DECISION: Building chua opcodes.'
makePlugin(pluginEnvironment, 'chua', 'Opcodes/chua/ChuaOscillator.cpp')
-if gmmFound and commonEnvironment['useDouble'] != '0':
+else:
+ print 'CONFIGURATION DECISION: Not building chua opcodes.'
+if commonEnvironment['buildLinearOpcodes'] == '1' and gmmFound and commonEnvironment['useDouble'] != '0':
makePlugin(pluginEnvironment, 'linear_algebra', 'Opcodes/linear_algebra.cpp')
print 'CONFIGURATION DECISION: Building linear algebra opcodes.'
else:
@@ -1893,11 +1912,13 @@
alsaEnvironment.Append(LIBS = ['asound', 'pthread'])
makePlugin(alsaEnvironment, 'rtalsa', ['InOut/rtalsa.c'])
-if pulseaudioFound and (getPlatform() == 'linux' or getPlatform() == 'sunos'):
+if commonEnvironment['usePulseAudio'] == '1' and pulseaudioFound and (getPlatform() == 'linux' or getPlatform() == 'sunos'):
print "CONFIGURATION DECISION: Building PulseAudio plugin"
pulseaudioEnv = pluginEnvironment.Clone()
pulseaudioEnv.Append(LIBS = ['pulse-simple'])
makePlugin(pulseaudioEnv, 'rtpulse', ['InOut/rtpulse.c'])
+else:
+ print "CONFIGURATION DECISION: Not building PulseAudio plugin."
if getPlatform() == 'win32':
winmmEnvironment = pluginEnvironment.Clone()
@@ -1963,9 +1984,7 @@
# FLUIDSYNTH OPCODES
-if not configure.CheckHeader("fluidsynth.h", language = "C"):
- print "CONFIGURATION DECISION: Not building fluid opcodes."
-else:
+if commonEnvironment['buildFluidOpcodes'] == '1' and configure.CheckHeader("fluidsynth.h", language = "C"):
print "CONFIGURATION DECISION: Building fluid opcodes."
fluidEnvironment = pluginEnvironment.Clone()
if getPlatform() == 'win32':
@@ -1981,6 +2000,8 @@
fluidEnvironment.Append(LIBS = ['pthread'])
makePlugin(fluidEnvironment, 'fluidOpcodes',
['Opcodes/fluidOpcodes/fluidOpcodes.cpp'])
+else:
+ print "CONFIGURATION DECISION: Not building fluid opcodes."
# VST HOST OPCODES
@@ -2174,7 +2195,7 @@
if getPlatform() == 'win32' and pythonLibs[0] < 'python24':
Depends(pythonOpcodes, pythonImportLibrary)
-# Python opcodes
+# Lua opcodes
if not (commonEnvironment['buildLuaOpcodes'] != '0'):
print "CONFIGURATION DECISION: Not building Lua opcodes."
@@ -2183,10 +2204,13 @@
luaEnvironment = pluginEnvironment.Clone()
if getPlatform() == 'linux':
- if(luaFound == 1):
+ if(luajitFound == 1 and commonEnvironment['useLuaJIT'] == '1'):
luaEnvironment.Append(LIBS = ['luajit-5.1'])
luaEnvironment.Append(LIBS = ['util', 'dl', 'm'])
- luaEnvironment.Append(CPPPATH = '/usr/local/include/luajit-2.0')
+ luaEnvironment.Append(CPPPATH = '/usr/include/luajit-2.0')
+ elif(luaFound == 1):
+ luaEnvironment.Append(LIBS = ['lua'])
+ luaEnvironment.Append(LIBS = ['util', 'dl', 'm'])
elif getPlatform() == 'win32':
if(luaFound == 1):
luaEnvironment.Append(LIBS = ['lua51'])
@@ -2538,21 +2562,24 @@
Depends(csoundAcPythonModule, pythonWrapper)
Depends(csoundAcPythonModule, csoundac)
Depends(csoundAcPythonModule, csnd)
- if luaFound and commonEnvironment['buildLuaWrapper'] != '0':
- luaCsoundACWrapperEnvironment = acWrapperEnvironment.Clone()
- if getPlatform() == 'win32':
- luaCsoundACWrapperEnvironment.Prepend(LIBS = Split('luaCsnd lua51 CsoundAC csnd fltk_images'))
- else:
- luaCsoundACWrapperEnvironment.Prepend(LIBS = [luaWrapper])
- luaCsoundACWrapperEnvironment.Prepend(LIBS = Split('luajit-5.1 CsoundAC csnd fltk_images'))
- luaCsoundACWrapper = luaCsoundACWrapperEnvironment.SharedObject(
- 'frontends/CsoundAC/luaCsoundAC.i', SWIGFLAGS = [swigflags, Split('-lua ')])
- luaCsoundACWrapperEnvironment.Clean('.', 'frontends/CsoundAC/luaCsoundAC_wrap.h')
- CsoundAclModule = makeLuaModule(luaCsoundACWrapperEnvironment, 'luaCsoundAC', [luaCsoundACWrapper])
- Depends(CsoundAclModule, luaCsoundACWrapper)
- Depends(CsoundAclModule, luaWrapper)
- Depends(CsoundAclModule, csoundac)
- Depends(CsoundAclModule, csnd)
+ if (luajitFound or luaFound) and commonEnvironment['buildLuaWrapper'] != '0':
+ luaCsoundACWrapperEnvironment = acWrapperEnvironment.Clone()
+ if getPlatform() == 'win32':
+ luaCsoundACWrapperEnvironment.Prepend(LIBS = Split('luaCsnd lua51 CsoundAC csnd fltk_images'))
+ else:
+ luaCsoundACWrapperEnvironment.Prepend(LIBS = [luaWrapper])
+ if commonEnvironment['useLuaJIT'] == '1':
+ luaCsoundACWrapperEnvironment.Prepend(LIBS = Split('luajit-5.1 CsoundAC csnd fltk_images'))
+ else:
+ luaCsoundACWrapperEnvironment.Prepend(LIBS = Split('lua CsoundAC csnd fltk_images'))
+ luaCsoundACWrapper = luaCsoundACWrapperEnvironment.SharedObject(
+ 'frontends/CsoundAC/luaCsoundAC.i', SWIGFLAGS = [swigflags, Split('-lua ')])
+ luaCsoundACWrapperEnvironment.Clean('.', 'frontends/CsoundAC/luaCsoundAC_wrap.h')
+ CsoundAclModule = makeLuaModule(luaCsoundACWrapperEnvironment, 'luaCsoundAC', [luaCsoundACWrapper])
+ Depends(CsoundAclModule, luaCsoundACWrapper)
+ Depends(CsoundAclModule, luaWrapper)
+ Depends(CsoundAclModule, csoundac)
+ Depends(CsoundAclModule, csnd)
# Build CsoundVST