diff --git a/Makefile b/Makefile index 90092da..2272ceb 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,37 @@ CONFIG ?= release -SRCS := source/main.cpp source/Rbm.cpp source/Layer.cpp source/Stack.cpp source/noise.c - - -LIBS := -larmadillo -ljsoncpp -lfreetype -lpthread -ldl -lrt -lX11 -lGL -lXinerama -lXext -ljuce 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))) -all: ${BUILD_DIR}/main.elf - CXXFLAGS += -std=c++11 -L juce/build/${CONFIG} - CXXFLAGS_debug := ${CXXFLAGS} -O0 -g CXXFLAGS_release := ${CXXFLAGS} -O2 - -DEFINES := -DARMA_OPENMP_THREADS=1 -${BUILD_DIR}/main.elf: ${BUILD_DIR} ${SRCS} - g++ ${CXXFLAGS_${CONFIG}} ${DEFINES} ${SRCS} -o $@ ${LIBS} - -${BUILD_DIR}: - mkdir -p $@ +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}/* \ No newline at end of file diff --git a/juce/Makefile b/juce/Makefile index ff2059f..47ae784 100644 --- a/juce/Makefile +++ b/juce/Makefile @@ -1,14 +1,14 @@ CONFIG ?= release BUILD_DIR := ./build/${CONFIG} JUCE_ROOT=../../JUCE-3.1.1/modules -SRCS := ${JUCE_ROOT}/juce_core/juce_core.cpp -SRCS += ${JUCE_ROOT}/juce_data_structures/juce_data_structures.cpp -SRCS += ${JUCE_ROOT}/juce_events/juce_events.cpp -SRCS += ${JUCE_ROOT}/juce_graphics/juce_graphics.cpp -SRCS += ${JUCE_ROOT}/juce_gui_basics/juce_gui_basics.cpp -SRCS += ${JUCE_ROOT}/juce_gui_extra/juce_gui_extra.cpp -SRCS += ${JUCE_ROOT}/juce_opengl/juce_opengl.cpp -OBJS := $(addprefix ${BUILD_DIR}/, $(notdir $(subst .cpp,.o,$(SRCS)))) +SRCS := juce_core/juce_core.cpp +SRCS += juce_data_structures/juce_data_structures.cpp +SRCS += juce_events/juce_events.cpp +SRCS += juce_graphics/juce_graphics.cpp +SRCS += juce_gui_basics/juce_gui_basics.cpp +SRCS += juce_gui_extra/juce_gui_extra.cpp +SRCS += juce_opengl/juce_opengl.cpp +OBJS := $(addprefix ${BUILD_DIR}/, $(subst .cpp,.o,$(SRCS))) all: ${BUILD_DIR}/libjuce.a @@ -18,14 +18,12 @@ CXXFLAGS_release := ${CXXFLAGS} -O2 INCLUDES := -I./ -I/usr/include/freetype2 -${OBJS}: ${SRCS} ${BUILD_DIR} +${OBJS}: $(BUILD_DIR)/%.o : ${JUCE_ROOT}/%.cpp + mkdir -p $(dir $@) g++ ${CXXFLAGS_${CONFIG}} ${DEFINES} ${INCLUDES} -o $@ -c $< ${BUILD_DIR}/libjuce.a: ${OBJS} ar -q $@ ${OBJS} -${BUILD_DIR}: - mkdir -p $@ - clean: rm -rf ${BUILD_DIR}/* \ No newline at end of file