This repository has been archived by the owner on Jun 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
66 lines (48 loc) · 1.97 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
OBJ := obj
SRC := src
INC := include
CFLAGS := -lm -g -O2 -Wall -pedantic -Wextra -Wwrite-strings
EXE := trab1
PROJETO := main
# Cria objetos de todos os arquivos de código-fonte para então linká-los no programa final
main: clean $(OBJ)/dists.o $(OBJ)/point.o $(OBJ)/union_find.o $(OBJ)/utils.o $(OBJ)/$(PROJETO).o
gcc $(OBJ)/*.o -o $(EXE) $(CFLAGS)
$(OBJ)/dists.o: $(SRC)/dists.c $(INC)/dists.h
gcc -c $(CFLAGS) "$(SRC)/dists.c" -o "$(OBJ)/dists.o"
$(OBJ)/point.o: $(SRC)/point.c $(INC)/point.h
gcc -c $(CFLAGS) "$(SRC)/point.c" -o "$(OBJ)/point.o"
$(OBJ)/utils.o: $(SRC)/utils.c $(INC)/utils.h
gcc -c $(CFLAGS) "$(SRC)/utils.c" -o "$(OBJ)/utils.o"
$(OBJ)/union_find.o: $(SRC)/union_find.c $(INC)/union_find.h
gcc -c $(CFLAGS) "$(SRC)/union_find.c" -o "$(OBJ)/union_find.o"
$(OBJ)/$(PROJETO).o: $(PROJETO).c
gcc -c $(CFLAGS) $(PROJETO).c -o "$(OBJ)/$(PROJETO).o"
# Roda o programa com entrada 1
run_1: clean main
./$(EXE) entradas/1.txt 2 saidas/saida_1.txt
# Roda o programa com entrada 2
run_2: clean main
./$(EXE) entradas/2.txt 4 saidas/saida_2.txt
# Roda o programa com entrada 3
run_3: clean main
./$(EXE) entradas/3.txt 5 saidas/saida_3.txt
# Roda o programa com entrada 4
run_4: clean main
./$(EXE) entradas/4.txt 5 saidas/saida_4.txt
# Roda o programa com entrada 5
run_5: clean main
./$(EXE) entradas/5.txt 10 saidas/saida_5.txt
# Roda o programa com valgrind e flags úteis (entrada 3)
val: main
valgrind --leak-check=full -v --track-origins=yes \
--show-leak-kinds=all ./$(EXE) entradas/3.txt 5 saidas/saida.txt
# Roda o programa com valgrind sem flags (entrada 3)
valzin: main
valgrind ./$(EXE) entradas/3.txt 5 saidas/saida_3.txt
# Roda o programa com valgrind e salva resultados num .txt (entrada 3)
valtxt: main
valgrind --leak-check=full -v --show-leak-kinds=all --track-origins=yes --verbose --log-file="valgrind-out.txt" ./$(EXE) entradas/3.txt 5 saidas/saida_3.txt
# Limpa objetos e o executável do programa
clean:
-rm $(OBJ)/*.o
-rm $(EXE)