-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmakefile
53 lines (40 loc) · 1.87 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
# To guard this love to the death.
VERSION = -std=c++20
# CXXFLAGS = -g3 -pipe -Wall -D_DEBUG -Wall -Werror -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-default -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wconversion -Wwrite-strings -Wdangling-else -Wlogical-op -finput-charset=utf-8 -fexec-charset=utf-8
CXXFLAGS = -pipe -Wall -D_DEBUG -Wall -Werror -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-default -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wconversion -Wwrite-strings -Wdangling-else -Wlogical-op -finput-charset=utf-8 -fexec-charset=utf-8
REHAB_PATH = rehab-241019
IS_WSL := $(shell grep -i -q "microsoft" /proc/version && echo "true" || echo "false")
TEMP = $(REHAB_PATH)/temp.cpp
OPTIONS = $(CXXFLAGS) $(VERSION)
rhb:
$(CXX) $(TEMP) -o temp $(OPTIONS) && ./temp
rhbi:
$(CXX) $(TEMP) -o temp $(OPTIONS) && ./temp < $(REHAB_PATH)/in.txt
rhbo:
$(CXX) $(TEMP) -o temp $(OPTIONS) \
&& echo "done:" && ./temp > $(REHAB_PATH)/out.txt && cat $(REHAB_PATH)/out.txt
%: %.cpp
$(CXX) $< -o a.out $(OPTIONS) && ./a.out
filename := $(word 2, $(MAKECMDGOALS))
rgen:
@if [ "$(filename)" != "" ]; then \
cp $(TEMP) $(REHAB_PATH)/$(filename).cpp; \
echo "[Rehab] Copied temp.cpp to $(REHAB_PATH)/$(filename).cpp"; \
else \
echo "Error: Please specify a target filename."; \
fi
gen:
@if [ "$(filename)" != "" ]; then \
cp $(TEMP) $(filename).cpp; \
echo "[Rehab] Copied temp.cpp to $(filename).cpp"; \
else \
echo "Error: Please specify a target filename."; \
fi
cp:
ifeq ($(IS_WSL),true)
cat $(TEMP) | clip.exe
else
@echo "Not running in WSL."
endif
%:
@: