xref: /netbsd-src/external/bsd/pam-u2f/dist/configure.ac (revision e7ac2a8b5bd66fa2e050809de09a075c36a7014d)
1#  Copyright (C) 2014-2019 Yubico AB
2AC_PREREQ([2.65])
3AC_INIT([pam_u2f], [1.0.9], [https://github.com/Yubico/pam-u2f/issues],
4  [pam_u2f], [https://developers.yubico.com/pam-u2f/])
5
6AC_CONFIG_AUX_DIR([build-aux])
7AC_CONFIG_MACRO_DIR([m4])
8AC_CANONICAL_HOST
9
10AM_INIT_AUTOMAKE([1.11 foreign subdir-objects])
11
12AM_SILENT_RULES([yes])
13AM_MAINTAINER_MODE
14
15AC_USE_SYSTEM_EXTENSIONS
16AM_PROG_CC_C_O
17AM_PROG_AR
18AC_LIBTOOL_WIN32_DLL
19AC_DISABLE_STATIC
20AC_PROG_LIBTOOL
21AC_PROG_CC_STDC
22
23AC_ARG_ENABLE([man],
24  [AS_HELP_STRING([--disable-man], [Disable man page generation])],
25  [:],
26  [enable_man=yes]
27  )
28AS_IF([test "$enable_man" = "yes"],
29  [AM_MISSING_PROG([A2X], a2x, $missing_dir)]
30)
31AM_CONDITIONAL([ENABLE_MAN], [test "$enable_man" = "yes"])
32
33
34AC_CHECK_HEADERS([security/pam_appl.h], [],
35  [AC_MSG_ERROR([[PAM header files not found, install libpam-dev.]])])
36AC_CHECK_HEADERS([security/pam_modules.h security/_pam_macros.h security/pam_modutil.h], [], [],
37  [#include <sys/types.h>
38   #include <security/pam_appl.h>])
39AC_CHECK_LIB([pam], [pam_start])
40
41AC_SEARCH_LIBS([pam_modutil_drop_priv], ["pam"], [AC_DEFINE([HAVE_PAM_MODUTIL_DROP_PRIV], [1])])
42
43case "$host" in
44     *darwin*)  PAMDIR="/usr/lib/pam";;
45     *linux*)   PAMDIR="/lib/x86_64-linux-gnu/security";;
46     *)         PAMDIR="/usr/lib"
47esac
48AC_ARG_WITH(pam-dir,
49  AC_HELP_STRING([--with-pam-dir=DIR], [Where to install the PAM module]), [
50    case "${withval}" in
51      /*) PAMDIR="${withval}";;
52      ./*|../*) AC_MSG_ERROR(Bad value for --with-pam-dir);;
53      *);;
54  esac
55])
56AC_SUBST(PAMDIR, "$PAMDIR")
57
58
59PKG_CHECK_MODULES([LIBCRYPTO], [libcrypto], [], [])
60PKG_CHECK_MODULES([LIBFIDO2], [libfido2 >= 1.2.0], [], [])
61
62
63# Check for secure_getenv, readpassphrase, explicit_bzero, and memset_s
64am_save_CFLAGS="$CFLAGS"
65am_save_LIBS="$LIBS"
66CFLAGS="$CFLAGS"
67LIBS="$LIBS"
68AC_CHECK_FUNCS([secure_getenv readpassphrase explicit_bzero memset_s])
69CFLAGS=$am_save_CFLAGS
70LIBS=$am_save_LIBS
71
72
73AC_ARG_VAR([CWFLAGS], [Warning flags])
74AX_CHECK_COMPILE_FLAG([-Wall], [CWFLAGS="-Wall"])
75AX_CHECK_COMPILE_FLAG([-Wextra], [CWFLAGS="$CWFLAGS -Wextra"])
76AX_CHECK_COMPILE_FLAG([-Wconversion], [CWFLAGS="$CWFLAGS -Wconversion"])
77# Because pam headers are doing sign-conversion, see PAM_MODUTIL_DEF_PRIVS in pam_modutil.h
78AX_CHECK_COMPILE_FLAG([-Wconversion], [CWFLAGS="$CWFLAGS -Wno-sign-conversion"])
79AX_CHECK_COMPILE_FLAG([-Wpedantic], [CWFLAGS="$CWFLAGS -Wpedantic"])
80AX_CHECK_COMPILE_FLAG([-Wformat=2], [CWFLAGS="$CWFLAGS -Wformat=2"])
81AX_CHECK_COMPILE_FLAG([-Wstrict-prototypes], [CWFLAGS="$CWFLAGS -Wstrict-prototypes"])
82AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [CWFLAGS="$CWFLAGS -Wmissing-declarations"])
83AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CWFLAGS="$CWFLAGS -Wmissing-prototypes"])
84AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [CWFLAGS="$CWFLAGS -Wnull-dereference"])
85AX_CHECK_COMPILE_FLAG([-Wshadow], [CWFLAGS="$CWFLAGS -Wshadow"])
86AX_CHECK_COMPILE_FLAG([-Wpointer-arith], [CWFLAGS="$CWFLAGS -Wpointer-arith"])
87
88AC_ARG_VAR([CSFLAGS], [Warning suppression flags])
89AX_CHECK_COMPILE_FLAG([-Wno-unused-but-set-variable], [CSFLAGS="-Wno-unused-but-set-variable"])
90
91AC_CONFIG_FILES([
92  Makefile
93  pamu2fcfg/Makefile
94  tests/Makefile
95])
96AC_OUTPUT
97
98
99AC_MSG_NOTICE([Summary of build options:
100
101  Version:             ${VERSION}
102  Host type:           ${host}
103  Install prefix:      ${prefix}
104  Compiler:            ${CC}
105  CFLAGS:              ${CFLAGS}
106  CWFLAGS:             ${CWFLAGS}
107  CSFLAGS:             ${CSFLAGS}
108  Library types:       Shared=${enable_shared}, Static=${enable_static}
109  LIBFIDO2 CFLAGS:     $LIBFIDO2_CFLAGS
110  LIBFIDO2 LIBS:       $LIBFIDO2_LIBS
111  LIBCRYPTO CFLAGS:    $LIBCRYPTO_CFLAGS
112  LIBCRYPTO LIBS:      $LIBCRYPTO_LIBS
113  PAMDIR:              $PAMDIR
114])
115