1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
#
# Makefile for testing the faust compiler output
#
system := $(shell uname -s)
system := $(shell echo $(system) | grep MINGW > /dev/null && echo MINGW || echo $(system))
ifeq ($(system), MINGW)
FAUST ?= ../../build/bin/faust.exe
else
FAUST ?= ../../build/bin/faust
endif
MAKE ?= make
SAMPLESROOT := ../..
REGRESSION := ..
FAUSTLIBS1 ?= ../../libraries
FAUSTLIBS2 ?= ../../libraries/old
FAUSTOPTIONS ?=
outdir ?= cpp
lang ?= cpp
ext ?= cpp
version := $(shell $(FAUST) --version | grep Version | sed -e 's/^..*Version //')
dspfiles = $(shell find $(SAMPLESROOT)/examples -name "*.dsp" | grep -v "TODO\|old\|faust-stk\|SAM")
rawregressionfiles = $(shell find $(REGRESSION)/codegen-tests -name "*.dsp" | grep -v BUG)
regressionfiles = $(shell ./filter $(lang) $(rawregressionfiles))
examplesout := $(dspfiles:$(SAMPLESROOT)/%.dsp=$(version)/$(outdir)/%.$(ext))
regressionout := $(regressionfiles:$(REGRESSION)/%.dsp=$(version)/$(outdir)/%.$(ext))
all: $(version)/$(outdir) $(examplesout) $(regressionout)
test:
@echo $(regressionout)
interp-tracer:
for file in $(dspfiles) ; do \
interp-tracer -trace 4 -control -noui -ct 0 -sts $$file ; \
done
for file in $(dspfiles) ; do \
interp-tracer -trace 4 -input -noui -ct 0 -sts $$file ; \
done
cmajor:
for file in $(dspfiles) ; do \
faust2cmajor -test $$file ; \
done
rnbo:
for file in $(dspfiles) ; do \
faust2rnbo $$file ; \
done
doc:
for file in $(dspfiles) ; do \
faust -svg $$file ; \
done
for file in $(dspfiles) ; do \
faust -mdoc $$file ; \
done
julia-tracer:
for file in $(dspfiles) ; do \
faust -lang julia -a julia/minimal-control.jl $$file -o test.jl ; \
julia test.jl ; \
rm test.jl ; \
done
help:
@echo "-------- FAUST compilation tests --------"
@echo "Available targets are:"
@echo " 'all' (default): compiles all the dsp found in the examples and regression"
@echo " folders using the $(lang) backend"
@echo
@echo "Specific targets:"
@echo " 'examples' : use only the examples folder"
@echo " 'regression' : use only the regression folder"
@echo
@echo "Options:"
@echo " 'outdir' : defines output directory (default is $(outdir))"
@echo " 'lang' : defines the faust backend (default is $(lang))"
@echo " 'ext' : defines the faust compiled file extension (default is $(ext))"
@echo " 'FAUSTOPTIONS' : additional faust options (default is empty)"
examples: $(examplesout) $(gccexamplesout)
regression: $(regressionout) $(gccregressionout)
$(version)/$(outdir):
mkdir -p $(version)/$(outdir)
#########################################################################
# generic rule rule for $(lang) output
$(version)/$(outdir)/%.$(ext): $(SAMPLESROOT)/%.dsp
@[ -d $(@D) ] || mkdir -p $(@D)
$(FAUST) -lang $(lang) -I $(FAUSTLIBS1) -I $(FAUSTLIBS2) $(FAUSTOPTIONS) $< -o $@
$(version)/$(outdir)/%.$(ext): $(REGRESSION)/%.dsp
@[ -d $(@D) ] || mkdir -p $(@D)
$(FAUST) -lang $(lang) -I $(FAUSTLIBS1) -I $(FAUSTLIBS2) $(FAUSTOPTIONS) $< -o $@
|