|
|
|
BINDIR := bin
|
|
|
|
OBJDIR := objects
|
|
|
|
OUTPUT_FOLDER := results
|
|
|
|
|
|
|
|
EXE := $(BINDIR)/all_tests.bin
|
|
|
|
BETA := $(BINDIR)/beta.bin
|
|
|
|
|
|
|
|
CXX = g++
|
|
|
|
CXXFLAGS = -g -std=c++20 -MMD -MP -Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wmissing-declarations -Winline -Wundef -Wno-unused-parameter
|
|
|
|
DEFINES = -DCPU=x86 -DOUTPUT_FOLDER="\"$(OUTPUT_FOLDER)\""
|
|
|
|
|
|
|
|
ifeq ($(shell echo $(MODE) | tr '[:upper:]' '[:lower:]'), release)
|
|
|
|
|
|
|
|
# RELEASE
|
|
|
|
CXXFLAGS += -O3
|
|
|
|
DEFINES += -DNDEBUG
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
# DEBUG
|
|
|
|
CXXFLAGS += -g3
|
|
|
|
DEFINES += -DDEBUG
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
INCLUDES = -I../../CMSIS_5/CMSIS/DSP/Include/ \
|
|
|
|
-I../../CMSIS_5/CMSIS/Core/Include/ \
|
|
|
|
-I../../Synth_Dexed/src/
|
|
|
|
|
|
|
|
CPPCHECK = cppcheck
|
|
|
|
CHECKFLAGS = -q -j 8 --enable=all --force --language=c++ \
|
|
|
|
$(INCLUDES) --platform=unix64 \
|
|
|
|
--error-exitcode=0 \
|
|
|
|
--suppressions-list=cppcheck-suppression-list.txt
|
|
|
|
|
|
|
|
-include $(TST_OBJS:.o=.d)
|
|
|
|
-include $(FX__OBJS:.o=.d)
|
|
|
|
|
|
|
|
LD := g++
|
|
|
|
LIBS := -lm -lstdc++ -lgtest -lpthread
|
|
|
|
|
|
|
|
FX__SRCS := ../fx.cpp
|
|
|
|
FX__SRCS += ../fx_components.cpp
|
|
|
|
FX__SRCS += ../fx_svf.cpp
|
|
|
|
FX__SRCS += ../fx_tube.cpp
|
|
|
|
FX__SRCS += ../fx_chorus.cpp
|
|
|
|
FX__SRCS += ../fx_phaser.cpp
|
|
|
|
FX__SRCS += ../fx_orbitone.cpp
|
|
|
|
FX__SRCS += ../fx_flanger.cpp
|
|
|
|
FX__SRCS += ../fx_delay.cpp
|
|
|
|
FX__SRCS += ../effect_platervbstereo.cpp
|
|
|
|
FX__SRCS += ../fx_shimmer_helper.cpp
|
|
|
|
FX__SRCS += ../fx_diffuser.cpp
|
|
|
|
FX__SRCS += ../fx_pitch_shifter.cpp
|
|
|
|
FX__SRCS += ../fx_reverberator.cpp
|
|
|
|
FX__SRCS += ../fx_shimmer_reverb.cpp
|
|
|
|
FX__SRCS += ../fx_dry.cpp
|
|
|
|
FX__SRCS += ../fx_rack.cpp
|
|
|
|
|
|
|
|
TST_SRCS := $(filter-out waveplay.cpp $(wildcard beta*.cpp), $(wildcard *.cpp))
|
|
|
|
|
|
|
|
BETASRCS := $(wildcard beta*.cpp)
|
|
|
|
BETASRCS += arm_functions.cpp
|
|
|
|
BETASRCS += wavein.cpp
|
|
|
|
BETASRCS += waveout.cpp
|
|
|
|
BETASRCS += test_fx_helper.cpp
|
|
|
|
|
|
|
|
FX__OBJS = $(patsubst ../%, $(OBJDIR)/%, $(FX__SRCS:.cpp=.o))
|
|
|
|
TST_OBJS = $(TST_SRCS:%.cpp=$(OBJDIR)/%.o)
|
|
|
|
BETAOBJS = $(BETASRCS:%.cpp=$(OBJDIR)/%.o)
|
|
|
|
|
|
|
|
all: $(EXE) test
|
|
|
|
|
|
|
|
build: $(EXE)
|
|
|
|
|
|
|
|
cpp-check: $(FX__SRCS) $(TST_SRCS) $(BETASRCS)
|
|
|
|
flawfinder ../../src
|
|
|
|
$(CPPCHECK) $(CHECKFLAGS) $^
|
|
|
|
|
|
|
|
test: $(EXE) $(OUTPUT_FOLDER)
|
|
|
|
rm -rf $(OUTPUT_FOLDER)/*
|
|
|
|
./$(EXE)
|
|
|
|
|
|
|
|
test-debug: $(EXE) $(OUTPUT_FOLDER)
|
|
|
|
rm -rf $(OUTPUT_FOLDER)/*
|
|
|
|
valgrind --leak-check=full --leak-resolution=high --show-leak-kinds=all --xtree-leak=yes --show-mismatched-frees=yes --error-limit=no --log-file=$(OUTPUT_FOLDER)/valgrind-analysis-results.txt ./$(EXE)
|
|
|
|
|
|
|
|
$(BINDIR):
|
|
|
|
mkdir -p $@
|
|
|
|
|
|
|
|
$(OBJDIR):
|
|
|
|
mkdir -p $@
|
|
|
|
|
|
|
|
$(OUTPUT_FOLDER):
|
|
|
|
mkdir -p $@
|
|
|
|
|
|
|
|
$(OBJDIR)/%.o: %.cpp $(OBJDIR)
|
|
|
|
$(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) -c $< -o $@
|
|
|
|
|
|
|
|
$(OBJDIR)/%.o: ../%.cpp $(OBJDIR)
|
|
|
|
$(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) -c $< -o $@
|
|
|
|
|
|
|
|
$(EXE): $(BINDIR) $(TST_OBJS) $(FX__OBJS)
|
|
|
|
$(LD) $(CXXFLAGS) $(call wildcard,$(TST_OBJS)) $(call wildcard,$(FX__OBJS)) -o $@ $(LIBS)
|
|
|
|
|
|
|
|
$(BETA): $(BINDIR) $(BETAOBJS)
|
|
|
|
$(LD) $(CXXFLAGS) $(BETAOBJS) -o $@ $(LIBS)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf $(OBJDIR) $(BINDIR) $(OUTPUT_FOLDER)
|