mbed-os
Dependents: cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more
tools/export/makefile/Makefile.tmpl@0:b74591d5ab33, 2017-12-11 (annotated)
- Committer:
- be_bryan
- Date:
- Mon Dec 11 17:54:04 2017 +0000
- Revision:
- 0:b74591d5ab33
motor ++
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
be_bryan | 0:b74591d5ab33 | 1 | # This file was automagically generated by mbed.org. For more information, |
be_bryan | 0:b74591d5ab33 | 2 | # see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded |
be_bryan | 0:b74591d5ab33 | 3 | |
be_bryan | 0:b74591d5ab33 | 4 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 5 | # Boiler-plate |
be_bryan | 0:b74591d5ab33 | 6 | |
be_bryan | 0:b74591d5ab33 | 7 | # cross-platform directory manipulation |
be_bryan | 0:b74591d5ab33 | 8 | ifeq ($(shell echo $$OS),$$OS) |
be_bryan | 0:b74591d5ab33 | 9 | MAKEDIR = if not exist "$(1)" mkdir "$(1)" |
be_bryan | 0:b74591d5ab33 | 10 | RM = rmdir /S /Q "$(1)" |
be_bryan | 0:b74591d5ab33 | 11 | else |
be_bryan | 0:b74591d5ab33 | 12 | MAKEDIR = '$(SHELL)' -c "mkdir -p \"$(1)\"" |
be_bryan | 0:b74591d5ab33 | 13 | RM = '$(SHELL)' -c "rm -rf \"$(1)\"" |
be_bryan | 0:b74591d5ab33 | 14 | endif |
be_bryan | 0:b74591d5ab33 | 15 | |
be_bryan | 0:b74591d5ab33 | 16 | OBJDIR := BUILD |
be_bryan | 0:b74591d5ab33 | 17 | # Move to the build directory |
be_bryan | 0:b74591d5ab33 | 18 | ifeq (,$(filter $(OBJDIR),$(notdir $(CURDIR)))) |
be_bryan | 0:b74591d5ab33 | 19 | .SUFFIXES: |
be_bryan | 0:b74591d5ab33 | 20 | mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) |
be_bryan | 0:b74591d5ab33 | 21 | MAKETARGET = '$(MAKE)' --no-print-directory -C $(OBJDIR) -f '$(mkfile_path)' \ |
be_bryan | 0:b74591d5ab33 | 22 | 'SRCDIR=$(CURDIR)' $(MAKECMDGOALS) |
be_bryan | 0:b74591d5ab33 | 23 | .PHONY: $(OBJDIR) clean |
be_bryan | 0:b74591d5ab33 | 24 | all: |
be_bryan | 0:b74591d5ab33 | 25 | +@$(call MAKEDIR,$(OBJDIR)) |
be_bryan | 0:b74591d5ab33 | 26 | +@$(MAKETARGET) |
be_bryan | 0:b74591d5ab33 | 27 | $(OBJDIR): all |
be_bryan | 0:b74591d5ab33 | 28 | Makefile : ; |
be_bryan | 0:b74591d5ab33 | 29 | % :: $(OBJDIR) ; : |
be_bryan | 0:b74591d5ab33 | 30 | clean : |
be_bryan | 0:b74591d5ab33 | 31 | $(call RM,$(OBJDIR)) |
be_bryan | 0:b74591d5ab33 | 32 | {% block target_clean -%} |
be_bryan | 0:b74591d5ab33 | 33 | {% endblock %} |
be_bryan | 0:b74591d5ab33 | 34 | else |
be_bryan | 0:b74591d5ab33 | 35 | |
be_bryan | 0:b74591d5ab33 | 36 | # trick rules into thinking we are in the root, when we are in the bulid dir |
be_bryan | 0:b74591d5ab33 | 37 | VPATH = {{vpath|join(" ")}} |
be_bryan | 0:b74591d5ab33 | 38 | |
be_bryan | 0:b74591d5ab33 | 39 | # Boiler-plate |
be_bryan | 0:b74591d5ab33 | 40 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 41 | # Project settings |
be_bryan | 0:b74591d5ab33 | 42 | |
be_bryan | 0:b74591d5ab33 | 43 | PROJECT := {{name}} |
be_bryan | 0:b74591d5ab33 | 44 | |
be_bryan | 0:b74591d5ab33 | 45 | |
be_bryan | 0:b74591d5ab33 | 46 | # Project settings |
be_bryan | 0:b74591d5ab33 | 47 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 48 | # Objects and Paths |
be_bryan | 0:b74591d5ab33 | 49 | |
be_bryan | 0:b74591d5ab33 | 50 | {% for obj in to_be_compiled %}OBJECTS += {{obj}} |
be_bryan | 0:b74591d5ab33 | 51 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 52 | {% for obj in object_files %} SYS_OBJECTS += {{obj}} |
be_bryan | 0:b74591d5ab33 | 53 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 54 | {% for path in include_paths %}INCLUDE_PATHS += -I{{path}} |
be_bryan | 0:b74591d5ab33 | 55 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 56 | LIBRARY_PATHS :={% for p in library_paths %} {{user_library_flag}}{{p}} {% endfor %} |
be_bryan | 0:b74591d5ab33 | 57 | LIBRARIES :={% for lib in libraries %} {{lib}} {% endfor %} |
be_bryan | 0:b74591d5ab33 | 58 | LINKER_SCRIPT ?= {{linker_script}} |
be_bryan | 0:b74591d5ab33 | 59 | {%- block additional_variables -%}{% endblock %} |
be_bryan | 0:b74591d5ab33 | 60 | |
be_bryan | 0:b74591d5ab33 | 61 | # Objects and Paths |
be_bryan | 0:b74591d5ab33 | 62 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 63 | # Tools and Flags |
be_bryan | 0:b74591d5ab33 | 64 | |
be_bryan | 0:b74591d5ab33 | 65 | AS = {{asm_cmd}} |
be_bryan | 0:b74591d5ab33 | 66 | CC = {{cc_cmd}} |
be_bryan | 0:b74591d5ab33 | 67 | CPP = {{cppc_cmd}} |
be_bryan | 0:b74591d5ab33 | 68 | LD = {{ld_cmd}} |
be_bryan | 0:b74591d5ab33 | 69 | ELF2BIN = {{elf2bin_cmd}} |
be_bryan | 0:b74591d5ab33 | 70 | {% if pp_cmd -%} |
be_bryan | 0:b74591d5ab33 | 71 | PREPROC = {{pp_cmd}} |
be_bryan | 0:b74591d5ab33 | 72 | {%- endif %} |
be_bryan | 0:b74591d5ab33 | 73 | {% if hex_files %} |
be_bryan | 0:b74591d5ab33 | 74 | SREC_CAT = srec_cat |
be_bryan | 0:b74591d5ab33 | 75 | {%- endif %} |
be_bryan | 0:b74591d5ab33 | 76 | {%- block additional_executables -%}{%- endblock %} |
be_bryan | 0:b74591d5ab33 | 77 | |
be_bryan | 0:b74591d5ab33 | 78 | {% for flag in c_flags %}C_FLAGS += {{flag}} |
be_bryan | 0:b74591d5ab33 | 79 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 80 | {% for flag in cxx_flags %}CXX_FLAGS += {{flag}} |
be_bryan | 0:b74591d5ab33 | 81 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 82 | {% for flag in asm_flags %}ASM_FLAGS += {{flag}} |
be_bryan | 0:b74591d5ab33 | 83 | {% endfor %} |
be_bryan | 0:b74591d5ab33 | 84 | |
be_bryan | 0:b74591d5ab33 | 85 | LD_FLAGS :={%- block ld_flags -%} {{ld_flags|join(" ")}} {% endblock %} |
be_bryan | 0:b74591d5ab33 | 86 | LD_SYS_LIBS :={%- block sys_libs -%} {{ld_sys_libs|join(" ")}} {% endblock %} |
be_bryan | 0:b74591d5ab33 | 87 | |
be_bryan | 0:b74591d5ab33 | 88 | # Tools and Flags |
be_bryan | 0:b74591d5ab33 | 89 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 90 | # Rules |
be_bryan | 0:b74591d5ab33 | 91 | |
be_bryan | 0:b74591d5ab33 | 92 | .PHONY: all lst size |
be_bryan | 0:b74591d5ab33 | 93 | |
be_bryan | 0:b74591d5ab33 | 94 | {% if hex_files -%} |
be_bryan | 0:b74591d5ab33 | 95 | all: $(PROJECT).bin $(PROJECT)-combined.hex size |
be_bryan | 0:b74591d5ab33 | 96 | {% else %} |
be_bryan | 0:b74591d5ab33 | 97 | all: $(PROJECT).bin $(PROJECT).hex size |
be_bryan | 0:b74591d5ab33 | 98 | {% endif %} |
be_bryan | 0:b74591d5ab33 | 99 | |
be_bryan | 0:b74591d5ab33 | 100 | .s.o: |
be_bryan | 0:b74591d5ab33 | 101 | +@$(call MAKEDIR,$(dir $@)) |
be_bryan | 0:b74591d5ab33 | 102 | +@echo "Assemble: $(notdir $<)" |
be_bryan | 0:b74591d5ab33 | 103 | {% if needs_asm_preproc %} |
be_bryan | 0:b74591d5ab33 | 104 | @$(AS) -c $(ASM_FLAGS) -E -o $(@:.o=.E.s) $< |
be_bryan | 0:b74591d5ab33 | 105 | @$(AS) -c $(ASM_FLAGS) -o $@ $(@:.o=.E.s) |
be_bryan | 0:b74591d5ab33 | 106 | {% else %} |
be_bryan | 0:b74591d5ab33 | 107 | @$(AS) -c $(ASM_FLAGS) -o $@ $< |
be_bryan | 0:b74591d5ab33 | 108 | {% endif %} |
be_bryan | 0:b74591d5ab33 | 109 | |
be_bryan | 0:b74591d5ab33 | 110 | |
be_bryan | 0:b74591d5ab33 | 111 | .S.o: |
be_bryan | 0:b74591d5ab33 | 112 | +@$(call MAKEDIR,$(dir $@)) |
be_bryan | 0:b74591d5ab33 | 113 | +@echo "Assemble: $(notdir $<)" |
be_bryan | 0:b74591d5ab33 | 114 | {% if needs_asm_preproc %} |
be_bryan | 0:b74591d5ab33 | 115 | @$(AS) -c $(ASM_FLAGS) -E -o $(@:.o=.E.s) $< |
be_bryan | 0:b74591d5ab33 | 116 | @$(AS) -c $(ASM_FLAGS) -o $@ $(@:.o=.E.s) |
be_bryan | 0:b74591d5ab33 | 117 | {% else %} |
be_bryan | 0:b74591d5ab33 | 118 | @$(AS) -c $(ASM_FLAGS) -o $@ $< |
be_bryan | 0:b74591d5ab33 | 119 | {% endif %} |
be_bryan | 0:b74591d5ab33 | 120 | |
be_bryan | 0:b74591d5ab33 | 121 | .c.o: |
be_bryan | 0:b74591d5ab33 | 122 | +@$(call MAKEDIR,$(dir $@)) |
be_bryan | 0:b74591d5ab33 | 123 | +@echo "Compile: $(notdir $<)" |
be_bryan | 0:b74591d5ab33 | 124 | @$(CC) $(C_FLAGS) $(INCLUDE_PATHS) -o $@ $< |
be_bryan | 0:b74591d5ab33 | 125 | |
be_bryan | 0:b74591d5ab33 | 126 | .cpp.o: |
be_bryan | 0:b74591d5ab33 | 127 | +@$(call MAKEDIR,$(dir $@)) |
be_bryan | 0:b74591d5ab33 | 128 | +@echo "Compile: $(notdir $<)" |
be_bryan | 0:b74591d5ab33 | 129 | @$(CPP) $(CXX_FLAGS) $(INCLUDE_PATHS) -o $@ $< |
be_bryan | 0:b74591d5ab33 | 130 | |
be_bryan | 0:b74591d5ab33 | 131 | {% if pp_cmd %} |
be_bryan | 0:b74591d5ab33 | 132 | $(PROJECT).link_script{{link_script_ext}}: $(LINKER_SCRIPT) |
be_bryan | 0:b74591d5ab33 | 133 | @$(PREPROC) $< -o $@ |
be_bryan | 0:b74591d5ab33 | 134 | {% endif %} |
be_bryan | 0:b74591d5ab33 | 135 | |
be_bryan | 0:b74591d5ab33 | 136 | {% block target_project_elf %} |
be_bryan | 0:b74591d5ab33 | 137 | $(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) {% if pp_cmd -%} $(PROJECT).link_script{{link_script_ext}} {% else%} $(LINKER_SCRIPT) {% endif %} |
be_bryan | 0:b74591d5ab33 | 138 | +@echo "link: $(notdir $@)" |
be_bryan | 0:b74591d5ab33 | 139 | @$(LD) $(LD_FLAGS) {{link_script_option}} $(filter-out %.o, $^) $(LIBRARY_PATHS) --output $@ $(filter %.o, $^) $(LIBRARIES) $(LD_SYS_LIBS) |
be_bryan | 0:b74591d5ab33 | 140 | {% endblock %} |
be_bryan | 0:b74591d5ab33 | 141 | |
be_bryan | 0:b74591d5ab33 | 142 | $(PROJECT).bin: $(PROJECT).elf |
be_bryan | 0:b74591d5ab33 | 143 | {%- block elf2bin -%}{%- endblock %} |
be_bryan | 0:b74591d5ab33 | 144 | {% if not hex_files %} +@echo "===== bin file ready to flash: $(OBJDIR)/$@ =====" {% endif %} |
be_bryan | 0:b74591d5ab33 | 145 | |
be_bryan | 0:b74591d5ab33 | 146 | $(PROJECT).hex: $(PROJECT).elf |
be_bryan | 0:b74591d5ab33 | 147 | {%- block elf2hex -%}{%- endblock %} |
be_bryan | 0:b74591d5ab33 | 148 | |
be_bryan | 0:b74591d5ab33 | 149 | {% if hex_files %} |
be_bryan | 0:b74591d5ab33 | 150 | $(PROJECT)-combined.hex: $(PROJECT).hex |
be_bryan | 0:b74591d5ab33 | 151 | +@echo "NOTE: the $(SREC_CAT) binary is required to be present in your PATH. Please see http://srecord.sourceforge.net/ for more information." |
be_bryan | 0:b74591d5ab33 | 152 | $(SREC_CAT) {% for f in hex_files %}{{f}} {% endfor %} -intel $(PROJECT).hex -intel -o $(PROJECT)-combined.hex -intel --line-length=44 |
be_bryan | 0:b74591d5ab33 | 153 | +@echo "===== hex file ready to flash: $(OBJDIR)/$@ =====" |
be_bryan | 0:b74591d5ab33 | 154 | {% endif %} |
be_bryan | 0:b74591d5ab33 | 155 | # Rules |
be_bryan | 0:b74591d5ab33 | 156 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 157 | # Dependencies |
be_bryan | 0:b74591d5ab33 | 158 | |
be_bryan | 0:b74591d5ab33 | 159 | DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d) |
be_bryan | 0:b74591d5ab33 | 160 | -include $(DEPS) |
be_bryan | 0:b74591d5ab33 | 161 | endif |
be_bryan | 0:b74591d5ab33 | 162 | |
be_bryan | 0:b74591d5ab33 | 163 | # Dependencies |
be_bryan | 0:b74591d5ab33 | 164 | ############################################################################### |
be_bryan | 0:b74591d5ab33 | 165 |