summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 9bf5b8ffeada6690b97b807c4e820c6655207bf8 (plain) (blame)
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
106
107
108
109
110
PACKAGE :=	quilt
VERSION :=	0.21

prefix :=	/usr/local
bindir :=	$(prefix)/bin
datadir :=	$(prefix)/share
mandir :=	$(datadir)/man
docdir :=	$(datadir)/doc/packages

QUILT_DIR =	$(datadir)/$(PACKAGE)
LIB_DIR =	$(datadir)/$(PACKAGE)/lib

CFLAGS =	-g -Wall

#-----------------------------------------------------------------------
SRC +=		COPYING AUTHORS TODO BUGS Makefile \
		quilt.spec quilt.changes \
		misc/akmp-patch-scripts-0.9.tar.gz \
		misc/jr-quilt-0.1.0.tar.bz2 \
		misc/test.tar.gz

BIN_IN :=	quilt
BIN_SRC :=	$(BIN_IN:%=%.in) guards
BIN :=		$(BIN_IN) guards
SRC +=		$(BIN_SRC:%=bin/%)
DIRT +=		$(BIN_IN:%=bin/%)

QUILT_IN :=	add applied delete diff files import new next patches \
		pop previous push refresh remove rest series setup top

QUILT_SRC :=	$(QUILT_IN:%=%.in)
QUILT :=	$(QUILT_IN)
SRC +=		$(QUILT_SRC:%=quilt/%)
DIRT +=		$(QUILT_IN:%=quilt/%)

LIB_IN :=	apatch rpatch patchfns 
LIB_SRC :=	$(LIB_IN:%=%.in) parse-patch spec2series \
		backup-files.c
LIB :=		$(LIB_IN) parse-patch spec2series backup-files
SRC +=		$(LIB_SRC:%=lib/%)
DIRT +=		$(LIB_IN:%=lib/%) lib/backup-files{,.o}

DOC_IN :=	README
DOC_SRC :=	$(DOC_IN:%=%.in)
DOC :=		$(DOC_IN) docco.txt
SRC +=		$(DOC_SRC) docco.txt
DIRT +=		$(DOC_IN)

MAN1 :=		bin/guards.1
#-----------------------------------------------------------------------

all : scripts

scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) $(LIB:%=lib/%) \
	  $(DOC) $(MAN1)

README : README.in
	@awk '/@REFERENCE@/ { system("$(MAKE) -s reference") ; next }'$$'\n'' \
			   { print }' 2>&1 $< > $@

.PHONY :: reference
reference : $(QUILT:%=quilt/%)
	@for i in $+; \
	do \
		echo "$$i >> README" >&2; \
		echo; \
		(bash -c ". lib/patchfns ; . $$i -h"); \
	done | \
	awk '/Usage:/	{ sub(/Usage: ?/, "") ; print ; next } '$$'\n'' \
	     		{ printf "  %s\n", $$0 }'
		
bin/guards.1 : bin/guards
	mkdir -p $$(dirname $@)
	pod2man $< > $@

dist :
	rm -f $(PACKAGE)-$(VERSION)
	ln -s . $(PACKAGE)-$(VERSION)
	tar cvfz $(PACKAGE)-$(VERSION).tar.gz \
		$(SRC:%=$(PACKAGE)-$(VERSION)/%)
	rm -f $(PACKAGE)-$(VERSION)

install : all
	install -d $(BUILD_ROOT)$(bindir)
	install -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/

	install -d $(BUILD_ROOT)$(QUILT_DIR)
	install -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(QUILT_DIR)/

	install -d $(BUILD_ROOT)$(LIB_DIR)
	install -m 755 $(filter-out lib/patchfns lib/backup-files, \
			 $(LIB:%=lib/%)) $(BUILD_ROOT)$(LIB_DIR)/
	install -m 644 lib/patchfns $(BUILD_ROOT)$(LIB_DIR)/
	install -m 755 -s lib/backup-files $(BUILD_ROOT)$(LIB_DIR)/

	install -d $(BUILD_ROOT)$(docdir)/$(PACKAGE)
	install -m 644 README $(BUILD_ROOT)$(docdir)/$(PACKAGE)/

	install -d $(BUILD_ROOT)$(mandir)/man1
	install -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/

clean distclean :
	rm -f $(DIRT)

% : %.in
	@echo "$< -> $@"
	@sed -e "s:@LIB@:$(LIB_DIR):g" \
	     -e "s:@QUILT@:$(QUILT_DIR):g" \
	     $< > $@
	@chmod --reference=$< $@