summaryrefslogtreecommitdiff
path: root/Venus_Skeleton/Makefile
blob: d85d9a8b94ac02bf70907c24ca7ebbd215cd2283 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#CC = /usr/share/arduino/hardware/tools/avr/bin/avr-gcc
CC = avr-gcc
WFLAGS = -Wall -Wextra -Wno-attributes
WFLAGS += -fdiagnostics-color=auto
EXTRA_CFLAGS = $(shell cat .syntastic_c_config) -O2 $(CFLAGS)

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:
	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 $@ $<