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.
278 lines
13 KiB
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
|