summaryrefslogtreecommitdiff
path: root/mk/tools
diff options
context:
space:
mode:
authorjlam <jlam>2006-07-13 14:02:34 +0000
committerjlam <jlam>2006-07-13 14:02:34 +0000
commited67a0012cd95416627746ed6dbf78f0f7fb54b0 (patch)
tree054a4952b111d37e6eb8aaa78c0125d125c86d9a /mk/tools
parent1d7d975664df301741d33d2d6e9fefd86f9cb5f4 (diff)
downloadpkgsrc-ed67a0012cd95416627746ed6dbf78f0f7fb54b0.tar.gz
* 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}.
Diffstat (limited to 'mk/tools')
-rw-r--r--mk/tools/bsd.tools.mk3
-rw-r--r--mk/tools/digest.mk80
-rw-r--r--mk/tools/replace.mk6
3 files changed, 87 insertions, 2 deletions
diff --git a/mk/tools/bsd.tools.mk b/mk/tools/bsd.tools.mk
index 2c1b56d32f8..90278b9ae14 100644
--- a/mk/tools/bsd.tools.mk
+++ b/mk/tools/bsd.tools.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.tools.mk,v 1.42 2006/07/07 21:24:29 jlam Exp $
+# $NetBSD: bsd.tools.mk,v 1.43 2006/07/13 14:02:34 jlam Exp $
#
# Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -143,6 +143,7 @@ post-tools:
@${DO_NADA}
.endif
+.include "${PKGSRCDIR}/mk/tools/digest.mk"
.include "${PKGSRCDIR}/mk/tools/automake.mk"
.include "${PKGSRCDIR}/mk/tools/autoconf.mk"
.include "${PKGSRCDIR}/mk/tools/texinfo.mk"
diff --git a/mk/tools/digest.mk b/mk/tools/digest.mk
new file mode 100644
index 00000000000..ecbf9c26117
--- /dev/null
+++ b/mk/tools/digest.mk
@@ -0,0 +1,80 @@
+# $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
diff --git a/mk/tools/replace.mk b/mk/tools/replace.mk
index 7da449f1eb6..4191d5af3bc 100644
--- a/mk/tools/replace.mk
+++ b/mk/tools/replace.mk
@@ -1,4 +1,4 @@
-# $NetBSD: replace.mk,v 1.173 2006/07/10 22:17:58 jlam Exp $
+# $NetBSD: replace.mk,v 1.174 2006/07/13 14:02:34 jlam Exp $
#
# Copyright (c) 2005 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -127,9 +127,13 @@ PKG_FAIL_REASON+= "\`\`bison'' and \`\`byacc'' conflict in USE_TOOLS."
# Set the type of dependency requested for the tool. The type of
# dependency is determined by the modifier specified for each tool:
#
+# BOOTSTRAP_DEPENDS: :bootstrap
# BUILD_DEPENDS: :build (default), :pkgsrc
# DEPENDS: :run
#
+.for _t_ in ${USE_TOOLS:N*\:*} ${USE_TOOLS:M*\:bootstrap}
+_TOOLS_DEPMETHOD.${_t_:C/:.*//}= BOOTSTRAP_DEPENDS
+.endfor
.for _t_ in ${USE_TOOLS:N*\:*} ${USE_TOOLS:M*\:build} ${USE_TOOLS:M*\:pkgsrc}
_TOOLS_DEPMETHOD.${_t_:C/:.*//}= BUILD_DEPENDS
.endfor