diff --git a/Makefile b/Makefile index c621ed1..8164d3f 100644 --- a/Makefile +++ b/Makefile @@ -22,14 +22,17 @@ CFLAGS += -std=c99 CFLAGS += -Os -flto LDFLAGS += -Os -flto +TEST_LIBS += -lcmocka + -include source/Makefile -obj-y += source/bitops.o -obj-y += source/main.o +obj = $(addprefix $(BUILD)/, $(obj-y)) -obj-y += source/core/flash.o +tbm-obj = $(addprefix $(BUILD)/, $(tbm-obj-y)) +tbm-obj += $(obj) -obj = $(addprefix $(BUILD)/, $(obj-y)) +test-obj = $(addprefix $(BUILD)/, $(test-obj-y)) +test-obj += $(obj) # Include the dependencies. -include $(obj:.o=.d) @@ -52,9 +55,17 @@ $(BUILD)/%.o: %.c @mkdir -p $(dir $@) @$(CC) -c $< -o $@ $(CFLAGS) -MT $@ -MMD -MP -MF $(@:.o=.d) -$(BUILD)/tbm: $(obj) $(LDSCRIPT) +$(BUILD)/tbm: $(tbm-obj) $(LDSCRIPT) @echo "LD $@" @mkdir -p $(dir $@) - @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(obj) $(LIBS) + @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(tbm-obj) $(LIBS) + +$(BUILD)/test: $(test-obj) + @echo "LD $@" + @mkdir -p $(dir $@) + @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) $(test-obj) -Wl,--wrap=flash_read $(LIBS) $(TEST_LIBS) + +test: $(BUILD)/test + @$(BUILD)/test -.PHONY: clean +.PHONY: clean test diff --git a/scripts/Makefile.host b/scripts/Makefile.host index 12b83e1..a77b71b 100644 --- a/scripts/Makefile.host +++ b/scripts/Makefile.host @@ -1,7 +1,5 @@ CFLAGS += -g - -obj-y += source/drivers/sandbox_flash.o -obj-y += source/drivers/stdio_console.o +CFLAGS += -DHAVE_SYS_TYPES_H=1 tools: $(BUILD)/create-image all: tools diff --git a/source/Makefile b/source/Makefile index d9c728f..6f91969 100644 --- a/source/Makefile +++ b/source/Makefile @@ -1,4 +1,10 @@ +-include source/core/Makefile -include source/ftl/Makefile -include source/mufs/Makefile -include source/platform/Makefile -include source/shell/Makefile +-include source/tests/Makefile + +obj-y += source/bitops.o + +tbm-obj-y += source/main.o diff --git a/source/core/Makefile b/source/core/Makefile new file mode 100644 index 0000000..d90e8e0 --- /dev/null +++ b/source/core/Makefile @@ -0,0 +1 @@ +tbm-obj-y += source/core/flash.o diff --git a/source/platform/Makefile b/source/platform/Makefile index 1b6c269..09f2a89 100644 --- a/source/platform/Makefile +++ b/source/platform/Makefile @@ -1,7 +1 @@ -ifeq ($(TARGET),host) -else -obj-y += source/platform/spi_flash.o -obj-y += source/platform/usart.o -endif - -include source/platform/$(TARGET)/Makefile diff --git a/source/platform/stm32f0/Makefile b/source/platform/stm32f0/Makefile index fc896b0..f7c22f9 100644 --- a/source/platform/stm32f0/Makefile +++ b/source/platform/stm32f0/Makefile @@ -1,3 +1,6 @@ +obj-y += source/platform/spi_flash.o +obj-y += source/platform/usart.o + obj-y += source/platform/stm32f0/gpio.o obj-y += source/platform/stm32f0/rcc.o obj-y += source/platform/stm32f0/rtc.o diff --git a/source/platform/stm32f1/Makefile b/source/platform/stm32f1/Makefile index bce4982..febfc27 100644 --- a/source/platform/stm32f1/Makefile +++ b/source/platform/stm32f1/Makefile @@ -1,3 +1,6 @@ +obj-y += source/platform/spi_flash.o +obj-y += source/platform/usart.o + obj-y += source/platform/stm32f1/gpio.o obj-y += source/platform/stm32f1/rcc.o obj-y += source/platform/stm32f1/rtc.o