Preliminary main mbed library for nexpaq development
tools/export/gcc_arm_common.tmpl@1:d96dbedaebdb, 2016-11-04 (annotated)
- Committer:
- nexpaq
- Date:
- Fri Nov 04 20:54:50 2016 +0000
- Revision:
- 1:d96dbedaebdb
- Parent:
- 0:6c56fb4bc5f0
Removed extra directories for other platforms
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nexpaq | 0:6c56fb4bc5f0 | 1 | # This file was automagically generated by mbed.org. For more information, |
nexpaq | 0:6c56fb4bc5f0 | 2 | # see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded |
nexpaq | 0:6c56fb4bc5f0 | 3 | |
nexpaq | 0:6c56fb4bc5f0 | 4 | # cross-platform directory manipulation |
nexpaq | 0:6c56fb4bc5f0 | 5 | ifeq ($(shell echo $$OS),$$OS) |
nexpaq | 0:6c56fb4bc5f0 | 6 | MAKEDIR = if not exist "$(1)" mkdir "$(1)" |
nexpaq | 0:6c56fb4bc5f0 | 7 | RM = rmdir /S /Q "$(1)" |
nexpaq | 0:6c56fb4bc5f0 | 8 | else |
nexpaq | 0:6c56fb4bc5f0 | 9 | MAKEDIR = $(SHELL) -c "mkdir -p \"$(1)\"" |
nexpaq | 0:6c56fb4bc5f0 | 10 | RM = $(SHELL) -c "rm -rf \"$(1)\"" |
nexpaq | 0:6c56fb4bc5f0 | 11 | endif |
nexpaq | 0:6c56fb4bc5f0 | 12 | |
nexpaq | 0:6c56fb4bc5f0 | 13 | ifeq (,$(filter .build,$(notdir $(CURDIR)))) |
nexpaq | 0:6c56fb4bc5f0 | 14 | .SUFFIXES: |
nexpaq | 0:6c56fb4bc5f0 | 15 | OBJDIR := .build |
nexpaq | 0:6c56fb4bc5f0 | 16 | mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) |
nexpaq | 0:6c56fb4bc5f0 | 17 | MAKETARGET = $(MAKE) --no-print-directory -C $(OBJDIR) -f $(mkfile_path) \ |
nexpaq | 0:6c56fb4bc5f0 | 18 | SRCDIR=$(CURDIR) $(MAKECMDGOALS) |
nexpaq | 0:6c56fb4bc5f0 | 19 | .PHONY: $(OBJDIR) clean |
nexpaq | 0:6c56fb4bc5f0 | 20 | all: |
nexpaq | 0:6c56fb4bc5f0 | 21 | +@$(call MAKEDIR,$(OBJDIR)) |
nexpaq | 0:6c56fb4bc5f0 | 22 | +@$(MAKETARGET) |
nexpaq | 0:6c56fb4bc5f0 | 23 | $(OBJDIR): all |
nexpaq | 0:6c56fb4bc5f0 | 24 | Makefile : ; |
nexpaq | 0:6c56fb4bc5f0 | 25 | % :: $(OBJDIR) ; : |
nexpaq | 0:6c56fb4bc5f0 | 26 | clean : |
nexpaq | 0:6c56fb4bc5f0 | 27 | $(call RM,$(OBJDIR)) |
nexpaq | 0:6c56fb4bc5f0 | 28 | {% block target_clean -%} |
nexpaq | 0:6c56fb4bc5f0 | 29 | {% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 30 | else |
nexpaq | 0:6c56fb4bc5f0 | 31 | |
nexpaq | 0:6c56fb4bc5f0 | 32 | VPATH = {% for path in vpath %}{{path}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 33 | |
nexpaq | 0:6c56fb4bc5f0 | 34 | GCC_BIN = |
nexpaq | 0:6c56fb4bc5f0 | 35 | PROJECT = {{name}} |
nexpaq | 0:6c56fb4bc5f0 | 36 | OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 37 | SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 38 | INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 39 | LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 40 | LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %} |
nexpaq | 0:6c56fb4bc5f0 | 41 | LINKER_SCRIPT = {{linker_script}} |
nexpaq | 0:6c56fb4bc5f0 | 42 | {%- block additional_variables -%}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 43 | |
nexpaq | 0:6c56fb4bc5f0 | 44 | ############################################################################### |
nexpaq | 0:6c56fb4bc5f0 | 45 | AS = $(GCC_BIN)arm-none-eabi-as |
nexpaq | 0:6c56fb4bc5f0 | 46 | CC = $(GCC_BIN)arm-none-eabi-gcc |
nexpaq | 0:6c56fb4bc5f0 | 47 | CPP = $(GCC_BIN)arm-none-eabi-g++ |
nexpaq | 0:6c56fb4bc5f0 | 48 | LD = $(GCC_BIN)arm-none-eabi-gcc |
nexpaq | 0:6c56fb4bc5f0 | 49 | OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy |
nexpaq | 0:6c56fb4bc5f0 | 50 | OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump |
nexpaq | 0:6c56fb4bc5f0 | 51 | SIZE = $(GCC_BIN)arm-none-eabi-size |
nexpaq | 0:6c56fb4bc5f0 | 52 | {%- block additional_executables -%}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 53 | |
nexpaq | 0:6c56fb4bc5f0 | 54 | {%- block flags -%} |
nexpaq | 0:6c56fb4bc5f0 | 55 | |
nexpaq | 0:6c56fb4bc5f0 | 56 | {% block hardfp %} |
nexpaq | 0:6c56fb4bc5f0 | 57 | {% if "-mfloat-abi=softfp" in cpu_flags %} |
nexpaq | 0:6c56fb4bc5f0 | 58 | ifeq ($(HARDFP),1) |
nexpaq | 0:6c56fb4bc5f0 | 59 | FLOAT_ABI = hard |
nexpaq | 0:6c56fb4bc5f0 | 60 | else |
nexpaq | 0:6c56fb4bc5f0 | 61 | FLOAT_ABI = softfp |
nexpaq | 0:6c56fb4bc5f0 | 62 | endif |
nexpaq | 0:6c56fb4bc5f0 | 63 | {% endif %} |
nexpaq | 0:6c56fb4bc5f0 | 64 | {%- endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 65 | |
nexpaq | 0:6c56fb4bc5f0 | 66 | CPU = {% block cpu %}{% for cf in cpu_flags %}{{cf|replace("-mfloat-abi=softfp","-mfloat-abi=$(FLOAT_ABI)")}} {% endfor %}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 67 | CC_FLAGS = {% block cc_flags %}{{common_flags|join(" ")}} {{c_flags|join(" ")}} -MMD -MP{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 68 | CPPC_FLAGS = {% block cppc_flags %}{{common_flags|join(" ")}} {{cxx_flags|join(" ")}} -MMD -MP{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 69 | ASM_FLAGS = {% block asm_flags %}{{asm_flags|join(" ")}} {{common_flags|join(" ")}}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 70 | CC_SYMBOLS = {% block cc_symbols %}{% for s in symbols %}-D{{s}} {% endfor %}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 71 | |
nexpaq | 0:6c56fb4bc5f0 | 72 | LD_FLAGS = {%- block ld_flags -%} {{ld_flags|join(" ")}} {% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 73 | LD_SYS_LIBS = {% block ld_sys_libs %}-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 74 | {% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 75 | |
nexpaq | 0:6c56fb4bc5f0 | 76 | ifeq ($(DEBUG), 1) |
nexpaq | 0:6c56fb4bc5f0 | 77 | CC_FLAGS += -DDEBUG -O0 |
nexpaq | 0:6c56fb4bc5f0 | 78 | else |
nexpaq | 0:6c56fb4bc5f0 | 79 | CC_FLAGS += -DNDEBUG -Os |
nexpaq | 0:6c56fb4bc5f0 | 80 | endif |
nexpaq | 0:6c56fb4bc5f0 | 81 | |
nexpaq | 0:6c56fb4bc5f0 | 82 | |
nexpaq | 0:6c56fb4bc5f0 | 83 | .PHONY: all lst size |
nexpaq | 0:6c56fb4bc5f0 | 84 | |
nexpaq | 0:6c56fb4bc5f0 | 85 | {% block target_all -%} |
nexpaq | 0:6c56fb4bc5f0 | 86 | all: $(PROJECT).bin $(PROJECT).hex size |
nexpaq | 0:6c56fb4bc5f0 | 87 | {% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 88 | |
nexpaq | 0:6c56fb4bc5f0 | 89 | |
nexpaq | 0:6c56fb4bc5f0 | 90 | .asm.o: |
nexpaq | 0:6c56fb4bc5f0 | 91 | +@$(call MAKEDIR,$(dir $@)) |
nexpaq | 0:6c56fb4bc5f0 | 92 | $(CC) $(CPU) -c $(ASM_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
nexpaq | 0:6c56fb4bc5f0 | 93 | .s.o: |
nexpaq | 0:6c56fb4bc5f0 | 94 | +@$(call MAKEDIR,$(dir $@)) |
nexpaq | 0:6c56fb4bc5f0 | 95 | $(CC) $(CPU) -c $(ASM_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
nexpaq | 0:6c56fb4bc5f0 | 96 | .S.o: |
nexpaq | 0:6c56fb4bc5f0 | 97 | +@$(call MAKEDIR,$(dir $@)) |
nexpaq | 0:6c56fb4bc5f0 | 98 | $(CC) $(CPU) -c $(ASM_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
nexpaq | 0:6c56fb4bc5f0 | 99 | |
nexpaq | 0:6c56fb4bc5f0 | 100 | .c.o: |
nexpaq | 0:6c56fb4bc5f0 | 101 | +@$(call MAKEDIR,$(dir $@)) |
nexpaq | 0:6c56fb4bc5f0 | 102 | $(CC) $(CC_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
nexpaq | 0:6c56fb4bc5f0 | 103 | |
nexpaq | 0:6c56fb4bc5f0 | 104 | .cpp.o: |
nexpaq | 0:6c56fb4bc5f0 | 105 | +@$(call MAKEDIR,$(dir $@)) |
nexpaq | 0:6c56fb4bc5f0 | 106 | $(CPP) $(CPPC_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $< |
nexpaq | 0:6c56fb4bc5f0 | 107 | |
nexpaq | 0:6c56fb4bc5f0 | 108 | |
nexpaq | 0:6c56fb4bc5f0 | 109 | {% block target_project_elf %} |
nexpaq | 0:6c56fb4bc5f0 | 110 | $(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(LINKER_SCRIPT) |
nexpaq | 0:6c56fb4bc5f0 | 111 | $(LD) $(LD_FLAGS) -T$(filter %.ld, $^) $(LIBRARY_PATHS) -o $@ $(filter %.o, $^) -Wl,--start-group $(LIBRARIES) $(LD_SYS_LIBS) -Wl,--end-group |
nexpaq | 0:6c56fb4bc5f0 | 112 | {% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 113 | |
nexpaq | 0:6c56fb4bc5f0 | 114 | $(PROJECT).bin: $(PROJECT).elf |
nexpaq | 0:6c56fb4bc5f0 | 115 | $(OBJCOPY) -O binary $< $@ |
nexpaq | 0:6c56fb4bc5f0 | 116 | |
nexpaq | 0:6c56fb4bc5f0 | 117 | $(PROJECT).hex: $(PROJECT).elf |
nexpaq | 0:6c56fb4bc5f0 | 118 | @$(OBJCOPY) -O ihex $< $@ |
nexpaq | 0:6c56fb4bc5f0 | 119 | |
nexpaq | 0:6c56fb4bc5f0 | 120 | $(PROJECT).lst: $(PROJECT).elf |
nexpaq | 0:6c56fb4bc5f0 | 121 | @$(OBJDUMP) -Sdh $< > $@ |
nexpaq | 0:6c56fb4bc5f0 | 122 | |
nexpaq | 0:6c56fb4bc5f0 | 123 | lst: $(PROJECT).lst |
nexpaq | 0:6c56fb4bc5f0 | 124 | |
nexpaq | 0:6c56fb4bc5f0 | 125 | size: $(PROJECT).elf |
nexpaq | 0:6c56fb4bc5f0 | 126 | $(SIZE) $(PROJECT).elf |
nexpaq | 0:6c56fb4bc5f0 | 127 | |
nexpaq | 0:6c56fb4bc5f0 | 128 | DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d) |
nexpaq | 0:6c56fb4bc5f0 | 129 | -include $(DEPS) |
nexpaq | 0:6c56fb4bc5f0 | 130 | |
nexpaq | 0:6c56fb4bc5f0 | 131 | {% block additional_targets %}{% endblock %} |
nexpaq | 0:6c56fb4bc5f0 | 132 | endif |
nexpaq | 0:6c56fb4bc5f0 | 133 |