CONFIG ?= release BUILD_DIR := ./build/${CONFIG} GPP_SRCS := main.cpp Rbm.cpp Layer.cpp Stack.cpp GPP_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .cpp,.o,$(GPP_SRCS))) GCC_SRCS := noise.c GCC_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .c,.o,$(GCC_SRCS))) CXXFLAGS += -std=c++11 -L juce/build/${CONFIG} CXXFLAGS_debug := ${CXXFLAGS} -O0 -g CXXFLAGS_release := ${CXXFLAGS} -O2 LFLAGS := -L juce/build/${CONFIG} LFLAGS_release := ${LFLAGS} LFLAGS_debug := ${LFLAGS} CFLAGS := CFLAGS_debug := ${CFLAGS} -O0 -g CFLAGS_release := ${CFLAGS} -O2 LIBS := -lstdc++ -lm -larmadillo -ljsoncpp -lfreetype -lpthread -ldl -lrt -lX11 -lGL -lXinerama -lXext -ljuce DEFINES := -DARMA_OPENMP_THREADS=1 all: ${BUILD_DIR}/rbm.elf ${GPP_OBJS}: $(BUILD_DIR)/%.o : source/%.cpp mkdir -p $(dir $@) g++ ${CXXFLAGS_${CONFIG}} ${DEFINES} ${INCLUDES} -o $@ -c $< ${GCC_OBJS}: $(BUILD_DIR)/%.o : source/%.c mkdir -p $(dir $@) gcc ${CFLAGS_${CONFIG}} ${DEFINES} ${INCLUDES} -o $@ -c $< ${BUILD_DIR}/rbm.elf: ${GPP_OBJS} ${GCC_OBJS} gcc ${LFLAGS_${CONFIG}} ${GPP_OBJS} ${GCC_OBJS} -o $@ ${LIBS} clean: rm -rf ${BUILD_DIR}/*