(1) Add new variables LOOP_VAR and LOOP_OPTIONS to implement building several
packages from a single port. LOOP_VAR is the name of the variable and LOOP_OPTIONS is a space-separated list of values it should take. When these are set, the target "package-loop" will go through a clean and package loop for all the options. The "package-loop" target is defined as "package" when LOOP_VAR is not defined, so if you are in the business for building packages, you should use "package-loop" all the time. (This target is added to bsd.port.subdir.mk too.) Also, the "describe" target prints out multiple lines so that all options will go into the INDEX. (In other words, if you define these variables, INDEX is going to look real silly if you don't put ${${LOOP_VAR}} in PKGNAME.) Seconded by: obrien ("ANYTHING") (2) Turn off regexp support for LIB_DEPENDS. It is a fixed string of the form <NAME>.<VER> now. Tested by: several rounds of complete package builds (3) Check checksum even if NO_EXTRACT is defined. (4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.
This commit is contained in:
parent
afbc2ba0b4
commit
584030d604
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=14257
2 changed files with 54 additions and 7 deletions
|
@ -1,7 +1,7 @@
|
|||
#-*- mode: Fundamental; tab-width: 4; -*-
|
||||
# ex:ts=4
|
||||
#
|
||||
# $Id: bsd.port.mk,v 1.292 1998/10/06 21:12:14 asami Exp $
|
||||
# $Id: bsd.port.mk,v 1.293 1998/10/09 01:27:21 asami Exp $
|
||||
# $NetBSD: $
|
||||
#
|
||||
# bsd.port.mk - 940820 Jordan K. Hubbard.
|
||||
|
@ -246,6 +246,18 @@ OpenBSD_MAINTAINER= imp@OpenBSD.ORG
|
|||
# is set and NO_INSTALL_MANPAGES is not set, and
|
||||
# "no" otherwise.
|
||||
#
|
||||
# If your port wants the package to be built with several options,
|
||||
# set the following variables.
|
||||
#
|
||||
# LOOP_VAR - The name of the variable.
|
||||
# LOOP_OPTIONS - The value of the options.
|
||||
#
|
||||
# If they are set, there will be a target "package-loop" which will
|
||||
# iterate several times, each time cleaning up afterwards, with the
|
||||
# value of ${LOOP_VAR} set to one of ${LOOP_OPTIONS}. In addition,
|
||||
# the "describe" target will print out multiple lines with the variable
|
||||
# set accordingly.
|
||||
#
|
||||
# Default targets and their behaviors:
|
||||
#
|
||||
# fetch - Retrieves ${DISTFILES} (and ${PATCHFILES} if defined)
|
||||
|
@ -1034,7 +1046,7 @@ IGNORE= "is marked as broken: ${BROKEN}"
|
|||
.endif
|
||||
|
||||
.if (defined(MANUAL_PACKAGE_BUILD) && defined(PACKAGE_BUILDING))
|
||||
IGNORE= "package has to be built manually: ${MANUAL_PACKAGE_BUILD}"
|
||||
IGNORE= "has to be built manually: ${MANUAL_PACKAGE_BUILD}"
|
||||
clean:
|
||||
@${IGNORECMD}
|
||||
.endif
|
||||
|
@ -1109,6 +1121,7 @@ checksum: fetch
|
|||
# Disable extract
|
||||
.if defined(NO_EXTRACT) && !target(extract)
|
||||
extract: fetch
|
||||
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} checksum REAL_EXTRACT=yes
|
||||
@${TOUCH} ${TOUCH_FLAGS} ${EXTRACT_COOKIE}
|
||||
.endif
|
||||
|
||||
|
@ -1761,6 +1774,26 @@ package-noinstall:
|
|||
@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} PACKAGE_NOINSTALL=yes real-package
|
||||
.endif
|
||||
|
||||
# Loop through several options for package building
|
||||
|
||||
.if !target(package-loop)
|
||||
.if defined(LOOP_VAR)
|
||||
package-loop:
|
||||
.if !exists(${PACKAGE_COOKIE})
|
||||
.for option in ${LOOP_OPTIONS}
|
||||
@cd ${.CURDIR} && ${SETENV} ${LOOP_VAR}=${option} LOOP=yes \
|
||||
${MAKE} ${.MAKEFLAGS} clean
|
||||
@cd ${.CURDIR} && ${SETENV} ${LOOP_VAR}=${option} LOOP=yes \
|
||||
${MAKE} ${.MAKEFLAGS} package
|
||||
.endfor
|
||||
.else
|
||||
@${DO_NADA}
|
||||
.endif
|
||||
.else
|
||||
package-loop: package
|
||||
.endif
|
||||
.endif
|
||||
|
||||
################################################################
|
||||
# Dependency checking
|
||||
################################################################
|
||||
|
@ -1843,7 +1876,7 @@ lib-depends:
|
|||
else \
|
||||
target=${DEPENDS_TARGET}; \
|
||||
fi; \
|
||||
if ${LDCONFIG} -r | ${GREP} -q -e "-l$$lib"; then \
|
||||
if ${LDCONFIG} -r | ${GREP} -qwF -e "-l$$lib"; then \
|
||||
${ECHO_MSG} "===> ${PKGNAME} depends on shared library: $$lib - found"; \
|
||||
else \
|
||||
${ECHO_MSG} "===> ${PKGNAME} depends on shared library: $$lib - not found"; \
|
||||
|
@ -1853,7 +1886,7 @@ lib-depends:
|
|||
else \
|
||||
(cd $$dir; ${MAKE} ${.MAKEFLAGS} $$target) ; \
|
||||
${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \
|
||||
if ${LDCONFIG} -r | ${GREP} -q -e "-l$$lib"; then \
|
||||
if ${LDCONFIG} -r | ${GREP} -qwF -e "-l$$lib"; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
${ECHO_MSG} "Error: shared library \"$$lib\" does not exist"; \
|
||||
|
@ -1934,8 +1967,22 @@ depends-list:
|
|||
# distribution-name|port-path|installation-prefix|comment| \
|
||||
# description-file|maintainer|categories|build deps|run deps
|
||||
#
|
||||
# If LOOP_VAR is set, multiple lines will be printed with the
|
||||
# variable set to each value of LOOP_OPTIONS.
|
||||
|
||||
.if !target(describe)
|
||||
describe:
|
||||
.if !defined(LOOP_VAR)
|
||||
@cd ${.CURDIR} && ${MAKE} do-describe
|
||||
.else
|
||||
.for option in ${LOOP_OPTIONS}
|
||||
@cd ${.CURDIR} && ${SETENV} ${LOOP_VAR}=${option} ${MAKE} do-describe
|
||||
.endfor
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if !target(do-describe)
|
||||
do-describe:
|
||||
@${ECHO} -n "${PKGNAME}|${.CURDIR}|"; \
|
||||
${ECHO} -n "${PREFIX}|"; \
|
||||
if [ -f ${COMMENT} ]; then \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
|
||||
# $Id: bsd.port.subdir.mk,v 1.23 1997/11/20 05:31:44 asami Exp $
|
||||
# $Id: bsd.port.subdir.mk,v 1.24 1998/08/26 23:46:13 asami Exp $
|
||||
#
|
||||
# The include file <bsd.port.subdir.mk> contains the default targets
|
||||
# for building ports subdirectories.
|
||||
|
@ -29,7 +29,7 @@
|
|||
#
|
||||
# afterinstall, all, beforeinstall, build, checksum, clean,
|
||||
# configure, deinstall, depend, describe, extract, fetch, fetch-list,
|
||||
# install, package, readmes, realinstall, reinstall, tags
|
||||
# install, package, package-loop, readmes, realinstall, reinstall, tags
|
||||
#
|
||||
|
||||
|
||||
|
@ -78,7 +78,7 @@ ${SUBDIR}::
|
|||
fi; \
|
||||
${MAKE} all
|
||||
|
||||
.for __target in all fetch fetch-list package extract configure \
|
||||
.for __target in all fetch fetch-list package package-loop extract configure \
|
||||
build clean deinstall depend describe distclean \
|
||||
reinstall tags checksum
|
||||
.if !target(${__target})
|
||||
|
|
Loading…
Reference in a new issue