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 104 105 106 107 108 109
|
#
# Makefile for generating ir using wasm, wast...
#
system := $(shell uname -s)
system := $(shell echo $(system) | grep MINGW > /dev/null && echo MINGW || echo $(system))
ifeq ($(system), MINGW)
FAUST ?= ../../build/bin/faust.exe
COMPARE := ./filesCompare.exe
else
FAUST ?= ../../build/bin/faust
COMPARE := ./filesCompare
endif
MAKE ?= make
wasmdir ?= wasm
wastdir ?= wast
lang ?= wasm
wasmarch ?= ../../architecture/webaudio/wasm-standalone-node-wrapper-double.js
wastarch ?= ../../architecture/webaudio/wasm-standalone-node-wrapper-double.js
FAUSTOPTIONS ?=
.PHONY: test
dspfiles := $(wildcard dsp/*.dsp)
listfiles = $(dspfiles:dsp/%.dsp=ir/$1/%.ir)
SRCDIR := tools
all:
$(MAKE) -f Make.web
test:
@echo $(call listfiles,$(outdir))
help:
@echo "-------- FAUST impulse response tests --------"
@echo "Available targets are:"
@echo " 'wasm' : check the double output using the wasm backend"
@echo " 'wast' : check the double output using the wast backend"
@echo
@echo "Options:"
@echo " 'outdir' : define the output directory (default to 'wasm')"
@echo " 'FAUSTOPTIONS' : define additional faust options (empty by default)"
#########################################################################
# web backends
wasm: ir/$(wasmdir) $(call listfiles,$(wasmdir))
wast: ir/$(wastdir) $(call listfiles,$(wastdir))
#########################################################################
# output directories
ir/$(wasmdir):
mkdir -p ir/$(wasmdir)
ir/$(wastdir):
mkdir -p ir/$(wastdir)
#########################################################################
# tools
filesCompare: $(SRCDIR)/filesCompare.cpp
$(MAKE) filesCompare
#########################################################################
# rules for wasm
ir/$(wasmdir)/%.ir: ir/$(wasmdir)/%.js reference/%.ir
cd $(dir $<) && node --expose-wasm $(notdir $<) > $(notdir $@) || (rm -f $@; false)
$(COMPARE) $@ reference/$(notdir $@) -1 -part || (rm -f $@; false)
ir/$(wasmdir)/%.js : ir/$(wasmdir)/%.wasm
cat $(wasmarch) | sed -e 's/mydsp/$(basename $(notdir $<))/g' | sed -e 's/DSP/$(basename $(notdir $<))/g' > $@.tmp
mv $@.tmp $@
ir/$(wasmdir)/%.wasm : dsp/%.dsp
$(FAUST) -double -lang wasm -I dsp -i $(FAUSTOPTIONS) $< -o $@
# Specific rule to test 'control' primitive, using a 'fake' test...
ir/$(wasmdir)/control.wasm : dsp/control.dsp
$(FAUST) -double -lang wasm -I dsp -i $(FAUSTOPTIONS) dsp/simulated_control.dsp -o $@
# Specific rule to test 'enable/control' primitives that currently only work in scalar mode
ir/$(wasmdir)/osc_enable.wasm : dsp/osc_enable.dsp
@echo "Can only be tested in scalar mode"
$(FAUST) -double -lang wasm -I dsp -i $< -o $@
#########################################################################
# rules for wast
ir/$(wastdir)/%.ir: ir/$(wastdir)/%.js reference/%.ir
cd $(dir $<) && node --expose-wasm $(notdir $<) > $(notdir $@) || (rm -f $@; false)
$(COMPARE) $@ reference/$(notdir $@) -1 -part || (rm -f $@; false)
ir/$(wastdir)/%.js : ir/$(wastdir)/%.wast
cat $(wastarch) | sed -e 's/mydsp/$(basename $(notdir $<))/g' | sed -e 's/DSP/$(basename $(notdir $<))/g' > $@.tmp
mv $@.tmp $@
ir/$(wastdir)/%.wast : dsp/%.dsp
$(FAUST) -double -lang wast -i $(FAUSTOPTIONS) $< -o $@
wasm-as $@ -o $(patsubst %.wast,%.wasm,$@)
# Specific rule to test 'control' primitive, using a 'fake' test...
ir/$(wastdir)/control.wast : dsp/control.dsp
$(FAUST) -double -lang wast -i $(FAUSTOPTIONS) dsp/simulated_control.dsp -o $@
wasm-as $@ -o $(patsubst %.wast,%.wasm,$@)
# Specific rule to test 'enable/control' primitives that currently only work in scalar mode
ir/$(wastdir)/osc_enable.wast : dsp/osc_enable.dsp
@echo "Can only be tested in scalar mode"
$(FAUST) -double -lang wast -i $< -o $@
wasm-as $@ -o $(patsubst %.wast,%.wasm,$@)
|