-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
43 lines (35 loc) · 1.57 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
# Makefile for srcenv
NORMAL=$$(tput sgr0 2> /dev/null || printf '\033[0m')
BOLD=$$(tput bold 2> /dev/null || printf '\033[1m')
GREEN=$$(tput setaf 2 2> /dev/null || printf '\033[32m')
.PHONY: list build bench test bump version
list:
@echo 'srcenv Makefile'
@echo
@echo "make ${BOLD}build ${NORMAL}Run ShellCheck, zizmor and generate man page"
@echo "make ${BOLD}bench ${NORMAL}Run ShellCheck and benchmark suite"
@echo "make ${BOLD}test ${NORMAL}Run ShellCheck and test suite"
@echo "make ${BOLD}bump ${NORMAL}Bump srcenv version"
@echo "make ${BOLD}version ${NORMAL}Display or change srcenv version"
@echo "make ${BOLD}list ${NORMAL}Display this list"
build:
@shellcheck --color=always srcenv srcenv.benchmarks srcenv.tests srcenv.version && \
echo "${GREEN}✔${NORMAL} ShellCheck"
@zizmor .github/workflows/ci.yml .github/workflows/release.yml &> /dev/null && \
echo "${GREEN}✔${NORMAL} zizmor" || \
zizmor .github/workflows/ci.yml .github/workflows/release.yml 2> /dev/null
@pandoc --standalone --to man srcenv.1.md -o srcenv.1 && \
echo "${GREEN}✔${NORMAL} Generate srcenv.1"
bench:
@shellcheck --color=always srcenv srcenv.benchmarks srcenv.tests srcenv.version && \
echo "${GREEN}✔${NORMAL} ShellCheck"
@WARMUP=${w}; \
./srcenv.benchmarks "${c}" $${WARMUP:+--warmup} $${WARMUP:+"$$WARMUP"}
test:
@shellcheck --color=always srcenv srcenv.benchmarks srcenv.tests srcenv.version && \
echo "${GREEN}✔${NORMAL} ShellCheck"
@./srcenv.tests "${t}"
bump:
@./srcenv.version bump "${v}" "${from}"
version:
@./srcenv.version "${v}" "${from}"