pkgsrc/mk/tools/digest.mk
jlam 7a2c97d53f * Add a new stage "bootstrap-depends" that happens before all other
stages, and that installs dependencies listed in BOOTSTRAP_DEPENDS.
  The bootstrap-depends step works just like the normal depends step
  and honors the value of DEPENDS_TARGET.  It's now possible to add
  dependencies solely to facilitate fetching the distfiles, e.g.

	BOOTSTRAP_DEPENDS+=	curl-[0-9]*:../../www/curl

* Teach the tools framework about ":bootstrap" as a tools modifier
  which indicates the tool should be added as a dependency via
  BOOTSTRAP_DEPENDS.

* Add "digest" to the tools framework.

* Use USE_TOOLS+=digest:bootstrap to force pkgsrc to install digest
  before anything else.  Get rid of unused "uptodate-digest" target
  and related digest version-checking code.

* Finish the refactoring work: split checksum-related code out of
  bsd.pkg.mk and into pkgsrc/mk/checksum and replace the "checksum"
  target command list with a script that does all the real work.

* Make DIGEST_ALGORITHMS and PATCH_DIGEST_ALGORITHM into private
  variables by prepending them with an underscore.  Also, rename
  _PATCH_DIGEST_ALGORITHM to _PATCH_DIGEST_ALGORITHMS and adjust the
  makepatchsum target to allow that variable to contain a list of
  algorithms, all of which are used when creating the patch checksums
  for ${DISTINFO_FILE}.
2006-07-13 14:02:34 +00:00

80 lines
3.2 KiB
Makefile

# $NetBSD: digest.mk,v 1.1 2006/07/13 14:02:34 jlam Exp $
#
# Copyright (c) 2006 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Johnny C. Lam.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# This product includes software developed by the NetBSD
# Foundation, Inc. and its contributors.
# 4. Neither the name of The NetBSD Foundation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
#
# This Makefile fragment defines additional variables that are used
# by packages that need digest.
#
# Optional variables that may be defined by the package are:
#
# DIGEST_REQD is the minimum version of digest required.
#
# This file needs to be included before replace.mk as it uses the
# replace.mk magic to set the TOOLS_DIGEST and DIGEST variables.
#
DIGEST_REQD?= 20010302
.if !defined(TOOLS_IGNORE.digest) && !empty(USE_TOOLS:C/:.*//:Mdigest)
. if !empty(PKGPATH:Mpkgtools/digest)
MAKEFLAGS+= TOOLS_IGNORE.digest=
. else
. if defined(TOOLS_PLATFORM.digest) && !empty(TOOLS_PLATFORM.digest)
_TOOLS_USE_PKGSRC.digest?= no
. if !defined(_TOOLS_VERSION.digest)
_TOOLS_VERSION.digest!= \
${TOOLS_PLATFORM.digest} -V 2>/dev/null || ${ECHO} 20010301
_TOOLS_USE_PKGSRC.digest!= \
if ${PKG_ADMIN} pmatch "digest>="${DIGEST_REQD:Q} \
digest-${_TOOLS_VERSION.digest:Q}; then \
${ECHO} no; \
else \
${ECHO} yes; \
fi
. endif
MAKEVARS+= _TOOLS_USE_PKGSRC.digest
. else
_TOOLS_USE_PKGSRC.digest= yes
. endif
. if !empty(_TOOLS_USE_PKGSRC.digest:M[yY][eE][sS])
TOOLS_DEPENDS.digest?= digest>=${DIGEST_REQD}:../../pkgtools/digest
TOOLS_CREATE+= digest
TOOLS_FIND_PREFIX+= TOOLS_PREFIX.digest=digest
TOOLS_PATH.digest= ${TOOLS_PREFIX.digest}/bin/digest
. endif
. endif
.endif