File: Makefile

package info (click to toggle)
debmake-doc 1.23-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,924 kB
  • sloc: makefile: 916; sh: 692; python: 202; ansic: 114; sed: 16
file content (105 lines) | stat: -rw-r--r-- 4,024 bytes parent folder | download | duplicates (2)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Generic build script
DEBEMAIL:=osamu@debian.org
DEBFULLNAME:="Osamu Aoki"
export DEBEMAIL DEBFULLNAME
BUILD:=$(shell echo $(notdir $(CURDIR)))
PROJECT:=$(shell echo $(BUILD)|sed -e 's/_build-[0-9]*$$//' )
# parent directory of  (full path)
EXAMPLES_PATH:=$(abspath $(CURDIR)/..)
# package build work directory (full path)
BUILD_PATH:=$(EXAMPLES_PATH)/$(BUILD)
# == BUILD_PATH:=$(CURDIR)
# package build directory (top)
DSC_PATH:=$(BUILD_PATH)/dsc
SOURCE_PATH:=$(DSC_PATH)/$(PROJECT)
PATH := $(EXAMPLES_PATH)/bin:$(PATH)
REFBUILD1:=debhello-0.0_build-1
REFBUILD2:=debhello-0.0_build-2
REFBUILDP:=debhello-1.1_build-1
PROJECTDIR:=$(DSC_PATH)/$(PROJECT)
TERM:=xterm
TREE_COLORS:=
LS_COLORS:=
CDPATH:=
NOANSI:=s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g
FILTER :=s/\(^.............................................................................\).*$$/\1.../
TGZ:=tar.gz
export BUILD_PATH DSC_PATH EXAMPLES_PATH SOURCE_PATH PATH PROJECT PROJECTDIR TREE_COLORS LS_COLORS TERM CDPATH TGZ

stepcmds := $(sort $(wildcard *.cmd))
steps := $(patsubst %.cmd, %, $(stepcmds))

all:
	mkdir -p $(DSC_PATH)
	echo $(BUILD_PATH) > $(BUILD_PATH)/next.dir
	echo $(BUILD) > $(BUILD_PATH)/build
	echo $(PROJECT) > $(BUILD_PATH)/project
	@echo
	@echo "===== build @ $(BUILD) ====="
	@echo
	for i in $(steps) ; do \
	echo "=== STEP = $$i ===" ; \
	cd $$(cat $(BUILD_PATH)/next.dir) >/dev/null ; \
	script -e -q -c $(BUILD_PATH)/$$i.cmd $(BUILD_PATH)/$$i.log ; \
	ERR=$$? ; \
	cat $(BUILD_PATH)/$$i.log | col -b -x | \
	grep -v -e '^Script started on' | \
	grep -v -e '^Script done on' | \
	sed -r '$(NOANSI)' | \
	sed -e 's#$(DSC_PATH)#/path/to#g' | \
	sed -e '$(FILTER)' > $(BUILD_PATH)/$$i.slog ; \
	if [ x$$ERR != x0 ]; then exit 1 ; fi ; \
	done
	if [ -e $(BUILD_PATH)/step200.slog ]; then \
		grep -A12  '^I: sanity check of parameters' $(BUILD_PATH)/step200.slog > $(BUILD_PATH)/step200.slog-sanity  ; fi
	if [ -e $(BUILD_PATH)/step500.slog ]; then \
		grep -A8  '^ debian/rules binary' $(BUILD_PATH)/step500.slog > $(BUILD_PATH)/step500.slog-binary  ;	fi
	if [ -e $(BUILD_PATH)/step500.slog ]; then tail -n2 $(BUILD_PATH)/step500.slog >$(BUILD_PATH)/step500.slog-tail  ; fi

clean:
	-rm -rf $(DSC_PATH)
	-rm -rf debmake
	-rm -rf package
	-rm -f build
	-rm -f .stamp
	-rm -f *.log
	-rm -rf next.dir project

distclean: clean
	-rm -f *.slog
	-rm -f *.patch

step%.raw: step%.cmd
	./$^ >$@


CMDFILES_THIS = $(shell ls -1 step*.cmd)
CMDFILES_REF1 = $(shell (cd ../$(REFBUILD1) ; ls -1 step*.cmd;))
CMDFILES_REF2 = $(shell (cd ../$(REFBUILD2) ; for f in $$(ls -1 step*.cmd) ; do if [ ! -h $$f ]; then echo $$f ; fi ; done ; ) ; )
CMDFILES_REFP = $(shell (cd ../$(REFBUILDP) ; for f in $$(ls -1 step*.cmd) ; do if [ ! -h $$f ]; then echo $$f ; fi ; done ; ) ; )
CMDFILES1 = $(shell ( echo $(CMDFILES_THIS) $(CMDFILES_REF1) | xargs -n1 | sort -u ;) )
CMDFILES2 = $(shell ( echo $(CMDFILES_THIS) $(CMDFILES_REF2) | xargs -n1 | sort -u ;) )
CMDFILESP = $(shell ( echo $(CMDFILES_THIS) $(CMDFILES_REFP) | xargs -n1 | sort -u ;) )

check:
	@echo "EXAMPLES_PATH  = $(EXAMPLES_PATH)  all examples including tar.gz"
	@echo "BUILD_PATH     = $(BUILD_PATH) each build cases"
	@echo "DSC_PATH       = $(DSC_PATH) where *.deb and *.dsc are generated"
	@echo "SOURCE_PATH    = $(SOURCE_PATH) where extracted tar ball source tree"
	@echo "PROJECT        = $(PROJECT) upstream project name"
	@echo "BUILD          = $(BUILD) build case naem"
	@echo "REFBUILD1      = $(REFBUILD1)"
	@echo "CMDFILES_REF1  = $(CMDFILES_REF1)"
	@echo "REFBUILD2      = $(REFBUILD2)"
	@echo "CMDFILES_REF2  = $(CMDFILES_REF2)"

symlink1:
	for f in $(CMDFILES1) ; do diff -uN ../$(REFBUILD1)/$$f $$f && ln -sf ../$(REFBUILD1)/$$f $$f || echo "keep file" ; done

symlink2:
	for f in $(CMDFILES2) ; do diff -uN ../$(REFBUILD2)/$$f $$f && ln -sf ../$(REFBUILD2)/$$f $$f || echo "keep file" ; done

symlinkp:
	for f in $(CMDFILESP) ; do diff -uN ../$(REFBUILDP)/$$f $$f && ln -sf ../$(REFBUILDP)/$$f $$f || echo "keep file" ; done

.PHONY: all clean distclean check symlink1 symlink2