tbm-mcu/Makefile

61 lines
1.2 KiB
Makefile
Raw Normal View History

TARGET ?= host
2017-08-01 14:37:27 +02:00
TARGET := $(filter host stm32f0 stm32f1,${TARGET})
ifeq (${TARGET},)
$(error No support available for the target)
endif
2017-03-09 12:32:04 +00:00
BUILD ?= build
BUILD := $(addsuffix /${TARGET},${BUILD})
2017-03-09 12:32:04 +00:00
all: $(BUILD)/tbm
2017-02-27 14:48:38 +00:00
-include scripts/Makefile.${TARGET}
2017-02-27 14:48:38 +00:00
2017-07-27 10:51:54 +02:00
CFLAGS += -DTBM_VERSION=\"2017-07-27-dev\"
2017-03-09 12:32:04 +00:00
CFLAGS += -Iinclude
CFLAGS += -Wall -Wundef -Wextra -Wshadow -Wimplicit-function-declaration
2017-07-26 11:31:23 +02:00
CFLAGS += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes -pedantic
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
-include source/Makefile
2017-04-07 16:32:44 +02:00
obj-y += source/bitops.o
2017-03-09 12:32:04 +00:00
obj-y += source/main.o
2017-03-11 12:42:32 +00:00
obj-y += source/core/flash.o
2017-03-09 12:32:04 +00:00
obj = $(addprefix $(BUILD)/, $(obj-y))
# 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)
$(BUILD)/tbm: $(obj) $(LDSCRIPT)
2017-03-09 12:32:04 +00:00
@echo "LD $@"
@mkdir -p $(dir $@)
@$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(obj) $(LIBS)
2017-02-27 14:48:38 +00:00
.PHONY: clean