+authmethod() {
+ #
+ # Check for bsd_auth.h.
+ #
+ src='
+#include <bsd_auth.h>
+int main(void) {
+ return 0;
+}'
+ check_func "bsd_auth_h" "$src" && {
+ have_bsd_auth_h=1
+ printf 'bsd\n'
+ return 0
+ }
+
+ #
+ # Check for pam_appl.h.
+ #
+ src='
+#include <security/pam_appl.h>
+int main(void) {
+ return 0;
+}'
+ [ -z "$WITHOUT_PAM" ] && check_func "pam_appl_h" "$src" && {
+ printf 'SRCS += pam.c\n' >>$CONFIG_MK
+ printf 'LDFLAGS += -lpam\n' >>$CONFIG_MK
+ printf 'pam\n'
+ return 0
+ }
+
+ #
+ # Check for shadow.h.
+ #
+ src='
+#include <shadow.h>
+int main(void) {
+ return 0;
+}'
+ [ -z "$WITHOUT_SHADOW" ] && check_func "shadow_h" "$src" && {
+ printf 'LDFLAGS += -lcrypt\n' >>$CONFIG_MK
+ printf 'shadow\n'
+ return 0
+ }
+
+ return 1
+}
+
+#
+# Check for explicit_bzero().
+#