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