2 # $Id: rules,v 1.48 2023/05/13 23:54:31 tom Exp $
4 # Uncomment this to turn on verbose mode.
8 PACKAGES.indep = ncurses6-doc ncurses6-doc-html
9 PACKAGES.arch = ncurses6 ncursest6
11 # These are used for cross-compiling and for saving the configure script
12 # from having to guess our platform (since we know it already)
13 DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
14 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
15 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
17 CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
18 CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
23 LIBDIR=$(MY_DIR)/lib/$(DEB_HOST_MULTIARCH)
24 MYDATA=/usr/local/ncurses/share/terminfo
25 NORMAL_DIR=$(CURDIR)/debian/ncurses$(MY_ABI)
26 THREAD_DIR=$(CURDIR)/debian/ncursest$(MY_ABI)
28 CFLAGS = $(shell dpkg-buildflags --get CFLAGS) $(CC_NORMAL)
29 CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
30 CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
31 LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
33 ifneq ($(MY_DIR),/usr)
34 RPATH_ENV = RPATH_LIST=../lib:$(LIBDIR)
35 RPATH_OPT = --enable-rpath
38 RPATH_OPT = --disable-rpath --disable-rpath-hack
41 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
46 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
55 CPPFLAGS="$(CPPFLAGS)" \
56 LDFLAGS="$(LDFLAGS)" ../../configure $(RPATH_OPT) \
57 --host=$(DEB_HOST_GNU_TYPE) \
58 --build=$(DEB_BUILD_GNU_TYPE) \
60 --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
67 --disable-root-access \
68 --disable-root-environ \
71 --enable-opaque-curses \
72 --enable-opaque-form \
73 --enable-opaque-menu \
74 --enable-opaque-panel \
76 --enable-stdnoreturn \
78 --enable-wgetch-events \
81 --program-suffix=$(MY_ABI) \
83 --with-abi-version=$(MY_ABI) \
84 --with-config-suffix=dev \
86 --with-default-terminfo-dir=$(MYDATA) \
88 --with-extra-suffix=$(MY_ABI) \
90 --with-terminfo-dirs=$(MYDATA):/lib/terminfo:/usr/share/terminfo \
94 --with-versioned-syms \
95 --with-xterm-kbs=DEL \
98 --with-manpage-aliases \
99 --with-manpage-symlinks \
102 NCURSES6_DIR = $(CURDIR)/debian/ncurses6
103 NCURSEST6_DIR = $(CURDIR)/debian/ncursest6
105 .PHONY: all config build install binary clean config-indep config-arch \
106 build-indep build-arch install-indep install-arch binary-indep \
111 config: config-indep config-arch
112 build: build-indep build-arch
113 install: install-indep install-arch
114 binary: binary-indep binary-arch
121 config-indep: $(PACKAGES.indep:%=config-%-stamp)
122 config-arch: $(PACKAGES.arch:%=config-%-stamp)
124 build-indep: $(PACKAGES.indep:%=build-%-stamp)
125 build-arch: $(PACKAGES.arch:%=build-%-stamp)
127 install-indep: $(PACKAGES.indep:%=install-%-stamp)
128 install-arch: $(PACKAGES.arch:%=install-%-stamp)
130 # make the doc-package installable by renaming everything to avoid clashing
131 patch-ncurses6-stamp:
134 -e 's/-config\.1$$/dev-config.1/;t' \
135 -e 's/\.3ncurses$$/.3ncurses6/' \
136 -e 's/\.3curses$$/.3curses6/' \
137 -e 's/\.3form$$/.3form6/' \
138 -e 's/\.3menu$$/.3menu6/' \
139 -e 's/\.3panel$$/.3panel6/' \
140 -e 's/\.\([157]\)$$/6.\1/' \
141 man/man_db.renames.in
142 diff -u man/man_db.renames.in.bak man/man_db.renames.in || true
145 config-ncurses6-stamp: patch-ncurses6-stamp
149 cd t/ncurses6; $(configure)
152 config-ncursest6-stamp: patch-ncurses6-stamp
156 cd t/ncursest6; $(configure) \
159 --program-suffix=t$(MY_ABI) \
163 config-ncurses6-doc-stamp \
164 config-ncurses6-doc-html-stamp: config-ncurses6-stamp
167 build-ncurses6-stamp: config-ncurses6-stamp
170 $(MAKE) -C t/ncurses6
174 build-ncursest6-stamp: config-ncursest6-stamp
177 $(MAKE) -C t/ncursest6
181 build-ncurses6-doc-stamp \
182 build-ncurses6-doc-html-stamp: build-ncurses6-stamp
185 install-ncurses6-stamp: build-ncurses6-stamp
188 dh_installdirs $(verbose)
189 dh_prep $(verbose) -pncurses6
191 $(MAKE) -C t/ncurses6 install.libs install.progs DESTDIR=$(NCURSES6_DIR)
192 $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
194 mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
198 install-ncursest6-stamp: build-ncursest6-stamp
201 dh_installdirs $(verbose)
202 dh_prep $(verbose) -pncursest6
204 $(MAKE) -C t/ncursest6 install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
205 $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
207 mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
211 install-ncurses6-doc-stamp: build-ncurses6-stamp
214 dh_installdirs $(verbose)
215 dh_prep $(verbose) -pncurses6-doc
217 $(MAKE) -C t/ncurses6 install.man DESTDIR=$(NCURSES6_DIR)-doc
218 find $(NCURSES6_DIR)-doc -name 'ncursesw6-config.*' -print -delete
220 cd $(NCURSES6_DIR)-doc/usr/share/man/man1 && ln -sf tset6.1.gz reset6.1.gz
224 HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/ncurses6-doc-html
225 install-ncurses6-doc-html-stamp: build-ncurses6-stamp
228 dh_installdirs $(verbose)
229 dh_prep $(verbose) -pncurses6-doc-html
231 cd doc/html && find * -type d | sort | xargs -I{} mkdir -p -v $(HTML_DESTDIR)/{}
232 cd doc/html && find * -type f -name '*.html' | sort | xargs -I{} install -m 644 -p -v -T {} $(HTML_DESTDIR)/{}
236 # Build architecture-independent files here.
237 binary-indep: install-indep
238 ifneq ($(PACKAGES.indep),)
239 rm -f $(PACKAGES.indep:%=install-%-stamp)
242 dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
243 dh_installdocs $(verbose) $(PACKAGES.indep:%=-p%)
244 dh_installman $(verbose) $(PACKAGES.indep:%=-p%)
245 dh_installexamples $(verbose) $(PACKAGES.indep:%=-p%)
246 dh_installchangelogs $(verbose) $(PACKAGES.indep:%=-p%) NEWS
247 dh_compress $(verbose) $(PACKAGES.indep:%=-p%)
248 dh_fixperms $(verbose) $(PACKAGES.indep:%=-p%)
249 dh_installdeb $(verbose) $(PACKAGES.indep:%=-p%)
250 dh_gencontrol $(verbose) $(PACKAGES.indep:%=-p%)
251 dh_md5sums $(verbose) $(PACKAGES.indep:%=-p%)
252 dh_builddeb $(verbose) $(PACKAGES.indep:%=-p%)
255 # Build architecture-dependent files here.
256 binary-arch: install-arch
257 ifneq ($(PACKAGES.arch),)
258 rm -f $(PACKAGES.arch:%=install-%-stamp)
262 version=`set -x; awk 'BEGIN{major=minor=0} /^NCURSES_MAJOR/{major=$$3} /^NCURSES_MINOR/{minor=$$3} END{print major "." minor}' < dist.mk`; \
264 -e "s, usr/lib, usr/lib/$(DEB_HOST_MULTIARCH)," \
265 -e "s,6\.1,$${version}," \
266 debian/*.lintian-overrides
268 dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
269 dh_installdocs $(verbose) $(PACKAGES.arch:%=-p%)
270 dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%) NEWS
271 dh_strip $(verbose) $(PACKAGES.arch:%=-p%)
272 dh_compress $(verbose) $(PACKAGES.arch:%=-p%)
273 dh_fixperms $(verbose) $(PACKAGES.arch:%=-p%)
274 dh_installdeb $(verbose) $(PACKAGES.arch:%=-p%)
275 dh_makeshlibs $(verbose) $(PACKAGES.arch:%=-p%)
276 dh_shlibdeps $(verbose) $(PACKAGES.arch:%=-p%)
277 dh_gencontrol $(verbose) $(PACKAGES.arch:%=-p%)
278 dh_md5sums $(verbose) $(PACKAGES.arch:%=-p%)
279 dh_builddeb $(verbose) $(PACKAGES.arch:%=-p%)