dspsrc  := $(wildcard *.dsp)
cppsrc  := $(dspsrc:.dsp=.cpp)
plugins	:= $(dspsrc:%.dsp=%~.pd_linux)
svg 	:= $(dspsrc:.dsp=-svg)
xml 	:= $(dspsrc:.dsp=.dsp.xml)
pd 	:= $(dspsrc:.dsp=.pd)

all: $(plugins) $(svg)

clean:
	rm -Rf *~ $(cppsrc) $(plugins) $(svg) $(xml)

%.cpp %.dsp.xml %-svg: %.dsp
	faust -xml -svg -sd -a puredata.cpp $< -o $@

%~.pd_linux: %.cpp
	g++ -shared -fPIC -Dmydsp=$(@:%~.pd_linux=%) -o $@ $<

%.pd: %.dsp.xml
	faust2pd -s $<