e6bd59a5aaf2cf37ac5fe29f608fa6cfd20011bf
[pam_pcsc_cr.git] / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2
3 AC_INIT([pam_pcsc_cr], 0.9.4)
4 AC_CONFIG_SRCDIR([pam_pcsc_cr.c])
5 AC_CONFIG_MACRO_DIR([m4])
6 AM_INIT_AUTOMAKE
7 AM_CONFIG_HEADER([config.h])
8 AC_LANG_C
9 AC_PROG_CC
10
11 if test "X$CC" = "Xgcc"; then
12   CFLAGS="$CFLAGS -Wall"
13 fi
14
15 AC_PROG_MAKE_SET
16 AC_SUBST(PROGS)dnl
17 AC_SUBST(LIBPROGS)dnl
18 AC_PROG_INSTALL
19 AM_PROG_LIBTOOL
20 PKG_PROG_PKG_CONFIG
21
22 AC_CHECK_HEADERS([security/pam_appl.h], [], [
23   AC_MSG_ERROR([[PAM headers not found]])
24 ])
25 AC_CHECK_HEADERS([security/pam_modules.h security/pam_ext.h], [], [], [
26 #include <sys/types.h>
27 #include <security/pam_appl.h>
28 ])
29 AC_CHECK_LIB([pam], [pam_start])
30 AC_CHECK_FUNCS([pam_get_authtok])
31 pamdir=/lib/${host_cpu}-${host_os}/security
32 AC_ARG_WITH(pam-dir,
33         [  --with-pam-dir=DIR      path to install the PAM module (${pamdir})],
34         [PAMDIR="$withval"],
35         [
36 case $prefix in
37 */_inst) PAMDIR="${prefix}${pamdir}" ;;
38 *)       PAMDIR=${pamdir} ;;
39 esac
40 ])
41 AC_SUBST(PAMDIR)
42 AC_MSG_NOTICE([Installation target PAMDIR=${PAMDIR}])
43
44 PKG_CHECK_MODULES([PCSC], [libpcsclite])
45 CPPFLAGS="$PCSC_CFLAGS $CPPFLAGS"
46 LIBS="$PCSC_LIBS $LIBS"
47
48 PKG_CHECK_MODULES([OPENSSL], [libcrypto], [], [:])
49 AS_IF([test "x$OPENSSL_CFLAGS" != "x" -o "x$OPENSSL_LIBS" != "x" ], [
50   use_openssl=yes
51 ])
52 CPPFLAGS="$OPENSSL_CFLAGS $CPPFLAGS"
53 LIBS="$OPENSSL_LIBS $LIBS"
54
55 AC_ARG_ENABLE(tomcrypt,
56         [  --enable-tomcrypt       use libtomcrypt even when openssl is present])
57
58 AS_IF([test "x$use_openssl" != "xyes" -o "x$enable_tomcrypt" = "xyes"], [
59   PKG_CHECK_MODULES([TOMCRYPT], [libtomcrypt], [], [:])
60 ])
61 AS_IF([test "x$TOMCRYPT_CFLAGS" != "x" -o "x$TOMCRYPT_LIBS" != "x" ], [
62   use_tomcrypt=yes
63 ])
64 CPPFLAGS="$TOMCRYPT_CFLAGS $CPPFLAGS"
65 LIBS="$TOMCRYPT_LIBS $LIBS"
66
67 AC_ARG_ENABLE(gcrypt,
68         [  --enable-gcrypt         use libgcrypt even when openssl or libtomcrypt
69                           is present])
70
71 AS_IF([test "x$use_openssl" != "xyes" && test "x$use_tomcrypt" != "xyes" || \
72         test "x$enable_tomcrypt" = "xyes"], [
73   AM_PATH_LIBGCRYPT()
74 ])
75 AS_IF([test "x$LIBGCRYPT_CFLAGS" != "x" -o "x$LIBGCRYPT_LIBS" != "x" ], [
76   use_gcrypt=yes
77 ])
78 CPPFLAGS="$LIBGCRYPT_CFLAGS $CPPFLAGS"
79 LIBS="$LIBGCRYPT_LIBS $LIBS"
80
81 AS_IF([test "x$use_openssl" != "xyes" -a "x$use_tomcrypt" != "xyes" -a "x$use_gcrypt" != "xyes"], [
82   AC_MSG_ERROR([[Neither openssl, tomcrypt or gcrypt libraries present]])
83 ])
84
85 AS_IF([test "x$use_openssl" = "xyes"], [
86   CRYPTO_OBJS+=" ossl_crypto.lo"
87   AC_DEFINE([HAVE_OPENSSL], [1], [Use openssl libcrypto])
88 ])
89 AS_IF([test "x$use_tomcrypt" = "xyes"], [
90   CRYPTO_OBJS+=" tom_crypto.lo"
91   AC_DEFINE([HAVE_TOMCRYPT], [1], [Use libtomcrypt])
92 ])
93 AS_IF([test "x$use_gcrypt" = "xyes"], [
94   CRYPTO_OBJS+=" gnu_crypto.lo"
95   AC_DEFINE([HAVE_GCRYPT], [1], [Use libgcrypt])
96 ])
97 AC_SUBST(CRYPTO_OBJS)
98
99 dnl Checks for header files.
100 AC_HEADER_STDC
101 AC_HEADER_TIME
102
103 AC_CHECK_HEADERS([winscard.h reader.h], [],
104   [AC_MSG_ERROR([[pcsclite headers not found]])])
105 AC_CHECK_LIB([pcsclite], [SCardEstablishContext], [],
106   [AC_MSG_ERROR([[pcsclite library not useable]])])
107
108 AC_CONFIG_FILES([Makefile])
109 AC_OUTPUT