pkgsrc/mk/install/replace.mk
gdt 553cac4a33 Remove warning about 'make replace' being experimental.
Lots of people have been using make replace for many years, at least
since 2006.  It hasn't been experimental for most of those years, and
there have been no reports of "data loss".
2015-09-07 19:23:47 +00:00

75 lines
1.8 KiB
Makefile

# $NetBSD: replace.mk,v 1.17 2015/09/07 19:23:47 gdt Exp $
#
# Public targets:
#
# replace:
# Updates a package in-place on the system.
# It will acquire elevated privileges just-in-time.
#
# undo-replace:
# Undoes the effects of a previous "make replace".
# It will acquire elevated privileges just-in-time.
#
#
# Private targets that must be defined by the package system format:
#
# _pkgformat-replace:
# Updates a package in-place on the system (USE_DESTDIR=no).
#
# _pkgformat-destdir-replace:
# Updates a package in-place on the system (USE_DESTDIR=yes).
#
# _pkgformat-undo-replace:
# Undoes a previous "make _pkgformat-replace".
# _pkgformat-destdir-undo-replace:
# Undoes a previous "make _pkgformat-destdir-replace".
.if ${_USE_DESTDIR} == "no"
_REPLACE_TARGETS+= ${_PKGSRC_BUILD_TARGETS}
.elif ${_KEEP_BIN_PKGS} == "no"
_REPLACE_TARGETS+= stage-package-create
.else
_REPLACE_TARGETS+= package
.endif
_REPLACE_TARGETS+= replace-message
_REPLACE_TARGETS+= unprivileged-install-hook
#
# replace
#
.PHONY: replace
.if defined(_PKGSRC_BARRIER)
replace: ${_REPLACE_TARGETS} su-target
.else
replace: barrier
.endif
replace-message: .PHONY
@${PHASE_MSG} "Replacing for ${PKGNAME}"
.if ${_USE_DESTDIR} == "no"
su-replace: .PHONY _pkgformat-replace
.else
su-replace: .PHONY _pkgformat-destdir-replace
.endif
MAKEFLAGS.su-replace= _UPDATE_RUNNING=yes
MAKEFLAGS.su-replace+= PKGNAME_REQD=${PKGNAME_REQD:Q}
#
# undo-replace
#
undo-replace: .PHONY undo-replace-message su-target
undo-replace-message: .PHONY
@${PHASE_MSG} "Undoing replacement for ${PKGNAME}"
@${WARNING_MSG} "experimental target - DATA LOSS MAY OCCUR."
.if ${_USE_DESTDIR} == "no"
su-undo-replace: .PHONY _pkgformat-undo-replace
.else
su-undo-replace: .PHONY _pkgformat-destdir-undo-replace
.endif
MAKEFLAGS.su-undo-replace= _UPDATE_RUNNING=yes