summaryrefslogtreecommitdiff
path: root/mk/flavor/pkg/replace.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/flavor/pkg/replace.mk')
-rw-r--r--mk/flavor/pkg/replace.mk26
1 files changed, 24 insertions, 2 deletions
diff --git a/mk/flavor/pkg/replace.mk b/mk/flavor/pkg/replace.mk
index e58ff9f3196..7ed4317c40a 100644
--- a/mk/flavor/pkg/replace.mk
+++ b/mk/flavor/pkg/replace.mk
@@ -1,8 +1,11 @@
-# $NetBSD: replace.mk,v 1.24 2008/01/23 14:48:50 gdt Exp $
+# $NetBSD: replace.mk,v 1.25 2009/06/09 08:40:27 joerg Exp $
#
# _flavor-replace:
-# Updates a package in-place on the system.
+# Updates a package in-place on the system (USE_DESTDIR=yes).
+#
+# _flavor-destdir-replace:
+# Updates a package in-place on the system (USE_DESTDIR=yes).
#
# See also:
# replace
@@ -24,6 +27,13 @@ _flavor-replace: \
replace-fixup-installed-info \
.PHONY
+_flavor-destdir-replace: \
+ replace-names \
+ replace-destdir \
+ replace-fixup-required-by \
+ replace-fixup-installed-info \
+ .PHONY
+
# _flavor-undo-replace:
# Undoes the actions from a previous _flavor-replace.
#
@@ -172,3 +182,15 @@ replace-clean: .PHONY
${RM} -f ${WRKDIR}/$$newname${PKG_SUFX}; \
${RM} -f ${_REPLACE_OLDNAME_FILE} ${_REPLACE_NEWNAME_FILE} \
${_COOKIE.replace}
+
+replace-destdir: .PHONY
+ @${PHASE_MSG} "Updating using binary package of "${PKGNAME:Q}
+.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
+ @${MKDIR} ${_CROSS_DESTDIR}${PREFIX}
+ ${PKG_ADD} -u -m ${MACHINE_ARCH} -I -p ${_CROSS_DESTDIR}${PREFIX} ${PKGFILE}
+ @${ECHO} "Fixing recorded cwd..."
+ @${SED} -e 's|@cwd ${_CROSS_DESTDIR}|@cwd |' ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS > ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp
+ @${MV} ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS.tmp ${_PKG_DBDIR}/${PKGNAME:Q}/+CONTENTS
+.else
+ ${PKG_ADD} -u ${PKGFILE}
+.endif