From 090a9fe49ba01e1daa3ac88ce9952c991b0c50ae Mon Sep 17 00:00:00 2001 From: jperkin Date: Thu, 12 Sep 2013 10:56:36 +0000 Subject: bootstrap-mk-files-20130912: Fix catman pages on SunOS. Introduce a modified bsd.own.mk on SunOS which enables MKCATPAGES by default, and a modified bsd.man.mk which correctly installs catman pages with a section suffix rather than a blanket '.0'. This allows the SunOS man(1) to find the catman pages correctly. --- pkgtools/bootstrap-mk-files/Makefile | 4 +- .../bootstrap-mk-files/files/mods/SunOS.bsd.man.mk | 201 +++++++++++++ .../files/mods/SunOS.bsd.own.mk.in | 327 +++++++++++++++++++++ 3 files changed, 530 insertions(+), 2 deletions(-) create mode 100644 pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.man.mk create mode 100644 pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.own.mk.in diff --git a/pkgtools/bootstrap-mk-files/Makefile b/pkgtools/bootstrap-mk-files/Makefile index ac77333d1ad..77198e14ba4 100644 --- a/pkgtools/bootstrap-mk-files/Makefile +++ b/pkgtools/bootstrap-mk-files/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.36 2013/09/08 16:27:23 ryoon Exp $ +# $NetBSD: Makefile,v 1.37 2013/09/12 10:56:36 jperkin Exp $ -DISTNAME= bootstrap-mk-files-20130908 +DISTNAME= bootstrap-mk-files-20130912 CATEGORIES= pkgtools MASTER_SITES= # empty DISTFILES= # empty diff --git a/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.man.mk b/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.man.mk new file mode 100644 index 00000000000..f555ff66a45 --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.man.mk @@ -0,0 +1,201 @@ +# $NetBSD: SunOS.bsd.man.mk,v 1.1 2013/09/12 10:56:36 jperkin Exp $ +# @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include +.include +.include +.MAIN: all +.endif + +.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman html installhtml cleanhtml +.if ${MKMAN} != "no" +realinstall: ${MANINSTALL} +.endif +cleandir: cleanman + +TMACDIR?= ${DESTDIR}/usr/share/groff/tmac +HTMLDIR?= ${DESTDIR}/usr/share/man +.if exists(${TMACDIR}/tmac.andoc) && exists(${TMACDIR}/tmac.doc) +CATDEPS?= ${TMACDIR}/tmac.andoc \ + ${TMACDIR}/tmac.doc +.endif +MANTARGET?= cat +NROFF?= nroff -Tascii +GROFF?= groff -Tascii +TBL?= tbl + + +.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \ + .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 \ + .html1 .html2 .html3 .html4 .html5 .html6 .html7 .html8 .html9 + +.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" + @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" + @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.9.html9 .8.html8 .7.html7 .6.html6 .5.html5 .4.html4 .3.html3 .2.html2 .1.html1: \ + ${CATDEPS} +.if !defined(USETBL) + @echo "${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET}" + @${GROFF} -mdoc2html -P-b -P-u -P-o ${.IMPSRC} > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.else + @echo "${TBL} ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET}" + @cat ${.IMPSRC} | ${GROFF} -mdoc2html -P-b -P-u -P-o > ${.TARGET} || \ + (rm -f ${.TARGET}; false) +.endif + +.if defined(MAN) && !empty(MAN) +MANPAGES= ${MAN} +CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/} +.NOPATH: ${CATPAGES} +.if !defined(NOHTML) +HTMLPAGES= ${MANPAGES:C/(.*).([1-9])/\1.html\2/} +.endif +.endif + +MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \ + -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} + +.if defined(MANZ) +# chown and chmod are done afterward automatically +MCOMPRESS= gzip -cf +MCOMPRESSSUFFIX= .gz +.endif + +catinstall: catlinks +maninstall: manlinks + +__installpage: .USE +.if defined(MCOMPRESS) && !empty(MCOMPRESS) + @rm -f ${.TARGET} + ${MCOMPRESS} ${.ALLSRC} > ${.TARGET} + @chown ${MANOWN}:${MANGRP} ${.TARGET} + @chmod ${MANMODE} ${.TARGET} +.else + @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ + (echo "${MINSTALL} ${.ALLSRC} ${.TARGET}" && \ + ${MINSTALL} ${.ALLSRC} ${.TARGET}) +.endif + + +# Rules for cat'ed man page installation +.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no" +catpages:: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:S/.cat/./}${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:S/.cat/./}${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:S/.cat/./}${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${CATPAGES:O:u} +. if !defined(BUILD) && !make(all) && !make(${P}) +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:S/.cat/./}${MCOMPRESSSUFFIX}: .MADE +. endif +${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:S/.cat/./}${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +catpages:: +.endif + +# Rules for source page installation +.if defined(MANPAGES) && !empty(MANPAGES) +manpages:: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.PRECIOUS: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.if !defined(UPDATE) +.PHONY: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@} +.endif + +. for P in ${MANPAGES:O:u} +${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage +. endfor +.else +manpages:: +.endif + +.if ${MKCATPAGES} != "no" +catlinks: catpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif +.else +catlinks: +.endif + +manlinks: manpages +.if defined(MLINKS) && !empty(MLINKS) + @set ${MLINKS}; \ + while test $$# -ge 2; do \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + name=$$1; \ + shift; \ + dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ + t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ + if test $$l -nt $$t -o ! -f $$t; then \ + echo $$t -\> $$l; \ + ln -f $$l $$t; \ + fi; \ + done +.endif + +# Html rules +html: ${HTMLPAGES} + +.if defined(HTMLPAGES) && !empty(HTMLPAGES) +.for P in ${HTMLPAGES:O:u} +${HTMLDIR}/${P:T:E}/${P:T:R}.html: ${P} + ${MINSTALL} ${.ALLSRC} ${.TARGET} +.endfor +.endif +installhtml: ${HTMLPAGES:@P@${HTMLDIR}/${P:T:E}/${P:T:R}.html@} + +cleanhtml: +.if defined(HTMLPAGES) && !empty(HTMLPAGES) + rm -f ${HTMLPAGES} +.endif + + +.if defined(CATPAGES) +.if ${MKCATPAGES} != "no" && ${MKMAN} != "no" +realall: ${CATPAGES} +.else +realall: +.endif + +cleanman: + rm -f ${CATPAGES} +.else +cleanman: +.endif + +# Make sure all of the standard targets are defined, even if they do nothing. +clean depend includes lint regress tags: diff --git a/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.own.mk.in b/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.own.mk.in new file mode 100644 index 00000000000..d737c9ca1df --- /dev/null +++ b/pkgtools/bootstrap-mk-files/files/mods/SunOS.bsd.own.mk.in @@ -0,0 +1,327 @@ +# $NetBSD: SunOS.bsd.own.mk.in,v 1.1 2013/09/12 10:56:36 jperkin Exp $ + +.if !defined(_BSD_OWN_MK_) +_BSD_OWN_MK_=1 + +.if defined(MAKECONF) && exists(${MAKECONF}) +.include "${MAKECONF}" +.elif exists(@SYSCONFDIR@/mk.conf) +.include "@SYSCONFDIR@/mk.conf" +.elif exists(/etc/mk.conf) +.include "/etc/mk.conf" +.endif + +# Defining `SKEY' causes support for S/key authentication to be compiled in. +SKEY= yes + +# where the system object and source trees are kept; can be configurable +# by the user in case they want them in ~/foosrc and ~/fooobj, for example +BSDSRCDIR?= /usr/src +BSDOBJDIR?= /usr/obj + +BINGRP?= @ROOT_GROUP@ +BINOWN?= @ROOT_USER@ +BINMODE?= 555 +NONBINMODE?= 444 + +# Define MANZ to have the man pages compressed (gzip) +#MANZ= 1 + +MANDIR?= /usr/share/man +MANGRP?= @ROOT_GROUP@ +MANOWN?= @ROOT_USER@ +MANMODE?= ${NONBINMODE} +MANINSTALL?= ${_MANINSTALL} + +INFODIR?= /usr/share/info +INFOGRP?= @ROOT_GROUP@ +INFOOWN?= @ROOT_USER@ +INFOMODE?= ${NONBINMODE} + +LIBDIR?= /usr/lib +LINTLIBDIR?= /usr/libdata/lint +LIBGRP?= ${BINGRP} +LIBOWN?= ${BINOWN} +LIBMODE?= ${NONBINMODE} + +DOCDIR?= /usr/share/doc +HTMLDOCDIR?= /usr/share/doc/html +DOCGRP?= @ROOT_GROUP@ +DOCOWN?= @ROOT_USER@ +DOCMODE?= ${NONBINMODE} + +NLSDIR?= /usr/share/nls +NLSGRP?= @ROOT_GROUP@ +NLSOWN?= @ROOT_USER@ +NLSMODE?= ${NONBINMODE} + +KMODDIR?= /usr/lkm +KMODGRP?= @ROOT_GROUP@ +KMODOWN?= @ROOT_USER@ +KMODMODE?= ${NONBINMODE} + +LOCALEDIR?= /usr/share/locale +LOCALEGRP?= @ROOT_GROUP@ +LOCALEOWN?= @ROOT_USER@ +LOCALEMODE?= ${NONBINMODE} + +COPY?= -c +.if defined(UPDATE) +PRESERVE?= -p +.else +PRESERVE?= +.endif +.if defined(UNPRIVILEGED) +INSTPRIV?= -U +.endif +STRIPFLAG?= -s + +# Define SYS_INCLUDE to indicate whether you want symbolic links to the system +# source (``symlinks''), or a separate copy (``copies''); (latter useful +# in environments where it's not possible to keep /sys publicly readable) +#SYS_INCLUDE= symlinks + +# The sh3 port is incomplete. +.if ${MACHINE_ARCH} == "sh3eb" || ${MACHINE_ARCH} == "sh3el" +NOLINT=1 +NOPROFILE=1 +OBJECT_FMT?=COFF +NOPIC?=1 +.endif + +# The sparc64 port is incomplete. +# Profiling and linting is also off on the x86_64 port at the moment. +.if ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "x86_64" +NOPROFILE=1 +NOLINT=1 +.endif + +# The m68000 port is incomplete. +.if ${MACHINE_ARCH} == "m68000" +NOLINT=1 +NOPROFILE=1 +NOPIC?=1 +.endif + +# Data-driven table using make variables to control how +# toolchain-dependent targets and shared libraries are built +# for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out". +# SHLIB_TYPE: "ELF" or "a.out" or "" to force static libraries. +# +.if ${MACHINE_ARCH} == "alpha" || \ + ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ + ${MACHINE_ARCH} == "powerpc" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "sparc64" || \ + ${MACHINE_ARCH} == "x86_64" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68000" || \ + ${MACHINE_ARCH} == "arm" || \ + ${MACHINE} == "next68k" || \ + ${MACHINE} == "sun3" || \ + ${MACHINE} == "mvme68k" || \ + ${MACHINE} == "hp300" || \ + ${MACHINE} == "news68k" || \ + ${MACHINE} == "arm26" +OBJECT_FMT?=ELF +.else +OBJECT_FMT?=a.out +.endif + +# Location of the file that contains the major and minor numbers of the +# version of a shared library. If this file exists a shared library +# will be built by . +SHLIB_VERSION_FILE?= ${.CURDIR}/shlib_version + +# GNU sources and packages sometimes see architecture names differently. +# This table maps an architecture name to its GNU counterpart. +# Use as so: ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH} +.ifndef MACHINE_GNU_ARCH +GNU_ARCH.alpha=alpha +GNU_ARCH.arm26=arm +GNU_ARCH.arm32=arm +GNU_ARCH.arm=arm +GNU_ARCH.i386=i386 +GNU_ARCH.m68k=m68k +GNU_ARCH.mipseb=mipseb +GNU_ARCH.mipsel=mipsel +GNU_ARCH.ns32k=ns32k +GNU_ARCH.powerpc=powerpc +GNU_ARCH.sh3eb=sh +GNU_ARCH.sh3el=sh +GNU_ARCH.sparc=sparc +GNU_ARCH.sparc64=sparc64 +GNU_ARCH.vax=vax +MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}} +.endif + +# In order to identify NetBSD to GNU packages, we sometimes need +# an "elf" tag for historically a.out platforms. +.if ${OBJECT_FMT} == "ELF" && \ + (${MACHINE_ARCH} == "arm" || \ + ${MACHINE_ARCH} == "i386" || \ + ${MACHINE_ARCH} == "m68k" || \ + ${MACHINE_ARCH} == "sparc" || \ + ${MACHINE_ARCH} == "vax") +MACHINE_GNU_PLATFORM?= netbsdelf +.else +MACHINE_GNU_PLATFORM?= netbsd +.endif + +# CPU model, derived from MACHINE_ARCH +MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:S/arm26/arm/:S/arm32/arm/:C/sh3e[bl]/sh3/:S/m68000/m68k/} + +.if ${MACHINE_ARCH} == "mips" +.BEGIN: + @echo Must set MACHINE_ARCH to one of mipseb or mipsel + @false +.endif +.if ${MACHINE_ARCH} == "sh3" +.BEGIN: + @echo Must set MACHINE_ARCH to one of sh3eb or sh3el + @false +.endif + +TARGETS+= all clean cleandir depend dependall includes \ + install lint obj regress tags html installhtml cleanhtml +.PHONY: all clean cleandir depend dependall distclean includes \ + install lint obj regress tags beforedepend afterdepend \ + beforeinstall afterinstall realinstall realdepend realall \ + html installhtml cheanhtml + +# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes +# this is used by bsd.pkg.mk to stop "install" being defined +NEED_OWN_INSTALL_TARGET?= yes + +.if ${NEED_OWN_INSTALL_TARGET} == "yes" +.if !target(install) +install: .NOTMAIN beforeinstall subdir-install realinstall afterinstall +beforeinstall: .NOTMAIN +subdir-install: .NOTMAIN beforeinstall +realinstall: .NOTMAIN beforeinstall +afterinstall: .NOTMAIN subdir-install realinstall +.endif +all: .NOTMAIN realall subdir-all +subdir-all: .NOTMAIN +realall: .NOTMAIN +depend: .NOTMAIN realdepend subdir-depend +subdir-depend: .NOTMAIN +realdepend: .NOTMAIN +distclean: .NOTMAIN cleandir +.endif + +PRINTOBJDIR= printf "xxx: .MAKE\n\t@echo \$${.OBJDIR}\n" | ${MAKE} -B -s -f- + +# Define MKxxx variables (which are either yes or no) for users +# to set in /etc/mk.conf and override on the make commandline. +# These should be tested with `== "no"' or `!= "no"'. +# The NOxxx variables should only be used by Makefiles. +# + +MKCATPAGES?=yes + +.if defined(NODOC) +MKDOC=no +#.elif !defined(MKDOC) +#MKDOC=yes +.else +MKDOC?=yes +.endif + +_MANINSTALL= maninstall +.if ${MKCATPAGES} != "no" +_MANINSTALL+= catinstall +.endif + +MKINFO?=yes + +.if defined(NOLINKLIB) +MKLINKLIB=no +.else +MKLINKLIB?=yes +.endif +.if ${MKLINKLIB} == "no" +MKPICINSTALL=no +MKPROFILE=no +.endif + +MKLINT?=no + +.if defined(NOMAN) +MKMAN=no +.else +MKMAN?=yes +.endif +.if ${MKMAN} == "no" +MKCATPAGES=no +.endif + +.if defined(NONLS) +MKNLS=no +.else +MKNLS?=yes +.endif + +# +# MKOBJDIRS controls whether object dirs are created during "make build". +# MKOBJ controls whether the "make obj" rule does anything. +# +.if defined(NOOBJ) +MKOBJ=no +MKOBJDIRS=no +.else +MKOBJ?=yes +MKOBJDIRS?=no +.endif + +.if defined(NOPIC) +MKPIC=no +.else +MKPIC?=yes +.endif + +.if defined(NOPICINSTALL) +MKPICINSTALL=no +.else +MKPICINSTALL?=yes +.endif + +.if defined(NOPROFILE) +MKPROFILE=no +.else +MKPROFILE?=yes +.endif + +.if defined(NOSHARE) +MKSHARE=no +.else +MKSHARE?=yes +.endif +.if ${MKSHARE} == "no" +MKCATPAGES=no +MKDOC=no +MKINFO=no +MKMAN=no +MKNLS=no +.endif + +.if defined(NOCRYPTO) +MKCRYPTO=no +.else +MKCRYPTO?=yes +.endif + +MKCRYPTO_IDEA?=no + +MKCRYPTO_RC5?=no + +.if defined(NOKERBEROS) || (${MKCRYPTO} == "no") +MKKERBEROS=no +.else +MKKERBEROS?=yes +.endif + +MKSOFTFLOAT?=no + +.endif # _BSD_OWN_MK_ -- cgit v1.2.3