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
|
#!/usr/bin/make -f
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-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)
# either /usr/bin/emacs-snampshot or /usr/bin/emacs23
EMACS:=$(shell if [ -x /usr/bin/emacs-snapshot ]; then \
echo /usr/bin/emacs-snapshot; \
elif [ -x /usr/bin/emacs23 ]; then \
echo /usr/bin/emacs23; \
fi)
HAVE_ORG_EMACS:=$(strip $(EMACS))
# 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 perl-policy upgrading-checklist
DESC_FILES := debian-policy debian-menu-policy debian-perl-policy \
debian-mime-policy 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)
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 :=
POLICY_FILES = $(SGML_FILES:=.sgml) $(SGML_FILES:=.txt.gz) \
virtual-package-names-list.txt \
libc6-migration.txt version.ent \
debconf_spec/debconf_specification.html \
debconf_spec/debconf_specification.txt.gz \
policy.ps.gz policy.pdf.gz README.txt README.html \
Process.txt Process.html
# policy.{pdf,ps,tpt,txt} are generated files
FILES_TO_CLEAN = debian/files debian/buildinfo debian/substvars \
debian/postinst debian/prerm \
version.ent \
$(SGML_FILES:=.txt.gz) $(SGML_FILES:=.html.tar.gz) \
$(SGML_FILES:=-1.html) \
policy.pdf.gz policy.ps.gz \
debconf_specification.xml.tar.gz \
policy.pdf policy.ps policy.txt policy. \
body.tmp head.tmp policy.tpt
FILES_FROM_ORG := README.txt README.html
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) README.txt README.html \
Process.txt Process.html
$(MAKE) $(SGML_FILES:=.sgml.validate) \
$(SGML_FILES:=.html.tar.gz) \
$(SGML_FILES:=-1.html) \
$(SGML_FILES:=.txt.gz) \
policy.ps.gz policy.pdf.gz
ifneq (,$(strip $(HAVE_ORG_EMACS)))
$(MAKE) $(FILES_FROM_ORG)
endif
$(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)/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) debian/changelog $(DOCDIR)/
# Be more specific with file compression
gzip -f9 $(DOCDIR)/*.txt $(DOCDIR)/*.sgml \
$(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
for file in $(SGML_FILES); do \
$(install_file) $${file}-1.html $(DOCDIR); \
done
$(install_file) $(FHS_HTML) $(DOCDIR)/fhs
@set -ex; \
cd debian/tmp; \
find . -path "./DEBIAN" -prune -o -type f -printf '%P\0' \
| xargs -r0 md5sum > DEBIAN/md5sums
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:
|