nppilot/roverif/Makefile
2013-12-27 21:35:37 +01:00

59 lines
1.4 KiB
Makefile

APP = roverif
DEVICE = atmega168
CLOCK = 8000000
#PROGRAMMER = -c signalyzer-lite
PROGRAMMER = -c arduino -b 19200 -P $(PROGRAMMER_PORT)
PROGRAMMER_PORT = /dev/ttyO4
SRC = $(wildcard *.cc)
SRC += $(wildcard ../lib/*.cc)
OBJ = $(SRC:%.cc=%.o)
LIB = $(APP).a
FUSES = -U lfuse:w:0xe2:m -U hfuse:w:0xde:m -U efuse:w:0xfe:m
CROSS_COMPILE = avr-
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
AR = $(CROSS_COMPILE)ar
CFLAGS = -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) -Wall
CFLAGS += -I../lib -I../external/avr-stl-stubs/include
CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections -pipe
#CFLAGS += -save-temps
CXXFLAGS = $(CFLAGS) -std=gnu++11
AVRDUDE = avrdude $(PROGRAMMER) -p $(DEVICE)
RESET_PIN = /sys/class/gpio/gpio9/value
all: $(APP).hex
reset:
bash -c "echo -e '1\n0\n1'" > $(RESET_PIN)
flash: all reset
$(AVRDUDE) -U flash:w:$(APP).hex:i
usb-flash: $(APP).hex
sudo $(HOME)/bin/micronucleus --run $<
remote-flash: $(APP).hex
scp $< blue:~/projects/nppilot/roverif
ssh blue "cd ~/projects/nppilot/roverif && make flash"
fuse:
$(AVRDUDE) $(FUSES)
style:
cpplint --filter=-legal/copyright,-whitespace/semicolon,-build/include,-build/header_guard *.cc *.h ../lib/*.cc ../lib/*.h
%.elf: start.o $(LIB)
$(CXX) $(CXXFLAGS) -o $@ $^
$(CROSS_COMPILE)size -d $@
$(LIB): $(OBJ)
$(AR) rcs $@ $^
%.hex: %.elf
avr-objcopy -j .text -j .data -O ihex $< $@
clean:
rm -f $(APP).hex $(APP).elf $(OBJ) *~