pkgsrc/audio/csound5/patches/patch-ac
joerg 4ecb4314aa Add DragonFly support.
XXX The SCons usage sucks.
2006-05-29 19:44:24 +00:00

247 lines
12 KiB
Text

$NetBSD: patch-ac,v 1.2 2006/05/29 19:44:24 joerg Exp $
--- SConstruct.orig 2006-03-15 15:22:43.000000000 +0000
+++ SConstruct
@@ -50,6 +50,10 @@ def today():
def getPlatform():
if sys.platform[:5] == 'linux':
return 'linux'
+ elif sys.platform[:6] == 'netbsd':
+ return 'netbsd'
+ elif sys.platform[:9] == 'dragonfly':
+ return 'dragonfly'
elif sys.platform[:3] == 'win':
return 'mingw'
elif sys.platform[:6] == 'darwin':
@@ -335,6 +339,15 @@ elif getPlatform() == 'mingw':
pythonLinkFlags = []
pythonLibraryPath = []
pythonLibs = ['python%s' % commonEnvironment['pythonVersion'].replace('.', '')]
+elif getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
+ commonEnvironment.Append(CCFLAGS = Split(os.environ['CFLAGS']))
+ commonEnvironment.Append(CXXFLAGS = Split(os.environ['CXXFLAGS']))
+ commonEnvironment.Append(LINKFLAGS = Split(os.environ['LDFLAGS']))
+ pythonIncludePath = []
+ pythonLinkFlags = []
+ pythonLibraryPath = []
+ pythonLibs = []
+ SConsignFile("/dev/null")
# Check for prerequisites.
# We check only for headers; checking for libs may fail
@@ -485,7 +498,7 @@ def buildzip(env, target, source):
# library version is CS_VERSION.CS_APIVERSION
csoundLibraryVersion = '5.1'
csoundLibraryName = 'csound'
-if getPlatform() == 'linux' and commonEnvironment['useDouble'] != '0':
+if (getPlatform() == 'linux' or getPlatform() == 'netbsd' or getPlatform() == 'dragonfly') and commonEnvironment['useDouble'] != '0':
csoundLibraryName += '64'
# flags for linking with the Csound library
libCsoundLinkFlags = []
@@ -526,6 +539,12 @@ if commonEnvironment['buildRelease'] !=
tmp += '64'
s = '-DCS_DEFAULT_PLUGINDIR=\\"%s\\"' % tmp
csoundLibraryEnvironment.Append(CPPFLAGS = [s])
+ if getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
+ tmp = '%s/lib/csound5/plugins' % commonEnvironment['prefix']
+ if commonEnvironment['useDouble'] != '0':
+ tmp += '64'
+ s = '-DCS_DEFAULT_PLUGINDIR=\\"%s\\"' % tmp
+ csoundLibraryEnvironment.Append(CPPFLAGS = [s])
csoundDynamicLibraryEnvironment = csoundLibraryEnvironment.Copy()
csoundDynamicLibraryEnvironment.Append(LIBS = ['sndfile'])
if getPlatform() == 'mingw':
@@ -550,6 +569,11 @@ if getPlatform() == 'mingw':
csoundDynamicLibraryEnvironment['ENV']['PATH'] = os.environ['PATH']
elif getPlatform() == 'linux':
csoundDynamicLibraryEnvironment.Append(LIBS = ['dl', 'm', 'pthread'])
+elif getPlatform() == 'netbsd':
+ csoundDynamicLibraryEnvironment.Append(LIBS = ['m', 'pthread'])
+elif getPlatform() == 'dragonfly':
+ csoundDynamicLibraryEnvironment.Append(LINKFLAGS = ['-pthread'])
+ csoundDynamicLibraryEnvironment.Append(LIBS = ['m'])
csoundInterfacesEnvironment = csoundDynamicLibraryEnvironment.Copy()
if buildOSXFramework:
@@ -776,9 +800,17 @@ else:
csoundProgramEnvironment.Append(LIBS = ['dl'])
vstEnvironment.Append(LIBS = ['dl'])
guiProgramEnvironment.Append(LIBS = ['dl'])
- csoundProgramEnvironment.Append(LIBS = ['pthread', 'm'])
- vstEnvironment.Append(LIBS = ['stdc++', 'pthread', 'm'])
- guiProgramEnvironment.Append(LIBS = ['stdc++', 'pthread', 'm'])
+ if getPlatform() == 'dragonfly':
+ csoundProgramEnvironment.Append(LIBS = ['m'])
+ csoundProgramEnvironment.Append(LINKFLAGS = ['-pthread'])
+ vstEnvironment.Append(LIBS = ['stdc++', 'm'])
+ vstEnvironment.Append(LINKFLAGS = ['-pthread'])
+ guiProgramEnvironment.Append(LIBS = ['stdc++', 'm'])
+ guiProgramEnvironment.Append(LINKFLAGS = ['-pthread'])
+ else:
+ csoundProgramEnvironment.Append(LIBS = ['pthread', 'm'])
+ vstEnvironment.Append(LIBS = ['stdc++', 'pthread', 'm'])
+ guiProgramEnvironment.Append(LIBS = ['stdc++', 'pthread', 'm'])
if getPlatform() == 'darwin':
csoundProgramEnvironment.Append(LINKFLAGS = Split('''
-framework Carbon -framework CoreAudio -framework CoreMidi
@@ -989,7 +1021,7 @@ makePlugin(pluginEnvironment, 'stdopcod'
pluginLibraries.append('opcodes.dir')
MacOSX_InstallPlugin('opcodes.dir')
-if getPlatform() == 'linux' or getPlatform() == 'darwin':
+if getPlatform() == 'linux' or getPlatform() == 'darwin' or getPlatform == 'netbsd' or getPlatform == 'dragonfly':
makePlugin(pluginEnvironment, 'control', ['Opcodes/control.c'])
makePlugin(pluginEnvironment, 'ftest', ['Opcodes/ftest.c'])
makePlugin(pluginEnvironment, 'mixer', ['Opcodes/mixer.cpp'])
@@ -1042,6 +1074,13 @@ else:
-framework Carbon -framework CoreAudio -framework CoreMidi
-framework ApplicationServices
'''))
+ elif getPlatform() == 'netbsd':
+ widgetsEnvironment.ParseConfig('fltk-config --use-images --cflags --cxxflags --ldflags')
+ widgetsEnvironment.Append(LIBS = ['stdc++', 'pthread', 'm'])
+ elif getPlatform() == 'dragonfly':
+ widgetsEnvironment.ParseConfig('fltk-config --use-images --cflags --cxxflags --ldflags')
+ widgetsEnvironment.Append(LIBS = ['stdc++', 'm'])
+ widgetsEnvironment.Append(LINKFLAGS = ['-pthread'])
makePlugin(widgetsEnvironment, 'widgets',
['InOut/FL_graph.cpp', 'InOut/winFLTK.c', 'InOut/widgets.cpp'])
@@ -1060,7 +1099,11 @@ if not (commonEnvironment['useALSA'] ==
else:
print "CONFIGURATION DECISION: Building ALSA plugin."
alsaEnvironment = pluginEnvironment.Copy()
- alsaEnvironment.Append(LIBS = ['asound', 'pthread'])
+ if getPlatform() == 'dragonfly':
+ alsaEnvironment.Append(LIBS = ['asound'])
+ alsaEnvironment.Append(LINKFLAGS = ['-pthread'])
+ else:
+ alsaEnvironment.Append(LIBS = ['asound', 'pthread'])
makePlugin(alsaEnvironment, 'rtalsa', ['InOut/rtalsa.c'])
if getPlatform() == 'mingw':
@@ -1082,6 +1125,8 @@ else:
elif getPlatform() == 'mingw':
portaudioEnvironment.Append(LIBS = ['winmm', 'dsound'])
portaudioEnvironment.Append(LIBS = csoundWindowsLibraries)
+ elif getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
+ portaudioEnvironment.ParseConfig('pkg-config --cflags --libs portaudio-2.0')
makePlugin(portaudioEnvironment, 'rtpa', ['InOut/rtpa.c'])
if not (commonEnvironment['useJack'] == '1' and jackFound):
@@ -1091,6 +1136,9 @@ else:
jackEnvironment = pluginEnvironment.Copy()
if getPlatform() == 'linux':
jackEnvironment.Append(LIBS = ['jack', 'asound', 'pthread'])
+ elif getPlatform() == 'dragonfly':
+ jackEnvironment.Append(LIBS = ['jack'])
+ jackEnvironment.Append(LINKFLAGS = ['-pthread'])
else:
jackEnvironment.Append(LIBS = ['jack', 'pthread'])
makePlugin(jackEnvironment, 'rtjack', ['InOut/rtjack.c'])
@@ -1100,7 +1148,11 @@ if not (commonEnvironment['useOSC'] == '
else:
print "CONFIGURATION DECISION: Building OSC plugin."
oscEnvironment = pluginEnvironment.Copy()
- oscEnvironment.Append(LIBS = ['lo', 'pthread'])
+ if getPlatform() == 'dragonfly':
+ oscEnvironment.Append(LIBS = ['lo'])
+ oscEnvironment.Append(LINKFLAGS = ['-pthread'])
+ else:
+ oscEnvironment.Append(LIBS = ['lo', 'pthread'])
if getPlatform() == 'mingw':
oscEnvironment.Append(LIBS = csoundWindowsLibraries)
oscEnvironment.Append(SHLINKFLAGS = ['-Wl,--enable-stdcall-fixup'])
@@ -1118,8 +1170,10 @@ else:
fluidEnvironment.Append(CPPFLAGS = ['-DFLUIDSYNTH_NOT_A_DLL'])
fluidEnvironment.Append(LIBS = ['winmm', 'dsound'])
fluidEnvironment.Append(LIBS = csoundWindowsLibraries)
- elif getPlatform() == 'linux' or getPlatform() == 'darwin':
+ elif getPlatform() == 'linux' or getPlatform() == 'darwin' or getPlatform() == 'netbsd':
fluidEnvironment.Append(LIBS = ['pthread'])
+ elif getPlatform() == 'dragonfly':
+ fluidEnvironment.Append(LINKFLAGS = ['-pthread'])
makePlugin(fluidEnvironment, 'fluidOpcodes',
['Opcodes/fluidOpcodes/fluidOpcodes.c'])
@@ -1237,6 +1291,13 @@ else:
guiProgramEnvironment.Prepend(LINKFLAGS = ['-mwindows'])
vstEnvironment.Append(LIBS = ['fltk_images', 'fltk'])
guiProgramEnvironment.Append(LINKFLAGS = '-mwindows')
+ elif getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
+ vstEnvironment.Append(LIBS = ['m'])
+ vstEnvironment.Append(SHLINKFLAGS = '--no-export-all-symbols')
+ vstEnvironment.Append(LINKFLAGS = ['-Wl,-rpath-link,.'])
+ guiProgramEnvironment.Prepend(LINKFLAGS = ['-Wl,-rpath-link,.'])
+ os.spawnvp(os.P_WAIT, 'rm', ['rm', '-f', '_CsoundVST.so'])
+ os.symlink('lib_CsoundVST.so', '_CsoundVST.so')
guiProgramEnvironment.Prepend(LIBS = ['_CsoundVST'])
for option in vstEnvironment['CCFLAGS']:
if string.find(option, '-D') == 0:
@@ -1420,8 +1481,10 @@ else:
stkEnvironment.Append(LIBS = ['stdc++'])
if getPlatform() == 'mingw':
stkEnvironment.Append(LIBS = csoundWindowsLibraries)
- elif getPlatform() == 'linux' or getPlatform() == 'darwin':
+ elif getPlatform() == 'linux' or getPlatform() == 'darwin' or getPlatform() == 'netbsd':
stkEnvironment.Append(LIBS = ['pthread'])
+ elif getPlatform() == 'dragonfly':
+ stkEnvironment.Append(LINKFLAGS = ['-pthread'])
# This is the one that actually defines the opcodes.
# They are straight wrappers, as simple as possible.
stk = makePlugin(stkEnvironment, 'stk', ['Opcodes/stk/stkOpcodes.cpp'])
@@ -1443,6 +1506,8 @@ else:
elif getPlatform() == 'mingw':
pyEnvironment['ENV']['PATH'] = os.environ['PATH']
pyEnvironment.Append(SHLINKFLAGS = '--no-export-all-symbols')
+ elif getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
+ pyEnvironment.Append(LIBS = ['m'])
pythonOpcodes = makePlugin(pyEnvironment, 'py',
['Opcodes/py/pythonopcodes.c'])
if getPlatform() == 'mingw' and pythonLibs[0] < 'python24':
@@ -1461,7 +1526,7 @@ if commonEnvironment['buildPDClass']=='1
pdClass = pdClassEnvironment.Program(
'csoundapi~.pd_darwin',
'frontends/csoundapi_tilde/csoundapi_tilde.c')
- elif getPlatform() == 'linux':
+ elif getPlatform() == 'linux' or getPlatform() == 'netbsd' or getPlatform() == 'dragonfly':
pdClass = pdClassEnvironment.SharedLibrary(
'csoundapi~.pd_linux',
'frontends/csoundapi_tilde/csoundapi_tilde.c',
@@ -1493,6 +1558,11 @@ if commonEnvironment['buildTclcsound'] =
'''))
elif getPlatform() == 'linux':
csTclEnvironment.Append(LIBS = ['tcl8.4', 'tk8.4', 'dl', 'pthread'])
+ elif getPlatform() == 'netbsd':
+ csTclEnvironment.Append(LIBS = ['tcl8.4', 'tk8.4', 'pthread'])
+ elif getPlatform() == 'dragonfly':
+ csTclEnvironment.Append(LIBS = ['tcl8.4', 'tk8.4'])
+ csTclEnvironment.Append(LINKFLAGS = ['-pthread'])
elif getPlatform() == 'mingw':
csTclEnvironment.Append(LIBS = ['tcl84', 'tk84'])
csTclEnvironment.Append(LIBS = csoundWindowsLibraries)
@@ -1591,18 +1661,18 @@ else:
PREFIX = commonEnvironment['prefix']
-BIN_DIR = PREFIX + "/bin"
-INCLUDE_DIR = PREFIX + "/include/csound"
+BIN_DIR = PREFIX + "/lib/csound5"
+INCLUDE_DIR = PREFIX + "/include/csound5"
if (commonEnvironment['Word64'] == '1'):
- LIB_DIR = PREFIX + "/lib64"
+ LIB_DIR = PREFIX + "/lib64/csound5"
else:
- LIB_DIR = PREFIX + "/lib"
+ LIB_DIR = PREFIX + "/lib/csound5"
if commonEnvironment['useDouble'] == '0':
- PLUGIN_DIR = LIB_DIR + "/csound/plugins"
+ PLUGIN_DIR = LIB_DIR + "/plugins"
else:
- PLUGIN_DIR = LIB_DIR + "/csound/plugins64"
+ PLUGIN_DIR = LIB_DIR + "/plugins"
if commonEnvironment['install'] == '1':
installExecutables = Alias('install-executables',