Tidied up and reduced the verbosity of the makefile.
authorPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 12 Aug 2015 23:17:10 +0000 (00:17 +0100)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 12 Aug 2015 23:17:10 +0000 (00:17 +0100)
Note: on windows installed MinGW to get mingw32-make but the avr-gcc
compiler tools are provided from the Arduino IDE installation.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Makefile

index 1c0410ffee4d0b4407c2ac5208754cff010df222..9724f4600fb0b19a656f6a342f006e2d8a6bc952 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,27 +1,43 @@
 # -*- Makefile -*-
 
-PROJECT=timer-demo
-DEVICE =atmega328p
-F_CPU  =16000000UL
-INC    =-I.
-AVRDUDE=avrdude -c usbasp -p $(DEVICE) -C $(AVR_DIR)\etc\avrdude.conf
-
-CC=avr-gcc
-LD=avr-gcc
-OBJCOPY=avr-objcopy
-CFLAGS =-Wall -Os -mcall-prologues -mmcu=$(DEVICE) -DF_CPU=$(F_CPU)
-LDFLAGS=-Wall -mmcu=$(DEVICE)
+PROJECT := timer-demo
+DEVICE  := atmega328p
+F_CPU   := 16000000UL
+INC     := -I.
+AVRDUDE := avrdude -c usbasp -p $(DEVICE) -C $(AVR_DIR)\etc\avrdude.conf
+
+CC      := avr-gcc
+LD      := avr-gcc
+OBJCOPY := avr-objcopy
+RM      := del >NUL
+CFLAGS  :=-Wall -Wstrict-prototypes -Wmissing-prototypes -Wcast-align -Wshadow \
+          -std=gnu99 -fshort-enums -pedantic-errors -Os -mcall-prologues \
+          -mmcu=$(DEVICE) -DF_CPU=$(F_CPU)
+LDFLAGS := -Wall -mmcu=$(DEVICE)
+
+V := @
+Q := $(V:1=)
+QUIET_CC      = $(Q:@=@echo   CC      $@ &)$(CC)
+QUIET_LD      = $(Q:@=@echo   LD      $@ &)$(LD)
+QUIET_OBJCOPY = $(Q:@=@echo   OBJCOPY $@ &)$(OBJCOPY)
+QUIET_AVRDUDE = $(Q:@=@echo   AVRDUDE $@ &)$(AVRDUDE)
 
 all: $(PROJECT).hex
 
 %.hex: %.elf
-       $(OBJCOPY) -j .text -j .data -O ihex $< $@
+       $(QUIET_OBJCOPY) -j .text -j .data -O ihex $< $@
     
 %.elf: %.o
-       $(LD) $(LDFLAGS) $< -o $@
+       $(QUIET_LD) $(LDFLAGS) $< -o $@
     
 %.o: %.c
-       $(CC) $(CFLAGS) $(INC) -c $<
+       $(QUIET_CC) $(CFLAGS) $(INC) -c $<
 
 flash: $(PROJECT).hex
-       $(AVRDUDE) -U flash:w:$<:i
\ No newline at end of file
+       $(QUIET_AVRDUDE) -U flash:w:$<:i
+
+clean:
+       -@$(RM) $(addprefix $(PROJECT), .elf .hex)
+
+.PHONY: clean
+.SECONDARY: $(addsuffix .elf, $(PROJECT))