diff --git a/Makefile b/Makefile index 5b8d7af..00cef28 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,19 @@ +PRJ ?= TEST + CONFIG ?= release BUILD_DIR := ./build/${CONFIG} JUCE_ROOT := juce/JUCE-3.1.1 JUCE_LIB := juce/build/${CONFIG}/libjuce.a -GPP_SRCS := gui.cpp Rbm.cpp Layer.cpp Stack.cpp MainComponent.cpp RbmComponent.cpp DrawComponent.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))) - -TEST_SRCS := source/main.cpp source/Rbm.cpp source/Layer.cpp source/Stack.cpp source/noise.c +GUI_CXX_SRCS := gui.cpp Rbm.cpp Layer.cpp Stack.cpp MainComponent.cpp RbmComponent.cpp DrawComponent.cpp +GUI_GCC_SRCS := noise.c +TEST_CXX_SRCS := main.cpp Rbm.cpp Layer.cpp Stack.cpp +TEST_GCC_SRCS := noise.c + +CXX_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .cpp,.o,$(${PRJ}_CXX_SRCS))) +GCC_OBJS := $(addprefix ${BUILD_DIR}/, $(subst .c,.o,$(${PRJ}_GCC_SRCS))) + CXXFLAGS += -std=c++11 -L juce/build/${CONFIG} CXXFLAGS_debug := ${CXXFLAGS} -O0 -g CXXFLAGS_release := ${CXXFLAGS} -O2 -g @@ -26,14 +30,16 @@ INCLUDES := -I${JUCE_ROOT} -Ijuce LIBS := -lstdc++ -lm -larmadillo -ljsoncpp -ljuce -lfreetype -lpthread -ldl -lrt -lX11 -lGL -lXinerama -lXext DEFINES := -DARMA_OPENMP_THREADS=1 -all: ${JUCE_LIB} ${BUILD_DIR}/rbm.elf -test: ${BUILD_DIR}/test.elf +GUI_TARGET := ${JUCE_LIB} ${BUILD_DIR}/rbm.elf +TEST_TARGET := ${BUILD_DIR}/test.elf +all: ${${PRJ}_TARGET} + install: ${BUILD_DIR}/rbm.elf @cp $< ${HOME}/bin @echo "Installed to" $< -${GPP_OBJS}: $(BUILD_DIR)/%.o : source/%.cpp +${CXX_OBJS}: $(BUILD_DIR)/%.o : source/%.cpp @mkdir -p $(dir $@) g++ -MMD ${CXXFLAGS_${CONFIG}} ${DEFINES} ${INCLUDES} -o $@ -c $< @@ -43,12 +49,11 @@ ${GCC_OBJS}: $(BUILD_DIR)/%.o : source/%.c -include $(BUILD_DIR)/*.d -${BUILD_DIR}/rbm.elf: ${GPP_OBJS} ${GCC_OBJS} juce/build/${CONFIG}/libjuce.a - gcc ${LFLAGS_${CONFIG}} ${GPP_OBJS} ${GCC_OBJS} ${LIBS} -o $@ +${BUILD_DIR}/rbm.elf: ${CXX_OBJS} ${GCC_OBJS} juce/build/${CONFIG}/libjuce.a + gcc ${LFLAGS_${CONFIG}} ${CXX_OBJS} ${GCC_OBJS} ${LIBS} -o $@ -${BUILD_DIR}/test.elf: ${TEST_SRCS} - @mkdir -p $(dir $@) - g++ ${CXXFLAGS_${CONFIG}} ${DEFINES} -o $@ ${TEST_SRCS} -larmadillo -ljsoncpp +${BUILD_DIR}/test.elf: ${CXX_OBJS} ${GCC_OBJS} + gcc ${LFLAGS_${CONFIG}} ${CXX_OBJS} ${GCC_OBJS} ${LIBS} -o $@ ${JUCE_LIB}: make -C juce