From 1b5734f517b624ae847f6133a3f35f4f2f355ed3 Mon Sep 17 00:00:00 2001 From: jlam Date: Fri, 14 Jan 2005 05:15:39 +0000 Subject: Create a pam.buildlink3.mk file that is used by PAM-using packages. It includes the correct buildlink3.mk file from either Linux-PAM (security/PAM) or OpenPAM (security/openpam) and eventually will support solaris-pam. pam.buildlink3.mk will: * set PAMBASE to the base directory of the PAM files; * set PAM_TYPE to the PAM implementation used. There are two variables that can be used to tweak the selection of the PAM implementation: PAM_DEFAULT is a user-settable variable whose value is the default PAM implementation to use. PAM_ACCEPTED is a package-settable list of PAM implementations that may be used by the package. Modify most packages that include PAM/buildlink3.mk to include pam.buildlink3.mk instead. --- mk/pam.buildlink3.mk | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 mk/pam.buildlink3.mk (limited to 'mk') diff --git a/mk/pam.buildlink3.mk b/mk/pam.buildlink3.mk new file mode 100644 index 00000000000..ac78ff2463a --- /dev/null +++ b/mk/pam.buildlink3.mk @@ -0,0 +1,76 @@ +# $NetBSD: pam.buildlink3.mk,v 1.1 2005/01/14 05:15:39 jlam Exp $ +# +# This Makefile fragment is meant to be included by packages that +# require a PAM implementation. pam.buildlink3.mk will: +# +# * set PAMBASE to the base directory of the PAM files; +# * set PAM_TYPE to the PAM implementation used. +# +# There are two variables that can be used to tweak the selection of +# the PAM implementation: +# +# PAM_DEFAULT is a user-settable variable whose value is the default +# PAM implementation to use. +# +# PAM_ACCEPTED is a package-settable list of PAM implementations +# that may be used by the package. +# + +PAM_BUILDLINK3_MK:= ${PAM_BUILDLINK3_MK}+ + +.include "../../mk/bsd.prefs.mk" + +.if !empty(PAM_BUILDLINK3_MK:M+) +# +# This is an exhaustive list of all of the PAM implementations +# that may be used with PAM.buildlink3.mk, in order of precedence. +# +_PAM_PKGS?= linux-pam openpam #solaris-pam + +BUILDLINK_BUILTIN_MK.linux-pam= ../../security/PAM/builtin.mk +BUILDLINK_BUILTIN_MK.openpam= ../../security/openpam/builtin.mk +BUILDLINK_BUILTIN_MK.solaris-pam= ../../mk/solaris-pam.builtin.mk + +# If we have a particular PAM implementation in the base system, then +# default to using that PAM type. Otherwise, default to "linux-pam". +# +. for _pam_ in ${_PAM_PKGS} +. if exists(${BUILDLINK_BUILTIN_MK.${_pam_}}) +CHECK_BUILTIN.${_pam_}:= yes +. include "${BUILDLINK_BUILTIN_MK.${_pam_}}" +. if defined(IS_BUILTIN.${_pam_}) && !empty(IS_BUILTIN.${_pam_}) +PAM_DEFAULT?= ${_pam_} +. endif +CHECK_BUILTIN.${_pam_}:= no +. endif +. endfor +PAM_DEFAULT?= linux-pam +PAM_ACCEPTED?= ${_PAM_PKGS} + +_PAM_DEFAULT= ${PAM_DEFAULT} +_PAM_ACCEPTED= ${PAM_ACCEPTED} + +_PAM_TYPE?= ${_PAM_DEFAULT} + +. if !empty(_PAM_ACCEPTED:M${_PAM_TYPE}) +PAM_TYPE= ${_PAM_TYPE} +. else +PAM_TYPE= none +. endif +PAMBASE= ${BUILDLINK_PREFIX.${PAM_TYPE}} + +BUILD_DEFS+= PAM_TYPE +BUILD_DEFS+= PAMBASE +.endif # PAM_BUILDLINK3_MK + +.if ${PAM_TYPE} == "none" +PKG_FAIL_REASON= \ + "${_PAM_TYPE} is not an acceptable PAM type for ${PKGNAME}." +.elif ${PAM_TYPE} == "linux-pam" +. include "../../security/PAM/buildlink3.mk" +.elif ${PAM_TYPE} == "openpam" +. include "../../security/openpam/buildlink3.mk" +.elif ${PAM_TYPE} == "solaris-pam" +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nsolaris-pam} +BUILDLINK_PACKAGES+= solaris-pam +.endif -- cgit v1.2.3