summaryrefslogtreecommitdiff
path: root/Venus_Skeleton
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2015-06-10 18:11:58 +0200
committerPeter Wu <peter@lekensteyn.nl>2015-06-10 18:11:58 +0200
commit51372dc5ecceaa207bc147de0254f916b5fe286a (patch)
treee31fa7cd609f5b7b4e0231ebfa2515d8e4eb3eb3 /Venus_Skeleton
parent8d056e611e9d2475c7e0bc16614befbdcad3367c (diff)
downloadcode-51372dc5ecceaa207bc147de0254f916b5fe286a.tar.gz
Add clean/check targets to Makefile, consider libs
Diffstat (limited to 'Venus_Skeleton')
-rw-r--r--Venus_Skeleton/Makefile31
1 files changed, 28 insertions, 3 deletions
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 $@ $<