crap/Makefile

149 lines
3.9 KiB
Makefile
Raw Normal View History

# NOTE: C implies LADSPA, C++ implies VST
# it's hackish but it'll do for now
2013-05-22 15:56:59 -07:00
DISTNAME = crap
VERSION = git
FULLNAME = ${DISTNAME}-${VERSION}
BIN = ./bin
CRAP = ./crap
INCLUDE = ./include
TEMPLATE = ./template
UTIL = ./util
BOTH = eq eq_const noise tube
2014-02-05 23:28:33 -08:00
LADSPA_ONLY =
VST_ONLY = delay_test
LADSPA = ${BOTH:=-ladspa} ${LADSPA_ONLY:=-ladspa}
VST = ${BOTH:=-vst} ${VST_ONLY:=-vst}
PLUGINS = ${LADSPA} ${VST}
2013-05-22 15:56:59 -07:00
EXE = design
_ = util util_def param
HEADERS = ${_:%=$(INCLUDE)/%.h}
SHOBJ = ${PLUGINS:%=$(BIN)/$(DISTNAME)_%.so}
OBJ = ${PLUGINS:%=$(BIN)/$(DISTNAME)_%.o} $(BIN)/vstsdk.o
# only for dist target right now
SRC = ${BOTH:%=$(CRAP)/%.h}
SRC += ${LADSPA_ONLY:%=$(CRAP)/%.h} ${VST_ONLY:%=$(CRAP)/%.h}
SRC += ${EXE:%=$(UTIL)/%.c}
2013-05-22 15:56:59 -07:00
BENCH = $(BIN)/bench.o
AGAINST = $(BIN)/crap_eq_const-ladspa.so
2013-11-11 08:26:22 -08:00
VST_SDK_DIR ?= .
VST_CPP = audioeffect.cpp audioeffectx.cpp vstplugmain.cpp
VST_SUB_DIR = public.sdk/source/vst2.x
VST_SRC = ${VST_CPP:%=${VST_SDK_DIR}/${VST_SUB_DIR}/%}
# temp objects before combining to vstsdk.o
VST_OBJ = ${VST_CPP:%.cpp=$(BIN)/%.o}
VST_DEF = ${VST_SDK_DIR}/public.sdk/samples/vst2.x/win/vstplug.def
ALL_CFLAGS = -Wall -Wno-unused-function ${CFLAGS} -std=gnu99 -I $(INCLUDE)
ALL_CXXFLAGS = -Wno-write-strings ${CXXFLAGS} -I ${VST_SDK_DIR}
ALL_CXXFLAGS += -I $(INCLUDE) -DBUILDING_DLL=1
ALL_LDFLAGS = -lm ${LDFLAGS}
2013-05-22 15:56:59 -07:00
PREFIX ?= /usr/local
EXEC_PREFIX ?= ${PREFIX}
LIBDIR ?= ${EXEC_PREFIX}/lib
LADSPADIR ?= ${LIBDIR}/ladspa
LADSPADEST = ${DESTDIR}${LADSPADIR}
ALL = ${SHOBJ} ${OBJ} ${EXE:%=$(BIN)/%}
2014-02-06 00:17:18 -08:00
MISC_CLEAN = bench ${BENCH} ${VST_OBJ}
MISC_DIST = LICENSE README.md Makefile
MISC_DIST += $(UTIL)/benchtime $(UTIL)/${BENCH:.o=.c}
MISC_DIST += $(UTIL)/generate
MISC_DIST += $(TEMPLATE)/vst.cpp $(TEMPLATE)/ladspa.c $(INCLUDE)/ladspa.h
all: ladspa vst ${EXE:%=$(BIN)/%}
2013-11-11 08:26:22 -08:00
2013-05-22 15:56:59 -07:00
.PHONY: options
options:
@echo "CPPFLAGS = ${CPPFLAGS}"
@echo "ALL_CFLAGS = ${ALL_CFLAGS}"
@echo "ALL_CXXFLAGS = ${ALL_CXXFLAGS}"
@echo "ALL_LDFLAGS = ${ALL_LDFLAGS}"
@echo "CC = ${CC}"
@echo "CXX = ${CXX}"
@echo "LD = ${LD}"
@echo
ladspa: ${LADSPA:%=$(BIN)/$(DISTNAME)_%.so}
vst: ${VST:%=$(BIN)/$(DISTNAME)_%.so}
$(BIN)/bench: ${BENCH}
2014-01-29 13:27:11 -08:00
@echo ' CC '$@
@${CC} ${ALL_CFLAGS} ${BENCH} -o $@ ${ALL_LDFLAGS} -rdynamic -ldl
.PHONY: benchmark
benchmark: $(BIN)/bench ${AGAINST}
$(UTIL)/benchtime $(BIN)/bench ${AGAINST}
$(VST_OBJ): ${VST_SRC}
2014-01-29 13:27:11 -08:00
@echo ' CXX '$@
@${CXX} -c ${ALL_CXXFLAGS} ${CPPFLAGS} ${VST_SDK_DIR}/${VST_SUB_DIR}/$(notdir ${@:.o=.cpp}) -o $@
$(BIN)/vstsdk.o: ${VST_OBJ}
2014-01-29 13:27:11 -08:00
@echo ' LD '$@
@${LD} -r ${VST_OBJ} -o $@
$(BIN)/%-ladspa.so: $(BIN)/%-ladspa.o
@echo ' LD '$@
@${CC} ${ALL_CFLAGS} -shared $^ -o $@ ${ALL_LDFLAGS}
2013-05-22 15:56:59 -07:00
$(BIN)/%-vst.so: $(BIN)/%-vst.o $(BIN)/vstsdk.o
@echo ' LD '$@
@${CXX} ${ALL_CXXFLAGS} -shared $^ -o $@ ${ALL_LDFLAGS}
2013-05-22 15:56:59 -07:00
$(BIN)/$(DISTNAME)_%-ladspa.o: $(CRAP)/%-ladspa.c ${HEADERS} $(INCLUDE)/ladspa.h
2014-01-29 13:27:11 -08:00
@echo ' CC '$@
@${CC} -c ${ALL_CFLAGS} ${CPPFLAGS} $< -o $@
$(BIN)/$(DISTNAME)_%-vst.o: $(CRAP)/%-vst.cpp ${HEADERS}
2014-01-29 13:27:11 -08:00
@echo ' CXX '$@
@${CXX} -c ${ALL_CXXFLAGS} ${CPPFLAGS} $< -o $@
$(CRAP)/%-ladspa.c: $(CRAP)/%.h $(TEMPLATE)/ladspa.c $(UTIL)/generate
@echo ' gen '$@
@$(UTIL)/generate $(notdir $<) $@ $(TEMPLATE)/ladspa.c
$(CRAP)/%-vst.cpp: $(CRAP)/%.h $(TEMPLATE)/vst.cpp $(UTIL)/generate
@$(UTIL)/generate $(notdir $<) $@ $(TEMPLATE)/vst.cpp
.SUFFIXES:
$(BIN)/%: $(BIN)/%.o
2014-01-29 13:27:11 -08:00
@echo ' CC '$@
@${CC} ${ALL_CFLAGS} $< -o $@ ${ALL_LDFLAGS}
$(BIN)/%.o: $(UTIL)/%.c
2014-01-29 13:27:11 -08:00
@echo ' CC '$@
2013-05-22 15:56:59 -07:00
@${CC} -c ${ALL_CFLAGS} ${CPPFLAGS} $< -o $@
install: all
mkdir -p ${LADSPADEST}
install -d ${LADSPADEST}
install -m 644 $(BIN)/${LADSPA:=.so} ${LADSPADEST}
2013-05-22 15:56:59 -07:00
.PHONY: clean
2013-05-22 15:56:59 -07:00
clean:
-rm -f ${ALL} ${MISC_CLEAN}
2013-05-22 15:56:59 -07:00
.PHONY: dist
2013-05-22 15:56:59 -07:00
dist:
@echo " dist target is broken for now, sorry"
@false
2013-05-22 15:56:59 -07:00
-rm -f ${FULLNAME}.tar.gz
mkdir ${FULLNAME}
cp ${MISC_DIST} ${FULLNAME}
cp ${HEADERS} ${FULLNAME}
cp ${SRC} ${FULLNAME}
2013-05-22 15:56:59 -07:00
tar -cf ${FULLNAME}.tar ${FULLNAME}
gzip ${FULLNAME}.tar
rm -r ${FULLNAME}