From c5c33a46003ba66008774e1ddf9557906df76462 Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Fri, 8 Apr 2016 00:00:02 +0000 Subject: switch to using devices.data linker generation Still using my own private rules, but now using the linker script generator so no need to keep expanding on including .ld files in core libopencm3 --- rules.mk | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'rules.mk') diff --git a/rules.mk b/rules.mk index 0f4b50b..b668d43 100644 --- a/rules.mk +++ b/rules.mk @@ -18,14 +18,20 @@ # This version of rules.mk expects the following to be defined before # inclusion.. ### REQUIRED ### +# DEVICE=xxxx - this tree uses the genlink-config.mk and genlink-rules.mk! # OPENCM3_DIR - duh -# OPENCM3_LIB - the basename, eg: opencm3_stm32f4 -# OPENCM3_DEFS - the target define eg: -DSTM32F4 -# ARCH_FLAGS - eg, -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -# (ie, the full set of cpu arch flags, _none_ are defined in this file) # PROJECT - will be the basename of the output elf, eg usb-gadget0-stm32f4disco # CFILES - basenames only, eg main.c blah.c -# LDSCRIPT - full path, eg ../../examples/stm32/f4/stm32f4-discovery/stm32f4-discovery.ld +# The follow vars are assumed to have been created via genlink.mk +# xOPENCM3_LIB - the basename, eg: opencm3_stm32f4 +# SOURCED VIA devices.data! +# xOPENCM3_DEFS - the target define eg: -DSTM32F4 +# SOURCED VIA devices.data! +# xARCH_FLAGS - eg, -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 +# (ie, the full set of cpu arch flags, _none_ are defined in this file) +# SOURCED VIA devices.data! +# xLDSCRIPT - full path, eg ../../examples/stm32/f4/stm32f4-discovery/stm32f4-discovery.ld +# SOURCED VIA devices.data! # ### OPTIONAL ### # INCLUDES - fully formed -I paths, if you want extra, eg -I../shared @@ -65,16 +71,14 @@ OBJCOPY = $(PREFIX)objcopy OBJDUMP = $(PREFIX)objdump OOCD ?= openocd -OPENCM3_INC = $(OPENCM3_DIR)/include - # Inclusion of library header files -INCLUDES += $(patsubst %,-I%, . $(OPENCM3_INC) ) +include $(OPENCM3_DIR)/mk/genlink-config.mk OBJS = $(CFILES:%.c=$(BUILD_DIR)/%.o) TGT_CPPFLAGS += -MD -TGT_CPPFLAGS += -Wall -Wundef $(INCLUDES) -TGT_CPPFLAGS += $(INCLUDES) $(OPENCM3_DEFS) +TGT_CPPFLAGS += -Wall -Wundef +TGT_CPPFLAGS += $(INCLUDES) TGT_CFLAGS += $(OPT) $(CSTD) -ggdb3 TGT_CFLAGS += $(ARCH_FLAGS) @@ -100,7 +104,6 @@ ifeq ($(V),99) TGT_LDFLAGS += -Wl,--print-gc-sections endif -LDLIBS += -l$(OPENCM3_LIB) # nosys is only in newer gcc-arm-embedded... LDLIBS += -specs=nosys.specs #LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group @@ -119,11 +122,6 @@ LDLIBS += -specs=nosys.specs all: $(PROJECT).elf $(PROJECT).bin flash: $(PROJECT).flash -$(LDSCRIPT): -ifeq (,$(wildcard $(LDSCRIPT))) - $(error Unable to find specified linker script: $(LDSCRIPT)) -endif - # Need a special rule to have a bin dir $(BUILD_DIR)/%.o: %.c @printf " CC\t$<\n" @@ -165,7 +163,9 @@ else endif clean: - rm -rf $(BUILD_DIR) $(PROJECT).{elf,bin} $(PROJECT).{list,lss,map} + rm -rf $(BUILD_DIR) $(PROJECT).{elf,bin} $(PROJECT).{list,lss,map} $(LDSCRIPT) + +include $(OPENCM3_DIR)/mk/genlink-rules.mk .PHONY: all clean flash -include $(OBJS:.o=.d) -- cgit