dspsrc := $(wildcard *.dsp) cppsrc := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp)) appl := $(addprefix $(DEST), $(dspsrc:.dsp=~.mxo)) processor := $(shell uname -p) CC=g++ #CC=/Developer/usr/bin/llvm-g++ INC := -I/usr/local/include/c74support/max-includes -I/usr/local/include/c74support/msp-includes -I $(PWD) -I/usr/local/lib/faust all : $(appl) $(DEST)%~.mxo : %.dsp Info.plist.template install -d $@/Contents/MacOS faust $(VEC) -g -vs 2048 -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) #faust -sch -g -vs 2048 $(VEC) -a $(ARCH) $< -o $@/$(<:.dsp=.cpp) ifeq ($(processor), i386) $(CC) -arch i386 -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.i386.o) $(CC) -framework MaxAPI -framework Carbon -framework MaxAudioAPI -arch i386 -Wl,-Y,1455 -bundle $@/$(<:.dsp=.i386.o) -o $@/$(<:.dsp=.i386~) $(CC) -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) $(CC) -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ <Info.plist.template >$@/Contents/Info.plist lipo -create $@/$(<:.dsp=.i386~) $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) $@/$(<:.dsp=.i386.o) $@/$(<:.dsp=.i386~) else g++ -arch ppc -fpascal-strings -fasm-blocks -g -O3 $(INC) -c $@/$(<:.dsp=.cpp) -o $@/$(<:.dsp=.ppc.o) g++ -framework Carbon -framework MaxAPI -framework MaxAudioAPI -arch ppc -Wl,-Y,1455 -bundle $@/$(<:.dsp=.ppc.o) -o $@/$(<:.dsp=.ppc~) sed s/FOO/$(<:.dsp=~)/ <Info.plist.template >$@/Contents/Info.plist lipo -create $@/$(<:.dsp=.ppc~) -output $@/Contents/MacOS/$(<:.dsp=~) rm -f $@/$(<:.dsp=.ppc~) $@/$(<:.dsp=.ppc.o) endif Info.plist.template : echo '<?xml version="1.0" encoding="UTF-8"?>' > Info.plist.template echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> Info.plist.template echo '<plist version="1.0">' >> Info.plist.template echo '<dict>' >> Info.plist.template echo ' <key>CFBundleExecutable</key>' >> Info.plist.template echo ' <string>FOO</string>' >> Info.plist.template echo ' <key>CFBundleName</key>' >> Info.plist.template echo ' <string>FOO</string>' >> Info.plist.template echo ' <key>CFBundlePackageType</key>' >> Info.plist.template echo ' <string>iLaX</string>' >> Info.plist.template echo '</dict>' >> Info.plist.template echo '</plist>' >> Info.plist.template clean : rm -f $(DEST)