summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjlam <jlam>2003-08-30 10:22:00 +0000
committerjlam <jlam>2003-08-30 10:22:00 +0000
commitcaf51240519139a5dd2067f7545adbb246f36194 (patch)
tree59dcb5d8bdfaf72a0e475bbec222d3fc155d8e36
parent81e877cf63d5f2ad33605f210296b8c1c5603d22 (diff)
downloadpkgsrc-caf51240519139a5dd2067f7545adbb246f36194.tar.gz
Protect references to ${PREFIX} and ${X11BASE} directories from being
removed when unbuildlinkifying files. Also properly convert -[IL]${DEPOTBASE}/<pkg>/path to -[IL]${BUILDLINK_DIR}/path in the seeded cache so that we can properly use pkgviews packages as dependencies for overwrite packages.
-rw-r--r--mk/buildlink3/bsd.buildlink3.mk36
1 files changed, 34 insertions, 2 deletions
diff --git a/mk/buildlink3/bsd.buildlink3.mk b/mk/buildlink3/bsd.buildlink3.mk
index 8ea7480b866..8f7ed28fa3e 100644
--- a/mk/buildlink3/bsd.buildlink3.mk
+++ b/mk/buildlink3/bsd.buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.buildlink3.mk,v 1.1.2.29 2003/08/30 07:53:07 jlam Exp $
+# $NetBSD: bsd.buildlink3.mk,v 1.1.2.30 2003/08/30 10:22:00 jlam Exp $
#
# An example package buildlink3.mk file:
#
@@ -422,7 +422,7 @@ CONFIGURE_ENV+= BUILDLINK_UPDATE_CACHE=no
# The caching code, which greatly speeds up the build process, works only
# on certain platforms.
#
-_BLNK_SEED_CACHE?= passthru transform # block
+_BLNK_SEED_CACHE?= # passthru transform block
_BLNK_CACHE_ALL= # empty
_BLNK_CACHE_ALL+= Darwin-6*-*
_BLNK_CACHE_ALL+= IRIX-*-*
@@ -485,6 +485,12 @@ _BLNK_MANGLE_DIRS+= ${BUILDLINK_X11_DIR}
_BLNK_MANGLE_DIRS+= ${WRKDIR}
_BLNK_MANGLE_DIRS+= ${_BLNK_ALLOWED_RPATHDIRS}
+# We only want these for the untransform case, so don't add these
+# directories to _BLNK_{,UN}PROTECT_DIRS below.
+#
+_BLNK_MANGLE_DIRS+= ${PREFIX}
+_BLNK_MANGLE_DIRS+= ${X11BASE}
+
_BLNK_MANGLE_START= _bUiLdLiNk_
_BLNK_MANGLE_END= \#
.for _dir_ in ${_BLNK_MANGLE_DIRS}
@@ -519,6 +525,13 @@ _BLNK_UNPROTECT_DIRS+= ${BUILDLINK_DIR}
_BLNK_TRANSFORM+= mangle:${_dir_}:${_BLNK_MANGLE_DIR.${_dir_}}
.endfor
#
+# Protect ${PREFIX} and ${X11BASE} from change when untransforming, e.g.
+# when unbuildlinkifying files.
+#
+.for _dir_ in ${PREFIX} ${X11BASE}
+_BLNK_TRANSFORM+= untransform:mangle:${_dir_}:${_BLNK_MANGLE_DIR.${_dir_}}
+.endfor
+#
# Change references to ${DEPOTBASE}/<pkg> into ${LOCALBASE} so that
# "overwrite" packages think headers and libraries for "pkgviews" packages
# are just found in the default view.
@@ -593,6 +606,13 @@ _BLNK_TRANSFORM+= no-rpath
_BLNK_TRANSFORM+= rpath:${_BLNK_MANGLE_DIR.${_dir_}}:${_dir_}
.endfor
#
+# Undo the protection for ${PREFIX} and ${X11BASE} so that the directory
+# names are correct, e.g. when unbuildlinkifying files.
+#
+.for _dir_ in ${PREFIX} ${X11BASE}
+_BLNK_TRANSFORM+= untransform:mangle:${_BLNK_MANGLE_DIR.${_dir_}}:${_dir_}
+.endfor
+#
# Undo the protection so the correct directory names are passed to the
# the wrappee.
#
@@ -1173,6 +1193,18 @@ ${_BLNK_WRAP_CACHE_ADD_TRANSFORM}:
. if !empty(_BLNK_SEED_CACHE:Mtransform)
. if ${PKG_INSTALLATION_TYPE} == "overwrite"
${_PKG_SILENT}${_PKG_DEBUG} \
+ ( ${ECHO} "-I${DEPOTBASE}/*)"; \
+ ${ECHO} " arg=\"-I${BUILDLINK_DIR}/\$${arg#-I${DEPOTBASE}/[!/]*/}\""; \
+ ${ECHO} " cachehit=yes"; \
+ ${ECHO} " ;;"; \
+ ) >> ${.TARGET}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ ( ${ECHO} "-L${DEPOTBASE}/*)"; \
+ ${ECHO} " arg=\"-L${BUILDLINK_DIR}/\$${arg#-I${DEPOTBASE}/[!/]*/}\""; \
+ ${ECHO} " cachehit=yes"; \
+ ${ECHO} " ;;"; \
+ ) >> ${.TARGET}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
( ${ECHO} "-I${LOCALBASE}/*)"; \
${ECHO} " arg=\"-I${BUILDLINK_DIR}/\$${arg#-I${LOCALBASE}/}\""; \
${ECHO} " cachehit=yes"; \