1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT([pam_pcsc_cr],[0.9.6])
4 AC_CONFIG_SRCDIR([pam_pcsc_cr.c])
5 AC_CONFIG_MACRO_DIR([m4])
7 AC_CONFIG_HEADERS([config.h])
11 if test "X$CC" = "Xgcc"; then
12 CFLAGS="$CFLAGS -Wall -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3"
13 dnl make CFLAGS="-fsanitize=address -fno-omit-frame-pointer -g" LDFLAGS="-static-libasan"
14 else if test "X$CC" = "Xclang"; then
15 CFLAGS="$CFLAGS -Wall -Wformat -Wformat-security -Werror=format-security -fstack-protector-all -fsanitize=safe-stack -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"
25 AC_CHECK_HEADERS([security/pam_appl.h], [], [
26 AC_MSG_ERROR([[PAM headers not found]])
28 AC_CHECK_HEADERS([security/pam_modules.h security/pam_ext.h], [], [], [
29 #include <sys/types.h>
30 #include <security/pam_appl.h>
32 AC_CHECK_LIB([pam], [pam_start])
33 AC_CHECK_FUNCS([pam_get_authtok])
34 pamdir=/lib/${host_cpu}-${host_os}/security
36 [ --with-pam-dir=DIR path to install the PAM module (${pamdir})],
40 */_inst) PAMDIR="${prefix}${pamdir}" ;;
41 *) PAMDIR=${pamdir} ;;
45 AC_MSG_NOTICE([Installation target PAMDIR=${PAMDIR}])
47 PKG_CHECK_MODULES([PCSC], [libpcsclite])
48 CPPFLAGS="$PCSC_CFLAGS $CPPFLAGS"
49 LIBS="$PCSC_LIBS $LIBS"
51 AC_ARG_ENABLE(openssl,
52 [ --disable-openssl do not use openssl even when it is present],
53 [], [enable_openssl=yes]
55 AS_IF([test "x$enable_openssl" = "xyes"], [
56 PKG_CHECK_MODULES([OPENSSL], [libcrypto], [], [:])
58 AS_IF([test "x$OPENSSL_CFLAGS" != "x" -o "x$OPENSSL_LIBS" != "x" ], [
61 CPPFLAGS="$OPENSSL_CFLAGS $CPPFLAGS"
62 LIBS="$OPENSSL_LIBS $LIBS"
64 AC_ARG_ENABLE(tomcrypt,
65 [ --enable-tomcrypt use libtomcrypt even when openssl is present])
67 AS_IF([test "x$use_openssl" != "xyes" -o "x$enable_tomcrypt" = "xyes"], [
68 PKG_CHECK_MODULES([TOMCRYPT], [libtomcrypt], [], [:])
70 AS_IF([test "x$TOMCRYPT_CFLAGS" != "x" -o "x$TOMCRYPT_LIBS" != "x" ], [
73 CPPFLAGS="$TOMCRYPT_CFLAGS $CPPFLAGS"
74 LIBS="$TOMCRYPT_LIBS $LIBS"
77 [ --enable-gcrypt use libgcrypt even when openssl or libtomcrypt
80 AS_IF([test "x$use_openssl" != "xyes" && test "x$use_tomcrypt" != "xyes" || \
81 test "x$enable_tomcrypt" = "xyes"], [
84 AS_IF([test "x$LIBGCRYPT_CFLAGS" != "x" -o "x$LIBGCRYPT_LIBS" != "x" ], [
87 CPPFLAGS="$LIBGCRYPT_CFLAGS $CPPFLAGS"
88 LIBS="$LIBGCRYPT_LIBS $LIBS"
90 AS_IF([test "x$use_openssl" != "xyes" -a "x$use_tomcrypt" != "xyes" -a "x$use_gcrypt" != "xyes"], [
91 AC_MSG_ERROR([[Neither openssl, tomcrypt or gcrypt libraries present]])
94 AS_IF([test "x$use_openssl" = "xyes"], [
95 CRYPTO_OBJS+=" ossl_crypto.lo"
96 AC_DEFINE([HAVE_OPENSSL], [1], [Use openssl libcrypto])
98 AS_IF([test "x$use_tomcrypt" = "xyes"], [
99 CRYPTO_OBJS+=" tom_crypto.lo"
100 AC_DEFINE([HAVE_TOMCRYPT], [1], [Use libtomcrypt])
102 AS_IF([test "x$use_gcrypt" = "xyes"], [
103 CRYPTO_OBJS+=" gnu_crypto.lo"
104 AC_DEFINE([HAVE_GCRYPT], [1], [Use libgcrypt])
106 AC_SUBST(CRYPTO_OBJS)
108 dnl Checks for header files.
110 AC_CHECK_HEADERS([winscard.h reader.h], [],
111 [AC_MSG_ERROR([[pcsclite headers not found]])])
112 AC_CHECK_LIB([pcsclite], [SCardEstablishContext], [],
113 [AC_MSG_ERROR([[pcsclite library not useable]])])
115 AC_CONFIG_FILES([Makefile])