## General Flags\r
PROJECT = avr463\r
MCU = attiny861\r
-TARGET = avr463.elf\r
-CC = avr-gcc.exe\r
+TARGET = $(PROJECT).elf\r
+CC = avr-gcc\r
\r
## Options common to compile, link and assembly rules\r
COMMON = -mmcu=$(MCU)\r
\r
## Compile options common for all C compilation units.\r
CFLAGS = $(COMMON)\r
-CFLAGS += -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -DNIMH\r
-CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d \r
+CFLAGS += -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffunction-sections\r
+CFLAGS += -fno-inline-small-functions -fno-split-wide-types\r
+CFLAGS += -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=./$(*F).lst\r
+CFLAGS += -MMD -MP -MF dep/$(@F).d \r
+CFLAGS += -DNIMH\r
\r
## Assembly specific flags\r
ASMFLAGS = $(COMMON)\r
\r
## Linker flags\r
LDFLAGS = $(COMMON)\r
-LDFLAGS += -Wl,-Map=avr463.map -Wl,-relax\r
+LDFLAGS += -Wl,-Map=$(PROJECT).map,--cref -Wl,-gc-sections -Wl,-relax\r
\r
\r
## Intel Hex file production flags\r
LINKONLYOBJECTS = \r
\r
## Build\r
-all: $(TARGET) avr463.hex avr463.eep avr463.lss size\r
+all: $(TARGET) $(PROJECT).hex $(PROJECT).eep $(PROJECT).lss size\r
\r
## Compile\r
ADC.o: ../ADC.c\r
## Clean target\r
.PHONY: clean\r
clean:\r
- -rm -rf $(OBJECTS) avr463.elf dep avr463.hex avr463.eep avr463.lss avr463.map\r
+ -rm -rf $(OBJECTS) $(PROJECT).elf dep $(PROJECT).hex $(PROJECT).eep $(PROJECT).lss $(PROJECT).map *.lst\r
\r
\r
## Other dependencies\r
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)\r
-\r