Skip to content

Instantly share code, notes, and snippets.

@ivoscc
Created December 16, 2013 06:02
Show Gist options
  • Save ivoscc/7982924 to your computer and use it in GitHub Desktop.
Save ivoscc/7982924 to your computer and use it in GitHub Desktop.
Makefile for building pure C programs on a arduino mega 2560 with avrdude and avr-gcc. Strongly based on the one found on: http://www.1010.co.uk/org/avr_resources.html
NAME := main
HEX := $(NAME).hex
OUT := $(NAME).out
MAP := $(NAME).map
SOURCES := $(wildcard *.c)
HEADERS := $(wildcard *.h)
OBJECTS := $(patsubst %.c,%.o,$(SOURCES))
MCU := atmega2560
MCU_AVRDUDE := m2560
PARTNO := stk500v2
DEVICE := /dev/tty.usbmodem1411
BAUDRATE := 115200
AVRDUDE_FLAGS := -F -V -D -v
CC := avr-gcc
OBJCOPY := avr-objcopy
SIZE := avr-size -A
CFLAGS := -Wall -pedantic -mmcu=$(MCU) -std=c99 -g -Os -DF_CPU=16000000UL
all: $(HEX)
clean:
rm -f $(HEX) $(OUT) $(MAP) $(OBJECTS)
flash: $(HEX)
avrdude $(AVRDUDE_FLAGS) -c $(PARTNO) -p $(MCU_AVRDUDE) -P $(DEVICE) -b $(BAUDRATE) -U flash:w:$(HEX)
$(HEX): $(OUT)
$(OBJCOPY) -R .eeprom -O ihex $< $@
$(OUT): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ -Wl,-Map,$(MAP) $^
@echo
@$(SIZE) $@
@echo
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c -o $@ $<
%.pp: %.c
$(CC) $(CFLAGS) -E -o $@ $<
%.ppo: %.c
$(CC) $(CFLAGS) -E $<
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment