File: Make.web

package info (click to toggle)
faust 2.79.3%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 397,496 kB
  • sloc: cpp: 278,433; ansic: 116,164; javascript: 18,529; vhdl: 14,052; sh: 13,884; java: 5,900; objc: 3,852; python: 3,222; makefile: 2,655; cs: 1,672; lisp: 1,146; ruby: 954; yacc: 586; xml: 471; lex: 247; awk: 110; tcl: 26
file content (109 lines) | stat: -rw-r--r-- 3,812 bytes parent folder | download | duplicates (2)
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,$@)