SHELL = /bin/sh CC = gcc SRC_DIR = src BUILD_DIR = build SHARE_DIR = share FONT_DIR = ${SHARE_DIR}/fonts SHADER_DIR = ${SHARE_DIR}/shaders PREFIX=/usr/local BINDIR=/bin LIBDIR=/lib64 SHADERDIR=/share/shaders FONTDIR=/share/fonts INSTALL_PROGRAM = install INSTALL_DATA = install -m 644 SO_FLAGS = -fPIC -shared COMMON_CFLAGS = -Wall -Wextra -O2 -ggdb CFLAGS = `pkg-config --cflags raylib` $(COMMON_CFLAGS) LDFLAGS = `pkg-config --libs raylib` -lm -lpthread -ldl -L${BUILD_DIR} -lplug -Wl,-R,'$$ORIGIN' FONTS = ${wildcard ${FONT_DIR}/*.ttf} SHADERS = ${wildcard ${SHADER_DIR}/*.fs} SRC = ${SRC_DIR}/main.c LIB = ${SRC_DIR}/plug.c OBJ = ${SRC:${SRC_DIR}/%.c=${BUILD_DIR}/%.o} SOBJ = ${LIB:${SRC_DIR}/%.c=${BUILD_DIR}/lib%.so} BIN = mvis all: options ${BIN} options: @echo ${BIN} build options: @echo "SO_FLAGS = ${SO_FLAGS}" @echo "CFLAGS = ${CFLAGS}" @echo "LDFLAGS = ${LDFLAGS}" ${BUILD_DIR}/%.so: ${LIB} | ${BUILD_DIR} ${CC} ${SO_FLAGS} ${CFLAGS} -Wl,-soname,libplug.so $< -o $@ ${BUILD_DIR}/%.o: ${SRC} | ${BUILD_DIR} ${CC} ${CFLAGS} -c $< -o $@ mvis: ${OBJ} ${SOBJ} | ${BUILD_DIR} ${CC} ${OBJ} ${LDFLAGS} -o ${BUILD_DIR}/${BIN} dev: ${SRC} ${SOBJ} | ${BUILD_DIR} ${CC} -c ${SRC} ${CFLAGS} -DHOTRELOAD -o ${OBJ} ${CC} ${OBJ} ${LDFLAGS} -o ${BUILD_DIR}/${BIN} ${BUILD_DIR}: mkdir -p ${PREFIX}$@ ${BINDIR}: mkdir -p ${PREFIX}$@ ${LIBDIR}: mkdir -p ${PREFIX}$@ ${SHADERDIR}: mkdir -p ${PREFIX}$@ ${FONTDIR}: mkdir -p ${PREFIX}$@ install: ${BINDIR} ${LIBDIR} ${SHADERDIR} ${FONTDIR} ${INSTALL_PROGRAM} ${BUILD_DIR}/${BIN} ${PREFIX}${BINDIR}/${BIN} ${INSTALL_PROGRAM} ${SOBJ} ${PREFIX}${LIBDIR}/${subst ${BUILD_DIR}/,,${SOBJ}} ${INSTALL_DATA} ${FONTS} ${subst ${FONT_DIR},${PREFIX}${FONTDIR},${FONTS}} @for font in ${FONTS}; do \ dest="${PREFIX}${FONTDIR}/$$(basename $$font)"; \ echo "install -m 644 $$font $$dest"; \ ${INSTALL_DATA} $$font $$dest; \ done @for shader in ${SHADERS}; do \ dest="${PREFIX}${SHADERDIR}/$$(basename $$shader)"; \ echo "install -m 644 $$shader $$dest"; \ ${INSTALL_DATA} $$shader $$dest; \ done uninstall: ${RM} ${PREFIX}${BINDIR}/${BIN} ${RM} ${PREFIX}${LIBDIR}/${subst ${BUILD_DIR}/,,${SOBJ}} @for font in ${FONTS}; do \ dest="${PREFIX}${FONTDIR}/$$(basename $$font)"; \ echo "rm -f $$dest"; \ ${RM} $$dest; \ done @for shader in ${SHADERS}; do \ dest="${PREFIX}${SHADERDIR}/$$(basename $$shader)"; \ echo "rm -f $$dest"; \ ${RM} $$dest; \ done clean: ${RM} ${BUILD_DIR}/${BIN} ${RM} ${OBJ} ${RM} ${SOBJ}