TARGET=sbm BUILD_DIR=build MK_DIR=mkdir -p CPP_SRCS= \ src/main.cpp \ src/p_serial_bus.cpp \ src/p_serial_packet.cpp \ src/p_idp.cpp #TOOLCHAIN=armv7a-unknown-linux-gnueabihf TOOLCHAIN= CC=$(TOOLCHAIN)-g++ SIZE=$(TOOLCHAIN)-size INCLUDES=\ -Icfg\ -Iinc CFLAGS=-Og \ -Wall \ -fdata-sections \ -ffunction-sections \ -std=gnu++11 \ -g3 \ -DDEBUG \ $(INCLUDES) \ -Wextra \ -Werror \ -Wconversion \ -lzmq ifdef RUN_TESTS CPP_SRCS+=tests/tests.cpp INCLUDES+=-Itests CFLAGS+=-DRUN_TESTS endif all: bin/$(TARGET) OBJS=$(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SRCS:.cpp=.o))) vpath %.cpp $(sort $(dir $(CPP_SRCS))) $(BUILD_DIR)/%.o: %.cpp Makefile | $(BUILD_DIR) $(CC) -c $(CFLAGS) $< -o $@ bin/$(TARGET): $(OBJS) Makefile $(CC) $(OBJS) -o $@ -lzmq size $@ $(BUILD_DIR): mkdir $@ clean: @rm -fR $(BUILD_DIR) @rm -f bin/$(TARGET)