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 71 72
|
#!/bin/bash
export LC_ALL=C.UTF-8
.PHONY: all check tests
all:
check tests: pdf
MACHINES:=
define add-machine
# 1: local-name 2: ssh-name
#$$(warning Defining $1/$2)
HOST_$1:=$2
MACHINES+=$1
download: download-$1
endef
-include local-machines.mk
DOT_MACHINES=$(sort $(MACHINES) $(patsubst %.rawcmd,%,$(wildcard *.rawcmd)))
.DELETE_ON_ERROR:
.PHONY: rawcmd dot ref pdf fullref
rawcmd: $(addsuffix .rawcmd,$(DOT_MACHINES))
dot: $(addsuffix .dot,$(DOT_MACHINES))
ref: $(addsuffix .ref.dot,$(DOT_MACHINES))
fullref: download
$(MAKE) ref
pdf: $(addsuffix .pdf,$(DOT_MACHINES))
STORAGE2DOT=../local-run storage2dot
DOT=dot
.SECONDARY: $(addsuffix .ref.data,$(DOT_MACHINES))
.SECONDARY: $(addsuffix .data,$(DOT_MACHINES))
.PHONY: download
download: $(addprefix download-,$(MACHINES))
download-%:
$(STORAGE2DOT) --remote $(HOST_$*) -c --record $*.rawcmd -o $*.ref.data.downloaded
./local-cleanup-data $*
$(MAKE) $*.ref.data
diff -ub $*.ref.data.downloaded $*.ref.data
$(RM) $*.ref.data.downloaded
$(STORAGE2DOT) --data $*.ref.data -o $*.ref.dot
%.ref.data: %.rawcmd
$(STORAGE2DOT) --replay $< -c -o $@
%.data: %.rawcmd %.ref.data ../lib/StorageDisplay/Collect.pm
$(STORAGE2DOT) --replay $< -c -o $@
diff -u $*.ref.data $*.data
%.dot: %.data ../lib/StorageDisplay.pm
$(STORAGE2DOT) --data $< -o $@
if [ -e $*.ref.dot ]; then diff -u $*.ref.dot $@ ; fi
%.pdf: %.dot
$(DOT) -Tpdf $< > $@
.PHONY: clean distclean
clean::
$(RM) $(foreach s,data dot pdf,$(addsuffix .$s,$(DOT_MACHINES)))
.PHONY: cleanref
cleanref:: clean
$(RM) $(foreach s,data dot pdf,$(addsuffix .ref.$s,$(DOT_MACHINES)))
|