-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
executable file
·86 lines (66 loc) · 1.51 KB
/
Copy pathMakefile
File metadata and controls
executable file
·86 lines (66 loc) · 1.51 KB
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
CC=gcc -Wall
srcdir=./src/
bindir=./bin/
docdir=./doc/
savedir=./save/
PROG=main
SRC=$(wildcard $(srcdir)*.c)
HEAD=$(wildcard *.h)
OBJ=$(subst $(srcdir), $(bindir), $(SRC:.c=.o))
CURRENT_FOLDER=$(basename $(pwd))
LANGUAGE = French
PROJECT_NAME = TP6-7
CSS = doxygen-awesome.css
# Compilation
all : $(PROG)
$(PROG) : $(OBJ)
$(CC) $^ -o $(bindir)$@
$(bindir)%.o : $(srcdir)%.c $(srcdir)%.h
$(CC) -c $< -o $@
$(bindir)main.o : $(srcdir)main.c
$(CC) -c $< -o $@
# to use this function even if you have the same filename
.PHONY : clean
.PHONY : all_clean
.PHONY : clean_doc
.PHONY : clean_save
.PHONY : clean_exe
.PHONY : save
.PHONY : restore
.PHONY : give
.PHONY : run
.PHONY : Doxyfile
.PHONY : doc
# clean
all_clean : clean_doc clean clean_save clean_exe
clean :
rm -f $(bindir)*.o
clean_exe :
rm -f $(bindir)$(PROG)
clean_save :
rm -f $(savedir)*
clean_doc :
rm -rf $(docdir)*
# save & restore
save :
cp -r $(srcdir)* $(savedir)
restore :
cp -r $(savedir)* $(srcdir)
# run
run :
$(bindir)$(Prog)
# documentation
all_doc : Doxyfile doc
Doxyfile :
doxygen -g
( echo 'PROJECT_NAME=$(PROJECT_NAME)' ; echo 'HTML_EXTRA_STYLESHEET=$(CSS)' ; echo 'OUTPUT8LANGUAGE=$(LANGUAGE)' ; echo 'OUTPUT_DIRECTORY=$(docdir)' ; echo 'INPUT=$(srcdir)') >> Doxyfile
doc :
doxygen Doxyfile
give : all_clean
mkdir $(CURRENT_FOLDER)
cp Doxyfile ./$(CURRENT_FOLDER)
cp README.md ./$(CURRENT_FOLDER)
cp ./doc ./$(CURRENT_FOLDER)
cp ./src ./$(CURRENT_FOLDER)
cp ./bin ./$(CURRENT_FOLDER)
tar -czvf $(CURRENT_FOLDER).tgz $(CURRENT_FOLDER)