From 51372dc5ecceaa207bc147de0254f916b5fe286a Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 10 Jun 2015 18:11:58 +0200 Subject: Add clean/check targets to Makefile, consider libs --- .gitignore | 4 ++++ Venus_Skeleton/Makefile | 31 ++++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4fe7862 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.o +.*.sw? +__pycache__/ +*.py[oc] diff --git a/Venus_Skeleton/Makefile b/Venus_Skeleton/Makefile index 26b4ee2..d85d9a8 100644 --- a/Venus_Skeleton/Makefile +++ b/Venus_Skeleton/Makefile @@ -2,9 +2,34 @@ CC = avr-gcc WFLAGS = -Wall -Wextra -Wno-attributes WFLAGS += -fdiagnostics-color=auto -CFLAGS = +EXTRA_CFLAGS = $(shell cat .syntastic_c_config) -O2 $(CFLAGS) -SOURCES = Venus_Skeleton.ino +MY_SOURCES = Venus_Skeleton.ino +MY_OBJECTS = $(patsubst %.cpp,%.o,$(patsubst %.ino,%.o,$(MY_SOURCES))) +LIBS_SOURCES = $(wildcard libs/*/*.cpp) +LIBS_OBJECTS = $(patsubst %.cpp,%.o,$(LIBS_SOURCES)) +SOURCES = $(MY_SOURCES) $(LIBS_SOURCES) +OBJECTS = $(MY_OBJECTS) $(LIBS_OBJECTS) +PROGRAM ?= main +_V_0 = @ +_V = $(_V_$(V)) + +.PHONY: main clean check check: - $(CC) $(WFLAGS) $$(cat .syntastic_c_config) $(CFLAGS) -x c++ $(SOURCES) -o /dev/null -O2 + rm -f $(MY_OBJECTS) + $(MAKE) $(MY_OBJECTS) +# Note: does not compile due to link errors. +$(PROGRAM): $(OBJECTS) + $(_V)$(CC) $(WFLAGS) $(EXTRA_CFLAGS) $(OBJECTS) -o $@ + +clean: + $(_V)rm -f $(PROGRAM) $(OBJECTS) + +# Not my code... +libs/%.o: libs/%.cpp + $(_V)$(CC) -w $(EXTRA_CFLAGS) -c -o $@ $< +%.o: %.cpp + $(_V)$(CC) $(WFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< +%.o: %.ino + $(_V)$(CC) $(WFLAGS) $(EXTRA_CFLAGS) -c -x c++ -o $@ $< -- cgit v1.2.1