1PACKAGES       = rings/test stmlib/utils rings/dsp rings stmlib/dsp
2
3VPATH          = $(PACKAGES)
4
5TARGET         = rings_test
6BUILD_ROOT     = build/
7BUILD_DIR      = $(BUILD_ROOT)$(TARGET)/
8CC_FILES       = rings_test.cc \
9		fm_voice.cc \
10		part.cc \
11		resonator.cc \
12		resources.cc \
13		random.cc \
14		string.cc \
15		string_synth_part.cc \
16		units.cc
17OBJ_FILES      = $(CC_FILES:.cc=.o)
18OBJS           = $(patsubst %,$(BUILD_DIR)%,$(OBJ_FILES)) $(STARTUP_OBJ)
19DEPS           = $(OBJS:.o=.d)
20DEP_FILE       = $(BUILD_DIR)depends.mk
21
22all:  rings_test
23
24$(BUILD_DIR):
25	mkdir -p $(BUILD_DIR)
26
27$(BUILD_DIR)%.o: %.cc
28	g++ -c -DTEST -g -Wall -Werror -msse2 -Wno-unused-variable -O2 -I. $< -o $@
29
30$(BUILD_DIR)%.d: %.cc
31	g++ -MM -DTEST -I. $< -MF $@ -MT $(@:.d=.o)
32
33rings_test:  $(OBJS)
34	g++ -g -o $(TARGET) $(OBJS) -Wl,-no_pie -lm -lprofiler -L/opt/local/lib
35
36depends:  $(DEPS)
37	cat $(DEPS) > $(DEP_FILE)
38
39$(DEP_FILE):  $(BUILD_DIR) $(DEPS)
40	cat $(DEPS) > $(DEP_FILE)
41
42profile:	rings_test
43	env CPUPROFILE_FREQUENCY=1000 CPUPROFILE=$(BUILD_DIR)/rings.prof ./rings_test && pprof --pdf ./rings_test $(BUILD_DIR)/rings.prof > profile.pdf && open profile.pdf
44
45clean:
46	rm $(BUILD_DIR)*.*
47
48include $(DEP_FILE)
49