Update TODO list
[trut64.git] / avr / Makefile
blob0f5010af538cf67c503d539662fbc85724624e4a
1 -include ../make.config
3 ifndef HWBOARD
4 HWBOARD = USBKEY
5 endif
7 ## General Flags
8 PROJECT = avr
9 TARGET = $(PROJECT).elf
10 CC = avr-gcc
11 ifeq ($(HWBOARD),DEVTRUT)
12 MCU = at90usb162
13 else
14 MCU = at90usb1287
15 endif
16 CFLAGS += -DDEVTRUT=1 -DUSBKEY=2 -DHWBOARD=$(HWBOARD)
18 ## Options common to compile, link and assembly rules
19 COMMON = -mmcu=$(MCU)
21 ## Compile options common for all C compilation units.
22 CFLAGS += $(COMMON) -D AVRGCC -Wall
24 CFLAGS += -Os
25 # CFLAGS += -O3 # Use this one to inline everything
27 ## Linker flags
28 LDFLAGS += $(COMMON) -Wl,-Map=$(PROJECT).map,--cref
30 ## Intel Hex file production flags
31 HEX_FLASH_FLAGS = -R .eeprom
32 HEX_EEPROM_FLAGS = -j .eeprom
33 HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
34 HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0
36 ## Include Directories
37 CFLAGS += -I"../include"
39 ## Objects that must be built in order to link
40 OBJECTS = main.o avrusb.o debugleds.o usbdescriptors.o trutcomm.o dbuf.o \
41 buffer.o timer1.o loadtask.o stackusage.o c64tape.o motor.o trutcontrol.o \
42 msgbuffer.o passtask.o dumptask.o trutprofile.o
44 ## Build
45 all: $(PROJECT).hex $(PROJECT).eep size
47 ## Compile
49 ##Link
50 $(TARGET): $(patsubst %.o,%.c, $(OBJECTS)) $(wildcard *.h)
51 cat $(patsubst %.o,%.c, $(OBJECTS)) > all.c
52 $(CC) $(CFLAGS) -fwhole-program all.c -o $(TARGET)
54 old: $(OBJECTS)
55 $(CC) $(LDFLAGS) $(OBJECTS) -o $(TARGET)
56 avr-objcopy -O ihex $(HEX_FLASH_FLAGS) avr.elf avr.hex
57 avr-objcopy -O ihex $(HEX_EEPROM_FLAGS) avr.elf avr.eep || exit 0
58 avr-size avr.elf
60 %.hex: $(TARGET)
61 avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@
63 %.eep: $(TARGET)
64 avr-objcopy -O ihex $(HEX_EEPROM_FLAGS) $< $@ || exit 0
66 %.lss: $(TARGET)
67 avr-objdump -h -S $< > $@
69 size: $(TARGET)
70 avr-size $(TARGET)
72 prog:
73 ../avrprog avr.hex
75 ## Clean target
76 .PHONY: clean all
77 clean:
78 -rm -rf $(OBJECTS) $(PROJECT).elf $(PROJECT).hex $(PROJECT).eep \
79 $(PROJECT).map all.c
80 find -name "*~" | xargs rm -f