summaryrefslogtreecommitdiff
path: root/mk/linux-pam.builtin.mk
diff options
context:
space:
mode:
authorjoerg <joerg>2014-06-10 13:52:57 +0000
committerjoerg <joerg>2014-06-10 13:52:57 +0000
commitde7cbc4e3ce32da9b615a2682a94bce0cb5fe02f (patch)
treea0764b86c26958c7b18560274fffb5b0ae24ae15 /mk/linux-pam.builtin.mk
parentd5184f726f31d0df29f9cd8ca09b457a802c505c (diff)
downloadpkgsrc-de7cbc4e3ce32da9b615a2682a94bce0cb5fe02f.tar.gz
Always use OpenPAM as fallback PAM implementation if a native one is
missing. Drop PAM_ACCEPTED and PAM_TYPE as unused or redundant.
Diffstat (limited to 'mk/linux-pam.builtin.mk')
-rw-r--r--mk/linux-pam.builtin.mk74
1 files changed, 74 insertions, 0 deletions
diff --git a/mk/linux-pam.builtin.mk b/mk/linux-pam.builtin.mk
new file mode 100644
index 00000000000..1eb2bec5405
--- /dev/null
+++ b/mk/linux-pam.builtin.mk
@@ -0,0 +1,74 @@
+# $NetBSD: linux-pam.builtin.mk,v 1.1 2014/06/10 13:52:57 joerg Exp $
+
+BUILTIN_PKG:= linux-pam
+
+BUILTIN_FIND_HEADERS_VAR:= H_LINUX_PAM
+BUILTIN_FIND_HEADERS.H_LINUX_PAM= security/pam_appl.h \
+ pam/pam_appl.h
+BUILTIN_FIND_GREP.H_LINUX_PAM= The Linux-PAM Framework layer API
+
+.include "../../mk/buildlink3/bsd.builtin.mk"
+
+###
+### Determine if there is a built-in implementation of the package and
+### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
+###
+.if !defined(IS_BUILTIN.linux-pam)
+IS_BUILTIN.linux-pam= no
+. if empty(H_LINUX_PAM:M__nonexistent__) && empty(H_LINUX_PAM:M${LOCALBASE}/*)
+IS_BUILTIN.linux-pam= yes
+. endif
+.endif
+MAKEVARS+= IS_BUILTIN.linux-pam
+
+###
+### Determine whether we should use the built-in implementation if it
+### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
+###
+.if !defined(USE_BUILTIN.linux-pam)
+. if ${PREFER.linux-pam} == "pkgsrc"
+USE_BUILTIN.linux-pam= no
+. else
+USE_BUILTIN.linux-pam= ${IS_BUILTIN.linux-pam}
+. if defined(BUILTIN_PKG.linux-pam) && \
+ !empty(IS_BUILTIN.linux-pam:M[yY][eE][sS])
+USE_BUILTIN.linux-pam= yes
+. for _dep_ in ${BUILDLINK_API_DEPENDS.linux-pam}
+. if !empty(USE_BUILTIN.linux-pam:M[yY][eE][sS])
+USE_BUILTIN.linux-pam!= \
+ if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.linux-pam:Q}; then \
+ ${ECHO} yes; \
+ else \
+ ${ECHO} no; \
+ fi
+. endif
+. endfor
+. endif
+. endif # PREFER.linux-pam
+.endif
+MAKEVARS+= USE_BUILTIN.linux-pam
+
+###
+### The section below only applies if we are not including this file
+### solely to determine whether a built-in implementation exists.
+###
+CHECK_BUILTIN.linux-pam?= no
+.if !empty(CHECK_BUILTIN.linux-pam:M[nN][oO])
+
+. if !empty(USE_BUILTIN.linux-pam:M[yY][eE][sS])
+BUILDLINK_TARGETS+= buildlink-pam-security
+. endif
+
+. if !target(buildlink-pam-security)
+.PHONY: buildlink-pam-security
+buildlink-pam-security:
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ src=${BUILDLINK_PREFIX.linux-pam:Q}"/include/pam"; \
+ dest=${BUILDLINK_DIR:Q}"/include/security"; \
+ if ${TEST} -d "$$src"; then \
+ ${RM} -fr "$$dest"; \
+ ${LN} -fs "$$src" "$$dest"; \
+ fi
+. endif
+
+.endif # CHECK_BUILTIN.linux-pam