crap/Makefile

152 lines
3.9 KiB
Makefile
Raw Normal View History

2013-05-22 15:56:59 -07:00
DISTNAME = crap
VERSION = git
FULLNAME = $(DISTNAME)-$(VERSION)
BIN ?= ./bin
VST_SDK_DIR ?= .
2015-12-04 12:18:58 -08:00
BOTH = eq eq_const eq_const_T420 eq_const_T420_svf mugi4 noise tube level
LADSPA = $(BOTH)
VST = $(BOTH) delay_test
UTILS = design bench
2015-06-10 21:11:25 -07:00
INCLUDES = util Crap biquad svf Param os6iir os2piir
BENCH_AGAINST = eq_const
###
PROGRAM = ${UTILS:%=$(BIN)/%}
2015-06-06 10:42:14 -07:00
HEADERS = ${INCLUDES:%=include/%.hpp}
LADSPA_SHOBJ = ${LADSPA:%=$(BIN)/ladspa/$(DISTNAME)_%.so}
VST_SHOBJ = ${VST:%=$(BIN)/vst/$(DISTNAME)_%.so}
SHOBJ = $(LADSPA_SHOBJ) $(VST_SHOBJ)
OBJ = ${SHOBJ:.so=.o}
AGAINST = $(BIN)/ladspa/$(DISTNAME)_$(BENCH_AGAINST).so
#EXE = ${PROGRAM:=.exe}
EXE = $(BIN)/design.exe
DLL = ${SHOBJ:.so=.dll}
2013-11-11 08:26:22 -08:00
VST_CPP = audioeffect.cpp audioeffectx.cpp vstplugmain.cpp
VST_CPP_DIR = $(VST_SDK_DIR)/public.sdk/source/vst2.x
VST_SRC = ${VST_CPP:%=$(VST_CPP_DIR)/%}
VST_OBJ = ${VST_CPP:%.cpp=$(BIN)/%.o}
VST_DEF = $(VST_SDK_DIR)/public.sdk/samples/vst2.x/win/vstplug.def
GENERAL_FLAGS = -Wall -Winline -Wno-unused-function -Wno-sign-compare
GENERAL_FLAGS += -I . -I include
2015-06-06 10:42:14 -07:00
ALL_CXXFLAGS = $(GENERAL_FLAGS) -std=gnu++11 $(CXXFLAGS)
ALL_LDFLAGS = -lm $(LDFLAGS)
LADSPA_FLAGS =
VST_FLAGS = -Wno-write-strings -Wno-narrowing
VST_FLAGS += -I $(VST_SDK_DIR) -DBUILDING_DLL=1
2015-12-10 07:25:23 -08:00
OPT_FLAGS = -Ofast -march=core2 -DNDEBUG
2015-06-10 22:16:51 -07:00
OBJCOPY ?= objcopy
# any possibly produced files besides intermediates
ALL = $(SHOBJ) $(PROGRAM) $(BIN)/vstsdk.o $(EXE) $(DLL)
.SUFFIXES:
2013-05-22 15:56:59 -07:00
# TODO: force options before clean before everything else
2013-05-22 15:56:59 -07:00
.PHONY: all options clean dist pretest ladspa vst $(UTILS)
.PHONY: benchmark windows linux
2015-04-06 11:26:47 -07:00
all: pretest ladspa vst
2013-05-22 15:56:59 -07:00
exe: $(EXE)
dll: $(DLL)
windows: ALL_CXXFLAGS += $(OPT_FLAGS)
2015-12-05 00:32:51 -08:00
windows: ALL_CXXFLAGS += -mstackrealign
windows: dll
linux: ALL_CXXFLAGS += $(OPT_FLAGS) -fpic
linux: VST_FLAGS += -D__cdecl=
linux: all
2013-11-11 08:26:22 -08:00
linux-arm: ALL_CXXFLAGS += -Ofast -march=native -DFORCE_SINGLE -fpic
2014-02-24 16:18:58 -08:00
linux-arm: VST_FLAGS += -D__cdecl=
linux-arm: all
2013-05-22 15:56:59 -07:00
options:
@echo "CPPFLAGS = $(CPPFLAGS)"
@echo "ALL_CXXFLAGS = $(ALL_CXXFLAGS)"
@echo "ALL_LDFLAGS = $(ALL_LDFLAGS)"
@echo "CXX = $(CXX)"
@echo "LD = $(LD)"
@echo
ladspa: $(LADSPA_SHOBJ)
vst: $(VST_SHOBJ)
2015-06-06 10:42:14 -07:00
pretest: util/denorm_test.hpp
@$(CXX) -E $(ALL_CXXFLAGS) $^ -o /dev/null
benchmark: $(BIN)/bench $(AGAINST)
util/benchtime $(BIN)/bench $(AGAINST)
$(UTILS): %: $(BIN)/%
$(BIN)/%.exe: $(BIN)/%
@echo ' OBJCOPY '$@
2015-06-10 23:53:13 -07:00
@$(OBJCOPY) -S $< $@
$(BIN)/%.dll: $(BIN)/%.so
@echo ' OBJCOPY '$@
2015-06-10 23:53:13 -07:00
@$(OBJCOPY) -S $< $@
$(BIN)/ladspa/%.so: $(BIN)/ladspa/%.o
2015-06-06 16:50:19 -07:00
@echo ' CXXLD '$@
2015-06-06 10:42:14 -07:00
@$(CXX) $(ALL_CXXFLAGS) $(LADSPA_FLAGS) -shared $^ -o $@ $(ALL_LDFLAGS)
2013-05-22 15:56:59 -07:00
$(BIN)/vst/%.so: $(BIN)/vst/%.o $(BIN)/vstsdk.o
@echo ' CXXLD '$@
@$(CXX) $(ALL_CXXFLAGS) $(VST_FLAGS) -shared $^ -o $@ $(ALL_LDFLAGS)
2013-05-22 15:56:59 -07:00
$(BIN)/ladspa/$(DISTNAME)_%.o: crap/ladspa/%.cpp $(HEADERS) include/ladspa.hpp
2015-06-06 16:50:19 -07:00
@echo ' CXX '$@
2015-06-06 19:41:23 -07:00
@$(CXX) -c $(ALL_CXXFLAGS) $(LADSPA_FLAGS) $(CPPFLAGS) $< -o $@
$(BIN)/vst/$(DISTNAME)_%.o: crap/vst/%.cpp $(HEADERS)
@echo ' CXX '$@
@$(CXX) -c $(ALL_CXXFLAGS) $(VST_FLAGS) $(CPPFLAGS) $< -o $@
crap/ladspa/%.cpp: crap/%.hpp template/ladspa.cpp util/generate
@echo ' GEN '$@
@util/generate crap/$(notdir $<) $@ template/ladspa.cpp
crap/vst/%.cpp: crap/%.hpp template/vst.cpp util/generate
@echo ' GEN '$@
@util/generate crap/$(notdir $<) $@ template/vst.cpp
$(BIN)/vstsdk.o: $(VST_OBJ)
@echo ' LD '$@
@$(LD) -r $^ -o $@
.INTERMEDIATE: $(VST_OBJ)
$(VST_OBJ): $(BIN)/%.o: $(VST_CPP_DIR)/%.cpp
@echo ' CXX '$@
@$(CXX) -c $(ALL_CXXFLAGS) $(VST_FLAGS) $(CPPFLAGS) $< -o $@
2015-06-06 10:42:14 -07:00
$(BIN)/bench: util/bench.cpp
2015-06-06 16:50:19 -07:00
@echo ' CXXLD '$@
2015-06-06 10:42:14 -07:00
@$(CXX) $(ALL_CXXFLAGS) $(LADSPA_FLAGS) $< -o $@ $(ALL_LDFLAGS) -rdynamic -ldl
2013-05-22 15:56:59 -07:00
2015-06-06 10:42:14 -07:00
$(BIN)/design: util/design.cpp
2015-06-06 16:50:19 -07:00
@echo ' CXXLD '$@
2015-06-06 10:42:14 -07:00
@$(CXX) $(ALL_CXXFLAGS) $< -o $@ $(ALL_LDFLAGS)
2013-05-22 15:56:59 -07:00
clean:
rm -f $(ALL)
2013-05-22 15:56:59 -07:00
dist:
@echo "# dist target is unimplemented, trying git instead"
git archive --prefix=$(FULLNAME)/ HEAD -o $(FULLNAME).tar.gz