rules 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. #!/usr/bin/make -f
  2. # This file has gone through many maintainers. Mostly rewritten
  3. # by Daniel Jacobowitz.
  4. # This is the debhelper compatability version to use.
  5. export DH_COMPAT=3
  6. # This has to be exported to make some magic below work.
  7. export DH_OPTIONS
  8. # These are important since this is a library package
  9. soname=5
  10. vername=5.7
  11. sodepver = (>= 5.7-1)
  12. # Name our packages
  13. package-base=ncurses-base
  14. package-bin=ncurses-bin
  15. package-lib=libncurses$(soname)
  16. package-lib-64=lib64ncurses$(soname)
  17. package-libw=libncursesw$(soname)
  18. package-dev=libncurses$(soname)-dev
  19. package-dev-64=lib64ncurses$(soname)-dev
  20. package-devw=libncursesw$(soname)-dev
  21. package-dbg=libncurses$(soname)-dbg
  22. package-dbgw=libncursesw$(soname)-dbg
  23. package-term=ncurses-term
  24. workdir=$(shell pwd)
  25. tempdir=debian/tmp
  26. fulltempdir=$(workdir)/$(tempdir)
  27. srcdir=$(shell pwd)
  28. objdir=$(srcdir)/obj
  29. objdir-static=$(srcdir)/obj-static
  30. objdir-64=$(srcdir)/obj-64
  31. wobjdir=$(srcdir)/obj-wide
  32. objdir-debug=$(srcdir)/obj-debug
  33. wobjdir-debug=$(srcdir)/obj-wide-debug
  34. DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
  35. DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
  36. ifeq ($(DEB_HOST_GNU_TYPE),s390-linux)
  37. build_64_target = s390x-linux
  38. build_64 = build-64
  39. endif
  40. ifeq ($(DEB_HOST_GNU_TYPE),sparc-linux)
  41. build_64_target = sparc64-linux
  42. build_64 = build-64
  43. endif
  44. CFLAGS = -O2 -g
  45. ifneq (,$(findstring thumb,$(DEB_BUILD_OPTIONS)))
  46. CFLAGS += -mthumb
  47. endif
  48. CONFARGS = --prefix=/usr \
  49. --with-shared \
  50. --mandir='$${datadir}/man' \
  51. --without-profile --without-debug \
  52. --disable-rpath --enable-echo \
  53. --enable-const \
  54. --without-ada \
  55. --disable-termcap --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo"
  56. # Directories and files for /etc/terminfo
  57. etcterminfodirs=E a c d l m p r s v w x
  58. etcterminfofiles=a/ansi c/cons25 c/cygwin d/dumb l/linux m/mach m/mach-bold \
  59. m/mach-color p/pcansi r/rxvt r/rxvt-m r/rxvt-basic s/screen \
  60. s/screen-bce s/screen-s s/screen-w s/sun v/vt100 v/vt102 \
  61. v/vt220 v/vt52 x/xterm x/xterm-debian x/xterm-xfree86 x/xterm-color \
  62. x/xterm-mono x/xterm-r5 x/xterm-r6 x/xterm-vt220 \
  63. w/wsvt25 w/wsvt25m E/Eterm E/Eterm-color
  64. patch:
  65. env QUILT_PATCHES=$(CURDIR)/debian/patches quilt push -a
  66. touch $@
  67. $(objdir)/config.status: patch
  68. test -d $(objdir) || mkdir $(objdir)
  69. cd $(objdir) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
  70. $(CONFARGS) \
  71. --with-install-prefix=$(fulltempdir) \
  72. --enable-overwrite
  73. $(objdir-static)/config.status: patch
  74. test -d $(objdir-static) || mkdir $(objdir-static)
  75. cd $(objdir-static) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
  76. --without-shared --enable-static \
  77. --with-install-prefix=$(fulltempdir) \
  78. --enable-overwrite
  79. $(objdir-64)/config.status: patch
  80. test -d $(objdir-64) || mkdir $(objdir-64)
  81. cd $(objdir-64) && CFLAGS="$(CFLAGS)" CC="gcc -m64" \
  82. BUILD_CC="gcc" CXX="g++ -m64" \
  83. $(srcdir)/configure \
  84. $(CONFARGS) \
  85. --build=$(DEB_BUILD_GNU_TYPE) \
  86. --host=$(build_64_target) \
  87. --with-install-prefix=$(fulltempdir) \
  88. --enable-overwrite --libdir=/usr/lib64
  89. $(objdir-debug)/config.status: patch
  90. test -d $(objdir-debug) || mkdir $(objdir-debug)
  91. cd $(objdir-debug) && \
  92. CFLAGS="$(CFLAGS) -DTRACE" $(srcdir)/configure \
  93. $(CONFARGS) \
  94. --with-install-prefix=$(fulltempdir) \
  95. --enable-overwrite
  96. $(wobjdir)/config.status: patch
  97. test -d $(wobjdir) || mkdir $(wobjdir)
  98. cd $(wobjdir) && CFLAGS="$(CFLAGS)" $(srcdir)/configure \
  99. $(CONFARGS) \
  100. --with-install-prefix=$(fulltempdir) \
  101. --disable-overwrite --enable-widec
  102. $(wobjdir-debug)/config.status: patch
  103. test -d $(wobjdir-debug) || mkdir $(wobjdir-debug)
  104. cd $(wobjdir-debug) && \
  105. CFLAGS="$(CFLAGS) -DTRACE" $(srcdir)/configure \
  106. $(CONFARGS) \
  107. --with-install-prefix=$(fulltempdir) \
  108. --disable-overwrite --enable-widec
  109. build: build-normal build-wide build-debug build-wide-debug build-static $(build_64)
  110. build-normal: $(objdir)/config.status
  111. # For ia64...
  112. cd $(objdir)/c++ \
  113. && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' > Makefile.tem \
  114. && mv -f Makefile.tem Makefile
  115. cd $(objdir) && $(MAKE)
  116. touch $@
  117. build-static: $(objdir-static)/config.status
  118. cd $(objdir-static) && $(MAKE)
  119. touch $@
  120. build-64: $(objdir-64)/config.status
  121. # For ia64...
  122. cd $(objdir-64)/c++ \
  123. && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' > Makefile.tem \
  124. && mv -f Makefile.tem Makefile
  125. cd $(objdir-64) && $(MAKE)
  126. touch $@
  127. build-debug: $(objdir-debug)/config.status
  128. # For ia64...
  129. cd $(objdir-debug)/c++ \
  130. && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' > Makefile.tem \
  131. && mv -f Makefile.tem Makefile
  132. cd $(objdir-debug) && $(MAKE)
  133. touch $@
  134. build-wide: $(wobjdir)/config.status
  135. # For ia64...
  136. cd $(wobjdir)/c++ \
  137. && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' > Makefile.tem \
  138. && mv -f Makefile.tem Makefile
  139. cd $(wobjdir) && $(MAKE)
  140. touch $@
  141. build-wide-debug: $(wobjdir-debug)/config.status
  142. # For ia64...
  143. cd $(wobjdir-debug)/c++ \
  144. && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' > Makefile.tem \
  145. && mv -f Makefile.tem Makefile
  146. cd $(wobjdir-debug) && $(MAKE)
  147. touch $@
  148. clean:
  149. dh_testdir
  150. dh_testroot
  151. -env QUILT_PATCHES=$(CURDIR)/debian/patches quilt pop -a
  152. rm -f build install
  153. rm -rf $(objdir)
  154. rm -rf $(objdir-64)
  155. rm -rf $(wobjdir)
  156. rm -rf $(objdir-debug)
  157. rm -rf $(wobjdir-debug)
  158. rm -f debian/shlibs.local
  159. dh_clean
  160. install: DH_OPTIONS=
  161. install: build
  162. # Generate proper debhelper files for so-named packages
  163. dh_testdir
  164. dh_testroot
  165. dh_clean -k
  166. dh_installdirs -s
  167. dh_installdirs -i
  168. ifneq ($(build_64),)
  169. $(MAKE) -C $(objdir-64) install.libs
  170. test -d $(tempdir)/lib64 || mkdir $(tempdir)/lib64
  171. mv $(tempdir)/usr/lib64/libncurses.so.$(vername) $(tempdir)/lib64/
  172. mv $(tempdir)/usr/lib64/libncurses.so.$(soname) $(tempdir)/lib64/
  173. endif
  174. # Install into our base directory
  175. GZIP='-9' $(MAKE) -C $(objdir-debug) install
  176. $(MAKE) -C $(wobjdir-debug) install.libs
  177. # Copy libraries to the debug directory
  178. test -d $(tempdir)/usr/lib/debug || mkdir $(tempdir)/usr/lib/debug
  179. cp -a $(tempdir)/usr/lib/*.so.* $(tempdir)/usr/lib/debug
  180. # Rename static debug libraries.
  181. for lib in $(tempdir)/usr/lib/*.a; do \
  182. mv $$lib `echo $$lib | sed 's/\.a$$/_g.a/'`; \
  183. done
  184. # Install non -DTRACE versions.
  185. $(MAKE) -C $(objdir) install.libs
  186. $(MAKE) -C $(wobjdir) install.libs
  187. # Compile this before moving files into their packages.
  188. for ti in xterm hurd rxvt screen; do \
  189. TERMINFO=$(fulltempdir)/usr/share/terminfo \
  190. $(objdir-static)/progs/tic debian/$$ti.ti; \
  191. done
  192. # We keep the libncurses shared library in /lib.
  193. test -d $(tempdir)/lib || mkdir $(tempdir)/lib
  194. mv $(tempdir)/usr/lib/libncurses.so.$(vername) $(tempdir)/lib/
  195. mv $(tempdir)/usr/lib/libncurses.so.$(soname) $(tempdir)/lib/
  196. dh_movefiles -s
  197. dh_movefiles -i
  198. # We keep the libncurses shared library in /lib.
  199. ln -sf /lib/libncurses.so.$(soname) debian/$(package-dev)/usr/lib/libncurses.so
  200. ifneq ($(build_64),)
  201. ln -sf /lib64/libncurses.so.$(soname) debian/$(package-dev-64)/usr/lib64/libncurses.so
  202. endif
  203. # By tradition, we provide -lcurses and -ltermcap.
  204. ln -sf libncurses.so debian/$(package-dev)/usr/lib/libcurses.so
  205. ln -sf libncurses.so debian/$(package-dev)/usr/lib/libtermcap.so
  206. ln -sf libncurses.a debian/$(package-dev)/usr/lib/libtermcap.a
  207. ln -sf libncurses.a debian/$(package-dev)/usr/lib/libcurses.a
  208. # Move terminfo entries for ncurses-base to /etc
  209. mv debian/$(package-base)/usr/share/terminfo debian/$(package-base)/etc
  210. # Break hard links.
  211. cp $(workdir)/debian/$(package-base)/etc/terminfo/r/rxvt-m \
  212. $(workdir)/debian/$(package-base)/etc/terminfo/r/rxvt-foo
  213. rm -f $(workdir)/debian/$(package-base)/etc/terminfo/r/rxvt-m
  214. mv $(workdir)/debian/$(package-base)/etc/terminfo/r/rxvt-foo \
  215. $(workdir)/debian/$(package-base)/etc/terminfo/r/rxvt-m
  216. cp $(workdir)/debian/$(package-base)/etc/terminfo/E/Eterm-color \
  217. $(workdir)/debian/$(package-base)/etc/terminfo/E/Eterm-color-foo
  218. rm -f $(workdir)/debian/$(package-base)/etc/terminfo/E/Eterm-color
  219. mv $(workdir)/debian/$(package-base)/etc/terminfo/E/Eterm-color-foo \
  220. $(workdir)/debian/$(package-base)/etc/terminfo/E/Eterm-color
  221. mkdir debian/$(package-base)/usr/share/terminfo
  222. for f in $(etcterminfodirs); do \
  223. mkdir debian/$(package-base)/usr/share/terminfo/$$f; \
  224. done
  225. for f in $(etcterminfofiles); do \
  226. ln -sf /etc/terminfo/$$f debian/$(package-base)/usr/share/terminfo/$$f; \
  227. done
  228. touch $@
  229. binary: binary-arch binary-indep
  230. binary-arch: build install
  231. dh_testdir
  232. dh_testroot
  233. dh_installdocs -s -N$(package-bin) \
  234. -N$(package-dbg) -N$(package-dbgw) \
  235. debian/FAQ
  236. dh_installchangelogs -s -N$(package-bin) \
  237. -N$(package-dbg) -N$(package-dbgw) \
  238. NEWS
  239. mkdir -p debian/$(package-bin)/usr/share/doc
  240. mkdir -p debian/$(package-dbg)/usr/share/doc
  241. mkdir -p debian/$(package-dbgw)/usr/share/doc
  242. ln -s $(package-lib) \
  243. debian/$(package-bin)/usr/share/doc/$(package-bin)
  244. ln -s $(package-dev) \
  245. debian/$(package-dbg)/usr/share/doc/$(package-dbg)
  246. ln -s $(package-devw) \
  247. debian/$(package-dbgw)/usr/share/doc/$(package-dbgw)
  248. ifneq ($(build_64),)
  249. ln -s $(package-dev) \
  250. debian/$(package-dbgw)/usr/share/doc/$(package-dev-64)
  251. ln -s $(package-lib) \
  252. debian/$(package-dbgw)/usr/share/doc/$(package-lib-64)
  253. endif
  254. dh_strip -s -X$(package-dbg) -X$(package-dbgw)
  255. dh_compress -s
  256. dh_fixperms -s
  257. dh_makeshlibs -p$(package-lib) -V "$(package-lib) $(sodepver)"
  258. dh_makeshlibs -p$(package-libw) -V "$(package-libw) $(sodepver)"
  259. ifneq ($(build_64),)
  260. dh_makeshlibs -p$(package-lib-64) -V "$(package-lib-64) $(sodepver)"
  261. endif
  262. dh_shlibdeps -p$(package-lib) -p$(package-libw) \
  263. -ldebian/$(package-lib)/lib:debian/$(package-lib)/usr/lib:debian/$(package-libw)/usr/lib \
  264. -- -L$(shell pwd)/debian/shlibs.dummy
  265. ifneq ($(build_64),)
  266. # Unfortunately, dh_shlibdeps runs ldd, and 64-bit ldd doesn't run on
  267. # a 31-bit S/390 build daemon, so I can't always use dh_shlibdeps.
  268. # So this is allowed to fail.
  269. -dh_shlibdeps -p$(package-lib-64) \
  270. -ldebian/$(package-lib-64)/lib64:debian/$(package-lib-64)/usr/lib64 \
  271. -- -L$(shell pwd)/debian/shlibs.dummy
  272. endif
  273. # We don't ship any binaries linked against the 64-bit libraries, so
  274. # don't add them to shlibs. They have the same sonames, so they
  275. # override the 32-bit versions, messing up the dependencies from
  276. # ncurses-bin.
  277. cat debian/$(package-lib)/DEBIAN/shlibs \
  278. debian/$(package-libw)/DEBIAN/shlibs > debian/shlibs.local
  279. dh_shlibdeps -s -N$(package-lib) -N$(package-libw) -N$(package-lib-64)\
  280. -ldebian/$(package-lib)/lib:debian/$(package-lib)/usr/lib:debian/$(package-libw)/usr/lib
  281. dh_gencontrol -s
  282. dh_installdeb -s
  283. dh_builddeb -s
  284. binary-indep: DH_OPTIONS=-i
  285. binary-indep: build install
  286. dh_testdir
  287. dh_testroot
  288. # Do not install documentation, just symlinks.
  289. # dh_installdocs
  290. # dh_installchangelogs NEWS
  291. mkdir -p debian/$(package-base)/usr/share/doc
  292. mkdir -p debian/$(package-term)/usr/share/doc
  293. ln -s $(package-lib) \
  294. debian/$(package-base)/usr/share/doc/$(package-base)
  295. ln -s $(package-lib) \
  296. debian/$(package-term)/usr/share/doc/$(package-term)
  297. dh_compress -i
  298. dh_fixperms -i
  299. dh_gencontrol -i
  300. dh_installdeb -i
  301. dh_builddeb -i
  302. # Below here is fairly generic really
  303. checkroot:
  304. test root = "`whoami`"
  305. .PHONY: binary diff clean checkroot