]> www.average.org Git - pam_pcsc_cr.git/blobdiff - configure.ac
style in README
[pam_pcsc_cr.git] / configure.ac
index 28632b2ea58dc8b1bfc92ef98cdc2b160ad7f937..43a5f592a7edae394d2069f1599f249f0676f5ca 100644 (file)
@@ -9,7 +9,7 @@ AC_LANG_C
 AC_PROG_CC
 
 if test "X$CC" = "Xgcc"; then
 AC_PROG_CC
 
 if test "X$CC" = "Xgcc"; then
-  CFLAGS="$CFLAGS -Wall -g"
+  CFLAGS="$CFLAGS -Wall"
 fi
 
 AC_PROG_MAKE_SET
 fi
 
 AC_PROG_MAKE_SET
@@ -19,27 +19,117 @@ AC_PROG_INSTALL
 AM_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG
 
 AM_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG
 
-PKG_CHECK_MODULES([PCSC], [pcsclite])
-AC_ARG_WITH(pcsc-include-path,
-       [  --with-pcsc-include-path=PATH path to pcsclite includes],
+AC_CHECK_HEADERS([security/pam_appl.h], [], [
+  AC_MSG_ERROR([[PAM headers not found]])
+])
+AC_CHECK_HEADERS([security/pam_modules.h security/_pam_macros.h \
+                 security/pam_modutil.h], [], [], [
+#include <sys/types.h>
+#include <security/pam_appl.h>
+])
+AC_CHECK_LIB([pam], [pam_start])
+AC_CHECK_FUNCS([pam_modutil_drop_priv])
+AC_SUBST(PAMDIR, "\$(exec_prefix)/lib/security")
+AC_ARG_WITH(pam-dir,
+       [  --with-pam-dir=DIR                path to install PAM module],
+       [PAMDIR="$withval"],
+       [])
+
+PKG_CHECK_MODULES([PCSC], [libpcsclite])
+AC_ARG_WITH(pcsclite-include-path,
+       [  --with-pcsclite-include-path=PATH path to pcsclite includes],
        [PCSC_CFLAGS="-I $withval"],
        [])
        [PCSC_CFLAGS="-I $withval"],
        [])
-AC_ARG_WITH(pcsc-lib-path,
-       [  --with-pcsc-lib-path=PATH path to pcsclite libs],
+AC_ARG_WITH(pcsclite-lib-path,
+       [  --with-pcsclite-lib-path=PATH path to pcsclite libs],
        [PCSC_LIBS="-L $withval -lpcsclite"],
        [])
 
        [PCSC_LIBS="-L $withval -lpcsclite"],
        [])
 
-AC_SUBST(PCSC_LIBS)
-AC_SUBST(PCSC_CFLAGS)
+CPPFLAGS="$PCSC_CFLAGS $CPPFLAGS"
+LIBS="$PCSC_LIBS $LIBS"
+
+PKG_CHECK_MODULES([OPENSSL], [libcrypto], [], [:])
+AC_ARG_WITH(openssl-include-path,
+       [  --with-openssl-include-path=PATH path to openssl includes],
+       [OPENSSL_CFLAGS="-I $withval"],
+       [])
+AC_ARG_WITH(openssl-lib-path,
+       [  --with-openssl-lib-path=PATH path to openssl libs],
+       [OPENSSL_LIBS="-L $withval -lcrypto"],
+       [])
+AS_IF([test "x$OPENSSL_CFLAGS" != "x" -o "x$OPENSSL_LIBS" != "x" ], [
+  use_openssl=yes
+])
+CPPFLAGS="$OPENSSL_CFLAGS $CPPFLAGS"
+LIBS="$OPENSSL_LIBS $LIBS"
+
+AC_ARG_ENABLE(tomcrypt,
+       [  --enable-tomcrypt       use libtomcrypt even when openssl present])
+
+AS_IF([test "x$use_openssl" != "xyes" -o "x$enable_tomcrypt" = "xyes"], [
+  PKG_CHECK_MODULES([TOMCRYPT], [libtomcrypt], [], [:])
+])
+AC_ARG_WITH(libtomcrypt-include-path,
+       [  --with-libtomcrypt-include-path=PATH path to libtomcrypt includes],
+       [TOMCRYPT_CFLAGS="-I $withval"],
+       [])
+AC_ARG_WITH(libtomcrypt-lib-path,
+       [  --with-libtomcrypt-lib-path=PATH path to libtomcrypt libs],
+       [TOMCRYPT_LIBS="-L $withval -ltomcrypt"],
+       [])
+AS_IF([test "x$TOMCRYPT_CFLAGS" != "x" -o "x$TOMCRYPT_LIBS" != "x" ], [
+  use_tomcrypt=yes
+])
+CPPFLAGS="$TOMCRYPT_CFLAGS $CPPFLAGS"
+LIBS="$TOMCRYPT_LIBS $LIBS"
+
+AC_ARG_ENABLE(gcrypt,
+       [  --enable-gcrypt         use libgcrypt even when openssl present])
+
+AS_IF([test "x$use_openssl" != "xyes" && test "x$use_tomcrypt" != "xyes" || \
+       test "x$enable_tomcrypt" = "xyes"], [
+  AM_PATH_LIBGCRYPT()
+])
+AC_ARG_WITH(libgcrypt-include-path,
+       [  --with-libgcrypt-include-path=PATH path to libgcrypt includes],
+       [LIBGCRYPT_CFLAGS="-I $withval"],
+       [])
+AC_ARG_WITH(libgcrypt-lib-path,
+       [  --with-libgcrypt-lib-path=PATH path to libgcrypt libs],
+       [LIBGCRYPT_LIBS="-L $withval -lgcrypt"],
+       [])
+AS_IF([test "x$LIBGCRYPT_CFLAGS" != "x" -o "x$LIBGCRYPT_LIBS" != "x" ], [
+  use_gcrypt=yes
+])
+CPPFLAGS="$LIBGCRYPT_CFLAGS $CPPFLAGS"
+LIBS="$LIBGCRYPT_LIBS $LIBS"
+
+AS_IF([test "x$use_openssl" != "xyes" -a "x$use_tomcrypt" != "xyes" -a "x$use_gcrypt" != "xyes"], [
+  AC_MSG_ERROR([[Neither openssl, tomcrypt or gcrypt libraries present]])
+])
+
+AS_IF([test "x$use_openssl" = "xyes"], [
+  CRYPTO_OBJS+=" ossl_crypto.lo"
+  AC_DEFINE([HAVE_OPENSSL], [1], [Use openssl libcrypto])
+])
+AS_IF([test "x$use_tomcrypt" = "xyes"], [
+  CRYPTO_OBJS+=" tom_crypto.lo"
+  AC_DEFINE([HAVE_TOMCRYPT], [1], [Use libtomcrypt])
+])
+AS_IF([test "x$use_gcrypt" = "xyes"], [
+  CRYPTO_OBJS+=" gnu_crypto.lo"
+  AC_DEFINE([HAVE_GCRYPT], [1], [Use libgcrypt])
+])
+AC_SUBST(CRYPTO_OBJS)
 
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_TIME
 
 
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_TIME
 
-AC_CHECK_LIB(libpcsclite, SCardEstablishContext)
-if test x$ac_cv_lib_SCardEstablishContext != xyes; then
-       AC_MSG_ERROR([Cannot find usable libpcsclite])
-fi
+AC_CHECK_HEADERS([winscard.h reader.h], [],
+  [AC_MSG_ERROR([[pcsclite headers not found]])])
+AC_CHECK_LIB([pcsclite], [SCardEstablishContext], [],
+  [AC_MSG_ERROR([[pcsclite library not useable]])])
 
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
 
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT