.DELETE_ON_ERROR: .SUFFIXES: # Makefile # Written by Leon Krieg # ============================================================================== # GENERAL SETTINGS # ============================================================================== VERBOSE := false #ARCH := m1284p ARCH := m32 #FREQ := 18432000UL FREQ := 8000000UL #MCU := atmega1284p MCU := atmega32a ASP := usbasp CC := avr-gcc LD := $(CC) OBJCOPY := avr-objcopy AVD := avrdude MKDIR := mkdir -p RMR := rm -rf GIT := git 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 (AND FUSE SETTINGS) # ============================================================================== .PHONY: all all: flash .PHONY: flash flash: $(TARGET) $(E) "[AVD] Flashing..." $(Q) $(AVD) -l $(LOGFILE) \ -c $(ASP) -p $(ARCH) \ -U lfuse:w:0xff:m \ -U hfuse:w:0x91:m \ -U flash:w:$< .PHONY: clean clean: $(E) "[REM] $(TARGET)" $(Q) $(RMR) $(TARGET) $(E) "[REM] $(ELFFILE)" $(Q) $(RMR) $(ELFFILE) $(E) "[REM] $(LOGFILE)" $(Q) $(RMR) $(LOGFILE) $(E) "[REM] $(TMPDIR)" $(Q) $(RMR) $(TMPDIR) .PHONY: distclean distclean: clean $(E) "[REM] $(BINDIR)" $(Q) $(RMR) $(BINDIR) .PHONY: check check: $(E) "[CHK] Not implemented." $(Q) true .PHONY: listen listen: opt/tools/serial-listen $(E) "[RUN] $<" $(Q) ./$< .PHONY: webgui webgui: opt/webgui/Makefile $(E) "[MAK] $<" $(Q) $(MAKE) -sC $(