This repository has been archived by the owner on Mar 21, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
makefile
executable file
·92 lines (67 loc) · 2.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
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
# A Flag -c diz para gerar o arquivo de objeto, o -o $@ diz para colocar a saída da compilação no arquivo nomeado no lado esquerdo do :, o $< é o primeiro item na Lista de dependências, e o A macro CFLAGS é definida como acima.
# Como simplificação final, vamos usar as macros especiais $@ e $^, que são os lados esquerdo e direito de :, respectivamente, para tornar a regra geral de compilação mais geral.
# No exemplo abaixo, todos os Arquivos de inclusão devem ser listados como parte da macro DEPS e todos os Arquivos de objetos devem ser listados como parte da macro OBJ.
#Flags interessantes
#-Wall dispara todos os warnings em seu código
#-g necessário para avaliar o código do valgrind (permite o valgrind dizer em que linha dá merda)
#-lm obrigatorio caso utilize a biblioteca math.h
CC =gcc
CFLAGS =-Wall -g -lm
DEPS =Lista.h Arquivos.h ArvoreBinaria.h ArvoreAVL.h Hash.h Base.h Trie.h
DEPSDIR =headers
_DEPS =$(patsubst %,${DEPSDIR}/%,${DEPS})
OBJDIR =src
ARQUIVO =data/APRENDE.txt
BUSCAS =10
EXEC =menu
OBJLISTA =Arquivos.o Base.o Lista.o
_OBJLISTA =$(patsubst %,${OBJDIR}/%,${OBJLISTA})
OBJARVBIN =Arquivos.o Base.o ArvoreBinaria.o
_OBJARVBIN =$(patsubst %,${OBJDIR}/%,${OBJARVBIN})
OBJARVAVL =Arquivos.o testArvoreAVL.o Base.o ArvoreAVL.o
_OBJARVAVL =$(patsubst %,${OBJDIR}/%,${OBJARVAVL})
OBJHASH =Arquivos.o testHash.o Base.o ArvoreAVL.o Hash.o
_OBJHASH =$(patsubst %,${OBJDIR}/%,${OBJHASH})
OBJTRIE =Arquivos.o testTrie.o Base.o Trie.o
_OBJTRIE =$(patsubst %,${OBJDIR}/%,${OBJTRIE})
OBJMENU =menu.o Base.o Arquivos.o Lista.o ArvoreBinaria.o ArvoreAVL.o Hash.o Trie.o
_OBJMENU =$(patsubst %,${OBJDIR}/%,${OBJMENU})
${OBJDIR}/%.o: %.c ${_DEPS}
${CC} -c -o $@ $< ${CFLAGS}
all: menu #ArvBin ArvAVL Hash Trie Lista
rm src/*.o
Lista: ${_OBJLISTA}
${CC} -o Lista $^ ${CFLAGS}
ArvBin: ${_OBJARVBIN}
${CC} -o ArvBin $^ ${CFLAGS}
ArvAVL: ${_OBJARVAVL}
${CC} -o ArvAVL $^ ${CFLAGS}
Hash: ${_OBJHASH}
${CC} -o Hash $^ ${CFLAGS}
Trie: ${_OBJTRIE}
${CC} -o Trie $^ ${CFLAGS}
menu: ${_OBJMENU}
${CC} -o LEIA_O_README $^ ${CFLAGS}
valzin:
make all
valgrind ./${EXEC} ${BUSCAS} ${ARQUIVO}
val:
make all
valgrind --leak-check=full ./${EXEC} ${BUSCAS} ${ARQUIVO}
valzao:
make all
valgrind --leak-check=full --show-leak-kinds=all ./${EXEC} ${BUSCAS} ${ARQUIVO}
clear:
rm -f *.o
rm -f ${OBJDIR}/*.o
rm -f menu
rm -f Trie
rm -f Hash
rm -f ArvBin
rm -f ArvAVL
rm -f Lista
clear
make
rm -f *.o
push:
gitPusher ${msg}