-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
70 lines (57 loc) · 1.4 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
CONFIG=config.mk
include ${CONFIG}
#---------Compiler-Options---------
COMPILER=gcc
CFLAGS=-Wall -Wextra -Werror -ansi -pedantic -g
FILES=$(wildcard $(PROJECT_PATH)/*.c)
PROCESSOR=$(nproc)
#---------------Macros-------------
# In order to change this, you'll need to do it on the making.sh file too
HELP=-h
MOVE=-m
VALGRIND=-v
LIZARD=-l
#----------------------------------
all:
@$(COMPILER) $(CFLAGS) -o $(EXE_NAME) $(FILES)
@mv $(EXE_NAME) $(PROJECT_PATH)
run:
$(COMPILER) $(CFLAGS) -o $(EXE_NAME) $(FILES)
./$(EXE_NAME)
m:
@chmod +x ./making.sh
./making.sh $(MOVE) $(filter-out $@,$(MAKECMDGOALS))
h:
@chmod +x ./making.sh
@./making.sh $(HELP)
v:
@touch v
@$(MAKE) -s -j$(PROCESSOR) v
@rm -f v
@chmod +x ./making.sh
@./making.sh $(VALGRIND)
l:
@touch l
@$(MAKE) -s -j$(PROCESSOR) l
@rm -f l
@chmod +x ./making.sh
@./making.sh $(LIZARD)
testing:
@$(MAKE) -s -j1 clean
@$(MAKE) -s -j$(PROCESSOR)
@chmod +x ./making.sh
@./making.sh
#I hate this so much, trust me
%:
@:
difl:
@diff -b ./tests/$(filter-out $@,$(MAKECMDGOALS)).out \
./tests/$(filter-out $@,$(MAKECMDGOALS)).myout \
> ./tests/$(filter-out $@,$(MAKECMDGOALS)).diff
mof:
@./$(EXE_NAME) < ./tests/$(filter-out $@,$(MAKECMDGOALS)).in \
> ./tests/$(filter-out $@,$(MAKECMDGOALS)).myout
test_comp:
@$(COMPILER) $(CFLAGS) -o $(EXE_NAME) $(FILES)
clean:
@rm -f $(PROJECT_PATH)/$(EXE_NAME) tests/*.diff tests/*.myout ./$(EXE_NAME) failed/*