Csound Csound-dev Csound-tekno Search About

Building CsoundVST from CVS and Lua flag error

Date2005-12-18 22:23
FromHector Centeno-Garcia
SubjectBuilding CsoundVST from CVS and Lua flag error
Hello,


I've been trying to build csound5 from CVS (under Linux) with CsoundVST 
and I can't get pass this error:

g++ -Wl,-rpath-link,. _CsoundVST.so -Wl,-Bdynamic -o CsoundVST 
frontends/CsoundVST/csoundvst_main.o -L. -L. -L/usr/local/lib -L. -L. 
-L/usr/lib/python2.4/config -L/usr/include/tcl8.4 
-L/usr/include/tcl8.4/tcl-private/generic -L/usr/include/lua50 
-L/usr/local/include/lo -ldl -lstdc++ -lpthread -lm
./lib_csnd.so: undefined reference to `Tcl_TraceVar'
./lib_csnd.so: undefined reference to `Tcl_GetStringResult'
./lib_csnd.so: undefined reference to `Tcl_ListObjGetElements'
./lib_csnd.so: undefined reference to `Tcl_GetDoubleFromObj'
./lib_csnd.so: undefined reference to `Tcl_PkgProvide'
./lib_csnd.so: undefined reference to `Tcl_GetStringFromObj'
./lib_csnd.so: undefined reference to `Tcl_CreateObjCommand'
./lib_csnd.so: undefined reference to `Tcl_GetLongFromObj'
./lib_csnd.so: undefined reference to `Tcl_AppendElement'
./lib_csnd.so: undefined reference to `Tcl_SetResult'
./lib_csnd.so: undefined reference to `Tcl_SetObjResult'
./lib_csnd.so: undefined reference to `Tcl_InitHashTable'
./lib_csnd.so: undefined reference to `Tcl_NewDoubleObj'
./lib_csnd.so: undefined reference to `Tcl_SetVar'
./lib_csnd.so: undefined reference to `Tcl_GetCommandInfo'
./lib_csnd.so: undefined reference to `Tcl_ResetResult'
./lib_csnd.so: undefined reference to `Tcl_NewStringObj'
./lib_csnd.so: undefined reference to `Tcl_DeleteHashEntry'
./lib_csnd.so: undefined reference to `Tcl_GetVar'
./lib_csnd.so: undefined reference to `Tcl_AppendResult'
./lib_csnd.so: undefined reference to `Tcl_SetStringObj'
./lib_csnd.so: undefined reference to `Tcl_GetIntFromObj'
./lib_csnd.so: undefined reference to `Tcl_NewIntObj'
./lib_csnd.so: undefined reference to `TclFreeObj'
./lib_csnd.so: undefined reference to `Tcl_ObjSetVar2'
./lib_csnd.so: undefined reference to `Tcl_DeleteCommandFromToken'
./lib_csnd.so: undefined reference to `Tcl_GetObjResult'
./lib_csnd.so: undefined reference to `Tcl_VarEval'
./lib_csnd.so: undefined reference to `Tcl_DuplicateObj'
collect2: ld returned 1 exit status
scons: *** [CsoundVST] Error 1
scons: building terminated because of errors.




This is my custom.py (the Linux section):

if sys.platform[:5] == 'linux':
    platform = 'linux'
    customCPPPATH.append('/usr/include/python2.4')
    customLIBPATH.append('/usr/lib/python2.4/config')
    customCPPPATH.append('/usr/include/tcl8.4')
    customLIBPATH.append('/usr/include/tcl8.4')
    customCPPPATH.append('/usr/include/tcl8.4/tcl-private/generic')
    customLIBPATH.append('/usr/include/tcl8.4/tcl-private/generic')
    customCPPPATH.append('/usr/include/lua50')
    customLIBPATH.append('/usr/include/lua50')
    customCPPPATH.append('/usr/local/include/lo')
    customLIBPATH.append('/usr/local/include/lo')




... and the SConstruct flags (I usually set the flags here instead of at 
the scons command for practical purposes):

opts.Add('useDouble',
    'Set to 1 to use double-precision floating point for audio samples.',
    '1')
opts.Add('usePortAudio',
    'Set to 1 to use PortAudio for real-time audio input and output.',
    '0')
opts.Add('usePortMIDI',
    'Build PortMidi plugin for real time MIDI input and output.',
    '1')
opts.Add('useALSA',
    'Set to 1 to use ALSA for real-time audio and MIDI input and output.',
    '1')
opts.Add('useJack',
    'Set to 1 if you compiled PortAudio to use Jack; also builds Jack 
plugin.',
    '1')
opts.Add('useFLTK',
    'Set to 1 to use FLTK for graphs and widget opcodes.',
    '1')
if getPlatform() != 'darwin':
    opts.Add('noFLTKThreads',
        'Set to 1 to disable use of a separate thread for FLTK widgets.',
        '0')
else:
    opts.Add('noFLTKThreads',
        'Set to 0 to enable use of a separate thread for FLTK widgets.',
        '1')
opts.Add('pythonVersion',
    'Set to the Python version to be used.',
    '2.4')
opts.Add('buildCsoundVST',
    'Set to 1 to build CsoundVST (needs FLTK, boost, Python 2.3, SWIG).',
    '1')
opts.Add('generateTags',
    'Set to 1 to generate TAGS',
    '0')
opts.Add('generatePdf',
    'Set to 1 to generate PDF documentation',
    '0')
opts.Add('generateXmg',
    'Set to 1 to generate string database',
    '1')
opts.Add('generateZip',
    'Set to 1 to generate zip archive',
    '0')
opts.Add('buildLoris',
    'Set to 1 to build the Loris Python extension and opcodes',
    '1')
opts.Add('useOSC',
    'Set to 1 if you want OSC support',
    '1')
opts.Add('buildPythonOpcodes',
    'Set to 1 to build Python opcodes',
    '1')
opts.Add('prefix',
    'Base directory for installs. Defaults to /usr/local.',
    '/usr/local')
opts.Add('buildRelease',
    'Set to 1 to build for release (implies noDebug).',
    '0')
opts.Add('noDebug',
    'Build without debugging information.',
    '0')
opts.Add('gcc3opt',
    'Enable gcc 3.3.x or later optimizations for the specified CPU 
architecture (e.g. pentium3); implies noDebug.',
    '0')
opts.Add('gcc4opt',
    'Enable gcc 4.0 or later optimizations for the specified CPU 
architecture (e.g. pentium3); implies noDebug.',
    'pentium4')
opts.Add('useLrint',
    'Use lrint() and lrintf() for converting floating point values to 
integers.',
    '0')
opts.Add('useGprof',
    'Build with profiling information (-pg).',
    '0')
opts.Add('Word64',
    'Build for 64bit computer',
    '0')
opts.Add('dynamicCsoundLibrary',
    'Build dynamic Csound library instead of libcsound.a',
    '0')
opts.Add('buildStkOpcodes',
    "Build opcodes encapsulating Perry Cook's Synthesis Toolkit in C++ 
instruments and effects",
    '0')
opts.Add('install',
    'Enables the Install targets',
    '1')
opts.Add('buildPDClass',
    "build csoundapi~ PD class (needs m_pd.h in the standard places)",
    '0')
opts.Add('useCoreAudio',
    "Set to 1 to use CoreAudio for real-time audio input and output.",
    '0')
opts.Add('useAltivec',
    "On OSX use the gcc AltiVec optmisation flags",
    '0')
opts.Add('MSVC',
    "Using MSVC build tools",
    '0')
opts.Add('buildDSSI',
    "Build DSSI/LADSPA host opcodes",
    '1')
opts.Add('buildUtilities',
    "Build stand-alone executables for utilities that can also be used 
with -U",
    '1')
opts.Add('buildTclcsound',
    "Build Tclcsound frontend (cstclsh, cswish and tclcsound dynamic 
module). Requires Tcl/Tk headers and libs",
    '1')
opts.Add('buildInterfaces',
    "Build interface library for Python, JAVA, Lua, C++, and other 
languages.",
    '1')
opts.Add('buildJavaWrapper',
    'Set to 1 to build Java wrapper for the interface library.',
    '0')




Scons seems to be finding everything that is needed at the beginning:

CONFIGURATION DECISION: Using double-precision floating point for audio 
samples.Checking for C header file stdio.h... yes
Checking for C header file sndfile.h... yes
Checking for C header file portaudio.h... yes
Checking for C header file portmidi.h... yes
Checking for C++ header file FL/Fl.H... yes
Checking for C++ header file boost/any.hpp... yes
Checking for C header file alsa/asoundlib.h... yes
Checking for C header file jack/jack.h... yes
Checking for C header file lo/lo.h... yes
Checking for C++ header file Opcodes/stk/include/Stk.h... no
Checking for C header file m_pd.h... yes
Checking for C header file tcl.h... yes
Checking for C header file lua.h... yes
Checking for SWIG... yes
Checking for C header file Python.h... yes
Checking for C++ header file jni.h... no
Checking for C header file io.h... no
Checking for C header file fcntl.h... yes
Checking for C header file unistd.h... yes
Checking for C header file stdint.h... yes
Checking for C header file sys/time.h... yes
Checking for C header file sys/types.h... yes
Checking for C header file termios.h... yes
Checking for C header file dirent.h... yes
Checking for C header file Opcodes/Loris/src/loris.h... yes
Checking for C header file fftw3.h... yes
CONFIGURATION DECISION: Building Loris Python extension and Csound opcodes.
CONFIGURATION DECISION: Building static Csound library
CONFIGURATION DECISION: Building with PortMIDI.
CONFIGURATION DECISION: Building Csound interfaces library.
CONFIGURATION DECISION: Not building Java wrappers for Csound interfaces 
library.
CONFIGURATION DECISION: Building Csound Lua interface library.
CONFIGURATION DECISION: Not generating PDF documentation.
CONFIGURATION DECISION: Building with FLTK graphs and widgets.
CONFIGURATION DECISION: Not building CoreAudio plugin.
CONFIGURATION DECISION: Building ALSA plugin.
CONFIGURATION DECISION: Not building PortAudio module.
CONFIGURATION DECISION: Building JACK plugin.
CONFIGURATION DECISION: Building OSC plugin.
Checking for C header file fluidsynth.h... no
CONFIGURATION DECISION: Not building fluid opcodes.
CONFIGURATION DECISION: Building CsoundVST plugin and standalone.
PATH = 
/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
CONFIGURATION DECISION: Not building STK opcodes.
CONFIGURATION DECISION: Building Python opcodes.
CONFIGURATION DECISION: Building Tclcsound frontend
CONFIGURATION DECISION: Building DSSI plugin host opcodes.
CONFIGURATION DECISION: Not calling TAGS
CONFIGURATION DECISION: Calling makedb
CONFIGURATION DECISION: Not compiling zip file for release.



By the way, before this error I was getting another one about SWIG not 
finding a "ua" library. I found that in SConstruct there is a SWIG flag 
that sould be "-llua" instead of "-lua", here:

SWIGFLAGS = [swigflags, '-llua', '-outdir', '.'])

Is that right?


Thanks! And sorry for the long email.


Hector.

Date2005-12-19 09:25
FromIstvan Varga
SubjectRe: Building CsoundVST from CVS and Lua flag error
AttachmentsNone  

Date2005-12-19 16:35
FromHector Centeno-Garcia
SubjectRe: Building CsoundVST from CVS and Lua flag error
Istvan Varga wrote:

>On Sunday 18 December 2005 23:23, Hector Centeno-Garcia wrote:
>
>  
>
>>By the way, before this error I was getting another one about SWIG not 
>>finding a "ua" library. I found that in SConstruct there is a SWIG flag 
>>that sould be "-llua" instead of "-lua", here:
>>
>>SWIGFLAGS = [swigflags, '-llua', '-outdir', '.'])
>>    
>>
>
>This may be causing the problems. What SWIG version do you have ?
>Lua support was added only in recent releases of SWIG, so it is possible
>that the version you use does not recognize the -lua flag, and builds
>wrappers for some default language instead (which is likely to be Tcl,
>as suggested by the errors at linking).
>If you have a SWIG version older than 1.3.27, then you need to either
>upgrade SWIG, or build without Lua.
>  
>
That made it, thank you a lot! I had Swig 1.3.24 so I upgraded to 1.3.27 
and it didn't complain about the -lua flag and the TCL errors are gone.

Hector

Date2005-12-19 20:46
Fromschwaahed
SubjectRe: Building CsoundVST from CVS and Lua flag error
AttachmentsNone  

Date2005-12-19 20:52
FromIstvan Varga
SubjectRe: Building CsoundVST from CVS and Lua flag error
AttachmentsNone  

Date2005-12-19 21:57
Fromschwaahed
SubjectRe: Building CsoundVST from CVS and Lua flag error
AttachmentsNone