pkgsrc/mk/install/replace.mk
agc 4b9f0a9c84 Add a new definition, PKGSRC_KEEP_BIN_PKGS, which defaults to "no".
This definition controls whether the binary package which is built
during package installation will be copied to pkgsrc/packages/All.

To retain binary packages in pkgsrc/packages/All, set

	PKGSRC_KEEP_BIN_PKGS=yes

in environment or MAKECONF. If this is not set, binary packages
will not be preserved after their WRKDIR is removed. This may not
be what you want.

To preserve the status quo since 2013/05/22, and just delete the
binary package after it's built, the default for PKGSRC_KEEP_BIN_PKGS
is "no", or it can be explicitly set.

As reviewed on tech-pkg.
2014-12-06 23:28:18 +00:00

76 lines
1.8 KiB
Makefile

# $NetBSD: replace.mk,v 1.16 2014/12/06 23:28:18 agc 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}"
@${WARNING_MSG} "experimental target - DATA LOSS MAY OCCUR."
.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