amalgam/Makefile

76 lines
1.8 KiB
Makefile
Raw Permalink Normal View History

2020-03-08 14:33:48 -04:00
CXX ?= clang++
2020-03-10 01:24:26 -04:00
SRCDIR ?= src
INCDIR += -I${SRCDIR}
OBJDIR ?= build/obj
BINDIR ?= build/bin
LIBDIR ?= build/lib
BINCDIR ?= build/include
INSTALLDIR ?= /usr/local/
2020-03-08 14:33:48 -04:00
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}
2020-03-10 01:24:26 -04:00
INC = ${INCLUDES:${SRCDIR}/%.h=${BINCDIR}/%.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}
2020-03-10 01:24:26 -04:00
@mkdir -p ${LIBDIR}
2020-03-10 01:02:31 -04:00
${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}
2020-03-10 01:24:26 -04:00
@mkdir -p ${LIBDIR}
2020-03-10 01:02:31 -04:00
${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:24:26 -04:00
${INC}: $(BINCDIR)/%.h : $(SRCDIR)/%.h
2020-03-10 01:02:31 -04:00
@mkdir -p $(dir $@)
cp $< $@
2020-03-08 14:33:48 -04:00
clean:
@echo cleaning
2020-03-10 01:24:26 -04:00
@rm -f build/
2020-03-08 14:33:48 -04:00
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}
2020-03-10 01:24:26 -04:00
cp -a ${BINCDIR} ${INSTALLDIR}
cp -a ${BINDIR} ${INSTALLDIR}
cp -a ${LIBDIR} ${INSTALLDIR}
2020-03-08 14:33:48 -04:00