[fluxus] Fluxus 0.9rc1 segfaults upon loading+running scripts on Ubuntu/Breezy i386
Javier Candeira
javier at candeira.com
Fri Mar 10 11:01:46 PST 2006
Dave Griffiths wrote:
> hmm, you have no debugging symbols? the SConstruct should have -ggdb in it
> somewhere...
It still has the --ggdb in it. I am building the package with debuild, and
the Sconstruct is very tenuously altered (mostly changing /usr/local to
/usr. /usr/share/local to /usr/share, and that's it).
The Debian makefile, which is called debian/rules, has this instructions for
the build target:
build: build-stamp
build-stamp: configure-stamp
dh_testdir
scons
touch build-stamp
And the Sconstruct file I am using is this one:
# -*- python -*-
import os, os.path
Target = "fluxus"
Prefix = "/usr"
Install = Prefix + "/bin"
GuileVersionMajMin = "1.6"
GuilePrefix = "/usr/share"
GuileDataPrefix = GuilePrefix + "/guile"
GuileSchemePrefix = GuileDataPrefix + "/" + GuileVersionMajMin
SchemePrefix = GuileSchemePrefix + "/site/fluxus"
LibPaths = ["/usr/lib"]
# First member of each list is a library, second - a header or headers list
# to be passed to the CheckLibWithHeader(...) at configure time.
# We may add extra libraries later on per platform basis
LibList = [["m", "math.h"],
["jack", "jack/jack.h"],
["sndfile", "sndfile.h"],
["guile", "guile/gh.h"],
["fftw3", "fftw3.h"],
["ode", "ode/ode.h"],
["lo", "lo/lo.h"],
["pthread", "pthread.h"],
["jpeg", ["stdio.h", "stdlib.h", "jpeglib.h"]],
["tiff", "tiff.h"],
["z", "zlib.h"],
["png", "libpng/png.h"]]
IncludePaths = Split("/usr/include libfluxus/src libfluxphysics/src")
Source = Split("libfluxus/src/PData.cpp \
libfluxus/src/PDataOperator.cpp \
libfluxus/src/PDataContainer.cpp \
libfluxus/src/PDataArithmetic.cpp \
libfluxus/src/GraphicsUtils.cpp \
libfluxus/src/Lifeforms.cpp \
libfluxus/src/PNGLoader.cpp \
libfluxus/src/PolyPrimitive.cpp \
libfluxus/src/TextPrimitive.cpp \
libfluxus/src/CompiledPrimitive.cpp \
libfluxus/src/LinePrimitive.cpp \
libfluxus/src/ParticlePrimitive.cpp \
libfluxus/src/NURBSPrimitive.cpp \
libfluxus/src/Primitive.cpp \
libfluxus/src/Light.cpp \
libfluxus/src/Renderer.cpp \
libfluxus/src/SceneGraph.cpp \
libfluxus/src/State.cpp \
libfluxus/src/TexturePainter.cpp \
libfluxus/src/Tree.cpp \
libfluxus/src/dada.cpp \
libfluxus/src/SearchPaths.cpp \
libfluxphysics/src/Physics.cpp \
src/AudioCollector.cpp \
src/FluxusMain.cpp \
src/FluxusBinding.cpp \
src/JackClient.cpp \
src/TurtleBuilder.cpp \
src/GLEditor.cpp \
src/Utils.cpp \
src/OSCServer.cpp \
src/Recorder.cpp \
src/main.cpp")
FluxusVersion = "0.9b3-artm"
env = Environment(CCFLAGS = '-ggdb -pipe -Wall -O3 -ffast-math -Wno-unused
-fPIC',
LIBPATH = LibPaths,
CPPPATH = IncludePaths,
VERSION_NUM = FluxusVersion)
Default(env.Program(source = Source, target = Target))
if env['PLATFORM'] == 'darwin':
env.Replace(LINK = "macos/libtool --mode=link g++")
env.Prepend(LINKFLAGS = ["-static"])
else:
LibList += [
# FIXME: detect or accept command line
# for xorg
["X11", "X11/Xlib.h"],
# for X11
#[Split("Xi Xmu Xext Xt SM ICE X11"), None],
["glut", "GL/glut.h"],["GL", "GL/gl.h"],
["GLU", "GL/glu.h"]]
env.Append(LIBPATH = ["/usr/X11R6/lib"])
if not GetOption('clean'):
print '--------------------------------------------------------'
print 'Fluxus: Configuring Build Environment'
print '--------------------------------------------------------'
conf = Configure( env )
# all libraries are required, but they can be checked for independently
(hence autoadd=0),
# which allows us to speed up the tests ...
Libs = []
for (lib,headers) in LibList:
if ((headers == None) and (not conf.CheckLib(lib, autoadd =
0))) or \
((headers != None) and (not
conf.CheckLibWithHeader(lib, headers, 'C', autoadd = 0))):
print "ERROR: '%s' must be installed!" % (lib)
Exit(1)
if isinstance(lib, str):
Libs.append(lib)
else:
Libs.extend(lib)
env = conf.Finish()
# ... but we shouldn't forget to add them to LIBS manually
env.Replace(LIBS = Libs)
# packaging / installing
if env['PLATFORM'] == 'darwin':
from macos.osxbundle import *
TOOL_BUNDLE(env)
# We add frameworks after configuration bit so that testing is faster.
env.Replace(FRAMEWORKS = Split("GLUT OpenGL CoreAudio"))
env.Alias("app", env.MakeBundle("Fluxus.app",
"fluxus",
"key",
"macos/fluxus-Info.plist",
typecode='APPL',
icon_file='macos/fluxus.icns'))
GuileScripts = "Fluxus.app/Contents/Resources/guile_scripts"
SchemePrefix = GuileScripts + "/site/fluxus"
for where, dirs, files in os.walk(GuileSchemePrefix):
dest = os.path.join(GuileScripts,
where[len(GuileSchemePrefix)+1:])
for f in files:
env.Install(dest, os.path.join(where,f))
env['BUILDERS']['DiskImage'] = Builder(action = BuildDmg)
DmgFiles = [File("COPYING"), Dir("Fluxus.app"), Dir("docs"),
Dir("examples"), Dir("scm")]
env.Alias("dmg", env.DiskImage('Fluxus-' + FluxusVersion + '.dmg',
DmgFiles))
else:
env.Install(Install, Target)
env.Alias('install', Prefix)
-- javier
More information about the Fluxus
mailing list