############################
#####   Makefile.bat   #####
############################

# Kompiliert die Datei fehler-tiny2313-04.c nach dem ANSI-Standard mit allen Warnmeldungen. 
# Es werden Funktionen aus der Bibliothek libm benutzt. 
# Es wird das Programm MeinTest erzeugt:
# gcc -lm -ansi -Os -Wall -o fehler-tiny2313-04 fehler-tiny2313-04.c

# Kompiliert die Datei MeinTest.c mit den aufgerufenen Routinen aus der libm und erzeugt das Programm MeinTest:
# gcc -lm -o MeinTest MeinTest.c

#######################################################################################################################

DEVICE     = attiny2313

CLOCK      = 8000000

# COM3 muss auf den Com-Port geändert werden, an dem Ihr Arduino eingesteckt ist
PROGRAMMER = -c arduino -P COM3 -b 19200 

OBJECTS    = fehler-tiny2313-05.o

AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE)

COMPILE = avr-gcc -lm -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE)

######################################################################################################################

all:	main.hex

.c.o:
	$(COMPILE) -c $< -o $@

.S.o:
	$(COMPILE) -x assembler-with-cpp -c $< -o $@

.c.s:
	$(COMPILE) -S $< -o $@

flash:	all
	$(AVRDUDE) -U flash:w:main.hex:i

fuse:	
	$(AVRDUDE) $(FUSES)

install: 
	flash fuse

load:	all
	bootloadHID main.hex

clean:	
	rm -f main.hex main.elf $(OBJECTS)

main.elf: $(OBJECTS)
	$(COMPILE) -o main.elf $(OBJECTS)

main.hex: main.elf
	rm -f main.hex
	avr-objcopy -j .text -j .data -O ihex main.elf main.hex

disasm:	main.elf
	avr-objdump -d main.elf

cpp:	$(COMPILE) -E main.c


