-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
67 lines (53 loc) · 1.27 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
# Copyright (C) 2022 Valentin-Ioan VINTILA.
# All rights reserved.
# Used for C++ files (wi + sb)
CPP=g++
CPPFLAGS=-Wall -Wextra -std=c++20 -DWI_AES_LOG_CRYPT
# Used in debugging
VG=DEBUGINFOD_URLS="https://debuginfod.archlinux.org" valgrind
VGFLAGS=--leak-check=full \
--show-leak-kinds=all \
--track-origins=yes \
--verbose \
--log-file=logs/valgrind-out.txt
# Default targets (non-debugging)
TARGETS=lib/wi-utilities.o lib/wi-aes.o
# Debugging targets
DTARGETS=lib/wi-utilities-d.o lib/wi-aes-d.o
# End result file
ENDRES=./main
# Build & Run
run: all
clear
$(ENDRES)
# Build (-g) & Valgrind
valgrind: clean all-d
clear
$(VG) $(VGFLAGS) $(ENDRES)-d
# Build (-g) & Debug
debug: all-d
clear
gdb $(ENDRES)-d
# Build
all: $(TARGETS)
$(CPP) $(CPPFLAGS) -o $(ENDRES) $(TARGETS) main.cpp
# Build (-g)
all-d: $(DTARGETS)
$(CPP) $(CPPFLAGS) -g -o $(ENDRES)-d $(DTARGETS) main.cpp
# WI files
lib/wi-utilities.o: src/wi-utilities.cpp
$(CPP) $(CPPFLAGS) -c -o $@ $^
lib/wi-aes.o: src/wi-aes.cpp
$(CPP) $(CPPFLAGS) -c -o $@ $^
lib/wi-utilities-d.o: src/wi-utilities.cpp
$(CPP) $(CPPFLAGS) -g -c -o $@ $^
lib/wi-aes-d.o: src/wi-aes.cpp
$(CPP) $(CPPFLAGS) -g -c -o $@ $^
# Cleanup
clean:
rm -f $(TARGETS) $(ENDRES) \
$(DTARGETS) $(ENDRES)-d
# Line counting
cloc:
clear
cloc .