2020-03-08 14:33:48 -04:00
|
|
|
CXX ?= clang++
|
2020-03-09 23:36:10 -04:00
|
|
|
SRCDIR ?= src
|
2020-03-08 14:33:48 -04:00
|
|
|
INCDIR += -I${SRCDIR}
|
2020-03-09 23:36:10 -04:00
|
|
|
OBJDIR ?= build
|
2020-03-08 14:33:48 -04:00
|
|
|
BINDIR ?= bin
|
2020-03-10 01:02:31 -04:00
|
|
|
LIBDIR ?= lib
|
2020-03-08 14:33:48 -04:00
|
|
|
INSTALLDIR ?= /usr/local/bin
|
|
|
|
|
2020-03-09 23:36:10 -04:00
|
|
|
TARGET ?= amalgam
|
2020-03-08 14:33:48 -04:00
|
|
|
|
|
|
|
CFLAGS += -std=c++11
|
|
|
|
#CFLAGS += `pkg-config --cflags portaudio-2.0`
|
|
|
|
#LDFLAGS += `pkg-config --libs portaudio-2.0`
|
|
|
|
|
|
|
|
UNAME=$(shell uname -s)
|
|
|
|
ifeq (${UNAME},FreeBSD)
|
|
|
|
INCDIR += -I/sys/
|
|
|
|
endif
|
|
|
|
|
|
|
|
SHELL=/bin/sh
|
2020-03-09 23:36:10 -04:00
|
|
|
SRC = $(wildcard ${SRCDIR}/*/*.cpp)
|
2020-03-08 14:33:48 -04:00
|
|
|
OBJ = ${SRC:${SRCDIR}/%.cpp=${OBJDIR}/%.o}
|
2020-03-09 23:36:10 -04:00
|
|
|
BINS = $(wildcard ${SRCDIR}/*.cpp)
|
|
|
|
ALLOBJ = ${SRC:${SRCDIR}/%.cpp=${OBJDIR}/%.o} ${BINS:${SRCDIR}/%.cpp=${OBJDIR}/%.o}
|
2020-03-10 01:02:31 -04:00
|
|
|
INCLUDES = ${wildcard ${SRCDIR}/*/*.h}
|
|
|
|
INC = ${INCLUDES:${SRCDIR}/%.h=${LIBDIR}/include/%.h}
|
2020-03-10 00:26:32 -04:00
|
|
|
all: fmtest wavtest amalgam
|
2020-03-08 14:33:48 -04:00
|
|
|
|
2020-03-09 23:36:10 -04:00
|
|
|
${ALLOBJ}: $(OBJDIR)/%.o : $(SRCDIR)/%.cpp
|
|
|
|
@mkdir -p $(dir $@)
|
2020-03-08 14:33:48 -04:00
|
|
|
@echo CXX $<
|
|
|
|
${CXX} -o $@ ${INCDIR} -c ${CFLAGS} ${DEFINES} $<
|
|
|
|
|
2020-03-09 23:36:10 -04:00
|
|
|
fmtest: ${ALLOBJ}
|
|
|
|
@mkdir -p ${BINDIR}
|
|
|
|
${CXX} ${INCDIR} -o ${BINDIR}/fmtest ${OBJDIR}/fmtest.o ${OBJ} ${LDFLAGS} ${CFLAGS} ${DEFINES}
|
|
|
|
|
|
|
|
wavtest: ${ALLOBJ}
|
|
|
|
@mkdir -p ${BINDIR}
|
|
|
|
${CXX} ${INCDIR} -o ${BINDIR}/wavtest ${OBJDIR}/wavtest.o ${OBJ} ${LDFLAGS} ${CFLAGS} ${DEFINES}
|
|
|
|
|
2020-03-10 01:02:31 -04:00
|
|
|
libamalgam.so: ${OBJ} ${INC}
|
|
|
|
${CXX} ${INCDIR} -o ${LIBDIR}/lib${TARGET}.so ${OBJ} --shared -fPIC ${LDFLAGS} ${CFLAGS} ${DEFINES}
|
2020-03-10 00:26:32 -04:00
|
|
|
|
2020-03-10 01:02:31 -04:00
|
|
|
libamalgam.dylib: ${OBJ} ${INC}
|
|
|
|
${CXX} ${INCDIR} -o ${LIBDIR}/lib${TARGET}.dylib ${OBJ} -dynamiclib ${LDFLAGS} ${CFLAGS} ${DEFINES}
|
2020-03-10 00:26:32 -04:00
|
|
|
|
|
|
|
ifeq (${UNAME},Darwin)
|
2020-03-10 01:02:31 -04:00
|
|
|
amalgam: libamalgam.dylib
|
2020-03-10 00:26:32 -04:00
|
|
|
else
|
2020-03-10 01:02:31 -04:00
|
|
|
amalgam: libamalgam.so
|
|
|
|
endif
|
2020-03-08 14:33:48 -04:00
|
|
|
|
2020-03-10 01:02:31 -04:00
|
|
|
${INC}: $(LIBDIR)/include/%.h : $(SRCDIR)/%.h
|
|
|
|
@mkdir -p $(dir $@)
|
|
|
|
cp $< $@
|
2020-03-08 14:33:48 -04:00
|
|
|
clean:
|
|
|
|
@echo cleaning
|
|
|
|
@rm -f ${OBJ}
|
|
|
|
|
|
|
|
remove: clean
|
|
|
|
@echo deleting binary
|
|
|
|
@rm -f ${BINDIR}/${TARGET}
|
|
|
|
@rm -r ${BINDIR}
|
|
|
|
|
2020-03-09 23:36:10 -04:00
|
|
|
install: ${TARGET}
|
2020-03-08 14:33:48 -04:00
|
|
|
mkdir -p ${INSTALLDIR}
|
|
|
|
cp ${BINDIR}/${TARGET} ${INSTALLDIR}/${TARGET}
|
|
|
|
chmod 4555 ${INSTALLDIR}/${TARGET}
|
|
|
|
|
|
|
|
|