avr: initial commit
[z80.git] / avr / Makefile
diff --git a/avr/Makefile b/avr/Makefile
new file mode 100644 (file)
index 0000000..dbf6394
--- /dev/null
@@ -0,0 +1,34 @@
+# makefile
+
+OBJS   =  main.o uart.o i2c.o bus.o mem.o io.o cpm.o
+OBJS   += monitor/monitor.o monitor/slots.o monitor/ihex.o
+
+CC     = avr-gcc
+OBJCOPY        = avr-objcopy
+AVRDUDE        = sudo avrdude
+
+CFLAGS = -std=gnu99 -mmcu=atmega328p -DF_CPU=16000000 -Os
+
+all: main.hex
+
+flash: main.hex
+       @echo -e "\tFLASH"
+       @$(AVRDUDE) -y -p m328p -c usbasp -U flash:w:main.hex
+
+main.hex: main.elf
+       @echo -e "\tOBJCOPY\t$@"
+       @$(OBJCOPY) -O ihex -R .eeprom main.elf main.hex
+
+main.elf: $(OBJS)
+       @echo -e "\tLD\t$@"
+       @$(CC) $(CFLAGS) -o main.elf $(OBJS)
+
+%.o: %.c
+       @echo -e "\tCC\t$@"
+       @$(CC) $(CFLAGS) -c -o $@ $^
+
+clean:
+       @echo -e "\tCLEAN"
+       @rm -f $(OBJS) main.elf main.hex
+
+.PHONY:        clean