2 # $Id: rules,v 1.57 2024/06/08 17:51:52 tom Exp $
4 # Uncomment this to turn on verbose mode.
8 DPKG_EXPORT_BUILDFLAGS = 1
10 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
12 include /usr/share/dpkg/buildflags.mk
15 PACKAGES.indep = ncurses6td-doc ncurses6td-doc-html
16 PACKAGES.arch = ncurses6td ncursest6td
18 # These are used for cross-compiling and for saving the configure script
19 # from having to guess our platform (since we know it already)
20 DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
21 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
22 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
24 CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
25 CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
30 LIBDIR=$(MY_DIR)/lib/$(DEB_HOST_MULTIARCH)
31 MYDATA=/usr/local/ncurses/share/terminfo
32 NORMAL_DIR=$(CURDIR)/debian/ncurses$(MY_ABI)
33 THREAD_DIR=$(CURDIR)/debian/ncursest$(MY_ABI)
35 CFLAGS += $(CC_NORMAL)
37 ifneq ($(MY_DIR),/usr)
38 RPATH_ENV = RPATH_LIST=../lib:$(LIBDIR)
39 RPATH_OPT = --enable-rpath
42 RPATH_OPT = --disable-rpath --disable-rpath-hack
45 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
50 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
59 CPPFLAGS="$(CPPFLAGS)" \
60 LDFLAGS="$(LDFLAGS)" ../../configure $(RPATH_OPT) \
61 --host=$(DEB_HOST_GNU_TYPE) \
62 --build=$(DEB_BUILD_GNU_TYPE) \
64 --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
71 --disable-root-access \
72 --disable-root-environ \
76 --enable-opaque-curses \
77 --enable-opaque-form \
78 --enable-opaque-menu \
79 --enable-opaque-panel \
81 --enable-stdnoreturn \
83 --enable-wgetch-events \
86 --program-suffix=$(MY_ABI) \
88 --with-abi-version=$(MY_ABI) \
89 --with-config-suffix=td \
92 --with-default-terminfo-dir=$(MYDATA) \
94 --with-extra-suffix=$(MY_ABI) \
96 --with-terminfo-dirs=$(MYDATA):/lib/terminfo:/usr/share/terminfo \
100 --with-versioned-syms \
101 --with-xterm-kbs=DEL \
104 --with-manpage-aliases \
105 --with-manpage-symlinks \
108 NCURSES6_DIR = $(CURDIR)/debian/ncurses6td
109 NCURSEST6_DIR = $(CURDIR)/debian/ncursest6td
111 .PHONY: all config build install binary clean config-indep config-arch \
112 build-indep build-arch install-indep install-arch binary-indep \
117 config: config-indep config-arch
118 build: build-indep build-arch
119 install: install-indep install-arch
120 binary: binary-indep binary-arch
128 config-indep: $(PACKAGES.indep:%=config-%-stamp)
129 config-arch: $(PACKAGES.arch:%=config-%-stamp)
131 build-indep: $(PACKAGES.indep:%=build-%-stamp)
132 build-arch: $(PACKAGES.arch:%=build-%-stamp)
134 install-indep: $(PACKAGES.indep:%=install-%-stamp)
135 install-arch: $(PACKAGES.arch:%=install-%-stamp)
137 # make the doc-package installable by renaming everything to avoid clashing
138 patch-ncurses6td-stamp:
141 -e 's/-config\.1$$/dev-config.1/;t' \
142 -e 's/\.3ncurses$$/.3ncurses6/' \
143 -e 's/\.3curses$$/.3curses6/' \
144 -e 's/\.3form$$/.3form6/' \
145 -e 's/\.3menu$$/.3menu6/' \
146 -e 's/\.3panel$$/.3panel6/' \
147 -e 's/\.\([157]\)$$/6.\1/' \
148 man/man_db.renames.in
149 diff -u man/man_db.renames.in.bak man/man_db.renames.in || true
152 config-ncurses6td-stamp: patch-ncurses6td-stamp
155 mkdir -p t/ncurses6td
156 cd t/ncurses6td; $(configure)
159 config-ncursest6td-stamp: patch-ncurses6td-stamp
162 mkdir -p t/ncursest6td
163 cd t/ncursest6td; $(configure) \
166 --program-suffix=t$(MY_ABI) \
170 config-ncurses6td-doc-stamp \
171 config-ncurses6td-doc-html-stamp: config-ncurses6td-stamp
174 build-ncurses6td-stamp: config-ncurses6td-stamp
177 $(MAKE) -C t/ncurses6td
181 build-ncursest6td-stamp: config-ncursest6td-stamp
184 $(MAKE) -C t/ncursest6td
188 build-ncurses6td-doc-stamp \
189 build-ncurses6td-doc-html-stamp: build-ncurses6td-stamp
192 install-ncurses6td-stamp: build-ncurses6td-stamp
195 dh_installdirs $(verbose)
196 dh_prep $(verbose) -pncurses6td
198 $(MAKE) -C t/ncurses6td install.libs install.progs DESTDIR=$(NCURSES6_DIR)
199 $(MAKE) -C t/ncurses6td/test ncurses LOCAL_LIBDIR=$(LIBDIR)
201 mv t/ncurses6td/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
205 install-ncursest6td-stamp: build-ncursest6td-stamp
208 dh_installdirs $(verbose)
209 dh_prep $(verbose) -pncursest6td
211 $(MAKE) -C t/ncursest6td install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
212 $(MAKE) -C t/ncursest6td/test ncurses LOCAL_LIBDIR=$(LIBDIR)
214 mv t/ncursest6td/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
218 install-ncurses6td-doc-stamp: build-ncurses6td-stamp
221 dh_installdirs $(verbose)
222 dh_prep $(verbose) -pncurses6td-doc
224 $(MAKE) -C t/ncurses6td install.man DESTDIR=$(NCURSES6_DIR)-doc
225 find $(NCURSES6_DIR)-doc -name 'ncursesw6-config.*' -print -delete
227 cd $(NCURSES6_DIR)-doc/usr/share/man/man1 && ln -sf tset6.1.gz reset6.1.gz
231 HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/doc/ncurses6td-doc-html
232 install-ncurses6td-doc-html-stamp: build-ncurses6td-stamp
235 dh_installdirs $(verbose)
236 dh_prep $(verbose) -pncurses6td-doc-html
238 cd doc/html && find * -type d | sort | xargs -I{} mkdir -p -v $(HTML_DESTDIR)/{}
239 cd doc/html && find * -type f -name '*.html' | sort | xargs -I{} install -m 644 -p -v -T {} $(HTML_DESTDIR)/{}
240 find $(HTML_DESTDIR) -type d -empty -delete -print
241 find $(HTML_DESTDIR) -type d -empty -delete -print
245 # Build architecture-independent files here.
246 binary-indep: install-indep
247 ifneq ($(PACKAGES.indep),)
248 rm -f $(PACKAGES.indep:%=install-%-stamp)
251 dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
252 dh_installdocs $(verbose) $(PACKAGES.indep:%=-p%)
253 dh_installman $(verbose) $(PACKAGES.indep:%=-p%)
254 dh_installexamples $(verbose) $(PACKAGES.indep:%=-p%)
255 dh_installchangelogs $(verbose) $(PACKAGES.indep:%=-p%) NEWS
256 dh_compress $(verbose) $(PACKAGES.indep:%=-p%)
257 dh_fixperms $(verbose) $(PACKAGES.indep:%=-p%)
258 dh_installdeb $(verbose) $(PACKAGES.indep:%=-p%)
259 dh_gencontrol $(verbose) $(PACKAGES.indep:%=-p%)
260 dh_md5sums $(verbose) $(PACKAGES.indep:%=-p%)
261 dh_builddeb $(verbose) $(PACKAGES.indep:%=-p%)
264 # Build architecture-dependent files here.
265 binary-arch: install-arch
266 ifneq ($(PACKAGES.arch),)
267 rm -f $(PACKAGES.arch:%=install-%-stamp)
271 version=`set -x; awk 'BEGIN{major=minor=0} /^NCURSES_MAJOR/{major=$$3} /^NCURSES_MINOR/{minor=$$3} END{print major "." minor}' < dist.mk`; \
273 -e "s, usr/lib, usr/lib/$(DEB_HOST_MULTIARCH)," \
274 -e "s,6\.1,$${version}," \
275 debian/*.lintian-overrides
277 dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
278 dh_installdocs $(verbose) $(PACKAGES.arch:%=-p%)
279 dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%) NEWS
280 dh_strip $(verbose) $(PACKAGES.arch:%=-p%)
281 dh_compress $(verbose) $(PACKAGES.arch:%=-p%)
282 dh_fixperms $(verbose) $(PACKAGES.arch:%=-p%)
283 dh_installdeb $(verbose) $(PACKAGES.arch:%=-p%)
284 dh_makeshlibs $(verbose) $(PACKAGES.arch:%=-p%)
285 dh_shlibdeps $(verbose) $(PACKAGES.arch:%=-p%)
286 dh_gencontrol $(verbose) $(PACKAGES.arch:%=-p%)
287 dh_md5sums $(verbose) $(PACKAGES.arch:%=-p%)
288 dh_builddeb $(verbose) $(PACKAGES.arch:%=-p%)