From 51699171c289c5ff553ed0c9c75c5a108e164fff Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 6 Oct 2015 14:41:38 -0400 Subject: uploaded code --- Makefile | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5d6b7fc --- /dev/null +++ b/Makefile @@ -0,0 +1,69 @@ +# Universal C Makefile for MCU targets + +# Path to project root (for top-level, so the project is in ./; first-level, ../; etc.) +ROOT=. +# Binary output directory +BINDIR=$(ROOT)/bin +# Subdirectories to include in the build +SUBDIRS=src + +# Nothing below here needs to be modified by typical users + +# Include common aspects of this project +-include $(ROOT)/common.mk + +ASMSRC:=$(wildcard *.$(ASMEXT)) +ASMOBJ:=$(patsubst %.o,$(BINDIR)/%.o,$(ASMSRC:.$(ASMEXT)=.o)) +HEADERS:=$(wildcard *.$(HEXT)) +CSRC=$(wildcard *.$(CEXT)) +COBJ:=$(patsubst %.o,$(BINDIR)/%.o,$(CSRC:.$(CEXT)=.o)) +CPPSRC:=$(wildcard *.$(CPPEXT)) +CPPOBJ:=$(patsubst %.o,$(BINDIR)/%.o,$(CPPSRC:.$(CPPEXT)=.o)) +OUT:=$(BINDIR)/$(OUTNAME) + +.PHONY: all clean upload _force_look + +# By default, compile program +all: $(BINDIR) $(OUT) + +# Remove all intermediate object files (remove the binary directory) +clean: + -rm -f $(OUT) + -rm -rf $(BINDIR) + +# Uploads program to device +upload: all + $(UPLOAD) + +# Phony force-look target +_force_look: + @true + +# Looks in subdirectories for things to make +$(SUBDIRS): %: _force_look + @$(MAKE) --no-print-directory -C $@ + +# Ensure binary directory exists +$(BINDIR): + -@mkdir -p $(BINDIR) + +# Compile program +$(OUT): $(SUBDIRS) $(ASMOBJ) $(COBJ) $(CPPOBJ) + @echo LN $(BINDIR)/*.o $(LIBRARIES) to $@ + @$(CC) $(LDFLAGS) $(BINDIR)/*.o $(LIBRARIES) -o $@ + @$(MCUPREFIX)size $(SIZEFLAGS) $(OUT) + $(MCUPREPARE) + +# Assembly source file management +$(ASMOBJ): $(BINDIR)/%.o: %.$(ASMEXT) $(HEADERS) + @echo AS $< + @$(AS) $(AFLAGS) -o $@ $< + +# Object management +$(COBJ): $(BINDIR)/%.o: %.$(CEXT) $(HEADERS) + @echo CC $(INCLUDE) $< + @$(CC) $(INCLUDE) $(CFLAGS) -o $@ $< + +$(CPPOBJ): $(BINDIR)/%.o: %.$(CPPEXT) $(HEADERS) + @echo CPC $(INCLUDE) $< + @$(CPPCC) $(INCLUDE) $(CPPFLAGS) -o $@ $< -- cgit v1.2.3