X-Git-Url: http://www.average.org/gitweb/?p=pam_pcsc_cr.git;a=blobdiff_plain;f=configure.ac;h=8adf9404d643a1b0b55a2af197e7d67e26714411;hp=e9fd2f3d2a663e92d5d8aee0d4d9bb807556afbf;hb=HEAD;hpb=d1eca5714f380358097e727408b07bdb808344bb diff --git a/configure.ac b/configure.ac index e9fd2f3..eb6ed65 100644 --- a/configure.ac +++ b/configure.ac @@ -1,44 +1,114 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([pam_pcsc_cr], 0.0.1) +AC_INIT([pam_pcsc_cr],[0.9.6]) AC_CONFIG_SRCDIR([pam_pcsc_cr.c]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE -AM_CONFIG_HEADER([config.h]) -AC_LANG_C +AC_CONFIG_HEADERS([config.h]) +AC_LANG([C]) AC_PROG_CC if test "X$CC" = "Xgcc"; then - CFLAGS="$CFLAGS -Wall -g" -fi + CFLAGS="$CFLAGS -Wextra -Wall -Werror -Wno-unused-parameter -Wno-deprecated-declarations -fstack-protector-all $ASAN_FLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3" +else if test "X$CC" = "Xclang"; then + CFLAGS="$CFLAGS -Wextra -Wall -Werror -Wno-unused-parameter -Wno-deprecated-declarations -Wformat -Wformat-security -fstack-protector-all $ASAN_FLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" +fi; fi AC_PROG_MAKE_SET AC_SUBST(PROGS)dnl AC_SUBST(LIBPROGS)dnl AC_PROG_INSTALL -AM_PROG_LIBTOOL +LT_INIT PKG_PROG_PKG_CONFIG +AC_CHECK_HEADERS([security/pam_appl.h], [], [ + AC_MSG_ERROR([[PAM headers not found]]) +]) +AC_CHECK_HEADERS([security/pam_modules.h security/pam_ext.h], [], [], [ +#include +#include +]) +AC_CHECK_LIB([pam], [pam_start]) +AC_CHECK_FUNCS([pam_get_authtok]) +pamdir=/lib/${host_cpu}-${host_os}/security +AC_ARG_WITH(pam-dir, + [ --with-pam-dir=DIR path to install the PAM module (${pamdir})], + [PAMDIR="$withval"], + [ +case $prefix in +*/_inst) PAMDIR="${prefix}${pamdir}" ;; +*) PAMDIR=${pamdir} ;; +esac +]) +AC_SUBST(PAMDIR) +AC_MSG_NOTICE([Installation target PAMDIR=${PAMDIR}]) + PKG_CHECK_MODULES([PCSC], [libpcsclite]) -AC_ARG_WITH(pcsclite-include-path, - [ --with-pcsclite-include-path=PATH path to pcsclite includes], - [PCSC_CFLAGS="-I $withval"], - []) -AC_ARG_WITH(pcsclite-lib-path, - [ --with-pcsclite-lib-path=PATH path to pcsclite libs], - [PCSC_LIBS="-L $withval -lpcsclite"], - []) - -AC_SUBST(PCSC_LIBS) -AC_SUBST(PCSC_CFLAGS) -CFLAGS="$PCSC_CFLAGS $CFLAGS" +CPPFLAGS="$PCSC_CFLAGS $CPPFLAGS" LIBS="$PCSC_LIBS $LIBS" +AC_ARG_ENABLE(openssl, + [ --disable-openssl do not use openssl even when it is present], + [], [enable_openssl=yes] +) +AS_IF([test "x$enable_openssl" = "xyes"], [ + PKG_CHECK_MODULES([OPENSSL], [libcrypto], [], [:]) +]) +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 is present]) + +AS_IF([test "x$use_openssl" != "xyes" -o "x$enable_tomcrypt" = "xyes"], [ + PKG_CHECK_MODULES([TOMCRYPT], [libtomcrypt], [], [:]) +]) +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 or libtomcrypt + is present]) + +AS_IF([test "x$use_openssl" != "xyes" && test "x$use_tomcrypt" != "xyes" || \ + test "x$enable_gcrypt" = "xyes"], [ + m4_ifdef([AM_PATH_LIBGCRYPT], [ + AM_PATH_LIBGCRYPT() + ], [ + m4_exit(1) + ]) +]) +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 AC_CHECK_HEADERS([winscard.h reader.h], [], [AC_MSG_ERROR([[pcsclite headers not found]])])