summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc11
-rw-r--r--share/mk/bsd.lib.mk11
2 files changed, 9 insertions, 3 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index abf4c18..ba1ee13 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -227,6 +227,7 @@ XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} -DNO_FORTRAN -DNO_GDB
# world stage
WMAKEENV= ${CROSSENV} \
DESTDIR=${WORLDTMP} \
+ _SHLIBDIRPREFIX=${WORLDTMP} \
INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${TMPPATH}
WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 58bce19..a13df73 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -208,10 +208,15 @@ _libinstall:
${_INSTALLFLAGS} ${_SHLINSTALLFLAGS} \
${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
.if defined(SHLIB_LINK)
- ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}
-.if (${LIBDIR} != ${SHLIBDIR})
- ln -fs ${LIBDIR:C|/[^/]+|/..|g:S|^/||}${SHLIBDIR}/${SHLIB_NAME} \
+.if ${SHLIBDIR} == ${LIBDIR}
+ ln -fs ${SHLIB_NAME} ${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+.else
+ ln -fs ${_SHLIBDIRPREFIX}${SHLIBDIR}/${SHLIB_NAME} \
${DESTDIR}${LIBDIR}/${SHLIB_LINK}
+.if exists(${DESTDIR}${LIBDIR}/${SHLIB_NAME})
+ -chflags noschg ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
+ rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
+.endif
.endif
.endif
.endif
OpenPOWER on IntegriCloud