diff options
author | seb <seb@pkgsrc.org> | 2003-06-19 21:41:13 +0000 |
---|---|---|
committer | seb <seb@pkgsrc.org> | 2003-06-19 21:41:13 +0000 |
commit | 5ab8be8066273669ac731b3a0f60adee2c6fa7d9 (patch) | |
tree | a2fb7483e3a18fa8f83edeb1496c00f88dff6039 /mk/texinfo.mk | |
parent | 4c7c717eed7b924103792374e8c81cc3608d302c (diff) | |
download | pkgsrc-5ab8be8066273669ac731b3a0f60adee2c6fa7d9.tar.gz |
Introduce a new framework to handle info files, install-info and
makeinfo commands.
The goal of the new framework is twofold:
- reduce the number of '@exec' and '@unexec' in PLIST by
using INSTALL/DEINSTALL scripts to handle entries addition/removal
Info directory file.
- achieve lighter dependencies by avoiding unnecessary run-time
dependency on the gtexinfo package and if needed with the help of the
standalone install-info command provided by the recently imported package
pkgtools/pkg_install-info.
A package must be sightly updated to use this new framework and
must define the variable USE_NEW_TEXINFO. This variable will
be removed from the pkgsrc tree when all package would have been
updated.
For details see section 10.24 of Packages.txt, comments in
mk/{texinfo.mk,buildlink2/bsd.buildlink2.mk} and upcoming mail to
<tech-pkg at netbsd dot org>.
Diffstat (limited to 'mk/texinfo.mk')
-rw-r--r-- | mk/texinfo.mk | 135 |
1 files changed, 132 insertions, 3 deletions
diff --git a/mk/texinfo.mk b/mk/texinfo.mk index ce0b05cea53..22f31764c90 100644 --- a/mk/texinfo.mk +++ b/mk/texinfo.mk @@ -1,11 +1,138 @@ -# $NetBSD: texinfo.mk,v 1.10 2003/05/06 23:43:53 seb Exp $ +# $NetBSD: texinfo.mk,v 1.11 2003/06/19 21:41:15 seb Exp $ # -# This Makefile fragment is included by packages that provide info files. +# This Makefile fragment is included by bsd.pkg.mk when INFO_FILES and +# USE_NEW_TEXINFO are defined. +# +# Or... +# +# This Makefile fragment is included by packages that provide info files +# and do not _yet_ use the new framework. # .if !defined(TEXINFO_MK) TEXINFO_MK= # defined +# +# This switch is here only until all packages are converted to use +# the new framework. +# +.if defined(USE_NEW_TEXINFO) +# +# Handle install-info. +# + +# Use bsd.pkg.install.mk framework i.e. INSTALL/DEINSTALL scripts +# to handle install-info execution. +USE_PKGINSTALL= YES + +# Pathname relative to ${PREFIX} of directory holding the info +# files and the Info dir file. +INFO_DIR?= info + +# Does the system have the install-info command? +# Any version will fit (really?). +_INSTALL_INFO= +.for _i_ in /usr/bin/install-info /sbin/install-info +. if exists(${_i_}) +_INSTALL_INFO= ${_i_} +. endif +.endfor + +# If no install-info was found provide one with the pkg_install-info package. +# And set INSTALL_INFO to the install-info command it provides. +.if empty(_INSTALL_INFO) +_PKG_INSTALL_INFO_PREFIX_DEFAULT= ${LOCALBASE} +DEPENDS+= pkg_install-info-[0-9]*:../../pkgtools/pkg_install-info +EVAL_PREFIX+= _PKG_INSTALL_INFO_PREFIX=pkg_install-info +INSTALL_INFO= ${_PKG_INSTALL_INFO_PREFIX}/bin/pkg_install-info +.else +INSTALL_INFO= ${_INSTALL_INFO} +.endif + +# Generate INSTALL/DEINSTALL scripts code for handling install-info. +INSTALL_EXTRA_TMPL+= ${.CURDIR}/../../mk/install/install-info +DEINSTALL_EXTRA_TMPL+= ${.CURDIR}/../../mk/install/install-info +FILES_SUBST+= INFO_FILES=${INFO_FILES:Q} +FILES_SUBST+= INSTALL_INFO=${INSTALL_INFO:Q} +FILES_SUBST+= INFO_DIR=${INFO_DIR:Q} + +# When not using buildlink2 set INSTALL_INFO in environment to ${ECHO} +# so the package build/install step does not register itself the info +# files as this is the job of the INSTALL script. +# WARNING: this is far from being failsafe. +# When not using buildlink2 patch files so that install-info is _not_ +# run are likely to be needed. +.if !empty(USE_BUILDLINK2:M[nN][oO]) +CONFIGURE_ENV+= INSTALL_INFO="${TRUE}" +MAKE_ENV+= INSTALL_INFO="${TRUE}" +.endif + +# +# Handle makeinfo if requested. +# + +# Minimum required version for the GNU makeinfo command. +TEXINFO_REQD?= 3.12 + +# By default makeinfo is not needed for building. +USE_MAKEINFO?= NO + +.if empty(USE_MAKEINFO:M[nN][oO]) + +# Does the system has a makeinfo command? +_MAKEINFO= +. for _i_ in /usr/bin/makeinfo +. if exists(${_i_}) +_MAKEINFO= ${_i_} +. endif +. endfor + +# Record makeinfo's version. +# If makeinfo's version contains useful information outside [0-9].[0-9], +# the following would have to be changed as well as the comparison below. +. if !empty(_MAKEINFO) && !defined(MAKEINFO_VERSION) +MAKEINFO_VERSION_OUTPUT!= ${_MAKEINFO} --version 2>/dev/null || ${ECHO} +MAKEINFO_VERSION=${MAKEINFO_VERSION_OUTPUT:M[0-9]*.[0-9]*:C/[^0-9.]//} +MAKEFLAGS+= MAKEINFO_VERSION=${MAKEINFO_VERSION} +. endif + +# Sort out if the version provided by devel/gtexinfo is needed. +# If it is add it as build time dependency and set MAKEINFO +# to the makeinfo it provides. +# Here it is assumed devel/gtexinfo's makeinfo version will be +# superior or equal to TEXINFO_REQD. +_NEED_TEXINFO= YES +. if defined(MAKEINFO_VERSION) && ${MAKEINFO_VERSION} >= ${TEXINFO_REQD} +_NEED_TEXINFO= NO +. endif +. if !empty(_NEED_TEXINFO:M[yY][eE][sS]) +BUILD_DEPENDS+= gtexinfo>=${TEXINFO_REQD}:../../devel/gtexinfo +_GTEXINFO_PREFIX_DEFAULT= ${LOCALBASE} +EVAL_PREFIX+= _GTEXINFO_PREFIX=gtexinfo +MAKEINFO= ${_GTEXINFO_PREFIX}/bin/makeinfo +. else +MAKEINFO= ${_MAKEINFO} +. endif + +# When not using buildlink2 set MAKEINFO in environment to the pathname +# of the right makeinfo command. +. if !empty(USE_BUILDLINK2:M[nN][oO]) +CONFIGURE_ENV+= MAKEINFO="${MAKEINFO}" +MAKE_ENV+= MAKEINFO="${MAKEINFO}" +. endif + +.else # !USE_MAKEINFO +# When not using buildlink2 set MAKEINFO in environment to ${FALSE} +. if !empty(USE_BUILDLINK2:M[nN][oO]) +CONFIGURE_ENV+= MAKEINFO="${FALSE}" +MAKE_ENV+= MAKEINFO="${FALSE}" +. endif +.endif # USE_MAKEINFO + +############################################################## +.else # !USE_NEW_TEXINFO +# Obsolete handling below... Will go away ASAP. + # Does the system have the GNU texinfo tools and if yes, what version are they? _INSTALL_INFO= .for _i_ in /usr/bin/install-info /sbin/install-info @@ -15,7 +142,7 @@ _INSTALL_INFO= ${_i_} .endfor .if !empty(_INSTALL_INFO) . if !defined(INSTALL_INFO_VERSION) -_INSTALL_INFO_VERSION_OUTPUT!= ${_INSTALL_INFO} --version 2>/dev/null +_INSTALL_INFO_VERSION_OUTPUT!= ${_INSTALL_INFO} --version 2>/dev/null || ${ECHO} # If the install-info version contains useful information outside [0-9].[0-9], # the following would have to be changed as well as the comparison below INSTALL_INFO_VERSION=${_INSTALL_INFO_VERSION_OUTPUT:M[0-9]*.[0-9]*:C/[^0-9.]//} @@ -87,4 +214,6 @@ texinfo-override: done ) .endif # TEXINFO_OVERRIDE +.endif # USE_NEW_TEXINFO + .endif # TEXINFO_MK |