summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 134ecf33119f1b251e7b59fa5a35c12774861db9 (plain)
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
#!/usr/bin/make -f

# Debian build rules for help2man.

# Copyright (C) 2012, 2014, 2017, 2018 Free Software Foundation, Inc.

# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.  This file is offered as-is,
# without any warranty.

# Written by Brendan O'Dea <bod@debian.org>

SHELL = /bin/bash
DPKG_EXPORT_BUILDFLAGS = 1

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/pkg-info.mk

ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
 CONFARGS = --host=$(DEB_HOST_GNU_TYPE)
endif

build: build-arch build-indep
build-arch build-indep: build-stamp
build-stamp:
	dh_testdir
	dh_update_autotools_config  # update config.guess, config.sub
	./configure --prefix=/usr --enable-nls --mandir='$${prefix}/share/man' \
	    --infodir='$${prefix}/share/info' $(CONFARGS)

	$(MAKE)
	$(MAKE) help2man.h2m  # for examples
	touch build-stamp

clean: check-maint-prep  # maintainer sanity check
	dh_testdir
	dh_testroot
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f build-stamp install-stamp
	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	$(MAKE) install DESTDIR=$(CURDIR)/debian/help2man
	touch install-stamp

binary: binary-indep binary-arch
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installinfo
	dh_installexamples
	dh_installchangelogs
	dh_strip
	dh_compress
	dh_fixperms
	dh_perl -V
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-indep: build install

# Maintainer pre-release setup.  Intended to be run from a copy of the
# contents of the git repository, excluding the .git subdir.  E.g. something
# like this:
#
#  set -e
#  version=$(./help2man.PL --version)
#  mkdir ../help2man-$version
#  find -name .git -prune -o -print | cpio -vdump ../help2man-$version
#  cd ../help2man-$version
#  debian/rules maint-prep
#
# should result in a directory which is ready to be archived for release.
AM_DOC = COPYING INSTALL
AM_AUX = install-sh missing mkinstalldirs
AM_DIR = $(shell ls -d /usr/share/automake* 2>/dev/null | tail -1)
PKG_VERSION = $(shell ./help2man.PL --version)
maint-prep:
	test -n $(AM_DIR)
	test $(DEB_VERSION) = $(PKG_VERSION)  # mismatch b/w $$version in help2man.PL and changelog
	cp $(addprefix $(AM_DIR)/,$(AM_DOC)) .
	cp $(addprefix $(AM_DIR)/,$(AM_AUX)) build-aux
	(eval `sed -n 's/^Vcs-\([^:]*\): /VCS_\U\1=/p' debian/control`; \
	 echo "		README for GNU help2man version $(PKG_VERSION)"; \
	 echo; \
	 echo "help2man is a script to create simple man pages from the --help and"; \
	 echo "--version output of programs."; \
	 echo ""; \
	 echo "Since most GNU documentation is now in info format, this provides a"; \
	 echo "way to generate a placeholder man page pointing to that resource while"; \
	 echo "still providing some useful information."; \
	 echo ""; \
	 echo "  Home page:    http://www.gnu.org/software/help2man/"; \
	 echo "  Distribution: ftp://ftp.gnu.org/gnu/help2man/help2man-$(PKG_VERSION).tar.xz"; \
	 echo "  Repository:   $$VCS_GIT"; \
	 echo ""; \
	 echo "-- "; \
	 echo "Brendan O'Dea <bod@debian.org>") >README
	ln -sf debian/changelog ChangeLog
	autoconf
	./configure
	$(MAKE) update-po all distclean

# Simple sanity check that the above rule has been run prior to release (a
# dependency of the "clean" rule, which is the first thing run when building a
# debian package).
check-maint-prep:
	test -x configure  # autoconf has been run
	[[ $(DEB_VERSION) = *+b[0-9]* ]] ||  # this is a bin-NMU, or... \
	grep -qF 'help2man-$(DEB_VERSION).tar' README  # exists and up to date

maint-clean: maint-prep
	./configure
	$(MAKE) maintainer-clean
	rm -f README ChangeLog $(AM_DOC) $(addprefix build-aux/,$(AM_AUX))

.PHONY: build build-arch build-indep clean install binary binary-arch
.PHONY: binary-indep maint-prep check-maint-prep maint-clean