#     ***CharMap 437***  
# ----------------------------------------------------------------------------
# Makefile para Winavr
#
# Adjust MCU and F_CPU below to your AVR target 
#----------------------------------------------------------------------------
# usage:
#
# make help     = show what's makefile can do for You.
# make all      = build software
# make clean    = Clean out built project files
# make download = Download the hex file to the device, using avrdude.
#                 Please customize the avrdude settings comport & baudrate below first!
#
# To rebuild project do "make clean" then "make"
#----------------------------------------------------------------------------


MAINFILE = main
FILE2 = tm1637

DIRLOCARLIBRARY = ../../
OBJS = $(MAINFILE).o $(FILE2).o

MCU = atmega328p
F_CPU = 16000000
CC = avr-gcc
CFLAGS = -Wall -Os -c -o
FLASHBAK = flash_backup.hex
BAUDRATE = 115200
COMPORT = com4


all: $(MAINFILE).hex $(MAINFILE).elf $(OBJS)


$(MAINFILE).hex: $(MAINFILE).elf
	avr-objcopy -O ihex -R .eeprom $(MAINFILE).elf $(MAINFILE).hex
	avr-size -C --mcu=$(MCU) $(MAINFILE).elf

	
$(MAINFILE).elf: $(OBJS)
	avr-gcc -mmcu=$(MCU) $(OBJS) -o $(MAINFILE).elf

	
$(MAINFILE).o: $(MAINFILE).c
	$(CC) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $(CFLAGS) $(MAINFILE).o $(MAINFILE).c


	
$(FILE2).o: $(DIRLOCARLIBRARY)$(FILE2).c 
	$(CC) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $(CFLAGS) $(FILE2).o $(DIRLOCARLIBRARY)$(FILE2).c


clean:
	rm -f $(MAINFILE).elf $(MAINFILE).hex $(MAINFILE).o
	rm -f $(FILE2).o
#	rm -f 'Last Loaded demoLCD16x2.pdsbak' 'Backup Of demoLCD16x2.pdsbak'

	
size:
	avr-size -C --mcu=$(MCU) $(MAINFILE).elf

	
ls:
	ls -alo
	

download:
	avrdude -F -V -c arduino -p $(MCU) -P $(COMPORT) -b $(BAUDRATE) -U flash:w:$(MAINFILE).hex


backup:
	avrdude -F -V -c arduino -p $(MCU) -P $(COMPORT) -b $(BAUDRATE) -U flash:r:$(FLASHBAK):i
	

help:
	@echo
	@echo make $(MAINFILE).o
	@echo compilar solo el archivo $(MAINFILE).c
	@echo
	@echo make $(FILE2).o
	@echo compilar solo el archivo $(FILE2).c 
	@echo
	@echo make clean
	@echo borar todos los archivos generados durante la compilacin.
	@echo
	@echo make size
	@echo nos indica el tamao de lo/s archivo/s objeto/s obtenido/size.
	@echo
	@echo make download
	@echo Graba el archivo $(MAINFILE).hex en la flash de la placa arduino.
	@echo
	@echo make backup
	@echo lee el contenido de la flash memory del chip de la placa arduino y lo guarda en un archivo llamado $(FLASHBAK)

