diff options
-rw-r--r-- | mk/bsd.pkg.mk | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/mk/bsd.pkg.mk b/mk/bsd.pkg.mk index 62d1b7d7b44..7bfdac26ec0 100644 --- a/mk/bsd.pkg.mk +++ b/mk/bsd.pkg.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.pkg.mk,v 1.251 1999/04/09 02:06:53 hubertf Exp $ +# $NetBSD: bsd.pkg.mk,v 1.252 1999/04/13 14:18:11 agc Exp $ # # This file is in the public domain. # @@ -314,13 +314,13 @@ MTREE_ARGS?= -U -f ${MTREE_FILE} -d -e -p .if (${OPSYS} == "NetBSD") NEED_OWN_INSTALL_TARGET= no -.include "../../mk/bsd.own.mk" +.include <bsd.own.mk> SHAREOWN = ${DOCOWN} SHAREGRP = ${DOCGRP} SHAREMODE = ${DOCMODE} .elif (${OPSYS} == "SunOS") NEED_OWN_INSTALL_TARGET= no -.include "../../mk/bsd.own.mk" +.include <bsd.own.mk> SHAREOWN = ${DOCOWN} SHAREGRP = ${DOCGRP} SHAREMODE = ${DOCMODE} @@ -1337,9 +1337,10 @@ root-install: '.*/lib[^/]+\.so\.[0-9]+\.[0-9]+$$' \ ${PLIST} || ${TRUE}`; \ if [ X"$$sos" != X"" ]; then \ - case "${SHLIB_TYPE}" in \ + shlib_type=`${MAKE} ${.MAKEFLAGS} show-shlib-type`; \ + case "$$shlib_type" in \ "ELF") \ - ${ECHO_MSG} "===> [Automatic ${SHLIB_TYPE} shared object handling]";\ + ${ECHO_MSG} "===> [Automatic $$shlib_type shared object handling]";\ for so2 in $$sos; do \ so1=`${ECHO} $$so2 | ${SED} -e 's|\.[0-9]*$$||'`; \ so0=`${ECHO} $$so1 | ${SED} -e 's|\.[0-9]*$$||'`; \ @@ -1363,8 +1364,9 @@ root-install: done; \ ;; \ "a.out") \ - ${ECHO_MSG} "===> [Automatic ${SHLIB_TYPE} shared object handling]";\ - if ${GREP} -q '^@exec ${LDCONFIG}$$' ${PLIST}; then \ + ${ECHO_MSG} "===> [Automatic $$shlib_type shared object handling]";\ + cnt=`${EGREP} -c -x '@exec[ ]*${LDCONFIG}' ${PLIST}`; \ + if [ $$cnt -eq 0 ]; then \ ${ECHO} "@exec ${LDCONFIG}" >> ${PLIST}; \ ${ECHO} "@unexec ${LDCONFIG}" >> ${PLIST}; \ fi; \ @@ -1372,7 +1374,7 @@ root-install: ${ECHO_MSG} "$$sos"; \ ${ECHO_MSG} "Running ${LDCONFIG}"; \ fi; \ - ${LDCONFIG}; \ + ${LDCONFIG} || ${TRUE}; \ ;; \ "*") \ ${ECHO_MSG} "No shared libraries for ${MACHINE_ARCH}"; \ @@ -1398,6 +1400,26 @@ root-install: ${_PKG_SILENT}${_PKG_DEBUG}${TOUCH} ${TOUCH_FLAGS} ${WRKDIR}/.install_done +# Show the shared lib type being built: one of ELF, a.out or none +show-shlib-type: + ${_PKG_SILENT}${_PKG_DEBUG} \ + cd ${WRKDIR} && \ + sotype=none; \ + if [ "X${MKPIC}" != "Xno" -a "X${MKPICINSTALL}" != "Xno" -a \ + "X${NOPIC}" = "X" -a "X${NOPICINSTALL}" = "X" ]; then \ + ${ECHO} "int main() { exit(0); }" > a.$$$$.c; \ + ${CC} ${CFLAGS} a.$$$$.c -o a.$$$$.out; \ + case `${FILE} a.$$$$.out` in \ + *ELF*dynamically*) \ + sotype=ELF ;; \ + *dynamically*) \ + sotype="a.out" ;; \ + esac; \ + fi; \ + ${ECHO} "$$sotype"; \ + ${RM} -f a.$$$$.c a.$$$$.out + + ################################################################ # Skeleton targets start here # |