File: rules

package info (click to toggle)
debian-policy 3.7.2.2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,280 kB
  • ctags: 37
  • sloc: xml: 727; makefile: 167; sh: 93
file content (187 lines) | stat: -rwxr-xr-x 7,492 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
#!/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 : Tue Oct 26 15:20:25 2004
## Last Machine Used: glaurung.internal.golden-gryphon.com
## Update Count	    : 62
## 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)

arch	:= $(shell dpkg --print-installation-architecture)

# Basic information
package := $(shell grep Source debian/control | sed 's/^Source: //')
date	:= $(shell date +"%Y-%m-%d")
version := $(shell awk -F '[()]' '/^$(package)/{ print $$2; exit }' debian/changelog)

# Location of the source dir
SRCTOP	  := $(CURDIR)
TMPTOP	  := $(SRCTOP)/debian/tmp
DOCDIR	  := $(TMPTOP)/usr/share/doc/$(package)
LIBDIR	  := $(TMPTOP)/usr/share/doc-base

sanitycheck := debian/rules policy.sgml

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 := $(wildcard fhs*.tar.gz)
# And with version 2.1, we have to build the text and dvi versions
# ourselves :-(
FHS_ARCHIVE  := fhs-2.3-source.tar.gz
FHS_HTML     := fhs-2.3.html
FHS_FILES    := fhs-2.3.ps.gz fhs-2.3.txt.gz fhs-2.3.pdf.gz
FHS_NEW_ARCHIVE  := 
FHS_NEW_HTML     := 
FHS_NEW_FILES    := 
# 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 \
               policy.ps.gz policy.pdf.gz

# policy.{pdf,ps,tpt,txt} are generated files
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 \
                  policy.pdf policy.ps policy.txt policy.

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


install_file    := install -p	-o root -g root	 -m  644
install_program := install -p	-o root -g root	 -m  755
make_directory  := install -p -d	-o root -g root	 -m  755


all build: stamp-build
stamp-build: version.ent $(sanitycheck)
	$(MAKE) $(SGML_FILES:=.sgml.validate) \
		$(SGML_FILES:=.html.tar.gz) \
		$(SGML_FILES:=.txt.gz) \
		policy.ps.gz policy.pdf.gz
	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 "$(shell dpkg -s groff | sed -n -e 's/Version: //p')" 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=. GROFF_NO_SGR=1 $(MAKE) -C fhs 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
	touch stamp-build

configure: version.ent
version.ent: debian/changelog
	rm -f $@
	echo "<!entity version \"$(version)\">" >> $@
	echo "<!entity date    \"$(date)\">"	>> $@

clean: $(sanitycheck)
# Undoes the effect of `make -f debian/rules build'.
	$(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 $(sanitycheck)
# 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 $(sanitycheck)
	@test $$(id | sed -e 's/(.*$$//' -e 's/^uid=//') || \
		(echo need root priviledges; exit 1)
#	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 -f9	    $(DOCDIR)/*.txt $(DOCDIR)/*.sgml \
				$(DOCDIR)/fhs/* $(DOCDIR)/changelog
# These are allready compressed
	#$(install_file)    $(FHS_NEW_FILES)	     $(DOCDIR)/fhs/
	$(install_file)	    $(FHS_FILES)	     $(DOCDIR)/fhs/
	$(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 -ex; \
	for file in $(DESC_FILES); do \
	  $(install_file) $$file.desc $(LIBDIR)/$$file; \
	done
	@set -ex; \
	for file in $(SGML_FILES); do \
	  tar -C $(DOCDIR) -zxf $$file.html.tar.gz; \
	done
	$(install_file)     $(FHS_HTML)   $(DOCDIR)/fhs
	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	    -p$(package) -Pdebian/tmp -isp
	chown		    -R root:root debian/tmp
	chmod		    -R go=rX debian/tmp
	dpkg		    --build debian/tmp ..
	touch		    stamp-policy


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

#Local variables:
#mode: makefile
#End: