From e6c44d633c41fa2ec159339b8939469e69ff4ad4 Mon Sep 17 00:00:00 2001 From: Jimmy Brisson Date: Wed, 29 Mar 2017 14:48:46 -0500 Subject: [PATCH] Update gnuarmeclipse to preprocess linker scripts --- tools/export/gnuarmeclipse/__init__.py | 5 ++++- tools/export/gnuarmeclipse/makefile.targets.tmpl | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/export/gnuarmeclipse/__init__.py b/tools/export/gnuarmeclipse/__init__.py index 7968252227..334d928d1f 100644 --- a/tools/export/gnuarmeclipse/__init__.py +++ b/tools/export/gnuarmeclipse/__init__.py @@ -244,7 +244,9 @@ class GNUARMEclipse(Exporter): opts['ld']['object_files'] = objects opts['ld']['user_libraries'] = libraries opts['ld']['system_libraries'] = self.system_libraries - opts['ld']['script'] = self.ld_script + opts['ld']['script'] = join(id.capitalize(), + "linker-script-%s.ld" % id) + opts['cpp_cmd'] = " ".join(toolchain.preproc) # Unique IDs used in multiple places. # Those used only once are implemented with {{u.id}}. @@ -261,6 +263,7 @@ class GNUARMEclipse(Exporter): jinja_ctx = { 'name': self.project_name, + 'ld_script': self.ld_script, # Compiler & linker command line options 'options': self.options, diff --git a/tools/export/gnuarmeclipse/makefile.targets.tmpl b/tools/export/gnuarmeclipse/makefile.targets.tmpl index 00466357c7..af439f28e4 100644 --- a/tools/export/gnuarmeclipse/makefile.targets.tmpl +++ b/tools/export/gnuarmeclipse/makefile.targets.tmpl @@ -3,5 +3,11 @@ mbedclean: $(RM) $(OBJS) $(RM) $(CC_DEPS)$(C++_DEPS)$(C_UPPER_DEPS)$(CXX_DEPS)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) - $(RM) $(SECONDARY_FLASH)$(SECONDARY_SIZE) {{name}}.* - -@echo ' ' \ No newline at end of file + $(RM) $(SECONDARY_FLASH)$(SECONDARY_SIZE) {{name}}.* linker-script-*.ld + -@echo ' ' + +{% for config, data in options.iteritems() %} +linker-script-{{config}}.ld: ../{{ld_script}} + {{data.cpp_cmd}} {{data.ld.other}} $< -o $@ +{{name}}.elf: linker-script-{{config}}.ld +{% endfor %}