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