# makefile, written by guido and katja socher
MCU=at90s4433
CC=avr-gcc
OBJCOPY=avr-objcopy
#CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)
CFLAGS=-mcall-prologues -Os -mmcu=$(MCU) -Wall -Wstrict-prototypes 
#-------------------
all: linuxrobot_rom.hex adctest.hex motortest.hex ttydevinit
#-------------------
# we need to erase first before loading the program:
loadprebuild: prebuildlinuxrobot_rom.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=prebuildlinuxdcp_rom.hex -dprog=dapa  -v=3 --hash=32
#-------------------
# we need to erase first before loading the program:
load: linuxrobot_rom.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=linuxrobot_rom.hex -dprog=dapa  -v=3 --hash=32
#-------------------
ledtestload: ledtest.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=ledtest.hex -dprog=dapa  -v=3 --hash=32
#-------------------
adctestload: adctest.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=adctest.hex -dprog=dapa  -v=3 --hash=32
#-------------------
motortestload: motortest.hex
	uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
	uisp -dlpt=/dev/parport0 --upload if=motortest.hex -dprog=dapa  -v=3 --hash=32
#-------------------
clean: 
	rm -f *.o *.out *.map adctest.hex ledtest.hex linuxrobot_rom.hex motortest.hex ttydevinit
#
#-------------------
adctest:adctest.hex
	true
motortest:motortest.hex
	true
linuxrobot_rom.hex : linuxrobot.out 
	$(OBJCOPY) -R .eeprom -O ihex linuxrobot.out linuxrobot_rom.hex 
linuxrobot.out : linuxrobot.o  uart.o
	$(CC) $(CFLAGS) -o linuxrobot.out -Wl,-Map,linuxrobot.map,--cref linuxrobot.o   uart.o
uart.o : uart.c uart.h
	$(CC) $(CFLAGS) -c uart.c
linuxrobot.o : linuxrobot.c 
	$(CC) $(CFLAGS) -c linuxrobot.c
ledtest.hex : ledtest.out 
	$(OBJCOPY) -R .eeprom -O ihex ledtest.out ledtest.hex 
ledtest.out : ledtest.o 
	$(CC) $(CFLAGS) -o ledtest.out -Wl,-Map,adctest.map,--cref ledtest.o
ledtest.o : ledtest.c
	$(CC) $(CFLAGS) -c ledtest.c
adctest.hex : adctest.out 
	$(OBJCOPY) -R .eeprom -O ihex adctest.out adctest.hex 
adctest.out : adctest.o uart.o 
	$(CC) $(CFLAGS) -o adctest.out -Wl,-Map,adctest.map,--cref adctest.o  uart.o 
adctest.o : adctest.c
	$(CC) $(CFLAGS) -c adctest.c
motortest.hex : motortest.out 
	$(OBJCOPY) -R .eeprom -O ihex motortest.out motortest.hex 
motortest.out : motortest.o  
	$(CC) $(CFLAGS) -o motortest.out -Wl,-Map,motortest.map,--cref motortest.o   
motortest.o : motortest.c
	$(CC) $(CFLAGS) -c motortest.c
#-------------------
ttydevinit: ttydevinit.c
	gcc -Wall -o ttydevinit ttydevinit.c 
#-------------------

