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:
|