diff options
author | jlam <jlam@pkgsrc.org> | 2007-07-27 18:37:35 +0000 |
---|---|---|
committer | jlam <jlam@pkgsrc.org> | 2007-07-27 18:37:35 +0000 |
commit | 4dde9bc3a44cb6e34eb6d2e542066ffe51eead7f (patch) | |
tree | ec0c170578229698f0f119838fd82a62982a1c13 /mk/pkginstall | |
parent | bd630c4f6f6b17ff316a0a3cb19b3fca54711cd1 (diff) | |
download | pkgsrc-4dde9bc3a44cb6e34eb6d2e542066ffe51eead7f.tar.gz |
Move the +SHLIBS generation code back into the pkginstall module. In the
plist module, it was being "defined" too late, and the pkginstall module
never created any +SHLIBS scripts. Sidestep the tools problems with
SHLIB_TYPE by pretending they don't exist (for now).
XXX SHLIB_TYPE needs to be re-thought or removed altogether.
Diffstat (limited to 'mk/pkginstall')
-rw-r--r-- | mk/pkginstall/bsd.pkginstall.mk | 42 | ||||
-rw-r--r-- | mk/pkginstall/shlibs | 51 |
2 files changed, 92 insertions, 1 deletions
diff --git a/mk/pkginstall/bsd.pkginstall.mk b/mk/pkginstall/bsd.pkginstall.mk index 21be9014232..c61eb4f5545 100644 --- a/mk/pkginstall/bsd.pkginstall.mk +++ b/mk/pkginstall/bsd.pkginstall.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.pkginstall.mk,v 1.28 2007/07/23 15:23:47 jlam Exp $ +# $NetBSD: bsd.pkginstall.mk,v 1.29 2007/07/27 18:37:35 jlam Exp $ # # This Makefile fragment is included by bsd.pkg.mk and implements the # common INSTALL/DEINSTALL scripts framework. To use the pkginstall @@ -686,6 +686,46 @@ ${_INSTALL_SHELL_FILE}: ../../mk/pkginstall/shell ${TOUCH} ${TOUCH_ARGS} ${.TARGET}; \ fi +# SHLIB_TYPE +# The type of shared library supported by the platform. +# +# Default value: ${_OPSYS_SHLIB_TYPE} +# +# LDCONFIG_ADD_CMD +# LDCONFIG_REMOVE_CMD +# Command-line to be invoked to update the system run-time library +# search paths database when adding and removing a package. +# +# Default value: ${LDCONFIG} +# +SHLIB_TYPE= ${_SHLIB_TYPE_cmd:sh} +_SHLIB_TYPE_cmd= \ + ${SETENV} PKG_INFO_CMD=${PKG_INFO_CMD:Q} \ + ${SH} ${.CURDIR}/../../mk/scripts/shlib-type ${_OPSYS_SHLIB_TYPE:Q} + +LDCONFIG_ADD_CMD?= ${_LDCONFIG_ADD_CMD.${OPSYS}} +LDCONFIG_REMOVE_CMD?= ${_LDCONFIG_REMOVE_CMD.${OPSYS}} +_LDCONFIG_ADD_CMD.${OPSYS}?= ${LDCONFIG} +_LDCONFIG_REMOVE_CMD.${OPSYS}?= ${LDCONFIG} +FILES_SUBST+= LDCONFIG_ADD_CMD=${LDCONFIG_ADD_CMD:Q} +FILES_SUBST+= LDCONFIG_REMOVE_CMD=${LDCONFIG_REMOVE_CMD:Q} + +.if ${SHLIB_TYPE} == "a.out" +RUN_LDCONFIG?= yes +.else +RUN_LDCONFIG?= no +.endif + +_INSTALL_SHLIBS_FILE= ${_PKGINSTALL_DIR}/shlibs +.if !empty(RUN_LDCONFIG:M[Yy][Ee][Ss]) +_INSTALL_UNPACK_TMPL+= ${_INSTALL_SHLIBS_FILE} +.endif + +${_INSTALL_SHLIBS_FILE}: ../../mk/pkginstall/shlibs + ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} + ${_PKG_SILENT}${_PKG_DEBUG} \ + ${SED} ${FILES_SUBST_SED} ../../mk/pkginstall/shlibs > ${.TARGET} + # FONTS_DIRS.<type> are lists of directories in which the font databases # are updated. If this is non-empty, then the appropriate tools is # used to update the fonts database for the font type. The supported diff --git a/mk/pkginstall/shlibs b/mk/pkginstall/shlibs new file mode 100644 index 00000000000..be36408b88b --- /dev/null +++ b/mk/pkginstall/shlibs @@ -0,0 +1,51 @@ +# $NetBSD: shlibs,v 1.7 2007/07/27 18:37:35 jlam Exp $ +# +# Generate a +SHLIBS script that updates the system run-time library +# search paths database for the package. +# +case "${STAGE},$1" in +UNPACK,|UNPACK,+SHLIBS) + ${CAT} > ./+SHLIBS << 'EOF' +#!@SH@ +# +# +SHLIBS - system run-time library search paths database management script +# +# Usage: ./+SHLIBS ADD|REMOVE [metadatadir] +# +# This scripts rebuilds the system database of run-time library search +# paths so that the system can find the shared libraries of the package +# associated with <metadatadir>. +# + +ECHO="@ECHO@" +PWD_CMD="@PWD_CMD@" +TRUE="@TRUE@" + +SELF=$0 +ACTION=$1 + +CURDIR=`${PWD_CMD}` +PKG_METADATA_DIR="${2-${CURDIR}}" +: ${PKGNAME=${PKG_METADATA_DIR##*/}} +: ${PKG_PREFIX=@PREFIX@} + +exitcode=0 +case $ACTION in +ADD) + ${ECHO} "${PKGNAME}: rebuilding run-time library search paths database" + ( @LDCONFIG_ADD_CMD@ ) >/dev/null 2>&1 || ${TRUE} + ;; + +REMOVE) + ${ECHO} "${PKGNAME}: rebuilding run-time library search paths database" + ( @LDCONFIG_REMOVE_CMD@ ) >/dev/null 2>&1 || ${TRUE} + ;; +esac +exit $exitcode + +EOF + ${SED} -n "/^\# SHLIBS: /p" ${SELF} >> ./+SHLIBS + ${CHMOD} +x ./+SHLIBS + ;; +esac + |