2014-06-21 14:56:02 +00:00
|
|
|
# This file was automagically generated by mbed.org. For more information,
|
|
|
|
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
|
|
|
|
|
2016-06-29 15:59:35 +00:00
|
|
|
ifeq ($(OS),Windows_NT)
|
2016-06-29 16:35:41 +00:00
|
|
|
MAKEDIR = IF exists $(1) () ELSE (mkdir $(1))
|
2016-06-29 15:59:35 +00:00
|
|
|
else
|
2016-06-29 16:35:41 +00:00
|
|
|
MAKEDIR = [ -d $(1) ] || mkdir -p $(1)
|
2016-06-29 15:59:35 +00:00
|
|
|
endif
|
|
|
|
|
2016-06-28 21:14:23 +00:00
|
|
|
ifeq (,$(filter bin,$(notdir $(CURDIR))))
|
|
|
|
.SUFFIXES:
|
|
|
|
OBJDIR := bin
|
|
|
|
MAKETARGET = $(MAKE) --no-print-directory -C $@ -f $(CURDIR)/Makefile \
|
|
|
|
SRCDIR=$(CURDIR) $(MAKECMDGOALS)
|
|
|
|
.PHONY: $(OBJDIR) clean
|
|
|
|
$(OBJDIR):
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $@)
|
2016-06-28 21:14:23 +00:00
|
|
|
+@$(MAKETARGET)
|
|
|
|
Makefile : ;
|
|
|
|
% :: $(OBJDIR) ; :
|
|
|
|
clean :
|
|
|
|
rm -rf $(OBJDIR)
|
|
|
|
{% block target_clean -%}
|
|
|
|
{% endblock %}
|
|
|
|
else
|
|
|
|
|
|
|
|
VPATH = $(SRCDIR)
|
|
|
|
|
2014-06-21 14:56:02 +00:00
|
|
|
GCC_BIN =
|
|
|
|
PROJECT = {{name}}
|
|
|
|
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
|
|
|
|
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
|
2016-06-28 21:14:23 +00:00
|
|
|
INCLUDE_PATHS = {% for p in include_paths %}-I../{{p}} {% endfor %}
|
|
|
|
LIBRARY_PATHS = {% for p in library_paths %}-L../{{p}} {% endfor %}
|
2014-06-21 14:56:02 +00:00
|
|
|
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
|
|
|
|
LINKER_SCRIPT = {{linker_script}}
|
2015-06-05 13:23:10 +00:00
|
|
|
{%- block additional_variables -%}{% endblock %}
|
2014-06-21 14:56:02 +00:00
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
AS = $(GCC_BIN)arm-none-eabi-as
|
|
|
|
CC = $(GCC_BIN)arm-none-eabi-gcc
|
|
|
|
CPP = $(GCC_BIN)arm-none-eabi-g++
|
|
|
|
LD = $(GCC_BIN)arm-none-eabi-gcc
|
|
|
|
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
|
|
|
|
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
|
|
|
|
SIZE = $(GCC_BIN)arm-none-eabi-size
|
2015-06-05 13:23:10 +00:00
|
|
|
{%- block additional_executables -%}{% endblock %}
|
2014-06-21 14:56:02 +00:00
|
|
|
|
2015-06-05 13:33:36 +00:00
|
|
|
{%- block flags -%}
|
2015-06-05 13:04:34 +00:00
|
|
|
|
2015-06-05 12:37:08 +00:00
|
|
|
{% block hardfp %}
|
2015-06-05 14:52:45 +00:00
|
|
|
{% if "-mfloat-abi=softfp" in cpu_flags %}
|
2015-06-05 12:37:08 +00:00
|
|
|
ifeq ($(HARDFP),1)
|
|
|
|
FLOAT_ABI = hard
|
|
|
|
else
|
|
|
|
FLOAT_ABI = softfp
|
|
|
|
endif
|
|
|
|
{% endif %}
|
2015-06-05 13:33:36 +00:00
|
|
|
{%- endblock %}
|
2015-06-05 13:04:34 +00:00
|
|
|
|
2015-06-05 12:37:08 +00:00
|
|
|
CPU = {% block cpu %}{% for cf in cpu_flags %}{{cf|replace("-mfloat-abi=softfp","-mfloat-abi=$(FLOAT_ABI)")}} {% endfor %}{% endblock %}
|
2016-06-07 20:15:35 +00:00
|
|
|
CC_FLAGS = {% block cc_flags %}{{common_flags|join(" ")}} {{c_flags|join(" ")}} -MMD -MP{% endblock %}
|
|
|
|
CPPC_FLAGS = {% block cppc_flags %}{{common_flags|join(" ")}} {{cxx_flags|join(" ")}} -MMD -MP{% endblock %}
|
|
|
|
ASM_FLAGS = {% block asm_flags %}{{asm_flags|join(" ")}} {{common_flags|join(" ")}}{% endblock %}
|
2015-06-05 11:54:42 +00:00
|
|
|
CC_SYMBOLS = {% block cc_symbols %}{% for s in symbols %}-D{{s}} {% endfor %}{% endblock %}
|
2014-06-21 14:56:02 +00:00
|
|
|
|
2016-06-07 20:15:35 +00:00
|
|
|
LD_FLAGS = {%- block ld_flags -%} {{ld_flags|join(" ")}} {% endblock %}
|
2015-06-05 11:54:42 +00:00
|
|
|
LD_SYS_LIBS = {% block ld_sys_libs %}-lstdc++ -lsupc++ -lm -lc -lgcc -lnosys{% endblock %}
|
2014-06-21 14:56:02 +00:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
|
|
CC_FLAGS += -DDEBUG -O0
|
|
|
|
else
|
|
|
|
CC_FLAGS += -DNDEBUG -Os
|
|
|
|
endif
|
|
|
|
|
2016-06-29 15:59:35 +00:00
|
|
|
|
2016-06-28 21:14:23 +00:00
|
|
|
.PHONY: all lst size
|
2015-06-05 14:52:45 +00:00
|
|
|
|
2015-06-05 13:33:36 +00:00
|
|
|
{% block target_all -%}
|
2015-06-05 11:54:42 +00:00
|
|
|
all: $(PROJECT).bin $(PROJECT).hex size
|
2014-06-21 14:56:02 +00:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
|
2015-06-20 18:43:14 +00:00
|
|
|
.asm.o:
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $(dir $@))
|
2016-06-07 20:15:35 +00:00
|
|
|
$(CC) $(CPU) -c $(ASM_FLAGS) -o $@ $<
|
2014-06-21 14:56:02 +00:00
|
|
|
.s.o:
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $(dir $@))
|
2016-06-07 20:15:35 +00:00
|
|
|
$(CC) $(CPU) -c $(ASM_FLAGS) -o $@ $<
|
2015-06-20 18:43:14 +00:00
|
|
|
.S.o:
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $(dir $@))
|
2016-06-07 20:15:35 +00:00
|
|
|
$(CC) $(CPU) -c $(ASM_FLAGS) -o $@ $<
|
2014-06-21 14:56:02 +00:00
|
|
|
|
|
|
|
.c.o:
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $(dir $@))
|
2016-06-07 20:15:35 +00:00
|
|
|
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $<
|
2014-06-21 14:56:02 +00:00
|
|
|
|
|
|
|
.cpp.o:
|
2016-06-29 16:35:41 +00:00
|
|
|
+@$(call MAKEDIR, $(dir $@))
|
2016-06-07 20:15:35 +00:00
|
|
|
$(CPP) $(CPPC_FLAGS) $(CC_SYMBOLS) $(INCLUDE_PATHS) -o $@ $<
|
2014-06-21 14:56:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
{% block target_project_elf %}
|
2016-06-28 21:14:23 +00:00
|
|
|
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS) $(LINKER_SCRIPT)
|
|
|
|
$(LD) $(LD_FLAGS) -T$(filter %.ld, $^) $(LIBRARY_PATHS) -o $@ $(filter %.o, $^) -Wl,--start-group $(LIBRARIES) $(LD_SYS_LIBS) -Wl,--end-group
|
2014-06-21 14:56:02 +00:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
$(PROJECT).bin: $(PROJECT).elf
|
|
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
|
|
|
|
$(PROJECT).hex: $(PROJECT).elf
|
|
|
|
@$(OBJCOPY) -O ihex $< $@
|
|
|
|
|
|
|
|
$(PROJECT).lst: $(PROJECT).elf
|
|
|
|
@$(OBJDUMP) -Sdh $< > $@
|
|
|
|
|
|
|
|
lst: $(PROJECT).lst
|
|
|
|
|
2015-06-05 14:52:45 +00:00
|
|
|
size: $(PROJECT).elf
|
2014-06-21 14:56:02 +00:00
|
|
|
$(SIZE) $(PROJECT).elf
|
|
|
|
|
|
|
|
DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
|
|
|
|
-include $(DEPS)
|
2015-06-05 11:54:42 +00:00
|
|
|
|
2015-06-05 13:23:10 +00:00
|
|
|
{% block additional_targets %}{% endblock %}
|
2016-06-28 21:14:23 +00:00
|
|
|
endif
|
2015-06-05 13:23:10 +00:00
|
|
|
|