File: Make.web

package info (click to toggle)
faust 2.14.4~repack2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 276,136 kB
  • sloc: cpp: 231,578; ansic: 15,403; sh: 10,871; java: 6,917; objc: 4,085; makefile: 3,002; cs: 1,077; ruby: 951; python: 885; xml: 550; yacc: 516; lex: 233; lisp: 201
file content (114 lines) | stat: -rw-r--r-- 3,947 bytes parent folder | download
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
110
111
112
113
114
#
# Makefile for generating ir using asmjs, 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

outdir ?= asmjs
wasmdir ?= wasm
wastdir ?= wast
lang ?= ajs
arch ?= ../../architecture/webaudio/asm-standalone-node-wrapper-double.js
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 asmjs

test:
	@echo $(call listfiles,$(outdir))

help:
	@echo "-------- FAUST impulse response tests --------"
	@echo "Available targets are:"
	@echo " 'asmjs' (default): check the double output using the ajs backend"
	@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 'asmjs')"
	@echo " 'FAUSTOPTIONS' : define additional faust options (empty by default)"


#########################################################################
# web backends
asmjs:  ir/$(outdir) $(call listfiles,$(outdir))
wasm:  ir/$(wasmdir) $(call listfiles,$(wasmdir))
wast:  ir/$(wastdir) $(call listfiles,$(wastdir))

#########################################################################
# output directories
ir/$(outdir):
	mkdir -p ir/$(outdir)
ir/$(wasmdir):
	mkdir -p ir/$(wasmdir)
ir/$(wastdir):
	mkdir -p ir/$(wastdir)

#########################################################################
# tools
filesCompare: $(SRCDIR)/filesCompare.cpp
	$(MAKE) filesCompare

#########################################################################
# rules for asm.js
ir/$(outdir)/%.ir: ir/$(outdir)/%.js reference/%.ir
	node $< > $@ || (rm -f $@; false)
	$(COMPARE)  $@ reference/$(notdir $@)
ir/$(outdir)/%.js : dsp/%.dsp
	$(FAUST) -double -lang $(lang) $(FAUSTOPTIONS) -cn $(basename $(notdir $@)) -a $(arch)  $<  -o $@

#########################################################################
# 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 $(basename $<).js $(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 $(FAUSTOPTIONS)  $<  -o $@

# Specific rule to test 'control' primitive, using a 'fake' test...
ir/$(wasmdir)/control.wasm : dsp/control.dsp
	$(FAUST) -double -lang wasm -i $(FAUSTOPTIONS)  dsp/simulated_control.dsp  -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 $(basename $<).js $(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,$@)