# Directory containing Faust .lib and .cpp architecture files: ck1 := /opt/local/lib/faust/music.lib ck2 := /usr/local/lib/faust/music.lib ck3 := $(FAUST_LIB_PATH)/faust/music.lib LIB := $(if $(wildcard $(ck1)),/opt/local/lib,"") LIB := $(if $(wildcard $(ck2)),/usr/local/lib,$(LIB)) LIB := $(if $(wildcard $(ck3)),$(FAUST_LIB_PATH),$(LIB)) ifeq ($(OSC),1) OSCCTRL := "-DOSCCTRL -I$(LIB)/faust/osclib" QTDEFS := "DEFINES += OSCCTRL" OSCLIB := -L$(LIB)/faust/osclib -lOSCFaust -loscpack endif MYICCFLAGS := '-O3 -xT -ftz -fno-alias -fp-model fast=2 $(OSCCTRL)' ifeq ($(system), Darwin) MYGCCFLAGS := '-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' else MYGCCFLAGS := '-O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math $(OSCCTRL)' endif VSIZE := 256 SC_SOURCE_DIR = ../../supercollider ifdef POLY PDPOLY=$(POLY) else PDPOLY=2 endif ifdef RADIO PDRADIO=-r $(RADIO) endif MYF2PDFLAGS='-s -n $(PDPOLY) $(PDRADIO)' all puredata: install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS=$(MYF2PDFLAGS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.pdcompile pdpoly2 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 2 -s' -f Makefile.pdcompile pdpoly4 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 4 -s' -f Makefile.pdcompile pdpoly6 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 6 -s' -f Makefile.pdcompile pdpoly8 : install -d puredatadir $(MAKE) DEST='puredatadir/' ARCH='puredata.cpp' LIB='-L$(LIB)' F2PDFLAGS='-n 8 -s' -f Makefile.pdcompile test: ijackgtk ijackvec ijackomp gjackgtk gjackvec gjackomp ijackgtk : install -d ijackgtkdir $(MAKE) DEST='ijackgtkdir/' ARCH='jack-gtk.cpp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackvec : install -d ijackvecdir $(MAKE) DEST='ijackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ijackomp : install -d ijackompdir $(MAKE) DEST='ijackompdir/' ARCH='jack-gtk.cpp' VEC='-vs $(VSIZE) -omp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ijacksch : install -d ijackschdir $(MAKE) DEST='ijackschdir/' ARCH='jack-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile gjackgtk : install -d gjackgtkdir $(MAKE) DEST='gjackgtkdir/' ARCH='jack-gtk.cpp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackvec : install -d gjackvecdir $(MAKE) DEST='gjackvecdir/' ARCH='jack-gtk.cpp' VEC='-vec -lv 1 -vs $(VSIZE)' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.compile gjackomp : install -d gjackompdir $(MAKE) DEST='gjackompdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='-L$(LIB) `pkg-config --cflags --libs jack gtk+-2.0` -I/usr/local/include' CXX='g++' CXXFLAGS='-fopenmp '$(MYGCCFLAGS) -f Makefile.compile svg: $(MAKE) -f Makefile.svgcompile alsagtk : install -d alsagtkdir $(MAKE) DEST='alsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lasound `pkg-config --cflags --libs gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile ialsagtk : install -d ialsagtkdir $(MAKE) DEST='ialsagtkdir/' ARCH='alsa-gtk.cpp' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsavec : install -d ialsavecdir $(MAKE) DEST='ialsavecdir/' ARCH='alsa-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile ialsaomp : install -d ialsaompdir $(MAKE) DEST='ialsaompdir/' ARCH='alsa-gtk.cpp' VEC='-omp -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS='-openmp '$(MYICCFLAGS) -f Makefile.compile ialsasch : install -d ialsaschdir $(MAKE) DEST='ialsaschdir/' ARCH='alsa-gtk.cpp' VEC='-sch -vs $(VSIZE)' LIB='-lpthread -lasound `pkg-config --cflags --libs gtk+-2.0`' CXX='icc' CXXFLAGS=$(MYICCFLAGS) -f Makefile.compile jackgtk : install -d jackgtkdir $(MAKE) DEST='jackgtkdir/' ARCH='jack-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile msjackgtk : install -d msjackgtkdir $(MAKE) DEST='msjackgtkdir/' ARCH='ms-jack-gtk.cpp' LIB='-lMidiShare `pkg-config --cflags --libs jack gtk+-2.0`' -f Makefile.compile jackqt : install -d jackqtdir $(MAKE) DEST='jackqtdir/' ARCH='jack-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackqtsch : install -d jackqtschdir $(MAKE) DEST='jackqtschdir/' ARCH='jack-qt.cpp' VEC='-sch -vs $(VSIZE)' LIB='-ljack' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile netjackqt : install -d netjackqtdir $(MAKE) DEST='netjackqtdir/' ARCH='netjack-qt.cpp' LIB='-ljacknet $(OSCLIB)' DEFS=$(QTDEFS) CXXFLAGS=$(MYGCCFLAGS) -f Makefile.qtcompile jackwt : install -d jackwtdir $(MAKE) DEST='jackwtdir/' ARCH='jack-wt.cpp' LIB='-I$(LIB)/faust/ -ljack -lwt -lwthttp -lboost_signals-mt $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.compile paqt : install -d paqtdir $(MAKE) DEST='paqtdir/' ARCH='pa-qt.cpp' LIB='-lportaudio $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile caqt : install -d caqtdir $(MAKE) DEST='caqtdir/' ARCH='ca-qt.cpp' LIB='-framework CoreAudio -framework AudioUnit -framework CoreServices $(OSCLIB)' CXXFLAGS=$(MYGCCFLAGS) DEFS=$(QTDEFS) -f Makefile.qtcompile oscioqt : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack oscioqt : install -d oscioqtdir $(MAKE) DEST='oscioqtdir/' ARCH='oscio-qt.cpp' LIB='-ljack $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile osciogtk : OSCLIB = -L$(LIB)/faust/osclib -lOSCFaust -loscpack osciogtk : install -d osciogtkdir $(MAKE) DEST='osciogtkdir/' ARCH='oscio-gtk.cpp' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack gtk+-2.0` $(OSCLIB)' CXXFLAGS=-I$(LIB)/faust/osclib -f Makefile.compile alsaqt : install -d alsaqtdir $(MAKE) DEST='alsaqtdir/' ARCH='alsa-qt.cpp' LIB='-lpthread -lasound $(OSCLIB)' DEFS=$(QTDEFS) -f Makefile.qtcompile ladspa : install -d ladspadir $(MAKE) DEST='ladspadir/' ARCH='ladspa.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile ladspasch : install -d ladspaschdir $(MAKE) DEST='ladspaschdir/' ARCH='ladspa.cpp' VEC='-sch -vs $(VSIZE)' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.ladspacompile dssi : install -d dssidir $(MAKE) DEST='dssidir/' ARCH='dssi.cpp' LIB='-I$(LIB)/faust/' EXT='.so' CXXFLAGS=$(MYGCCFLAGS) -f Makefile.dssicompile csound : install -d csounddir $(MAKE) DEST='csounddir/' -f Makefile.csound csounddouble : install -d csounddoubledir $(MAKE) DEST='csounddoubledir/' VEC='-double' -f Makefile.csound jackwx : install -d jackwxdir $(MAKE) DEST='jackwxdir/' ARCH='jack-wx.cpp' LIB='`pkg-config jack --cflags --libs` `wx-config --cflags --libs`' -f Makefile.compile ossgtk : install -d ossgtkdir $(MAKE) DEST='ossgtkdir/' ARCH='oss-gtk.cpp' LIB='-lpthread `pkg-config gtk+-2.0 --cflags --libs`' -f Makefile.compile osswx : install -d osswxdir $(MAKE) DEST='osswxdir/' ARCH='oss-wx.cpp' LIB='-lpthread `wx-config --cflags --libs`' -f Makefile.compile pagtk : install -d pagtkdir $(MAKE) DEST='pagtkdir/' ARCH='pa-gtk.cpp' LIB='-I$(LIB)/faust/ -lpthread -lportaudio `pkg-config gtk+-2.0 --cflags --libs` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile pawx : install -d pawxdir $(MAKE) DEST='pawxdir/' ARCH='pa-wx.cpp' LIB='-lpthread -lportaudio `wx-config --cflags --libs`' -f Makefile.compile module : install -d moduledir $(MAKE) DEST='moduledir/' ARCH='module.cpp' LIB='-fPIC -shared' EXT='.so' -f Makefile.compile bundle : install -d bundledir $(MAKE) DEST='bundledir/' ARCH='module.cpp' LIB='-I$(LIB)/faust/ -fPIC -bundle' EXT='.so' -f Makefile.compile maxmsp msp : install -d mspdir $(MAKE) DEST='mspdir/' ARCH='max-msp.cpp' LIB='' -f Makefile.mspcompile w32vstdir : mkdir w32vstdir w32vst : w32vstdir $(MAKE) DEST='w32vstdir/' ARCH='vst2p4.cpp' LIB='' -f Makefile.w32vstcompile vst : install -d vstdir $(MAKE) DEST='vstdir/' ARCH='vst.cpp' LIB='' -f Makefile.vstcompile iphone : install -d iphonedir $(MAKE) DEST='iphonedir/' ARCH='iphone-cocoa.cpp' LIB='' -f Makefile.iphonecompile iphonenet : install -d iphonenetdir $(MAKE) DEST='iphonenetdir/' ARCH='iphone-cocoa-net.cpp' LIB='' -f Makefile.iphonenetcompile bench : install -d benchdir $(MAKE) DEST='benchdir/' ARCH='bench.cpp' LIB='' -f Makefile.compile ibench : install -d ibenchdir $(MAKE) DEST='ibenchdir/' ARCH='parbench.cpp' LIB='' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecbench : install -d ivecbenchdir $(MAKE) DEST='ivecbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE)' LIB='' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile ivecjack : install -d ivecjackdir $(MAKE) DEST='ivecjackdir/' ARCH='jack-gtk.cpp' VEC='-vec -vs $(VSIZE)' LIB='`pkg-config --cflags --libs jack gtk+-2.0`' CXX='icc' CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile iparbench : install -d iparbenchdir $(MAKE) DEST='iparbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='' CXX='icc' CXXFLAGS='-O3 -openmp -xT -ftz -fno-alias -fp-model fast=2' -f Makefile.compile gparbench : install -d gparbenchdir $(MAKE) DEST='gparbenchdir/' ARCH='parbench.cpp' VEC='-vec -vs $(VSIZE) -omp' LIB='' CXX='g++' CXXFLAGS='-O3 -march=native -mfpmath=sse -msse -msse2 -msse3 -ffast-math' -f Makefile.compile sndfile : install -d sndfiledir $(MAKE) DEST='sndfiledir/' ARCH='sndfile.cpp' LIB='-I$(LIB)/faust/ -lsndfile' -f Makefile.compile CXXFLAGS=$(OSCCTRL) plot : install -d plotdir $(MAKE) DEST='plotdir/' ARCH='plot.cpp' LIB='' -f Makefile.compile matlabplot : install -d matlabplotdir $(MAKE) DEST='matlabplotdir/' ARCH='matlabplot.cpp' LIB='' -f Makefile.compile q : install -d qdir $(MAKE) DEST='qdir/' ARCH='q.cpp' LIB='' -f Makefile.qcompile supercollider sc: install -d supercolliderdir $(MAKE) DEST='supercolliderdir/' -f Makefile.sccompile jackconsole : install -d jackconsoledir $(MAKE) DEST='jackconsoledir/' ARCH='jack-console.cpp' VEC='-vec -vs $(VSIZE)' LIB='-I$(LIB)/faust/ `pkg-config --cflags --libs jack ` $(OSCLIB)' CXXFLAGS=$(OSCCTRL) -f Makefile.compile mathdoc : $(MAKE) -f Makefile.mathdoc help: @echo "make alsagtk [OSC=1] : compile examples as ALSA applications with a GTK Graphical User Interface" @echo "make alsaqt [OSC=1] : compile examples as ALSA applications with a QT4 Graphical User Interface" @echo "make sndfile : compile examples as sound file processors with a Command line User Interface" @echo "make jackconsole [OSC=1] : compile examples as JACK applications with a Command line User Interface" @echo "make jackgtk [OSC=1] : compile examples as JACK applications with a GTK Graphical User Interface" @echo "make jackqt [OSC=1] : compile examples as JACK applications with a QT4 Graphical User Interface" @echo "make jackwx : compile examples as JACK applications with a wxWindows Graphical User Interface" @echo "make ossgtk : compile examples as OSS applications with a GTK Graphical User Interface" @echo "make osswx : compile examples as OSS applications with a wxWindows Graphical User Interface" @echo "make pagtk [OSC=1] : compile examples as PortAudio applications with a GTK Graphical User Interface" @echo "make paqt [OSC=1] : compile examples as PortAudio applications with a QT4 Graphical User Interface" @echo "make pawx : compile examples as PortAudio applications with a wxWindows Graphical User Interface" @echo "make caqt [OSC=1] : compile examples as CoreAudio applications with a QT4 Graphical User Interface" @echo "make oscioqt : compile examples as OSC driven applications with a QT4 Graphical User Interface" @echo "--------------------------------------------" @echo "make ladspa : compile examples as LADSPA plugins" @echo "make dssi : compile examples as DSSI plugins" @echo "make csound : compile examples as CSOUND opcodes" @echo "make csounddouble : compile examples as double precision CSOUND opcodes" @echo "make maxmsp : compile examples as Max/MSP externals" @echo "make vst : compile examples as native VST plugins" @echo "make w32vst : crosscompile examples as windows VST plugins" @echo "make iphone : compile examples for Apple iPhone/iPod" @echo "make supercollider : compile examples as Supercollider plugins" @echo "make puredata : compile examples as Puredata externals" @echo "make q : compile examples as Q plugins" @echo "--------------------------------------------" @echo "make svg : generate the examples block-diagrams in SVG format " @echo "make mathdoc : generate the examples math documentation in TEX and PDF formats " @echo "make bench : compile examples as command line benchmarks " @echo "make plot : compile examples as command line programs that print samples for plotting with, e.g., gnuplot" @echo "make matlabplot : compile examples as command line programs that print samples in matlab input format" @echo "--------------------------------------------" @echo "make clean : remove all object files" clean : rm -rf *dir rm -rf *-svg $(MAKE) -f Makefile.mathdoc clean