# Makefile for fluxus CC = @CC@ CFLAGS = @CFLAGS@ @CPPFLAGS@ @DEFS@ -ggdb -pipe -Wall -O3 -ffast-math -Wno-unused -fPIC # FIXME: use configure to correctly determine libs and paths LDFLAGS = @LDFLAGS@ @LIBS@ -lglew -lode -llo -ljack -lfftw3 -lsndfile OSX_FLAGS = -framework OpenGL -framework AGL -framework GLUT -framework PLT_MzScheme -flat_namespace # mzc... MZDYN = /Applications/PLT\ Scheme\ v360/lib/mzdyn.o # osX specifics OSX_LDFLAGS = -syslibroot /usr/include/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 OSX_CFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc # build targets BUILD_DIR = ./build MODULES_DIR = ./build/modules # fluxus FLUXUS_DIR = src FLUXUS_SRC = $(FLUXUS_DIR)/*.cpp FLUXUS_OBJS = $(FLUXUS_DIR)/FluxusMain.o \ $(FLUXUS_DIR)/GLEditor.o \ $(FLUXUS_DIR)/Recorder.o \ $(FLUXUS_DIR)/Repl.o \ $(FLUXUS_DIR)/Interpreter.o \ $(FLUXUS_DIR)/Utils.o \ $(FLUXUS_DIR)/main.o # libfluxus LIBF_DIR = libfluxus/src LIBF_SRC = $(LIBF_DIR)/*.cpp LIBF_OBJS = $(LIBF_DIR)/BlobbyPrimitive.o \ $(LIBF_DIR)/CompiledPrimitive.o \ $(LIBF_DIR)/GraphicsUtils.o \ $(LIBF_DIR)/GLSLShader.o \ $(LIBF_DIR)/Light.o \ $(LIBF_DIR)/LinePrimitive.o \ $(LIBF_DIR)/LocatorPrimitive.o \ $(LIBF_DIR)/NURBSPrimitive.o \ $(LIBF_DIR)/PData.o \ $(LIBF_DIR)/PDataArithmetic.o \ $(LIBF_DIR)/PDataContainer.o \ $(LIBF_DIR)/PDataOperator.o \ $(LIBF_DIR)/PNGLoader.o \ $(LIBF_DIR)/ParticlePrimitive.o \ $(LIBF_DIR)/Physics.o \ $(LIBF_DIR)/PixelPrimitive.o \ $(LIBF_DIR)/PolyPrimitive.o \ $(LIBF_DIR)/Primitive.o \ $(LIBF_DIR)/Renderer.o \ $(LIBF_DIR)/SceneGraph.o \ $(LIBF_DIR)/SearchPaths.o \ $(LIBF_DIR)/ShadowVolumeGen.o \ $(LIBF_DIR)/State.o \ $(LIBF_DIR)/TextPrimitive.o \ $(LIBF_DIR)/TexturePainter.o \ $(LIBF_DIR)/Tree.o \ $(LIBF_DIR)/dada.o # fluxus physics lib LIBFP_DIR = libfluxphysics/src LIBFP_SRC = $(LIBFP_DIR)/*.cpp LIBFP_OBJS = $(LIBFP_DIR)/Physics.o # fluxus-engine module ENGINE_DIR = modules/fluxus-engine/src ENGINE_SRC = $(ENGINE_DIR)/*.cpp ENGINE_OBJS = $(ENGINE_DIR)/Engine.o \ $(ENGINE_DIR)/FluxusEngine.o \ $(ENGINE_DIR)/GlobalStateFunctions.o \ $(ENGINE_DIR)/LocalStateFunctions.o \ $(ENGINE_DIR)/LightFunctions.o \ $(ENGINE_DIR)/MathsFunctions.o \ $(ENGINE_DIR)/PDataFunctions.o \ $(ENGINE_DIR)/PhysicsFunctions.o \ $(ENGINE_DIR)/PrimitiveFunctions.o \ $(ENGINE_DIR)/SchemeHelper.o \ $(ENGINE_DIR)/TurtleBuilder.o \ $(ENGINE_DIR)/TurtleFunctions.o \ $(ENGINE_DIR)/UtilFunctions.o \ # fluxus-osc module OSC_DIR = modules/fluxus-osc/src OSC_SRC = $(OSC_DIR)/*.cpp OSC_OBJS = $(OSC_DIR)/OSCCore.o \ $(OSC_DIR)/OSCServer.o # fluxus-audio module AUDIO_DIR = modules/fluxus-audio/src AUDIO_SRC = $(AUDIO_DIR)/*.cpp AUDIO_OBJS = $(AUDIO_DIR)/FluxusAudio.o \ $(AUDIO_DIR)/JackClient.o \ $(AUDIO_DIR)/AudioCollector.o # compilation and desecration all: modules fluxus fluxus: $(FLUXUS_OBJS) $(CC) -o $(BUILD_DIR)/fluxus $(FLUXUS_OBJS) $(LDFLAGS) $(OSX_FLAGS) $(MZDYN) -lfluxus libfluxus: $(LIBF_OBJS) $(CC) -dynamiclib -o $(BUILD_DIR)/libfluxus.dylib $(LIBF_OBJS) $(LDFLAGS) $(OSX_FLAGS) libfluxphysics: $(LIBFP_OBJS) $(CC) -dynamiclib -o $(BUILD_DIR)/libfluxphysics.dylib $(LIBFP_OBJS) $(LDFLAGS) $(OSX_FLAGS) modules: fluxus-engine fluxus-osc fluxus-audio fluxus-engine: libfluxus $(ENGINE_OBJS) $(CC) -dynamiclib -o $(MODULES_DIR)/fluxus-engine.dylib $(ENGINE_OBJS) $(LDFLAGS) \ -lfluxus $(OSX_FLAGS) $(MZDYN) fluxus-audio: libfluxus $(AUDIO_OBJS) $(CC) -dynamiclib -o $(MODULES_DIR)/fluxus-audio.dylib $(AUDIO_OBJS) $(LDFLAGS) \ -lfluxus $(OSX_FLAGS) $(MZDYN) fluxus-osc: libfluxus $(OSC_OBJS) $(CC) -dynamiclib -o $(MODULES_DIR)/fluxus-osc.dylib $(OSC_OBJS) $(LDFLAGS) \ -lfluxus $(OSX_FLAGS) $(MZDYN) .cpp.o: $(CC) -o $@ -I$(LIBF_DIR) $(CFLAGS) -c $< # documentation docs: doc-html docs-html: makeinfo --css-include=docs/fluxusdoc.css --html docs/fluxus.texi -o docs/html/ cp -R docs/images docs/html/. # installation and perversion install: FORCE @echo "not yet..." # packaging planet-module: mac-app: mac-port: dpkg: # default clean: -rm -f $(BUILD_DIR)/fluxus -rm -f $(BUILD_DIR)/modules/* -rm -f $(FLUXUS_DIR)/*.o -rm -f $(LIBF_DIR)/*.o -rm -f $(ENGINE_DIR)/*.o -rm -f $(AUDIO_DIR)/*.o -rm -f $(OSC_DIR)/*.o distclean: clean rm -f Makefile config.h config.status config.log FORCE: