File: Makefile

package info (click to toggle)
devscripts 2.9.26etch5
  • links: PTS
  • area: main
  • in suites: etch
  • size: 1,752 kB
  • ctags: 323
  • sloc: perl: 8,642; sh: 3,590; makefile: 153; ansic: 17
file content (130 lines) | stat: -rw-r--r-- 4,354 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# Simplified Makefile for devscripts

PL_FILES = bts.pl checkbashisms.pl cvs-debuild.pl dd-list.pl debchange.pl \
	debcommit.pl debdiff.pl debi.pl debpkg.pl debuild.pl dget.pl \
	dpkg-depcheck.pl dscverify.pl grep-excuses.pl mass-bug.pl \
	plotchangelog.pl rc-alert.pl rmadison.pl svnpath.pl

SH_FILES = annotate-output.sh archpath.sh cvs-debi.sh cvs-debrelease.sh \
	deb-reversion.sh debclean.sh debrelease.sh debrsign.sh debsign.sh \
	dpkg-genbuilddeps.sh mergechanges.sh nmudiff.sh pts-subscribe.sh \
	tagpending.sh uscan.sh uupdate.sh whodepends.sh who-uploads.sh \
	wnpp-alert.sh

LIBS = libvfork.so.0

PERL_MODULES = Devscripts

CWRAPPERS = debpkg-wrapper

SCRIPTS = $(PL_FILES:.pl=) $(SH_FILES:.sh=)
EXAMPLES = conf.default

MAN1S = $(SCRIPTS:=.1) debc.1 cvs-debc.1 devscripts.1
GEN_MAN1S = bts.1 debcommit.1 deb-reversion.1 dget.1 mass-bug.1 \
	rmadison.1 svnpath.1
MAN5S = devscripts.conf.5
MANS_fr_DIR = po4a/fr
GEN_MAN1S_fr = $(patsubst %,$(MANS_fr_DIR)/%,$(GEN_MAN1S))
MAN1S_fr = $(subst $(MANS_fr_DIR)/,,$(wildcard $(MANS_fr_DIR)/*.1))
MAN5S_fr = $(subst $(MANS_fr_DIR)/,,$(wildcard $(MANS_fr_DIR)/*.5))

BINDIR = /usr/bin
LIBDIR = /usr/lib/devscripts
EXAMPLES_DIR = /usr/share/devscripts
PERLMOD_DIR = /usr/share/devscripts
BIN_LIBDIR = /usr/lib/devscripts
MAN1DIR = /usr/share/man/man1
MAN5DIR = /usr/share/man/man5
MAN1DIR_fr = /usr/share/man/fr/man1
MAN5DIR_fr = /usr/share/man/fr/man5

all: $(SCRIPTS) $(GEN_MAN1S) $(EXAMPLES) $(LIBS) $(CWRAPPERS) translated_manpages

version:
	rm -f version
	dpkg-parsechangelog | perl -ne '/^Version: (.*)/ && print $$1' \
	    > version

%: %.sh version
	if grep -q '^#! */bin/sh' $<; then \
	  echo "$< is a /bin/sh script, not a bash script!" >&2; \
	  exit 1; \
	fi
	rm -f $@ $@.tmp
	VERSION=`cat version` && sed -e "s/###VERSION###/$$VERSION/" $< \
	    > $@.tmp && chmod +x $@.tmp && mv $@.tmp $@
	bash -n $@

%: %.pl version
	rm -f $@ $@.tmp
	VERSION=`cat version` && sed -e "s/###VERSION###/$$VERSION/" $< \
	    > $@.tmp && chmod +x $@.tmp && mv $@.tmp $@
	perl -c $@

conf.default: conf.default.in version
	rm -f $@ $@.tmp
	VERSION=`cat version` && sed -e "s/###VERSION###/$$VERSION/" $< \
	    > $@.tmp && mv $@.tmp $@

%.1: %.pl
	pod2man --center=" " --release="Debian Utilities" $< > $@

%.1: %.dbk
	xsltproc --nonet -o $@ \
	  /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl $<

translated_manpages:
	cd po4a && po4a --no-backups devscripts-po4a.conf
	# These may or may not have been successfully made; we don't stop
	# building the rest of the package in such a case
	for i in $(GEN_MAN1S_fr); do \
	    $(MAKE) $$i || true; \
	done
	touch translated_manpages

clean_translated_manpages:
	# Update the POT/POs and remove the translated man pages
	cd po4a && po4a --rm-translations --no-backups devscripts-po4a.conf
	rm -f translated_manpages

libvfork.o: libvfork.c
	$(CC) -fPIC -D_REENTRANT $(CFLAGS) -c $<

libvfork.so.0: libvfork.o
	$(CC) -shared $< -lc -Wl,-soname -Wl,libvfork.so.0 -o $@

clean: clean_translated_manpages
	rm -f version conf.default $(SCRIPTS) $(GEN_MAN1S) $(SCRIPT_LIBS) \
	    $(GEN_MAN1S_fr) $(CWRAPPERS) libvfork.o libvfork.so.0

install: all
	mkdir -p $(DESTDIR)$(BINDIR)
	cp $(SCRIPTS) $(DESTDIR)$(BINDIR)
	cd $(DESTDIR)$(BINDIR) && ln -s debchange dch
	cd $(DESTDIR)$(BINDIR) && ln -s debi debc
	cd $(DESTDIR)$(BINDIR) && ln -s cvs-debi cvs-debc
	mkdir -p $(DESTDIR)$(LIBDIR)
	cp $(LIBS) $(DESTDIR)$(LIBDIR)
	mkdir -p $(DESTDIR)$(PERLMOD_DIR)
	cp -a $(PERL_MODULES) $(DESTDIR)$(PERLMOD_DIR)
	# Special treatment for debpkg
	mv $(DESTDIR)$(BINDIR)/debpkg $(DESTDIR)$(PERLMOD_DIR)
	cp debpkg-wrapper $(DESTDIR)$(BINDIR)/debpkg
	mkdir -p $(DESTDIR)$(MAN1DIR)
	cp $(MAN1S) $(DESTDIR)$(MAN1DIR)
	mkdir -p $(DESTDIR)$(MAN5DIR)
	cp $(MAN5S) $(DESTDIR)$(MAN5DIR)
	cd $(DESTDIR)$(MAN1DIR) && ln -s debchange.1 dch.1
	mkdir -p $(DESTDIR)$(MAN1DIR_fr)
	-cd $(MANS_fr_DIR) && cp $(MAN1S_fr) $(DESTDIR)$(MAN1DIR_fr)
	-cp $(GEN_MAN1S_fr) $(DESTDIR)$(MAN1DIR_fr)
	mkdir -p $(DESTDIR)$(MAN5DIR_fr)
	-cd $(MANS_fr_DIR) && cp $(MAN5S_fr) $(DESTDIR)$(MAN5DIR_fr)
	cd $(DESTDIR)$(MAN1DIR_fr) && \
	    if [ -f debchange.1 ]; then ln -s debchange.1 dch.1; fi
	mkdir -p $(DESTDIR)$(EXAMPLES_DIR)
	cp $(EXAMPLES) $(DESTDIR)$(EXAMPLES_DIR)
#	-find $(DESTDIR) -type d -name '.svn' -exec rm -r \{\} \;
#	-find $(DESTDIR) -type d -name 'CVS' -exec rm -r \{\} \;