-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
52 lines (37 loc) · 1.44 KB
/
Makefile
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
EXAMPLES = pong tron example screengrab fontdemo cube flappybird rotating_buffer tugowar
EXAMPLE_APPS = $(addprefix examples/, $(EXAMPLES))
HARDWARE_APPS = $(addsuffix _hardware, $(EXAMPLE_APPS))
SIMULATOR_APPS = $(addsuffix _simulator, $(filter-out examples/screengrab,$(EXAMPLE_APPS)))
CXX = g++
CC = gcc
CXXFLAGS = -std=c++0x `sdl2-config --cflags` -I.
CPPFLAGS = -O3
COMMON_OBJECTS = ledstring.o color.o buttons.o coordinates.o font.o players.o vector.o coordinate.o line.o circle.o buffer.o
HARDWARE_OBJECTS = hexxx.o $(COMMON_OBJECTS)
SIMULATOR_OBJECTS = hexxx_simulator.o $(COMMON_OBJECTS)
HARDWARE_LIBS = ws2811/libws2811.a gpio/gpio.a -lX11
SIMULATOR_LIBS = `sdl2-config --libs` -lSDL2_gfx
UNAME := $(shell uname -m)
ifeq ($(UNAME), armv7l)
EXEC_ENV = sudo
endif
all: hardware simulator
hardware: $(HARDWARE_APPS)
simulator: $(SIMULATOR_APPS)
run-%: %
$(EXEC_ENV) ./$<
run-example-%: examples/%
$(EXEC_ENV) ./$<
%_simulator: %.o $(SIMULATOR_OBJECTS)
$(CXX) $(CXXFLAGS) -o $@ $< $(SIMULATOR_OBJECTS) $(SIMULATOR_LIBS) -lpthread
$(HARDWARE_LIBS):
cd ws2811 ; make
cd gpio ; make
%_hardware: %.o $(HARDWARE_LIBS) $(HARDWARE_OBJECTS)
$(CXX) $(CXXFLAGS) -o $@ $< $(HARDWARE_OBJECTS) $(HARDWARE_LIBS) -pthread
clean:
@rm -vf *.o *.a $(HARDWARE_APPS) $(SIMULATOR_APPS) $(EXAMPLE_APPS)
distclean: clean
make clean -C ws2811
make clean -C gpio
.PRECIOUS: %.o