tabby/avr/Makefile
2016-06-06 20:28:19 -05:00

65 lines
1.5 KiB
Makefile

include ../mk/build.mk
CLOCK_SPEED = 16000000L
INCLUDE_PATH = ../include
HEADER_SUBDIR = tabby
CROSS = avr-
CC = $(CROSS)gcc
CFLAGS = $(CGFLAGS) -Wall -Os -mmcu=atmega2560 \
-fdata-sections -ffunction-sections -Wl,--gc-sections \
-I$(INCLUDE_PATH) -DF_CPU=$(CLOCK_SPEED) -DUSE_2X
LDFLAGS =
OBJCOPY = $(CROSS)objcopy
OBJCOPY_FLAGS = -S
AVRDUDE = avrdude
AVRDUDE_DEVICE = /dev/cu.usbmodem1411
AVRDUDE_FLAGS = -c wiring -p atmega2560 -b 115200 -D -P $(AVRDUDE_DEVICE)
HEADERS_LOCAL =
HEADERS_BUILD = $(HEADERS_LOCAL) \
$(addprefix $(INCLUDE_PATH)/$(HEADER_SUBDIR)/,$(HEADERS))
HEADERS = avr.h avr/uart.h avr/link.h avr/printer.h link.h printer.h
OBJS = send.o recv.o printer.o link.o uart.o
RECV_NAME = recv
RECV_BIN = $(RECV_NAME).bin
RECV_ELF = $(RECV_NAME).elf
RECV_OBJS = recv.o printer.o link.o uart.o
SEND_NAME = send
SEND_BIN = $(SEND_NAME).bin
SEND_ELF = $(SEND_NAME).elf
SEND_OBJS = send.o printer.o link.o uart.o
IMAGES_BIN = $(RECV_BIN) $(SEND_BIN)
IMAGES_ELF = $(RECV_ELF) $(SEND_ELF)
RM = /bin/rm
all: $(IMAGES_BIN)
$(IMAGES_BIN): %.bin: %.elf
$(OBJCOPY) $(OBJCOPY_FLAGS) -O binary $< $@
$(SEND_ELF): $(SEND_OBJS)
$(CC) $(CFLAGS) $(SEND_OBJS) -o $@
$(RECV_ELF): $(RECV_OBJS)
$(CC) $(CFLAGS) $(RECV_OBJS) -o $@
$(OBJS): %.o: %.c $(HEADERS_BUILD)
$(CC) $(CFLAGS) -c $<
flash-send: $(SEND_BIN)
$(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(SEND_BIN):r
flash-recv: $(RECV_BIN)
$(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(RECV_BIN):r
clean:
$(RM) -f $(IMAGES_BIN) $(IMAGES_ELF) $(OBJS)