-all: clean sin
+SRC = sin.dsp
 
-sin: sin.dsp
-       faustine -d $<
+BASENAME = $(SRC:.dsp=)
+FORMAT = wav
+WAVOUT = $(BASENAME).$(FORMAT)
+
+all: $(WAVOUT)
+
+$(WAVOUT): $(SRC)
+       faustine -f $< > sin.wav
 
 clean::
-       rm -f gmon.out output*
+       rm -f gmon.out $(WAVOUT) *~