|
| 1 | +# This file was automagically generated by mbed.org. For more information, |
| 2 | +# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded |
| 3 | + |
| 4 | +############################################################################### |
| 5 | +# Boiler-plate |
| 6 | + |
| 7 | +# cross-platform directory manipulation |
| 8 | +ifeq ($(shell echo $$OS),$$OS) |
| 9 | + MAKEDIR = if not exist "$(1)" mkdir "$(1)" |
| 10 | + RM = rmdir /S /Q "$(1)" |
| 11 | +else |
| 12 | + MAKEDIR = $(SHELL) -c "mkdir -p \"$(1)\"" |
| 13 | + RM = $(SHELL) -c "rm -rf \"$(1)\"" |
| 14 | +endif |
| 15 | + |
| 16 | +# Move to the build directory |
| 17 | +ifeq (,$(filter .build,$(notdir $(CURDIR)))) |
| 18 | +.SUFFIXES: |
| 19 | +OBJDIR := .build |
| 20 | +mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) |
| 21 | +MAKETARGET = $(MAKE) --no-print-directory -C $(OBJDIR) -f $(mkfile_path) \ |
| 22 | + SRCDIR=$(CURDIR) $(MAKECMDGOALS) |
| 23 | +.PHONY: $(OBJDIR) clean |
| 24 | +all: |
| 25 | + +@$(call MAKEDIR,$(OBJDIR)) |
| 26 | + +@$(MAKETARGET) |
| 27 | +$(OBJDIR): all |
| 28 | +Makefile : ; |
| 29 | +% :: $(OBJDIR) ; : |
| 30 | +clean : |
| 31 | + $(call RM,$(OBJDIR)) |
| 32 | +{% block target_clean -%} |
| 33 | +{% endblock %} |
| 34 | +else |
| 35 | + |
| 36 | +# trick rules into thinking we are in the root, when we are in the bulid dir |
| 37 | +VPATH = {{vpath|join(" ")}} |
| 38 | + |
| 39 | +# Boiler-plate |
| 40 | +############################################################################### |
| 41 | +# Project settings |
| 42 | + |
| 43 | +PROJECT := {{name}} |
| 44 | + |
| 45 | +{% for sym in symbols %}CC_SYMBOLS += -D{{sym}} |
| 46 | +{% endfor %} |
| 47 | + |
| 48 | +# Project settings |
| 49 | +############################################################################### |
| 50 | +# Objects and Paths |
| 51 | + |
| 52 | +{% for obj in to_be_compiled %}OBJECTS += {{obj}} |
| 53 | +{% endfor %} |
| 54 | +{% for obj in object_files %} SYS_OBJECTS += {{obj}} |
| 55 | +{% endfor %} |
| 56 | +{% for path in include_paths %}INCLUDE_PATHS += -I{{path}} |
| 57 | +{% endfor %} |
| 58 | +LIBRARY_PATHS :={% for p in library_paths %} -L{{p}} {% endfor %} |
| 59 | +LIBRARIES :={% for lib in libraries %} -l{{lib}} {% endfor %} |
| 60 | +LINKER_SCRIPT := {{linker_script}} |
| 61 | +{%- block additional_variables -%}{% endblock %} |
| 62 | + |
| 63 | +# Objects and Paths |
| 64 | +############################################################################### |
| 65 | +# Tools and Flags |
| 66 | + |
| 67 | +AS = {{asm_cmd}} |
| 68 | +CC = {{cc_cmd}} |
| 69 | +CPP = {{cppc_cmd}} |
| 70 | +LD = {{ld_cmd}} |
| 71 | +ELF2BIN = {{elf2bin_cmd}} |
| 72 | +{% if hex_files %} |
| 73 | +SREC_CAT = srec_cat |
| 74 | +{%- endif %} |
| 75 | +{%- block additional_executables -%}{%- endblock %} |
| 76 | + |
| 77 | +LD_FLAGS :={%- block ld_flags -%} {{ld_flags|join(" ")}} {% endblock %} |
| 78 | +{% block sys_libs -%}{%- endblock %} |
| 79 | + |
| 80 | +# Tools and Flags |
| 81 | +############################################################################### |
| 82 | +# Rules |
| 83 | + |
| 84 | +.PHONY: all lst size |
| 85 | + |
| 86 | +{% if hex_files -%} |
| 87 | +all: $(PROJECT).bin $(PROJECT)-combined.hex size |
| 88 | +{% else %} |
| 89 | +all: $(PROJECT).bin $(PROJECT).hex size |
| 90 | +{% endif %} |
| 91 | + |
| 92 | +.asm.o: |
| 93 | + +@$(call MAKEDIR,$(dir $@)) |
| 94 | + $(AS) -c $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
| 95 | +.s.o: |
| 96 | + +@$(call MAKEDIR,$(dir $@)) |
| 97 | + $(AS) -c $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
| 98 | +.S.o: |
| 99 | + +@$(call MAKEDIR,$(dir $@)) |
| 100 | + $(AS) -c $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
| 101 | + |
| 102 | +.c.o: |
| 103 | + +@$(call MAKEDIR,$(dir $@)) |
| 104 | + $(CC) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
| 105 | + |
| 106 | +.cpp.o: |
| 107 | + +@$(call MAKEDIR,$(dir $@)) |
| 108 | + $(CPP) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
| 109 | + |
| 110 | +{% block target_project_elf %} |
| 111 | +$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(LINKER_SCRIPT) |
| 112 | + $(LD) $(LD_FLAGS) {{link_script_option}} $(filter %{{link_script_ext}}, $^) $(LIBRARY_PATHS) --output $@ $(filter %.o, $^) $(LIBRARIES) $(LD_SYS_LIBS) |
| 113 | +{% endblock %} |
| 114 | + |
| 115 | +$(PROJECT).bin: $(PROJECT).elf |
| 116 | +{%- block elf2bin -%}{%- endblock %} |
| 117 | + |
| 118 | +$(PROJECT).hex: $(PROJECT).elf |
| 119 | +{%- block elf2hex -%}{%- endblock %} |
| 120 | + |
| 121 | +{% if hex_files %} |
| 122 | +$(PROJECT)-combined.hex: $(PROJECT).hex |
| 123 | + $(SREC_CAT) {% for f in hex_files %}{{f}} {% endfor %} -intel $(PROJECT).hex -intel -o $(PROJECT)-combined.hex -intel --line-length=44 |
| 124 | +{% endif %} |
| 125 | +# Rules |
| 126 | +############################################################################### |
| 127 | +# Dependencies |
| 128 | + |
| 129 | +DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d) |
| 130 | +-include $(DEPS) |
| 131 | +endif |
| 132 | + |
| 133 | +# Dependencies |
| 134 | +############################################################################### |
| 135 | + |
0 commit comments