-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
127 lines (83 loc) · 2.42 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Options prises en compte :
# SDL=yes pour utiliser le simulateur
# DEBUG=yes pour activer le debug
# Cibles :
# run: lance l'executable
# all: créer l'executable
# demo: lance un ensemble de commande au robot
################################################################################
# Valeur par défaut
export CC = gcc
export CFLAGS = -W -Wall -fdiagnostics-color=auto -std=c99
export LDFLAGS = -lm -lpthread
EXEC = asser_robot
# options
export SDL = yes
export DEBUG = no
################################################################################
# Modules externe
UART_DIR = ../uart
FICHIERS_UART_C = $(UART_DIR)/text_reception.c
COMMON_DIR =../common_code
COMMON_H = $(COMMON_DIR)/*.h
################################################################################
# Fichiers du projet
FICHIERS_C =\
$(FICHIERS_UART_C) \
asser.c \
PID.c \
communication.c \
hardware.c \
odometrie.c \
trajectoire.c \
math_precalc.c \
tests_unitaires.c \
reception.c \
match.c
FICHIERS_H =\
reglages.h
SOURCEFILES =\
plateau.png \
main.c
################################################################################
# Gestion des options
ifeq ($(SDL),yes)
LDFLAGS += -lSDL -lSDL_image -lGL -lGLU -lSOIL
FICHIERS_C += debug/affichage.c
CFLAGS += -DUSE_SDL=1
endif
ifeq ($(DEBUG),yes)
CFLAGS += -DDEBUG=1 -g
endif
################################################################################
# Cibles du projet
FICHIERS_H += $(FICHIERS_C:.c=.h) $(COMMON_H)
FICHIERS_O += $(FICHIERS_C:.c=.o)
SOURCEFILES += $(FICHIERS_C) $(FICHIERS_H)
.PHONY:$(EXEC)
.PHONY:demo
run: all
./$(EXEC)
demo: $(EXEC)
sh ./slow_read.sh demo.txt | ./$(EXEC)
all: $(EXEC)
$(EXEC): main.c $(FICHIERS_O) $(COMMON_H)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(SDLFLAGS)
asser.o: PID.h trajectoire.h odometrie.h reglages.h $(COMMON_DIR)/maths.h
PID.o: reglages.h
communication.o: trajectoire.h
odometrie.o: reglages.h hardware.h math_precalc.h
trajectoire.o: odometrie.h asser.h
tests_unitaires.o: hardware.c asser.h odometrie.h communication.h reglages.h
reception.o: communication.h
match.o: debug/affichage.h
%.o: %.c %.h $(COMMON_H)
$(CC) $(CFLAGS) -o $@ -c $<
################################################################################
# Cibles génériques
tarall: $(SOURCEFILES)
tar -jcvf $(EXEC).tar.bz2 $^
clean:
rm -f $(FICHIERS_O)
mrproper: clean
rm -rf $(EXEC) $(EXEC).tar.bz2