diff --git a/templates/cmd-make/Makefile b/templates/cmd-make/Makefile index b3206ba..e003f60 100644 --- a/templates/cmd-make/Makefile +++ b/templates/cmd-make/Makefile @@ -9,14 +9,14 @@ else BINDIR = ${PREFIX}/bin endif -MAIN_DIR := $(or $(MAIN_DIR),src) -DATA_DIR := $(or $(DATA_DIR),src) +COMMON_DIR := $(or $(COMMON_DIR),.) +DATA_DIR := $(or $(DATA_DIR),.) PLUGIN_DIR := $(or $(PLUGIN_DIR),src) CC = gcc CFLAGS = -O3 -Wall -Wpedantic -Wextra -CFLAGS_ALL = -I${DATA_DIR} -I${PLUGIN_DIR} -I${TINYWAV_DIR} -I${MIDI_PARSER_DIR}/include -fPIC ${CFLAGS} ${CFLAGS_EXTRA} +CFLAGS_ALL = -I${DATA_DIR}/src -I${PLUGIN_DIR} -I${TINYWAV_DIR} -I${MIDI_PARSER_DIR}/include -fPIC ${CFLAGS} ${CFLAGS_EXTRA} LDFLAGS = LDFLAGS_ALL = ${LDFLAGS} ${LDFLAGS_EXTRA} @@ -30,19 +30,19 @@ ifeq ($(UNAME_S), Darwin) build/${PROGRAM}: build/tmp/x86_64 build/tmp/arm64 lipo -create -output $@ $^ -build/tmp/x86_64: ${MAIN_DIR}/main.c ${DATA_DIR}/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build/tmp - ${CC} ${MAIN_DIR}/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} -arch x86_64 +build/tmp/x86_64: ${COMMON_DIR}/src/main.c ${DATA_DIR}/src/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build/tmp + ${CC} ${COMMON_DIR}/src/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} -arch x86_64 -build/tmp/arm64: ${MAIN_DIR}/main.c ${DATA_DIR}/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build/tmp - ${CC} ${MAIN_DIR}/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} -arch arm64 +build/tmp/arm64: ${COMMON_DIR}/main.c ${DATA_DIR}/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build/tmp + ${CC} ${COMMON_DIR}/src/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} -arch arm64 build/tmp: mkdir -p $@ else -build/${PROGRAM}: ${MAIN_DIR}/main.c ${DATA_DIR}/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build - ${CC} ${MAIN_DIR}/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} +build/${PROGRAM}: ${COMMON_DIR}/src/main.c ${DATA_DIR}/src/data.h ${PLUGIN_DIR}/plugin.h ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c | build + ${CC} ${COMMON_DIR}/src/main.c ${TINYWAV_DIR}/tinywav.c ${MIDI_PARSER_DIR}/src/midi-parser.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} endif diff --git a/templates/cmd-make/vars.mk b/templates/cmd-make/vars.mk index 75c9034..94518eb 100644 --- a/templates/cmd-make/vars.mk +++ b/templates/cmd-make/vars.mk @@ -1,7 +1,7 @@ BUNDLE_NAME := {{=it.product.bundleName}} CFLAGS_EXTRA := {{=it.make && it.make.cflags ? it.make.cflags : ""}} {{=it.cmd_make.cflags ? it.cmd_make.cflags : ""}} LDFLAGS_EXTRA := {{=it.make && it.make.ldflags ? it.make.ldflags : ""}} {{=it.cmd_make.ldflags ? it.cmd_make.ldflags : ""}} -MAIN_DIR := {{=it.cmd_make && it.cmd_make.mainDir ? it.cmd_make.mainDir : (it.make && it.make.mainDir ? it.make.mainDir : "")}} +COMMON_DIR := {{=it.cmd_make && it.cmd_make.commonDir ? it.cmd_make.commonDir : (it.make && it.make.commonDir ? it.make.commonDir : "")}} DATA_DIR := {{=it.cmd_make && it.cmd_make.dataDir ? it.cmd_make.dataDir : (it.make && it.make.dataDir ? it.make.dataDir : "")}} PLUGIN_DIR := {{=it.cmd_make && it.cmd_make.pluginDir ? it.cmd_make.pluginDir : (it.make && it.make.pluginDir ? it.make.pluginDir : "")}} TINYWAV_DIR := {{=it.cmd_make.tinywavDir}} diff --git a/templates/web-demo/demo.mk b/templates/web-demo/demo.mk index 01a0dda..a07d297 100644 --- a/templates/web-demo/demo.mk +++ b/templates/web-demo/demo.mk @@ -1,6 +1,6 @@ ALL += build/index.html build/cert.pem build/key.pem -build/index.html: src/index.html | build +build/index.html: ${DATA_DIR}/src/index.html | build cp $^ $@ build/key.pem: build/cert.pem diff --git a/templates/web-make/Makefile b/templates/web-make/Makefile index 00f31c7..040f160 100644 --- a/templates/web-make/Makefile +++ b/templates/web-make/Makefile @@ -1,9 +1,13 @@ include vars.mk +COMMON_DIR := $(or $(COMMON_DIR),.) +DATA_DIR := $(or $(DATA_DIR),.) +PLUGIN_DIR := $(or $(PLUGIN_DIR),src) + CC = clang CFLAGS = -Ofast -Wall -Wpedantic -Wextra -CFLAGS_ALL = --target=wasm32 -flto -fvisibility=hidden ${CFLAGS} ${CFLAGS_EXTRA} +CFLAGS_ALL = -I${COMMON_DIR}/src -I${DATA_DIR}/src -I${PLUGIN_DIR} --target=wasm32 -flto -fvisibility=hidden ${CFLAGS} ${CFLAGS_EXTRA} LDFLAGS_ALL = \ -Wl,--allow-undefined \ @@ -29,17 +33,17 @@ ALL = build/${BUNDLE_NAME}.wasm build/${BUNDLE_NAME}_processor.js build/${BUNDLE default: all --include demo.mk +-include ${COMMON_DIR}/demo.mk all: ${ALL} -build/${BUNDLE_NAME}.wasm: src/data.h src/memset.h src/plugin.h src/walloc.h src/processor.c | build - ${CC} src/processor.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} +build/${BUNDLE_NAME}.wasm: ${COMMON_DIR}/src/memset.h ${COMMON_DIR}/src/walloc.h ${COMMON_DIR}/src/processor.c ${DATA_DIR}/src/data.h ${PLUGIN_DIR}/plugin.h | build + ${CC} ${COMMON_DIR}/src/processor.c -o $@ ${CFLAGS_ALL} ${LDFLAGS_ALL} -build/${BUNDLE_NAME}_processor.js: src/processor.js | build +build/${BUNDLE_NAME}_processor.js: ${DATA_DIR}/src/processor.js | build cp $^ $@ -build/${BUNDLE_NAME}.js: src/module.js | build +build/${BUNDLE_NAME}.js: ${DATA_DIR}/src/module.js | build cp $^ $@ build: diff --git a/templates/web-make/vars.mk b/templates/web-make/vars.mk index ae7faf6..9949e59 100644 --- a/templates/web-make/vars.mk +++ b/templates/web-make/vars.mk @@ -1,4 +1,7 @@ BUNDLE_NAME := {{=it.product.bundleName}} CFLAGS_EXTRA := {{=it.make && it.make.cflags ? it.make.cflags : ""}} {{=it.web_make && it.web_make.cflags ? it.web_make.cflags : ""}} LDFLAGS_EXTRA := {{=it.make && it.make.ldflags ? it.make.ldflags : ""}} {{=it.web_make && it.web_make.ldflags ? it.web_make.ldflags : ""}} +COMMON_DIR := {{=it.web_make && it.web_make.commonDir ? it.web_make.commonDir : (it.make && it.make.commonDir ? it.make.commonDir : "")}} +DATA_DIR := {{=it.web_make && it.web_make.dataDir ? it.web_make.dataDir : (it.make && it.make.dataDir ? it.make.dataDir : "")}} +PLUGIN_DIR := {{=it.web_make && it.web_make.pluginDir ? it.web_make.pluginDir : (it.make && it.make.pluginDir ? it.make.pluginDir : "")}} HAS_MIDI_IN := {{=it.product.buses.filter(x => x.type == "midi" && x.direction == "input").length > 0 ? "yes" : "no"}} diff --git a/templates/web/src/processor.c b/templates/web/src/processor.c index 4122b83..d53f920 100644 --- a/templates/web/src/processor.c +++ b/templates/web/src/processor.c @@ -121,6 +121,8 @@ void processor_process(instance *i, int32_t n_samples) { #if DATA_PRODUCT_PARAMETERS_OUTPUT_N > 0 for (size_t j = 0; j < DATA_PRODUCT_PARAMETERS_OUTPUT_N; j++) i->out_params[j] = plugin_get_parameter(&i->p, param_out_index[j]); +#else + (void)plugin_get_parameter; #endif }