7db11b582a
by moving the inclusion of buildlink3.mk files outside of the protected region. This bug would be seen by users that have set PREFER_PKGSRC or PREFER_NATIVE to non-default values. BUILDLINK_PACKAGES should be ordered so that for any package in the list, that package doesn't depend on any packages to the left of it in the list. This ordering property is used to check for builtin packages in the correct order. The problem was that including a buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed from BUILDLINK_PACKAGES and appended to the end. However, since the inclusion of any other buildlink3.mk files within that buildlink3.mk was in a region that was protected against multiple inclusion, those dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
100 lines
2.7 KiB
Makefile
100 lines
2.7 KiB
Makefile
# $NetBSD: krb5.buildlink3.mk,v 1.6 2004/03/18 09:12:13 jlam Exp $
|
|
#
|
|
# This Makefile fragment is meant to be included by packages that
|
|
# require a Kerberos 5 implementation. krb5.buildlink3.mk will:
|
|
#
|
|
# * set KRB5BASE to the base directory of the Kerberos 5 files;
|
|
# * set KRB5_TYPE to the Kerberos 5 implementation used.
|
|
#
|
|
# There are two variables that can be used to tweak the selection of
|
|
# the Kerberos 5 implementation:
|
|
#
|
|
# KRB5_DEFAULT is a user-settable variable whose value is the default
|
|
# Kerberos 5 implementation to use.
|
|
#
|
|
# KRB5_ACCEPTED is a package-settable list of Kerberos 5 implementations
|
|
# that may be used by the package.
|
|
|
|
KRB5_BUILDLINK3_MK:= ${KRB5_BUILDLINK3_MK}+
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
.if !empty(KRB5_BUILDLINK3_MK:M+)
|
|
KRB5_DEFAULT?= # empty
|
|
KRB5_ACCEPTED?= ${_KRB5_PKGS}
|
|
|
|
# This is an exhaustive list of all of the Kerberos 5 implementations
|
|
# that may be used with krb5.buildlink3.mk, in order of precedence.
|
|
#
|
|
_KRB5_PKGS?= heimdal #mit-krb5
|
|
|
|
_KRB5_DEFAULT= ${KRB5_DEFAULT}
|
|
_KRB5_ACCEPTED= ${KRB5_ACCEPTED}
|
|
|
|
# Mark the acceptable Kerberos 5 packages and check which, if any, are
|
|
# already installed.
|
|
#
|
|
. for _krb5_ in ${_KRB5_ACCEPTED}
|
|
_KRB5_OK.${_krb5_}= yes
|
|
. if !defined(_KRB5_INSTALLED.${_krb5_})
|
|
_KRB5_INSTALLED.${_krb5_}!= \
|
|
if ${PKG_INFO} -qe ${_krb5_}; then \
|
|
${ECHO} "yes"; \
|
|
else \
|
|
${ECHO} "no"; \
|
|
fi
|
|
MAKEFLAGS+= _KRB5_INSTALLED.${_krb5_}=${_KRB5_INSTALLED.${_krb5_}}
|
|
. endif
|
|
. endfor
|
|
|
|
. if !defined(_KRB5_TYPE)
|
|
#
|
|
# Prefer the default one if it's accepted,...
|
|
#
|
|
. if !empty(_KRB5_DEFAULT) && \
|
|
defined(_KRB5_OK.${_KRB5_DEFAULT}) && \
|
|
!empty(_KRB5_OK.${_KRB5_DEFAULT}:M[yY][eE][sS])
|
|
_KRB5_TYPE= ${_KRB5_DEFAULT}
|
|
. endif
|
|
#
|
|
# ...otherwise, use one of the installed Kerberos 5 packages,...
|
|
#
|
|
. for _krb5_ in ${_KRB5_ACCEPTED}
|
|
. if !empty(_KRB5_INSTALLED.${_krb5_}:M[yY][eE][sS])
|
|
_KRB5_TYPE?= ${_krb5_}
|
|
. else
|
|
_KRB5_FIRSTACCEPTED?= ${_krb5_}
|
|
. endif
|
|
. endfor
|
|
#
|
|
# ...otherwise, just use the first accepted Kerberos 5 package.
|
|
#
|
|
. if defined(_KRB5_FIRSTACCEPTED)
|
|
_KRB5_TYPE?= ${_KRB5_FIRSTACCEPTED}
|
|
. endif
|
|
_KRB5_TYPE?= none
|
|
MAKEFLAGS+= _KRB5_TYPE=${_KRB5_TYPE}
|
|
. endif
|
|
|
|
KRB5_TYPE= ${_KRB5_TYPE}
|
|
BUILD_DEFS+= KRB5_TYPE
|
|
|
|
.endif # KRB5_BUILDLINK3_MK
|
|
|
|
.if ${KRB5_TYPE} == "none"
|
|
PKG_FAIL_REASON= "No acceptable Kerberos 5 implementation found."
|
|
.else
|
|
#
|
|
# Packages that use Kerberos are automatically categorized as restricted
|
|
# packages.
|
|
#
|
|
CRYPTO+= uses Kerberos encryption code
|
|
. if ${KRB5_TYPE} == "heimdal"
|
|
KRB5BASE= ${BUILDLINK_PREFIX.heimdal}
|
|
. include "../../security/heimdal/buildlink3.mk"
|
|
. elif ${KRB5_TYPE} == "mit-krb5"
|
|
KRB5BASE= ${BUILDLINK_PREFIX.mit-krb5}
|
|
. include "../../security/mit-krb5/buildlink3.mk"
|
|
. endif
|
|
.endif
|
|
BUILD_DEFS+= KRB5BASE
|