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>
This commit is contained in:
6
Makefile
6
Makefile
@@ -37,6 +37,8 @@ CFLAGS := -I$(OUT) -Isrc -I$(OUT)board-generic/ -std=gnu11 -O2 -MD -g \
|
|||||||
-ffunction-sections -fdata-sections
|
-ffunction-sections -fdata-sections
|
||||||
CFLAGS += -flto -fwhole-program -fno-use-linker-plugin
|
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
|
CFLAGS_klipper.elf = $(CFLAGS) -Wl,--gc-sections
|
||||||
|
|
||||||
CPPFLAGS = -I$(OUT) -P -MD -MT $@
|
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)$(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 $@
|
$(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 $@"
|
@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
|
$(Q)scripts/check-gcc.sh $@ $(OUT)compile_time_request.o
|
||||||
|
|
||||||
################ Kconfig rules
|
################ Kconfig rules
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ dirs-y += lib/lpc176x/device/TOOLCHAIN_GCC_ARM
|
|||||||
CFLAGS += -mthumb -mcpu=cortex-m3
|
CFLAGS += -mthumb -mcpu=cortex-m3
|
||||||
CFLAGS += -Ilib/lpc176x/device -Ilib/cmsis-core
|
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
|
# Add source files
|
||||||
src-y += lpc176x/main.c lpc176x/gpio.c
|
src-y += lpc176x/main.c lpc176x/gpio.c
|
||||||
src-$(CONFIG_HAVE_GPIO_ADC) += lpc176x/adc.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_USBSERIAL) += lpc176x/usbserial.c generic/usb_cdc.c
|
||||||
src-$(CONFIG_SERIAL) += lpc176x/serial.c generic/serial_irq.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
|
$(OUT)%.o: %.S
|
||||||
@echo " Assembling $@"
|
@echo " Assembling $@"
|
||||||
$(Q)$(AS) $< -o $@
|
$(Q)$(AS) $< -o $@
|
||||||
|
|
||||||
asmsrc-y := ../lib/lpc176x/device/TOOLCHAIN_GCC_ARM/startup_LPC17xx.S
|
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))
|
# Build the linker script
|
||||||
|
|
||||||
target-y := $(OUT)LPC1768.ld $(target-y)
|
|
||||||
|
|
||||||
$(OUT)LPC1768.ld: lib/lpc176x/device/TOOLCHAIN_GCC_ARM/LPC1768.ld $(OUT)board-link
|
$(OUT)LPC1768.ld: lib/lpc176x/device/TOOLCHAIN_GCC_ARM/LPC1768.ld $(OUT)board-link
|
||||||
@echo " Preprocessing $@"
|
@echo " Preprocessing $@"
|
||||||
$(Q)$(CPP) -P -MD -MT $@ -DMBED_APP_START=$(CONFIG_FLASH_START) -DMBED_APP_SIZE="(512K - $(CONFIG_FLASH_START))" $< -o $@
|
$(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
|
# Build the additional bin output file
|
||||||
target-y += $(OUT)klipper.bin
|
target-y += $(OUT)klipper.bin
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ CFLAGS += -Ilib/cmsis-core
|
|||||||
CFLAGS += -Ilib/cmsis-stm32f1/include -Ilib/hal-stm32f1/include
|
CFLAGS += -Ilib/cmsis-stm32f1/include -Ilib/hal-stm32f1/include
|
||||||
CFLAGS += -DSTM32F103xB
|
CFLAGS += -DSTM32F103xB
|
||||||
|
|
||||||
CFLAGS_klipper.elf += -T $(OUT)stm32f1.ld
|
|
||||||
CFLAGS_klipper.elf += --specs=nano.specs --specs=nosys.specs
|
|
||||||
|
|
||||||
# Add source files
|
# Add source files
|
||||||
src-y += stm32f1/main.c stm32f1/gpio.c
|
src-y += stm32f1/main.c stm32f1/gpio.c
|
||||||
src-$(CONFIG_HAVE_GPIO_ADC) += stm32f1/adc.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-y += ../lib/cmsis-stm32f1/source/system_stm32f1xx.c
|
||||||
src-$(CONFIG_USBSERIAL) += stm32f1/usbserial.c generic/usb_cdc.c
|
src-$(CONFIG_USBSERIAL) += stm32f1/usbserial.c generic/usb_cdc.c
|
||||||
src-$(CONFIG_SERIAL) += stm32f1/serial.c generic/serial_irq.c
|
src-$(CONFIG_SERIAL) += stm32f1/serial.c generic/serial_irq.c
|
||||||
asmsrc-y = ../lib/cmsis-stm32f1/source/startup_stm32f103xb.s
|
|
||||||
|
|
||||||
# Add assembler build rules
|
# Add assembler build rules
|
||||||
$(OUT)%.o: %.s $(OUT)autoconf.h $(OUT)board-link
|
$(OUT)%.o: %.s $(OUT)autoconf.h $(OUT)board-link
|
||||||
@echo " Assembling $@"
|
@echo " Assembling $@"
|
||||||
$(Q)$(AS) $< -o $@
|
$(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
|
# Build the linker script
|
||||||
target-y := $(OUT)stm32f1.ld $(target-y)
|
|
||||||
|
|
||||||
$(OUT)stm32f1.ld: src/stm32f1/stm32f1.ld $(OUT)board-link
|
$(OUT)stm32f1.ld: src/stm32f1/stm32f1.ld $(OUT)board-link
|
||||||
@echo " Preprocessing $@"
|
@echo " Preprocessing $@"
|
||||||
$(Q)$(CPP) -P -MD -MT $@ -DFLASH_START=$(CONFIG_FLASH_START) $< -o $@
|
$(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
|
# Binary output file rules
|
||||||
target-y += $(OUT)klipper.bin
|
target-y += $(OUT)klipper.bin
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user