File: rules

package info (click to toggle)
debian-policy 3.5.6.1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,948 kB
  • ctags: 77
  • sloc: xml: 706; perl: 468; sh: 165; makefile: 145
file content (219 lines) | stat: -rwxr-xr-x 8,580 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
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#!/usr/bin/make -f
############################ -*- Mode: Makefile -*- ###########################
## rules ---
## Author	    : Manoj Srivastava ( srivasta@tiamat.datasync.com )
## Created On	    : Thu Oct 29 15:35:55 1998
## Created On Node  : tiamat.datasync.com
## Last Modified By : Manoj Srivastava
## Last Modified On : Wed Sep  6 09:37:43 2000
## Last Machine Used: glaurung.green-gryphon.com
## Update Count	    : 56
## Status	    : Unknown, Use with caution!
## HISTORY	    :
## Description	    :
## $Id$
###############################################################################

# ifdef ARCH
#   ha:=-a$(ARCH)
# endif

# set the dpkg-architecture vars; but we don't use them, so we'll comment out
# export DEB_BUILD_ARCH      := $(shell dpkg-architecture $(ha) -qDEB_BUILD_ARCH)
# export DEB_BUILD_GNU_CPU   := $(shell dpkg-architecture $(ha) -qDEB_BUILD_GNU_CPU)
# export DEB_BUILD_GNU_SYSTEM:= $(shell dpkg-architecture $(ha) -qDEB_BUILD_GNU_SYSTEM)
# export DEB_BUILD_GNU_TYPE  := $(shell dpkg-architecture $(ha) -qDEB_BUILD_GNU_TYPE)
# export DEB_HOST_ARCH       := $(shell dpkg-architecture $(ha) -qDEB_HOST_ARCH)
# export DEB_HOST_GNU_CPU    := $(shell dpkg-architecture $(ha) -qDEB_HOST_GNU_CPU)
# export DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture $(ha) -qDEB_HOST_GNU_SYSTEM)
# export DEB_HOST_GNU_TYPE   := $(shell dpkg-architecture $(ha) -qDEB_HOST_GNU_TYPE)


# The name of the package (for example, `emacs').
package := $(shell grep Source debian/control | sed 's/^Source: //')
# arch	:= $(shell dpkg --print-installation-architecture)
date	:= $(shell date +"%Y-%m-%d")
version := $(shell LC_ALL=C dpkg-parsechangelog | \
		   grep ^Version: | sed 's/^Version: *//')

# Location of the source dir
SRCTOP	  := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi;)
TMPTOP	  := $(SRCTOP)/debian/tmp
DOCDIR	  := $(TMPTOP)/usr/share/doc/$(package)
LIBDIR	  := $(TMPTOP)/usr/share/doc-base


SGML_FILES      = policy menu-policy mime-policy policy-process perl-policy
DESC_FILES      = debian-policy debian-menu-policy debian-perl-policy \
                  debian-mime-policy debian-policy-process debconf-spec \
		  fhs

# While we have two versions of the FHS installed in the source package,
# we need to modify this to handle it.  This is the easiest way to do it.
# FHS_ARCHIVE  =$(shell ls -1 fhs*.tar.gz)
# And with version 2.1, we have to build the text and dvi versions
# ourselves :-(
FHS_ARCHIVE  =fhs-2.1-source.tar.gz
FHS_HTML     =fhs-2.1.html.tar.gz
FHS_FILES    =fhs/fhs.ps fhs/fhs.txt fhs/fhs.pdf
FHS_BYHAND   =fhs-2.1.html.tar.gz fhs/fhs.txt
# FSSTND_FILES =FSSTND-FAQ fsstnd-1.2.dvi.gz fsstnd-1.2.ps.gz fsstnd-1.2.txt.gz
POLICY_FILES = $(SGML_FILES:=.sgml) $(SGML_FILES:=.txt.gz) \
	       virtual-package-names-list.txt \
	       upgrading-checklist.txt libc6-migration.txt version.ent \
               debconf_spec/debconf_specification.html \
               debconf_spec/debconf_specification.txt.gz
BYHAND_FILES = $(SGML_FILES:=.txt.gz) $(SGML_FILES:=.html.tar.gz) \
	       debconf_spec/debconf_specification.txt.gz \
	       debconf_spec/debconf_specification.html \
	       libc6-migration.txt virtual-package-names-list.txt \
	       policy.ps.gz policy.pdf.gz upgrading-checklist.txt \
	       $(FHS_BYHAND)

FILES_TO_CLEAN  = debian/files debian/buildinfo  debian/substvars \
		  debian/postinst debian/prerm \
		  version.ent upgrading-checklist.txt \
		  $(SGML_FILES:=.txt.gz) $(SGML_FILES:=.html.tar.gz) \
		  policy.pdf.gz policy.ps.gz \
		  debconf_specification.xml.tar.gz

STAMPS_TO_CLEAN = stamp-policy stamp-build stamp-configure
DIRS_TO_CLEAN   = debian/tmp fhs $(SGML_FILES:=.html)


install_file   = /usr/bin/install -p	-o root -g root	 -m  644
install_program= /usr/bin/install -p	-o root -g root	 -m  755
make_directory = /usr/bin/install -p -d -o root -g root	 -m  755

GROFF_VERSION := $(shell dpkg -s groff | sed -n -e 's/Version: //p')


all build: stamp-build
stamp-build:
	$(checkdir)
	-test -f stamp-configure || $(MAKE) -f debian/rules configure
	# Set PERL5LIB to use our version of DebianDoc_SGML::Format::Text
	set -e; \
	for file in $(SGML_FILES); do \
	  nsgmls -gues $$file.sgml; \
	  debiandoc2html $$file.sgml; \
	  env PERL5LIB=. debiandoc2text $$file.sgml; \
	  if [ -f $$file.text ]; then mv $$file.text $$file.txt; fi; \
	  gzip -9 $$file.txt; \
	  tar -cf $$file.html.tar $$file.html; \
	  gzip -9 $$file.html.tar; \
	done
	tar -zxf $(FHS_ARCHIVE)
	# Need to use a patched tmac.m macro file if we're using a pre-1.16
	# groff; version 1.16 is apparently fixed
	if dpkg --compare-versions $(GROFF_VERSION) lt 1.16; then \
	    cp /usr/share/groff/tmac/tmac.m fhs && \
	    cd fhs && patch -p1 < ../mm1.32-patch; \
	fi
	# The extra '.' in the tmac path won't harm if unnecessary
	GROFF_TMAC_PATH=. cd fhs && $(MAKE) fhs.ps fhs.pdf fhs.txt
	links -dump fhs-changes-2.1.html | perl -pe 's/[\r\0]//g' > \
                    fhs/fhs-changes-2.1.txt
	links -dump upgrading-checklist.html | perl -pe 's/[\r\0]//g' > \
                    upgrading-checklist.txt
	$(MAKE) -C debconf_spec all
	gzip -9f debconf_spec/debconf_specification.txt
	touch stamp-build

configure: stamp-configure
stamp-configure:
	rm -f version.ent
	echo "<!entity version \"$(version)\">" >> version.ent
	echo "<!entity date    \"$(date)\">"	    >> version.ent
	touch stamp-configure

clean:
# Undoes the effect of `make -f debian/rules build'.
	$(checkdir)
	$(MAKE) -C debconf_spec clean
	rm -f  $(FILES_TO_CLEAN) $(STAMPS_TO_CLEAN)
	rm -rf $(DIRS_TO_CLEAN)
	rm -f core `find . \( -name '*.orig' -o -name '*.rej' -o \
	  -name '*~' -o -name '*.bak' -o -name '#*#' -o \
	  -name '.*.orig' -o -name '.*.rej' -o -name '.SUMS' -o \
	  -size 0 \) -print` TAGS


binary:		binary-indep binary-arch
binary-arch:	build
	$(checkdir)
# There are no architecture-dependent files to be uploaded
# generated by this package.  If there were any they would be
# made here.

binary-indep:	stamp-policy
stamp-policy:  build
	@test $$(id | sed -e 's/(.*$$//' -e 's/^uid=//') || \
		(echo need root priviledges; exit 1)
	$(checkdir)
#	This is unnecessary; commenting out
#	test -f stamp-build	|| $(MAKE) -f	     debian/rules build
	-rm -rf			$(TMPTOP)
	$(make_directory)	$(TMPTOP)/DEBIAN
#	$(make_directory)	$(DOCDIR)/fsstnd
	$(make_directory)	$(DOCDIR)/fhs
	$(make_directory)	$(LIBDIR)
	# create a substvar to reference from debian/control so that
	# we don't hardcode the policy compliance of the policy
	# package.  I guess some might question this but I take it as
	# a given that the debian-policy pkg must always comply with
	# itself...
	echo "debian-policy:Version=$(version)"	     > debian/substvars
	$(install_file)	    $(POLICY_FILES)	     $(DOCDIR)/
#	$(install_file)	    $(FSSTND_FILES)	     $(DOCDIR)/fsstnd/
	$(install_file)	    $(FHS_FILES)	     $(DOCDIR)/fhs/
	$(install_file)	    debian/changelog	     $(DOCDIR)/
	# Be more specific with file compression
	-gzip -9	    $(DOCDIR)/*.txt $(DOCDIR)/*.sgml \
				$(DOCDIR)/fhs/* $(DOCDIR)/changelog
	$(install_file)	    debian/copyright	     $(DOCDIR)/
	GZIP=-9 cd debconf_spec && \
	  tar -zcf ../debconf_specification.xml.tar.gz *
	$(install_file)	    debconf_specification.xml.tar.gz $(DOCDIR)/
	set -e; \
	for file in $(DESC_FILES); do \
	  $(install_file) $$file.desc $(LIBDIR)/$$file; \
	done
	set -e; \
	for file in $(SGML_FILES); do \
	  tar -C $(DOCDIR) -zxf $$file.html.tar.gz; \
	done
	tar -C $(DOCDIR)/fhs -zxf $(FHS_HTML)
	sed -e 's/#PACKAGE#/$(package)/g' debian/postinst.in > debian/postinst
	sed -e 's/#PACKAGE#/$(package)/g' debian/prerm.in > debian/prerm
	$(install_program)  debian/postinst          debian/tmp/DEBIAN/
	$(install_program)  debian/prerm             debian/tmp/DEBIAN/
	dpkg-gencontrol	    -pdebian-policy -Pdebian/tmp -isp
	chown		    -R root:root debian/tmp
	chmod		    -R go=rX debian/tmp
	dpkg		    --build debian/tmp ..
	# Set PERL5LIB to use our version of DebianDoc_SGML::Format::LaTeX
	env PERL5LIB=. debiandoc2latexps   policy.sgml
	gzip -9f            policy.ps
	env PERL5LIB=. debiandoc2latexpdf  policy.sgml
	gzip -9f  	    policy.pdf
	set -e; \
	for i in	    $(BYHAND_FILES); do                          \
	  $(install_file)   $$i		   ..		               ; \
	  dpkg-distaddfile  -fdebian/files `basename $$i`     byhand - ; \
	done
	touch		    stamp-policy


define checkdir
	test -f debian/rules -a -f policy.sgml
endef

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

.PHONY: configure build binary binary-arch binary-indep clean checkroot

#Local variables:
#mode: makefile
#End: