.DELETE_ON_ERROR: .SUFFIXES: # Makefile # Written by Leon Krieg # ============================================================================== # GENERAL SETTINGS # ============================================================================== VERBOSE := false ARCH := m1284 MCU := atmega1284p FREQ := 8000000UL ISP := usbasp CC := avr-gcc LD := $(CC) OBJCOPY := avr-objcopy AVD := avrdude SIM := simavr MKDIR := mkdir -p RMR := rm -rf GIT := git LFUSE := 0xC2 HFUSE := 0x97 EFUSE := 0xFF LOCK := 0xFF SRCDIR := src BINDIR := bin TMPDIR := $(BINDIR)/build TARGET := $(BINDIR)/core.hex ELFFILE := $(BINDIR)/core.elf LOGFILE := $(BINDIR)/core.log CPPFLAGS := -DF_CPU=$(FREQ) -I$(SRCDIR) CFLAGS := -mmcu=$(MCU) -Os -std=c99 -Wall -Wextra -Werror OCFLAGS := -j .text -j .data -O ihex LDFLAGS := -mmcu=$(MCU) -Wl,-u,vfprintf -lprintf_flt LDLIBS := -lm # ============================================================================== # TARGET FILE LISTS (DERIVED FROM SOURCE TREE) # ============================================================================== PATHS := $(shell find "$(SRCDIR)" -type d -printf '%P ' 2>/dev/null) FILES := $(shell find "$(SRCDIR)" -type f -name "*.c" -printf '%P ' 2>/dev/null) TMPDIRS := $(BINDIR) $(TMPDIR) $(PATHS:%=$(TMPDIR)/%) OBJECTS := $(FILES:%.c=$(TMPDIR)/%.o) DEPENDS := $(FILES:%.c=$(TMPDIR)/%.d) # ============================================================================== # AUXILIARY TARGETS # ============================================================================== .PHONY: all all: flash .PHONY: flash flash: $(TARGET) $(E) "[AVD] Flashing..." $(Q) $(AVD) -l $(LOGFILE) \ -c $(ISP) -p $(ARCH) \ -U lfuse:w:$(LFUSE):m \ -U hfuse:w:$(HFUSE):m \ -U efuse:w:$(EFUSE):m \ -U lock:w:$(LOCK):m \ -U flash:w:$< .PHONY: check check: # Will be added at later stage $(E) "[CHK] Not implemented." $(Q) true .PHONY: simulate simulate: $(TARGET) $(E) "[SIM] $<" $(Q) $(SIM) -m $(MCU) -f $(FREQ) $< .PHONY: listen listen: opt/tools/serial-listen $(E) "[RUN] $<" $(Q) ./$< .PHONY: webgui webgui: opt/webgui/Makefile $(E) "[MAK] $<" $(Q) $(MAKE) -sC $(