aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-03-02 11:26:14 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-03-02 11:26:14 -0500
commit9430fea2c551dad91815df021510a19190df6d97 (patch)
treeef461fe8867f3329ff0f372847a914af20104265
parent309a47c7810bf55d993210c2da014ede7dae8a87 (diff)
downloadkutter-9430fea2c551dad91815df021510a19190df6d97.tar.gz
kutter-9430fea2c551dad91815df021510a19190df6d97.tar.xz
kutter-9430fea2c551dad91815df021510a19190df6d97.zip
Makefile: Fix lpc176x and stm32f1 builds
Commit e18501d0 broke the build for targets that added objects to klipper.elf via adding dependencies. Rework the build so that it is possible to add objects to klipper.elf via a new OBJS_klipper.elf makefile variable. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--Makefile6
-rw-r--r--src/lpc176x/Makefile15
-rw-r--r--src/stm32f1/Makefile13
3 files changed, 17 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index 61995499..a9e4d0ea 100644
--- a/Makefile
+++ b/Makefile
@@ -37,6 +37,8 @@ CFLAGS := -I$(OUT) -Isrc -I$(OUT)board-generic/ -std=gnu11 -O2 -MD -g \
-ffunction-sections -fdata-sections
CFLAGS += -flto -fwhole-program -fno-use-linker-plugin
+OBJS_klipper.elf = $(patsubst %.c, $(OUT)src/%.o,$(src-y))
+OBJS_klipper.elf += $(OUT)compile_time_request.o
CFLAGS_klipper.elf = $(CFLAGS) -Wl,--gc-sections
CPPFLAGS = -I$(OUT) -P -MD -MT $@
@@ -83,9 +85,9 @@ $(OUT)compile_time_request.o: $(patsubst %.c, $(OUT)src/%.o.ctr,$(src-y)) ./scri
$(Q)$(PYTHON) ./scripts/buildcommands.py -d $(OUT)klipper.dict -t "$(CC);$(AS);$(LD);$(OBJCOPY);$(OBJDUMP);$(STRIP)" $(OUT)klipper.compile_time_request $(OUT)compile_time_request.c
$(Q)$(CC) $(CFLAGS) -c $(OUT)compile_time_request.c -o $@
-$(OUT)klipper.elf: $(patsubst %.c, $(OUT)src/%.o,$(src-y)) $(OUT)compile_time_request.o
+$(OUT)klipper.elf: $(OBJS_klipper.elf)
@echo " Linking $@"
- $(Q)$(CC) $(patsubst %.c, $(OUT)src/%.o,$(src-y)) $(OUT)compile_time_request.o $(CFLAGS_klipper.elf) -o $@
+ $(Q)$(CC) $(OBJS_klipper.elf) $(CFLAGS_klipper.elf) -o $@
$(Q)scripts/check-gcc.sh $@ $(OUT)compile_time_request.o
################ Kconfig rules
diff --git a/src/lpc176x/Makefile b/src/lpc176x/Makefile
index 406a6d97..ae15f880 100644
--- a/src/lpc176x/Makefile
+++ b/src/lpc176x/Makefile
@@ -9,9 +9,6 @@ dirs-y += lib/lpc176x/device/TOOLCHAIN_GCC_ARM
CFLAGS += -mthumb -mcpu=cortex-m3
CFLAGS += -Ilib/lpc176x/device -Ilib/cmsis-core
-CFLAGS_klipper.elf += -T $(OUT)LPC1768.ld
-CFLAGS_klipper.elf += --specs=nano.specs --specs=nosys.specs
-
# Add source files
src-y += lpc176x/main.c lpc176x/gpio.c
src-$(CONFIG_HAVE_GPIO_ADC) += lpc176x/adc.c
@@ -23,21 +20,23 @@ src-y += ../lib/lpc176x/device/system_LPC17xx.c
src-$(CONFIG_USBSERIAL) += lpc176x/usbserial.c generic/usb_cdc.c
src-$(CONFIG_SERIAL) += lpc176x/serial.c generic/serial_irq.c
-# Add the TOOLCHAIN_GCC_ARM files to the build
+# Add assembler build rules
$(OUT)%.o: %.S
@echo " Assembling $@"
$(Q)$(AS) $< -o $@
asmsrc-y := ../lib/lpc176x/device/TOOLCHAIN_GCC_ARM/startup_LPC17xx.S
+OBJS_klipper.elf += $(patsubst %.S, $(OUT)src/%.o,$(asmsrc-y))
-$(OUT)klipper.elf: $(patsubst %.S, $(OUT)src/%.o,$(asmsrc-y))
-
-target-y := $(OUT)LPC1768.ld $(target-y)
-
+# Build the linker script
$(OUT)LPC1768.ld: lib/lpc176x/device/TOOLCHAIN_GCC_ARM/LPC1768.ld $(OUT)board-link
@echo " Preprocessing $@"
$(Q)$(CPP) -P -MD -MT $@ -DMBED_APP_START=$(CONFIG_FLASH_START) -DMBED_APP_SIZE="(512K - $(CONFIG_FLASH_START))" $< -o $@
+CFLAGS_klipper.elf += -T $(OUT)LPC1768.ld
+CFLAGS_klipper.elf += --specs=nano.specs --specs=nosys.specs
+$(OUT)klipper.elf : $(OUT)LPC1768.ld
+
# Build the additional bin output file
target-y += $(OUT)klipper.bin
diff --git a/src/stm32f1/Makefile b/src/stm32f1/Makefile
index 925038c2..12a60c2e 100644
--- a/src/stm32f1/Makefile
+++ b/src/stm32f1/Makefile
@@ -12,9 +12,6 @@ CFLAGS += -Ilib/cmsis-core
CFLAGS += -Ilib/cmsis-stm32f1/include -Ilib/hal-stm32f1/include
CFLAGS += -DSTM32F103xB
-CFLAGS_klipper.elf += -T $(OUT)stm32f1.ld
-CFLAGS_klipper.elf += --specs=nano.specs --specs=nosys.specs
-
# Add source files
src-y += stm32f1/main.c stm32f1/gpio.c
src-$(CONFIG_HAVE_GPIO_ADC) += stm32f1/adc.c
@@ -24,22 +21,24 @@ src-y += generic/crc16_ccitt.c generic/armcm_irq.c generic/armcm_timer.c
src-y += ../lib/cmsis-stm32f1/source/system_stm32f1xx.c
src-$(CONFIG_USBSERIAL) += stm32f1/usbserial.c generic/usb_cdc.c
src-$(CONFIG_SERIAL) += stm32f1/serial.c generic/serial_irq.c
-asmsrc-y = ../lib/cmsis-stm32f1/source/startup_stm32f103xb.s
# Add assembler build rules
$(OUT)%.o: %.s $(OUT)autoconf.h $(OUT)board-link
@echo " Assembling $@"
$(Q)$(AS) $< -o $@
-$(OUT)klipper.elf: $(patsubst %.s, $(OUT)src/%.o,$(asmsrc-y))
+asmsrc-y = ../lib/cmsis-stm32f1/source/startup_stm32f103xb.s
+OBJS_klipper.elf += $(patsubst %.s, $(OUT)src/%.o,$(asmsrc-y))
# Build the linker script
-target-y := $(OUT)stm32f1.ld $(target-y)
-
$(OUT)stm32f1.ld: src/stm32f1/stm32f1.ld $(OUT)board-link
@echo " Preprocessing $@"
$(Q)$(CPP) -P -MD -MT $@ -DFLASH_START=$(CONFIG_FLASH_START) $< -o $@
+CFLAGS_klipper.elf += -T $(OUT)stm32f1.ld
+CFLAGS_klipper.elf += --specs=nano.specs --specs=nosys.specs
+$(OUT)klipper.elf : $(OUT)stm32f1.ld
+
# Binary output file rules
target-y += $(OUT)klipper.bin