2017-03-11 00:10:03 +00:00
|
|
|
TARGET ?= host
|
2017-08-01 14:37:27 +02:00
|
|
|
TARGET := $(filter host stm32f0 stm32f1,${TARGET})
|
2017-03-11 00:10:03 +00:00
|
|
|
|
|
|
|
ifeq (${TARGET},)
|
|
|
|
$(error No support available for the target)
|
|
|
|
endif
|
|
|
|
|
2017-03-09 12:32:04 +00:00
|
|
|
BUILD ?= build
|
2017-03-11 00:10:03 +00:00
|
|
|
BUILD := $(addsuffix /${TARGET},${BUILD})
|
2017-03-09 12:32:04 +00:00
|
|
|
|
|
|
|
all: $(BUILD)/tbm
|
2017-02-27 14:48:38 +00:00
|
|
|
|
2017-03-11 00:10:03 +00:00
|
|
|
-include scripts/Makefile.${TARGET}
|
2017-02-27 14:48:38 +00:00
|
|
|
|
2017-10-31 17:37:24 +01:00
|
|
|
CFLAGS += -DTBM_VERSION=\"2017-10-31\"
|
2019-02-15 16:33:55 +01:00
|
|
|
CFLAGS += -DBUILD_VERSION=\""$(shell date -u)"\"
|
2017-03-09 12:32:04 +00:00
|
|
|
CFLAGS += -Iinclude
|
2017-09-19 14:36:47 +02:00
|
|
|
CFLAGS += -Wall -Wextra -Wshadow -Wimplicit-function-declaration
|
|
|
|
CFLAGS += -Wredundant-decls -pedantic
|
2017-07-27 10:40:43 +02:00
|
|
|
CFLAGS += -D_XOPEN_SOURCE
|
2017-07-26 11:31:23 +02:00
|
|
|
|
|
|
|
CFLAGS += -std=c99
|
2017-07-27 10:41:31 +02:00
|
|
|
CFLAGS += -Os -flto
|
|
|
|
LDFLAGS += -Os -flto
|
2017-03-09 12:32:04 +00:00
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
TEST_LIBS += -lcmocka
|
|
|
|
|
2017-07-18 15:08:46 +02:00
|
|
|
-include source/Makefile
|
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
obj = $(addprefix $(BUILD)/, $(obj-y))
|
2017-03-09 12:32:04 +00:00
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
tbm-obj = $(addprefix $(BUILD)/, $(tbm-obj-y))
|
|
|
|
tbm-obj += $(obj)
|
2017-03-11 12:42:32 +00:00
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
test-obj = $(addprefix $(BUILD)/, $(test-obj-y))
|
|
|
|
test-obj += $(obj)
|
2017-03-09 12:32:04 +00:00
|
|
|
|
|
|
|
# Include the dependencies.
|
|
|
|
-include $(obj:.o=.d)
|
|
|
|
|
|
|
|
# Set up the toolchain.
|
2017-08-01 14:39:06 +02:00
|
|
|
CC := $(PREFIX)gcc
|
|
|
|
LD := $(PREFIX)gcc
|
|
|
|
GDB := $(PREFIX)gdb
|
2017-03-09 12:32:04 +00:00
|
|
|
MAKE := make
|
|
|
|
|
|
|
|
.SECONDARY:
|
|
|
|
|
|
|
|
clean:
|
|
|
|
@echo "CLEAN"
|
|
|
|
@rm -rf $(BUILD)
|
|
|
|
|
|
|
|
# Rule to compile C source code.
|
|
|
|
$(BUILD)/%.o: %.c
|
|
|
|
@echo "CC $<"
|
|
|
|
@mkdir -p $(dir $@)
|
|
|
|
@$(CC) -c $< -o $@ $(CFLAGS) -MT $@ -MMD -MP -MF $(@:.o=.d)
|
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
$(BUILD)/tbm: $(tbm-obj) $(LDSCRIPT)
|
2017-03-09 12:32:04 +00:00
|
|
|
@echo "LD $@"
|
|
|
|
@mkdir -p $(dir $@)
|
2017-09-19 14:15:26 +02:00
|
|
|
@$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(tbm-obj) $(LIBS)
|
|
|
|
|
2017-09-19 17:49:26 +02:00
|
|
|
$(BUILD)/test: CFLAGS += $(TEST_CFLAGS)
|
2017-09-19 14:15:26 +02:00
|
|
|
$(BUILD)/test: $(test-obj)
|
|
|
|
@echo "LD $@"
|
|
|
|
@mkdir -p $(dir $@)
|
2017-09-19 16:06:55 +02:00
|
|
|
@$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(TEST_LDFLAGS) $(test-obj) $(LIBS) $(TEST_LIBS)
|
2017-09-19 14:15:26 +02:00
|
|
|
|
|
|
|
test: $(BUILD)/test
|
|
|
|
@$(BUILD)/test
|
2017-02-27 14:48:38 +00:00
|
|
|
|
2017-09-19 14:15:26 +02:00
|
|
|
.PHONY: clean test
|