hondartp-1.2.0/Makefile

54 lines
1.5 KiB
Makefile

SRCS=$(wildcard src/*.c)
OBJS=$(subst .c,.o,$(subst src,obj,$(SRCS)))
CC=tools/avr-gcc
OBJCOPY=avr-objcopy
SIZE=avr-size
MCU=atmega32
TARGET=$(shell basename `pwd`)
VERSION=$(shell echo "$(TARGET)" | cut -d "-" -f 2-) build:$(shell date +%Y%m%d)
CFLAGS_DEF=-DFVERSION="\"$(VERSION)\""
CFLAGS_MCU=-mmcu=$(MCU) -fomit-frame-pointer
CFLAGS_OPT=-O2 -g0 -pipe -fshort-enums -fpack-struct -s
CFLAGS_STD=-std=c99 -funsigned-char
CFLAGS_WARN=-Wall -Wextra \
-Wbad-function-cast -Wunused-parameter -Wshadow -Wpointer-arith -Wmissing-declarations \
-Wmissing-noreturn -Wunreachable-code -Wdeclaration-after-statement -Wundef -Wmissing-braces
CFLAGS=$(CFLAGS_MCU) $(CFLAGS_OPT) $(CFLAGS_STD) $(CFLAGS_DEF)
LDFLAGS=-Wl,-O1 -lm
all : $(TARGET).hex info
clean :
rm -fr obj/*.o $(TARGET) $(TARGET).hex *.tar.bz2
dist : clean
@echo -e "\nCREATED: $(TARGET).tar.bz2"
$(shell cd .. ; tar --exclude=$(TARGET).tar.bz2 -cjf $(TARGET)/$(TARGET).tar.bz2 $(TARGET))
info : $(TARGET).hex
@echo "built binary sections size:"
@$(SIZE) --target=ihex $(TARGET).hex
program : $(TARGET).hex
avrdude -p $(MCU)
obj/%.o : src/%.c
@echo -e "\033[1;34m[CC]: \033[0m$(CC) $< -o $@ -c $(CFLAGS)"
@$(CC) $(CFLAGS) $(CFLAGS_WARN) -c $< -o $@
$(TARGET) : $(OBJS)
@echo -e "\033[1;32m[LD]: \033[0m$(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS)"
@$(CC) $(CFLAGS) $(CFLAGS_WARN) $(LDFLAGS) $^ -o $@
$(TARGET).hex : $(TARGET)
@echo -n -e "\033[1;33m[HEX]: \033[0m"
$(OBJCOPY) -O ihex -R .eeprom -R .fuse -R .lock $(TARGET) $@
@echo -e "\nBUILD COMPLETE!\n"
.PHONY : all clean dist info program