summaryrefslogtreecommitdiff
path: root/mk/plist
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2007-07-23 15:23:46 +0000
committerjlam <jlam@pkgsrc.org>2007-07-23 15:23:46 +0000
commit9bb51d11c7a706d988fd8d7cdb5cdc1bbb787e43 (patch)
treec34cd2489f7e43887b1320196af63f73935f78d2 /mk/plist
parenta3551a926266267a1504c935ab7c2bd8a4efcfe9 (diff)
downloadpkgsrc-9bb51d11c7a706d988fd8d7cdb5cdc1bbb787e43.tar.gz
Putting bsd.pkginstall.mk under bsd.tools.mk was a bad idea -- the
former set several USE_TOOLS lines that were being missed by bsd.tools.mk. Rearrange the +SHLIBS code so that bsd.tools.mk can now be included after bsd.pkginstall.mk again. The +SHLIBS code has now been moved over to the plist module, which is so far the repository for all of the shlib-type handling. This should fix the problem with fonts handling being broken.
Diffstat (limited to 'mk/plist')
-rw-r--r--mk/plist/plist.mk39
-rw-r--r--mk/plist/shlibs51
2 files changed, 89 insertions, 1 deletions
diff --git a/mk/plist/plist.mk b/mk/plist/plist.mk
index 88cef677edc..25b652ef34f 100644
--- a/mk/plist/plist.mk
+++ b/mk/plist/plist.mk
@@ -1,4 +1,4 @@
-# $NetBSD: plist.mk,v 1.27 2007/07/18 18:01:03 jlam Exp $
+# $NetBSD: plist.mk,v 1.28 2007/07/23 15:23:48 jlam Exp $
#
# This Makefile fragment handles the creation of PLISTs for use by
# pkg_create(8).
@@ -157,6 +157,13 @@ _SHLIB_AWKFILE.a.out= ${.CURDIR}/../../mk/plist/shlib-aout.awk
_SHLIB_AWKFILE.dylib= ${.CURDIR}/../../mk/plist/shlib-dylib.awk
_SHLIB_AWKFILE.none= ${.CURDIR}/../../mk/plist/shlib-none.awk
+# SHLIB_TYPE is the type of shared library supported by the platform.
+SHLIB_TYPE= ${_SHLIB_TYPE_cmd:sh}
+_SHLIB_TYPE_cmd= \
+ ${SETENV} ECHO=${TOOLS_ECHO:Q} FILE_CMD=${TOOLS_FILE_CMD:Q} \
+ TEST=${TOOLS_TEST:Q} PKG_INFO_CMD=${PKG_INFO_CMD:Q} \
+ ${SH} ${.CURDIR}/../../mk/scripts/shlib-type ${_OPSYS_SHLIB_TYPE:Q}
+
######################################################################
# GENERATE_PLIST is a sequence of commands, terminating in a semicolon,
@@ -251,3 +258,33 @@ INFO_FILES_cmd= \
${SETENV} ${_PLIST_AWK_ENV} ${AWK} ${_PLIST_INFO_AWK} | \
${AWK} '($$0 !~ "-[0-9]*(\\.gz)?$$") { print }'
.endif
+
+# 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}
+#
+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/plist/shlibs
+ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ ${SED} ${FILES_SUBST_SED} ../../mk/pkginstall/shlibs > ${.TARGET}
diff --git a/mk/plist/shlibs b/mk/plist/shlibs
new file mode 100644
index 00000000000..d9a90f95525
--- /dev/null
+++ b/mk/plist/shlibs
@@ -0,0 +1,51 @@
+# $NetBSD: shlibs,v 1.1 2007/07/23 15:23:48 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
+