# Hey Emacs, this is a -*- makefile -*-
#
# Copyright (C) 2012 Felix Ruess <felix.ruess@gmail.com>


#
# This has some common targets
# for bare metal systems like on the ARM7TDMI, cortex M3/4

ifdef CC
CC_VERSION := $(shell $(CC) --version | head -1)
else
CC_VERSION := Not found
endif

printcommands:
	@echo ""
	@echo "GCC version: $(CC_VERSION)" '\n'
#	@echo "Using CC   = $(CC)"
#	@echo "Using LD   = $(LD)"
#	@echo "Using CP   = $(CP)"
#	@echo "Using DMP  = $(DMP)"
#	@echo "Using NM   = $(NM)"
#	@echo "Using SIZE = $(SIZE)"
#	@echo ""

# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(OBJDIR)/$(TARGET).hex
ELFSIZE = $(SIZE) -A -x $(OBJDIR)/$(TARGET).elf
sizebefore:
	@if [ -f $(OBJDIR)/$(TARGET).elf ]; then echo; echo "Previous size:"; $(ELFSIZE); fi

sizeafter:
	@if [ -f $(OBJDIR)/$(TARGET).elf ]; then echo; echo "Current size:"; $(ELFSIZE); fi

# Target: clean project.
clean: clean_list

clean_list :
	@echo
	$(RM) $(OBJDIR)/$(TARGET).hex
	$(RM) $(OBJDIR)/$(TARGET).obj
	$(RM) $(OBJDIR)/$(TARGET).elf
	$(RM) $(OBJDIR)/$(TARGET).map
	$(RM) $(OBJDIR)/$(TARGET).obj
	$(RM) $(OBJDIR)/$(TARGET).a90
	$(RM) $(OBJDIR)/$(TARGET).sym
	$(RM) $(OBJDIR)/$(TARGET).lnk
	$(RM) $(OBJDIR)/$(TARGET).lss
	$(RM) $(COBJ)
	$(RM) $(AOBJ)
	$(RM) $(COBJARM)
	$(RM) $(AOBJARM)
	$(RM) $(LST)
	$(RM) $(SRC:.c=.s)
	$(RM) $(SRC:.c=.d)
	$(RM) $(SRCARM:.c=.s)
	$(RM) $(SRCARM:.c=.d)
	$(RM) .dep/*
	$(RM) *~

.PHONY : printcommands sizebefore sizeafter clean clean_list
