CFLAGS := \
	--target=wasm32 \
	-O2 \
	-flto \
	-ffreestanding \
	-fno-builtin \
	-nostdlib

EXPORTS := \
	init \
	get_buffer_ptr \
	get_buffer_len \
	render_frame

comma := ,

LDFLAGS := -Wl,--no-entry -Wl,--lto-O2
# comment the line below to fail on undefined symbols at link-time instead of runtime
#LDFLAGS += -Wl,--allow-undefined
LDFLAGS += $(addprefix -Wl$(comma)--export=,$(EXPORTS))

FDLIBM_SRC := \
	fdlibm/k_cos.c fdlibm/s_cos.c \
	fdlibm/k_sin.c fdlibm/s_sin.c \
	fdlibm/k_rem_pio2.c fdlibm/e_rem_pio2.c \
	fdlibm/s_scalbn.c

main.wasm: main.c math.c $(FDLIBM_SRC)
	clang $(CFLAGS) $(LDFLAGS) -o $@ $^
