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)