diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-03-02 11:26:14 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-03-02 11:26:14 -0500 |
commit | 9430fea2c551dad91815df021510a19190df6d97 (patch) | |
tree | ef461fe8867f3329ff0f372847a914af20104265 | |
parent | 309a47c7810bf55d993210c2da014ede7dae8a87 (diff) | |
download | kutter-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-- | Makefile | 6 | ||||
-rw-r--r-- | src/lpc176x/Makefile | 15 | ||||
-rw-r--r-- | src/stm32f1/Makefile | 13 |
3 files changed, 17 insertions, 17 deletions
@@ -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 |