-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
40 lines (29 loc) · 920 Bytes
/
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
.ONESHELL:
.PHONY: install clean colors
BINDIR := /usr/local/sbin
CFLAGS := -std=gnu99 -Wall -Wextra -pedantic -Wshadow -Wpointer-arith
CFLAGS += -Wcast-qual -O3
all: slurm_log_tool
slurm_log_tool.c: slurm_log_tool.flex
flex --full -o $@ $<
partition.c: partition.gperf.tmpl partitions.txt
tmp="$$(mktemp)"
cat $^ > "$${tmp}"
gperf "$${tmp}" > $@
partitions.txt:
scontrol -o show part | perl -nle 'if (m/PartitionName=(\S+)/) {printf("%s, 0, 0\n", $$1)}' > $@
echo "%%" >> $@
slurm_log_tool: slurm_log_tool.c partition.c
# partition.c is included in slurm_log_tool.c
gcc -o $@ $(CFLAGS) $<
install: slurm_log_tool
cp $< $(BINDIR)
clean:
rm -f slurm_log_tool.c slurm_log_tool partition.c
colors:
for i in {0..255} ; do \
printf "\x1b[48;5;%sm%3d\e[0m " "$$i" "$$i"; \
if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then \
printf "\n"; \
fi \
done