File: Makefile

package info (click to toggle)
libstoragedisplay-perl 2.06-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,828 kB
  • sloc: perl: 7,947; sh: 95; makefile: 5
file content (72 lines) | stat: -rw-r--r-- 1,622 bytes parent folder | download
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)))