1260 lines
34 KiB
Plaintext
1260 lines
34 KiB
Plaintext
dnl -*- mode: m4; -*-
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
# Require autoconf 2.52
|
|
AC_PREREQ(2.52)
|
|
AC_INIT(src/libopensc/sc.c)
|
|
AC_CONFIG_AUX_DIR(tools)
|
|
|
|
AM_INIT_AUTOMAKE(opensc, 0.8.0-rc2)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
AC_CANONICAL_HOST
|
|
case $host in
|
|
darwin* | rhapsody*)
|
|
AC_DEFINE(OS_MACOSX,1,[MacOS X])
|
|
;;
|
|
beos*)
|
|
AC_DEFINE(OS_BEOS,1,[BeOS])
|
|
;;
|
|
cygwin* | mingw* | pw32*)
|
|
AC_DEFINE(OS_CYGWIN32,1,[Cywin32 and friends])
|
|
;;
|
|
*irix*)
|
|
AC_DEFINE(OS_IRIX,1,[SGI IRIX])
|
|
;;
|
|
*hpux*)
|
|
AC_DEFINE(OS_HPUX,1,[HP-UX])
|
|
;;
|
|
*solaris* | *sunos*)
|
|
AC_DEFINE(OS_SOLARIS,1,[Sun Solaris])
|
|
;;
|
|
*osf*)
|
|
AC_DEFINE(OS_DIGITAL_UNIX,1,[Digital UNIX])
|
|
;;
|
|
*aix*)
|
|
AC_DEFINE(OS_AIX,1,[IBM AIX])
|
|
;;
|
|
*freebsd*)
|
|
AC_DEFINE(OS_FREEBSD,1,[FreeBSD])
|
|
;;
|
|
*netbsd*)
|
|
AC_DEFINE(OS_NETBSD,1,[NetBSD])
|
|
;;
|
|
*openbsd*)
|
|
AC_DEFINE(OS_OPENBSD,1,[OpenBSD])
|
|
;;
|
|
*linux*)
|
|
AC_DEFINE(OS_LINUX,1,[Linux])
|
|
;;
|
|
esac
|
|
AC_PROG_CC
|
|
AC_C_BIGENDIAN
|
|
|
|
dnl Check for some target-specific stuff
|
|
case "$host" in
|
|
*-*-hpux*)
|
|
CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
|
|
AC_DEFINE(PAM_SUN_CODEBASE, 1, [PAM based on SUN codebase])
|
|
;;
|
|
*-*-solaris*)
|
|
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
|
LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
|
|
need_dash_r=1
|
|
AC_DEFINE(PAM_SUN_CODEBASE, 1, [PAM based on SUN codebase])
|
|
;;
|
|
*-*-sunos4*)
|
|
CPPFLAGS="$CPPFLAGS -DSUNOS4"
|
|
AC_CHECK_FUNCS(getpwanam)
|
|
AC_DEFINE(PAM_SUN_CODEBASE, 1, [PAM based on SUN codebase])
|
|
;;
|
|
*-*-aix*)
|
|
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
|
LDFLAGS="$LDFLAGS -L/usr/local/lib"
|
|
if (test "$LD" != "gcc" && test -z "$blibpath"); then
|
|
blibpath="/usr/lib:/lib:/usr/local/lib"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl Allow user to specify flags
|
|
AC_ARG_WITH(cflags,
|
|
[ --with-cflags Specify additional flags to pass to compiler],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
CFLAGS="$CFLAGS $withval"
|
|
fi
|
|
]
|
|
)
|
|
AC_ARG_WITH(cppflags,
|
|
[ --with-cppflags Specify additional flags to pass to preprocessor] ,
|
|
[
|
|
if test "x$withval" != "xno"; then
|
|
CPPFLAGS="$CPPFLAGS $withval"
|
|
fi
|
|
]
|
|
)
|
|
AC_ARG_WITH(ldflags,
|
|
[ --with-ldflags Specify additional flags to pass to linker],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
LDFLAGS="$LDFLAGS $withval"
|
|
fi
|
|
]
|
|
)
|
|
AC_ARG_WITH(libs,
|
|
[ --with-libs Specify additional libraries to link with],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
LIBS="$LIBS $withval"
|
|
fi
|
|
]
|
|
)
|
|
|
|
AC_ARG_WITH(common-dir,
|
|
[ --with-common-dir=PATH Specify path for common installation libraries],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
trycommondir=$withval
|
|
fi
|
|
]
|
|
)
|
|
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_CACHE_CHECK([for common directory], ac_cv_commondir, [
|
|
for commondir in $trycommondir "" /usr/local /usr/pkg /opt ; do
|
|
# Skip directories if they don't exist
|
|
if test ! -z "$commondir" -a ! -d "$commondir" ; then
|
|
continue;
|
|
fi
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
|
|
if test ! -z "$commondir" -a "x$commondir" != "x/usr"; then
|
|
# Try to use $commondir/lib if it exists, otherwise
|
|
# $commondir
|
|
if test -d "$commondir/lib" ; then
|
|
LDFLAGS="-L$commondir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$commondir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$commondir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$commondir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $commondir/include if it exists, otherwise
|
|
# $commondir
|
|
if test -d "$commondir/include" ; then
|
|
CPPFLAGS="-I$commondir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$commondir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
break;
|
|
done
|
|
|
|
if test -z "$commondir" ; then
|
|
commondir="(system)"
|
|
fi
|
|
|
|
ac_cv_commondir=$commondir
|
|
])
|
|
|
|
if (test ! -z "$ac_cv_commondir" && test "x$ac_cv_commondir" != "x(system)") ; then
|
|
dnl Need to recover commondir - test above runs in subshell
|
|
commondir=$ac_cv_commondir
|
|
if test ! -z "$commondir" -a "x$commondir" != "x/usr"; then
|
|
# Try to use $commondir/lib if it exists, otherwise
|
|
# $commondir
|
|
if test -d "$commondir/lib" ; then
|
|
LDFLAGS="-L$commondir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$commondir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$commondir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$commondir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $commondir/include if it exists, otherwise
|
|
# $commondir
|
|
if test -d "$commondir/include" ; then
|
|
CPPFLAGS="-I$commondir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$commondir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CPP
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AM_PROG_LEX
|
|
AC_PATH_PROG(TEST_MINUS_S_SH, bash)
|
|
AC_PATH_PROG(TEST_MINUS_S_SH, ksh)
|
|
AC_PATH_PROG(TEST_MINUS_S_SH, sh)
|
|
|
|
dnl Special check for pthread support.
|
|
ACX_PTHREAD(
|
|
[
|
|
AC_DEFINE(HAVE_PTHREAD,1,
|
|
[Define if you have POSIX threads libraries and header files.])
|
|
], [
|
|
AC_MSG_ERROR([POSIX thread support required])
|
|
])
|
|
LIBS="$PTHREAD_LIBS $LIBS"
|
|
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
CC="$PTHREAD_CC"
|
|
|
|
dnl Add libtool support.
|
|
AM_PROG_LIBTOOL
|
|
dnl Automatically update the libtool script if it becomes out-of-date.
|
|
#AC_SUBST(LIBTOOL_DEPS)
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS([errno.h fcntl.h malloc.h stdlib.h string.h strings.h sys/time.h unistd.h libgen.h utmp.h getopt.h dlfcn.h security/pam_appl.h security/_pam_macros.h])
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_TYPE_UID_T
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
|
|
AC_SUBST(GETOPTSRC)
|
|
AC_CHECK_FUNC(getopt_long, AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define if you have the `getopt_long' function.]),
|
|
[GETOPTSRC="$GETOPTSRC \$(top_srcdir)/src/common/getopt.c \$(top_srcdir)/src/common/getopt1.c"
|
|
CPPFLAGS="-I\$(top_srcdir)/src/common $CPPFLAGS"
|
|
AC_DEFINE(HAVE_GETOPT_H, 1, [Define if you have the <getopt.h> header file.])])
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_ERROR_AT_LINE
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_MEMCMP
|
|
AC_FUNC_STAT
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS([getpass gettimeofday memset mkdir strdup strerror setutent])
|
|
|
|
dnl C Compiler features
|
|
AC_C_INLINE
|
|
if test "$GCC" = "yes"; then
|
|
CFLAGS="-Wall $CFLAGS"
|
|
# Disabled until lex-parse.l doesn't give us a warning
|
|
# -Werror
|
|
fi
|
|
|
|
dnl OS specific options
|
|
case "$host_os" in
|
|
hpux*)
|
|
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
|
|
;;
|
|
osf*)
|
|
CFLAGS="$CFLAGS -D_POSIX_PII_SOCKET"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(LIBDL)
|
|
AC_CHECK_LIB(dl, dlopen, [LIBDL="$LIBDL -ldl" ac_cv_func_dlopen_ldl=yes], ac_cv_func_dlopen_ldl=no)
|
|
|
|
AC_CHECK_HEADERS([readline/readline.h])
|
|
AC_SUBST(LIBREADLINE)
|
|
saved_LIBS="$LIBS"
|
|
# libreadline will also need libtermcap on some OSes
|
|
for add in "" "-ltermcap"; do
|
|
if test "x$add" != x; then
|
|
AC_MSG_CHECKING([for readline with])
|
|
AC_MSG_RESULT($add)
|
|
fi
|
|
LIBS="$saved_LIBS $add"
|
|
unset ac_cv_lib_readline_readline
|
|
AC_CHECK_LIB(readline, readline, [
|
|
LIBREADLINE="-lreadline $add"
|
|
ac_cv_func_readline_lreadline=yes
|
|
], ac_cv_func_readline_lreadline=no)
|
|
test "x$ac_cv_func_readline_lreadline" = xyes && break
|
|
done
|
|
LIBS="$LIBS $LIBREADLINE"
|
|
AC_CHECK_FUNCS(readline)
|
|
LIBS="$saved_LIBS"
|
|
|
|
#
|
|
# We check for various libraries
|
|
# - SysVr4 style of "-lsocket" at first (unless in libc)
|
|
# The hallmark is connect() routine (we presume)
|
|
#
|
|
AC_SUBST(LIBSOCKET)dnl
|
|
ac_cv_libsocket_both=1
|
|
AC_CHECK_FUNC(connect, ac_cv_libsocket_both=0)
|
|
AC_CHECK_FUNC(gethostbyname, ac_cv_libsocket_both=0)
|
|
if test "$ac_cv_libsocket_both" = 1 ; then
|
|
# Check cache
|
|
if test "$ac_cv_func_socket_lsocket" = yes ; then
|
|
AC_MSG_RESULT([need -lsocket library (cached)])
|
|
LIBSOCKET="-lsocket"
|
|
if test "$ac_cv_func_gethostbyname_lnsl" = yes ; then
|
|
LIBSOCKET="-lsocket -lnsl"
|
|
fi
|
|
else
|
|
# Well, will this work ? SysVR4, but not Sun Solaris ?
|
|
AC_CHECK_LIB(socket, connect, [LIBSOCKET="-lsocket"
|
|
ac_cv_func_socket_lsocket=yes],
|
|
ac_cv_func_socket_lsocket=no)
|
|
if test "$ac_cv_func_socket_lsocket" = yes ; then
|
|
t_oldLibs="$LIBS"
|
|
LIBS="$LIBS -lsocket $LIBRESOLV"
|
|
AC_TRY_LINK([],[gethostbyname();], ,[
|
|
LIBS="$LIBS -lnsl" # Add this Solaris library..
|
|
AC_TRY_LINK([],[gethostbyname();],[
|
|
LIBSOCKET="-lsocket -lnsl"
|
|
ac_cv_func_gethostbyname_lnsl=yes
|
|
], [
|
|
AC_MSG_ERROR([Weird, '$LIBS' not enough to find gethostbyname() ?!])
|
|
])
|
|
])
|
|
LIBS="$t_oldLibs"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LIBRESOLV)dnl
|
|
if test "x$LIBRESOLV" = "x"; then
|
|
# Ok, No -lresolv, is this enough for the _res to appear ?
|
|
t_oldLibs="$LIBS"
|
|
LIBS="$LIBS $LIBSOCKET"
|
|
ac_cv_var__res_options=no
|
|
# This following is for IRIX6.4, and I sincerely hope it
|
|
# will not fail on other systems... It did! It did!
|
|
# Many systems don't have idemponent headers, they need specific
|
|
# includes before latter ones, or the latter ones won't be successful...
|
|
AC_TRY_LINK([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/nameser.h>
|
|
#include <resolv.h>],
|
|
[_res.options = RES_INIT;],
|
|
ac_cv_var__res_options=yes);
|
|
if test "$ac_cv_var__res_options" != "yes"; then
|
|
LIBRESOLV="-lresolv"
|
|
fi
|
|
LIBS="$t_oldLibs"
|
|
fi
|
|
|
|
if test "x$LIBRESOLV" = "x"; then
|
|
# glibc 2.2.4 and libresolv is difficult
|
|
# - gethostbyname won't require lresolv because all
|
|
# queries are made through the nsswitch
|
|
# - checking for the variable _res will not require
|
|
# lresolv because _res is defined somewhere
|
|
AC_CHECK_LIB(resolv, res_query, [LIBRESOLV=-lresolv])
|
|
LIBS="$t_oldLibs"
|
|
fi
|
|
|
|
# See about the routines that possibly exist at the libraries..
|
|
LIBS="$t_oldLibs $LIBSOCKET"
|
|
AC_CHECK_FUNCS(socket socketpair)
|
|
LIBS="$t_oldLibs"
|
|
|
|
if test "$ac_cv_func_socket" = no -a "$LIBSOCKET" != ""; then
|
|
LIBS="$LIBS $LIBSOCKET"
|
|
AC_TRY_LINK([],[socket();], ac_cv_func_socket=yes)
|
|
if test $ac_cv_func_socket = yes; then
|
|
AC_DEFINE(HAVE_SOCKET, 1, [Have socket])
|
|
fi
|
|
LIBS="$t_oldLibs"
|
|
fi
|
|
if test "$ac_cv_func_socketpair" = no -a "$LIBSOCKET" != ""; then
|
|
LIBS="$LIBS $LIBSOCKET"
|
|
AC_TRY_LINK([],[socketpair();], ac_cv_func_socketpair=yes)
|
|
if test $ac_cv_func_socketpair = yes; then
|
|
AC_DEFINE(HAVE_SOCKETPAIR, 1, [Have socketpair])
|
|
fi
|
|
LIBS="$t_oldLibs"
|
|
fi
|
|
|
|
# Always link lib{socket,nsl,resolv) if found, sigh.
|
|
LIBS="$LIBS $LIBSOCKET $LIBRESOLV"
|
|
|
|
AC_ARG_WITH(flex-dir,
|
|
[ --with-flex-dir=PATH Specify path to flex installation],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
tryflexdir=$withval
|
|
fi
|
|
]
|
|
)
|
|
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_SUBST(LIBFL)
|
|
AC_CACHE_CHECK([for flex directory], ac_cv_flexdir, [
|
|
for flexdir in $tryflexdir "" /usr/local/flex /usr/lib/flex /usr/local/flex /usr/lib/flex /usr/local /usr/pkg /opt /opt/flex ; do
|
|
# Skip directories if they don't exist
|
|
if test ! -z "$flexdir" -a ! -d "$flexdir" ; then
|
|
continue;
|
|
fi
|
|
|
|
LIBFL="-lfl"
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
if test ! -z "$flexdir" -a "x$flexdir" != "x/usr"; then
|
|
# Try to use $flexdir/lib if it exists, otherwise
|
|
# $flexdir
|
|
if test -d "$flexdir/lib" ; then
|
|
LDFLAGS="-L$flexdir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$flexdir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$flexdir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$flexdir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $flexdir/include if it exists, otherwise
|
|
# $flexdir
|
|
if test -d "$flexdir/include" ; then
|
|
CPPFLAGS="-I$flexdir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$flexdir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
break;
|
|
done
|
|
|
|
if test -z "$flexdir" ; then
|
|
flexdir="(system)"
|
|
fi
|
|
|
|
ac_cv_flexdir=$flexdir
|
|
])
|
|
|
|
if (test ! -z "$ac_cv_flexdir" && test "x$ac_cv_flexdir" != "x(system)") ; then
|
|
dnl Need to recover flexdir - test above runs in subshell
|
|
flexdir=$ac_cv_flexdir
|
|
if test ! -z "$flexdir" -a "x$flexdir" != "x/usr"; then
|
|
# Try to use $flexdir/lib if it exists, otherwise
|
|
# $flexdir
|
|
if test -d "$flexdir/lib" ; then
|
|
LDFLAGS="-L$flexdir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$flexdir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$flexdir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$flexdir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $flexdir/include if it exists, otherwise
|
|
# $flexdir
|
|
if test -d "$flexdir/include" ; then
|
|
CPPFLAGS="-I$flexdir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$flexdir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl The big search for OpenSSL
|
|
AC_ARG_WITH(ssl-dir,
|
|
[ --with-ssl-dir=PATH Specify path to OpenSSL installation],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
tryssldir=$withval
|
|
fi
|
|
]
|
|
)
|
|
|
|
SSL_MSG="no"
|
|
saved_LIBS="$LIBS"
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_SUBST(LIBCRYPTO)
|
|
AC_SUBST(LIBCRYPTOA)
|
|
AC_CACHE_CHECK([for OpenSSL directory], ac_cv_openssldir, [
|
|
for ssldir in $tryssldir /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
|
|
# Skip directories if they don't exist
|
|
if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
|
|
continue;
|
|
fi
|
|
LIBCRYPTO="-lcrypto"
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
LIBS="$saved_LIBS $LIBCRYPTO"
|
|
|
|
if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
|
|
# Try to use $ssldir/lib if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/lib" ; then
|
|
LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$ssldir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $ssldir/include if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/include" ; then
|
|
CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
|
|
# Basic test to check for compatible version and correct linking
|
|
# *does not* test for RSA - that comes later.
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <string.h>
|
|
#include <openssl/rand.h>
|
|
int main(void)
|
|
{
|
|
char a[2048];
|
|
memset(a, 0, sizeof(a));
|
|
RAND_add(a, sizeof(a), sizeof(a));
|
|
return(RAND_status() <= 0);
|
|
}
|
|
],
|
|
[
|
|
found_crypto=1
|
|
], []
|
|
)
|
|
|
|
|
|
if test -n "$found_crypto" ; then
|
|
# we found openssl, lets see if it
|
|
# has an engine
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
if test -d "$ssldir/lib" ; then
|
|
LIBCRYPTOA="$ssldir/lib/libcrypto.a -ldl"
|
|
else
|
|
LIBCRYPTOA="$ssldir/libcrypto.a -ldl"
|
|
fi
|
|
LIBS="$saved_LIBS $LIBCRYPTOA"
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <string.h>
|
|
#include <openssl/opensslv.h>
|
|
#include <openssl/engine.h>
|
|
#include <openssl/rand.h>
|
|
int main(void)
|
|
{
|
|
char a[2048];
|
|
ENGINE *e;
|
|
|
|
e = ENGINE_new();
|
|
ENGINE_load_dynamic();
|
|
if (!e) return 1;
|
|
memset(a, 0, sizeof(a));
|
|
RAND_add(a, sizeof(a), sizeof(a));
|
|
return(RAND_status() <= 0);
|
|
}
|
|
],
|
|
[
|
|
found_engine=1
|
|
], []
|
|
)
|
|
fi
|
|
|
|
if test -n "$found_crypto" ; then
|
|
break;
|
|
fi
|
|
done
|
|
|
|
# if test -z "$found_crypto" ; then
|
|
# AC_MSG_ERROR([Could not find working OpenSSL library, please install or check config.log])
|
|
# fi
|
|
if test -n "$found_crypto" ; then
|
|
if test -z "$ssldir" ; then
|
|
ssldir="(system)"
|
|
fi
|
|
ac_cv_openssldir=$ssldir
|
|
SSL_MSG="yes"
|
|
fi
|
|
], [SSL_MSG=yes])
|
|
|
|
if (test ! -z "$ac_cv_openssldir" && test "x$ac_cv_openssldir" != "x(system)") ; then
|
|
dnl Need to recover ssldir - test above runs in subshell
|
|
ssldir=$ac_cv_openssldir
|
|
if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
|
|
# Try to use $ssldir/lib if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/lib" ; then
|
|
LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$ssldir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$ssldir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $ssldir/include if it exists, otherwise
|
|
# $ssldir
|
|
if test -d "$ssldir/include" ; then
|
|
CPPFLAGS="-I$ssldir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$ssldir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
LIBS="$saved_LIBS"
|
|
if test "x$SSL_MSG" = "xyes" ; then
|
|
AC_DEFINE(HAVE_OPENSSL, 1, [Have OpenSSL libraries])
|
|
fi
|
|
AM_CONDITIONAL(HAVE_SSL, test "x$SSL_MSG" = "xyes")
|
|
AM_CONDITIONAL(HAVE_ENGINE, test -n "$found_engine")
|
|
|
|
ENGINE_MSG="no"
|
|
if test -n "$found_engine"
|
|
then
|
|
ENGINE_MSG="yes"
|
|
fi
|
|
|
|
AC_ARG_WITH(pam-dir,
|
|
[ --with-pam-dir=PATH Specify path for PAM installation libraries],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
trypamdir=$withval
|
|
fi
|
|
]
|
|
)
|
|
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_CACHE_CHECK([for pam directory], ac_cv_pamdir, [
|
|
for pamdir in $trypamdir "" /usr/local /usr/pkg /opt ; do
|
|
# Skip directories if they don't exist
|
|
if test ! -z "$pamdir" -a ! -d "$pamdir" ; then
|
|
continue;
|
|
fi
|
|
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
if test ! -z "$pamdir" -a "x$pamdir" != "x/usr"; then
|
|
# Try to use $pamdir/lib if it exists, otherwise
|
|
# $pamdir
|
|
if test -d "$pamdir/lib" ; then
|
|
LDFLAGS="-L$pamdir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$pamdir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$pamdir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$pamdir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $pamdir/include if it exists, otherwise
|
|
# $pamdir
|
|
if test -d "$pamdir/include" ; then
|
|
CPPFLAGS="-I$pamdir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$pamdir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
break;
|
|
done
|
|
|
|
if test -z "$pamdir" ; then
|
|
pamdir="(system)"
|
|
fi
|
|
|
|
ac_cv_pamdir=$pamdir
|
|
])
|
|
|
|
if (test ! -z "$ac_cv_pamdir" && test "x$ac_cv_pamdir" != "x(system)") ; then
|
|
dnl Need to recover pamdir - test above runs in subshell
|
|
pamdir=$ac_cv_pamdir
|
|
if test ! -z "$pamdir" -a "x$pamdir" != "x/usr"; then
|
|
# Try to use $pamdir/lib if it exists, otherwise
|
|
# $pamdir
|
|
if test -d "$pamdir/lib" ; then
|
|
LDFLAGS="-L$pamdir/lib $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$pamdir/lib $LDFLAGS"
|
|
fi
|
|
else
|
|
LDFLAGS="-L$pamdir $saved_LDFLAGS"
|
|
if test ! -z "$need_dash_r" ; then
|
|
LDFLAGS="-R$pamdir $LDFLAGS"
|
|
fi
|
|
fi
|
|
# Try to use $pamdir/include if it exists, otherwise
|
|
# $pamdir
|
|
if test -d "$pamdir/include" ; then
|
|
CPPFLAGS="-I$pamdir/include $saved_CPPFLAGS"
|
|
else
|
|
CPPFLAGS="-I$pamdir $saved_CPPFLAGS"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
dnl Check for PAM libs
|
|
PAM_MSG="no"
|
|
no_pam=""
|
|
AC_SUBST(LIBPAM)
|
|
saved_LIBS="$LIBS"
|
|
AC_MSG_CHECKING([PAM support])
|
|
AC_ARG_WITH(pam,
|
|
[ --with-pam Enable PAM support],
|
|
[
|
|
if test "x$withval" = "xno" ; then
|
|
AC_MSG_RESULT(disabled)
|
|
no_pam=1
|
|
fi
|
|
],
|
|
)
|
|
if test -z "$no_pam" ; then
|
|
if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
|
|
AC_MSG_RESULT(yes)
|
|
PAM_MSG="yes"
|
|
AC_CHECK_LIB(pam, pam_set_item, [LIBPAM="$LIBPAM -lpam"], AC_MSG_ERROR([*** libpam missing]))
|
|
LIBS="$LIBS $LIBPAM"
|
|
AC_CHECK_FUNCS(pam_getenvlist)
|
|
AC_CHECK_FUNCS(pam_putenv)
|
|
disable_shadow=yes
|
|
AC_DEFINE(HAVE_PAM, 1, [Have Pluggable Authentication Modules])
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
|
|
dnl Check for older PAM
|
|
if test "x$PAM_MSG" = "xyes" ; then
|
|
# Check PAM strerror arguments (old PAM)
|
|
AC_MSG_CHECKING([whether pam_strerror takes only one argument])
|
|
AC_TRY_COMPILE(
|
|
[
|
|
#include <stdlib.h>
|
|
#include <security/pam_appl.h>
|
|
],
|
|
[(void)pam_strerror((pam_handle_t *)NULL, -1);],
|
|
[AC_MSG_RESULT(no)],
|
|
[
|
|
AC_DEFINE(HAVE_OLD_PAM, 1, [Have OLD Pluggable Authentication Modules])
|
|
AC_MSG_RESULT(yes)
|
|
PAM_MSG="yes (old library)"
|
|
]
|
|
)
|
|
fi
|
|
LIBS="$saved_LIBS"
|
|
AM_CONDITIONAL(HAVE_PAM, test "x$PAM_MSG" = "xyes")
|
|
|
|
dnl Check for SIA libs
|
|
AC_SUBST(LIBSIA)
|
|
SIA_MSG="no"
|
|
no_osfsia=""
|
|
AC_MSG_CHECKING([SIA support])
|
|
AC_ARG_WITH(osfsia,
|
|
[ --with-osfsia Enable Digital Unix SIA],
|
|
[
|
|
if test "x$withval" = "xno" ; then
|
|
AC_MSG_RESULT(disabled)
|
|
no_osfsia=1
|
|
fi
|
|
],
|
|
)
|
|
if test -z "$no_osfsia" ; then
|
|
if test -f /etc/sia/matrix.conf; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_OSF_SIA, 1, [Have Digital Unix SIA])
|
|
LIBSIA="$LIBSIA -lsecurity -ldb -lm -laud"
|
|
SIA_MSG="yes"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_SIA, test "x$SIA_MSG" = "xyes")
|
|
|
|
PCSC_MSG=no
|
|
pcsc_path=/usr
|
|
AC_SUBST(CFLAGS_PCSC)
|
|
AC_SUBST(LIBPCSC)
|
|
found_pcsclite=no
|
|
saved_LIBS="$LIBS"
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
AC_ARG_WITH(pcsclite,
|
|
[ --with-pcsclite=PATH use PC/SC Lite in PATH],
|
|
[pcsc_path=$withval])
|
|
|
|
if test "$pcsc_path" != "no"; then
|
|
AC_MSG_CHECKING(for PC/SC-Lite support)
|
|
for pcscdir in /pcsc ""; do
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
CFLAGS_PCSC=
|
|
LIBS="-lpcsclite $saved_LIBS"
|
|
|
|
for pcsc_libdir in $pcsc_path/lib$pcscdir \
|
|
$pcsc_path$pcscdir/lib \
|
|
$pcsc_path$pcscdir; do
|
|
if test -d $pcsc_libdir; then
|
|
if test -n "${need_dash_r}"; then
|
|
LDFLAGS="-R${pcsc_libdir}/ ${LDFLAGS}"
|
|
fi
|
|
LDFLAGS="-L${pcsc_libdir} ${LDFLAGS}"
|
|
fi
|
|
done
|
|
|
|
for pcsc_incdir in $pcsc_path/include$pcscdir \
|
|
$pcsc_path$pcscdir/include \
|
|
$pcsc_path$pcscdir; do
|
|
if test -d $pcsc_incdir; then
|
|
CFLAGS_PCSC="-I${pcsc_incdir}"
|
|
break;
|
|
fi
|
|
done
|
|
|
|
CPPFLAGS="${CFLAGS_PCSC} ${CPPFLAGS}"
|
|
AC_TRY_LINK([#include <stdlib.h>
|
|
#include <winscard.h>],[SCardEstablishContext(0, NULL, NULL, NULL);], ac_cv_lib_pcsclite_SCardEstablishContext=yes)
|
|
if test "x$ac_cv_lib_pcsclite_SCardEstablishContext" = "xyes"; then
|
|
AC_DEFINE(HAVE_PCSCLITE, 1, [Have PC/SC Lite])
|
|
PCSC_MSG=yes
|
|
break;
|
|
fi
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
LIBS="$saved_LIBS"
|
|
done
|
|
AC_MSG_RESULT($PCSC_MSG)
|
|
fi
|
|
AM_CONDITIONAL(HAVE_PCSCLITE, test "x$ac_cv_lib_pcsclite_SCardEstablishContext" = "xyes")
|
|
|
|
dnl --enable-usbtoken option.
|
|
AC_ARG_ENABLE(usbtoken, AC_HELP_STRING(
|
|
[--enable-usbtoken], [enable the usbtoken reader backed. [default=no]]),
|
|
, enable_usbtoken=no)
|
|
if test "x$enable_usbtoken" = "xyes"; then
|
|
AC_DEFINE(HAVE_USBTOKEN, 1, [Enable usbtoken support])
|
|
USBTOKEN_MSG=yes
|
|
else
|
|
USBTOKEN_MSG=no
|
|
fi
|
|
AM_CONDITIONAL(HAVE_USBTOKEN, test "x$USBTOKEN_MSG" = "xyes")
|
|
|
|
OPENCT_MSG=no
|
|
openct_path=/usr
|
|
AC_SUBST(OPENCT_CFLAGS)
|
|
AC_SUBST(OPENCT_LDFLAGS)
|
|
AC_SUBST(OPENCT_LIBS)
|
|
found_openct=no
|
|
AC_ARG_WITH(openct,
|
|
[ --with-openct=PATH use OpenCT in PATH],
|
|
[with_openct=$withval])
|
|
|
|
if test "x$with_openct" != "xno" -a "x$with_openct" != "x"; then
|
|
if test "x$with_openct" != "xyes"; then
|
|
openct_path=$with_openct
|
|
with_openct=yes
|
|
fi
|
|
saved_LIBS="$LIBS"
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
saved_CFLAGS="$CFLAGS"
|
|
|
|
AC_MSG_CHECKING(for OpenCT support)
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
|
|
OPENCT_CFLAGS="-I${openct_path}/include"
|
|
OPENCT_LIBS="-lopenct"
|
|
OPENCT_LDFLAGS=
|
|
if test -n "${need_dash_r}"; then
|
|
OPENCT_LDFLAGS="-R${openct_path}/lib"
|
|
fi
|
|
OPENCT_LDFLAGS="-L${openct_path}/lib $OPENCT_LDFLAGS"
|
|
|
|
LIBS="$OPENCT_LIBS $saved_LIBS"
|
|
LDFLAGS="$OPENCT_LDFLAGS $saved_LDFLAGS"
|
|
CFLAGS="$OPENCT_CFLAGS $saved_CFLAGS"
|
|
|
|
AC_TRY_LINK([#include <openct/openct.h>],
|
|
[ct_reader_connect(0);],
|
|
[
|
|
AC_DEFINE(HAVE_OPENCT, 1,
|
|
[Have OpenCT libraries and header files])
|
|
OPENCT_MSG=yes
|
|
LIBOPENCT="-lopenct"
|
|
],[
|
|
if test "x$with_openct" != "xno"; then
|
|
AC_MSG_ERROR([OpenCT not found in $openct_path!])
|
|
fi
|
|
OPENCT_LDFLAGS=
|
|
OPENCT_LIBS=
|
|
OPENCT_CFLAGS=
|
|
])
|
|
AC_MSG_RESULT($OPENCT_MSG)
|
|
|
|
CFLAGS="$saved_CFLAGS"
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
LIBS="$saved_LIBS"
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_OPENCT, test "x$OPENCT_MSG" = "xyes")
|
|
|
|
# Check for user-specified random device, otherwise check /dev/urandom
|
|
AC_ARG_WITH(random,
|
|
[ --with-random=FILE read entropy from FILE (default=/dev/urandom)],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
RANDOM_POOL="$withval";
|
|
AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL", [Location of random number pool])
|
|
fi
|
|
],
|
|
[
|
|
# Check for random device
|
|
AC_CHECK_FILE("/dev/urandom",
|
|
[
|
|
RANDOM_POOL="/dev/urandom";
|
|
AC_SUBST(RANDOM_POOL)
|
|
AC_DEFINE_UNQUOTED(RANDOM_POOL, "$RANDOM_POOL", [Location of random number pool])
|
|
]
|
|
)
|
|
]
|
|
)
|
|
|
|
# Check for PRNGD/EGD pool file
|
|
AC_ARG_WITH(prngd-port,
|
|
[ --with-prngd-port=PORT read entropy from PRNGD/EGD localhost:PORT],
|
|
[
|
|
if test ! -z "$withval" -a "x$withval" != "xno" ; then
|
|
PRNGD_PORT="$withval"
|
|
AC_DEFINE_UNQUOTED(PRNGD_PORT, $PRNGD_PORT, [Port number of PRNGD/EGD random number socket])
|
|
fi
|
|
]
|
|
)
|
|
|
|
# Check for PRNGD/EGD pool file
|
|
AC_ARG_WITH(prngd-socket,
|
|
[ --with-prngd-socket=FILE read entropy from PRNGD/EGD socket FILE (default=/var/run/egd-pool)],
|
|
[
|
|
if test "x$withval" != "xno" ; then
|
|
PRNGD_SOCKET="$withval"
|
|
AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET", [Location of PRNGD/EGD random number socket])
|
|
fi
|
|
],
|
|
[
|
|
# Check for existing socket only if we don't have a random device already
|
|
if test -z "$RANDOM_POOL" ; then
|
|
AC_MSG_CHECKING(for PRNGD/EGD socket)
|
|
# Insert other locations here
|
|
for sock in /var/run/egd-pool /dev/egd-pool /etc/entropy /tmp/entropy; do
|
|
if test -r $sock && $TEST_MINUS_S_SH -c "test -S $sock -o -p $sock" ; then
|
|
PRNGD_SOCKET="$sock"
|
|
AC_DEFINE_UNQUOTED(PRNGD_SOCKET, "$PRNGD_SOCKET", [Location of PRNGD/EGD random number socket])
|
|
break;
|
|
fi
|
|
done
|
|
if test ! -z "$PRNGD_SOCKET" ; then
|
|
AC_MSG_RESULT($PRNGD_SOCKET)
|
|
else
|
|
AC_MSG_RESULT(not found)
|
|
fi
|
|
fi
|
|
]
|
|
)
|
|
|
|
### BEGIN LDAP SPECIFIC OPTIONS
|
|
dnl ldap autoconf magic partly taken from pam_ldap
|
|
|
|
dnl --enable-ldap option.
|
|
AC_ARG_ENABLE(ldap,
|
|
[ --enable-ldap enable use of LDAP for authentication. [default=yes]],
|
|
, enable_ldap=yes)
|
|
AC_ARG_ENABLE(ssl, [ --disable-ssl disable SSL/TSL support for ldap])
|
|
AC_ARG_WITH(ldap-lib, [ --with-ldap-lib=type select ldap library [auto|netscape5|netscape4|netscape3|umich|openldap]])
|
|
AC_ARG_WITH(ldap-dir, [ --with-ldap-dir=DIR base directory of ldap SDK])
|
|
|
|
AC_SUBST(LIBLDAP)
|
|
LDAP_MSG="no"
|
|
if (test x$enable_ldap = xyes); then
|
|
if test -n "$with_ldap_dir"; then
|
|
CPPFLAGS="$CPPFLAGS -I$with_ldap_dir/include"
|
|
LDFLAGS="$LDFLAGS -L$with_ldap_dir/lib"
|
|
case "$target_os" in
|
|
solaris*) LDFLAGS="$LDFLAGS -Wl,-R$with_ldap_dir/lib" ;;
|
|
*) LDFLAGS="$LDFLAGS -Wl,-rpath,$with_ldap_dir/lib" ;;
|
|
esac
|
|
fi
|
|
|
|
AC_CHECK_HEADERS(lber.h ldap.h ldap_ssl.h)
|
|
|
|
dnl check which ldap library we have
|
|
if test -z "$with_ldap_lib"; then
|
|
with_ldap_lib=auto
|
|
fi
|
|
|
|
if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = umich -o $with_ldap_lib = openldap \); then
|
|
AC_CHECK_LIB(lber, ber_init, LIBLDAP="-llber $LIBLDAP" found_lber_lib=yes)
|
|
saved_LIBS="$LIBS"
|
|
LIBS="$LIBS $LIBLDAP"
|
|
AC_CHECK_LIB(ldap, ldap_search, LIBLDAP="-lldap $LIBLDAP" found_ldap_lib=yes)
|
|
AC_CHECK_LIB(ldap, ldap_start_tls_s, LIBLDAP="-lssl $LIBLDAP" need_ssl_lib=yes)
|
|
LIBS="$saved_LIBS"
|
|
fi
|
|
if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape5 \); then
|
|
AC_CHECK_LIB(ldap50, ldap_search, LIBLDAP="-lldap50 -lssldap50 -lssl3 -lnss3 -lnspr4 -lprldap50 -lplc4 -lplds4 $LIBLDAP" found_ldap_lib=yes need_pthread=true,, -lpthread)
|
|
fi
|
|
if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape4 \); then
|
|
AC_CHECK_LIB(ldapssl41, ldap_search, LIBLDAP="-lldapssl41 -lplc3 -lplds3 -lnspr3 $LIBLDAP" found_ldap_lib=yes need_pthread=true,, -lpthread)
|
|
if test -z "$found_ldap_lib"; then
|
|
AC_CHECK_LIB(ldapssl40, ldap_search, LIBLDAP="-lldapssl40 $LIBLDAP" found_ldap_lib=yes need_pthread=true,, -lpthread)
|
|
fi
|
|
fi
|
|
if test -z "$found_ldap_lib" -a \( $with_ldap_lib = auto -o $with_ldap_lib = netscape3 \); then
|
|
AC_CHECK_LIB(ldapssl30, ldap_search, LIBLDAP="-lldapssl30 $LIBLDAP" found_ldap_lib=yes need_pthread=true,, -lpthread)
|
|
fi
|
|
|
|
if test -n "$found_ldap_lib" -a "x$ac_cv_header_ldap_h" = "xyes"; then
|
|
AC_DEFINE(LDAP_REFERRALS,1,[This is needed for the native Solaris LDAP SDK])
|
|
AC_DEFINE(HAVE_LDAP, 1, [Use LDAP for authentication etc.])
|
|
LDAP_MSG="yes"
|
|
|
|
saved_LIBS="$LIBS"
|
|
LIBS="$LIBS $LIBLDAP"
|
|
AC_CHECK_FUNCS(ldap_init)
|
|
if test "$enable_ssl" \!= "no"; then
|
|
AC_CHECK_FUNCS(ldapssl_init ldap_start_tls_s ldap_pvt_tls_set_option)
|
|
fi
|
|
LIBS="$saved_LIBS"
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_LDAP, test "x$LDAP_MSG" = "xyes")
|
|
### END LDAP SPECIFIC OPTIONS
|
|
|
|
### BEGIN ASSUAN SPECIFIC OPTIONS
|
|
ASSUAN_MSG="no"
|
|
AC_SUBST(CFLAGS_ASSUAN)
|
|
AC_SUBST(LIBASSUAN)
|
|
LIBASSUAN="-lassuan"
|
|
AC_ARG_WITH(assuan,
|
|
[ --with-assuan=PATH use Assuan libraries in PATH],
|
|
[
|
|
if test -d "$withval/lib"; then
|
|
if test -n "${need_dash_r}"; then
|
|
LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}"
|
|
else
|
|
LDFLAGS="-L${withval}/lib ${LDFLAGS}"
|
|
fi
|
|
else
|
|
if test -n "${need_dash_r}"; then
|
|
LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}"
|
|
else
|
|
LDFLAGS="-L${withval} ${LDFLAGS}"
|
|
fi
|
|
fi
|
|
if test -d "$withval/include"; then
|
|
CFLAGS_ASSUAN="-I${withval}/include ${CFLAGS_ASSUAN}"
|
|
else
|
|
CFLAGS_ASSUAN="-I${withval} ${CFLAGS_ASSUAN}"
|
|
fi
|
|
]
|
|
)
|
|
|
|
AC_CHECK_LIB(assuan, assuan_pipe_connect, ASSUAN_MSG="yes", ASSUAN_MSG="no")
|
|
if test "x$ASSUAN_MSG" != "xno" ; then
|
|
saved_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CFLAGS_ASSUAN $CPPFLAGS"
|
|
AC_CHECK_HEADER(assuan.h, ASSUAN_MSG="yes", ASSUAN_MSG="no")
|
|
CPPFLAGS="$saved_CPPFLAGS"
|
|
fi
|
|
AM_CONDITIONAL(HAVE_ASSUAN, test "x$ASSUAN_MSG" = "xyes")
|
|
### END ASSUAN SPECIFIC OPTIONS
|
|
|
|
PLUGINDIR="/usr/lib/mozilla/plugins"
|
|
AC_ARG_WITH(plugin-dir,
|
|
[ --with-plugin-dir=PATH install plugin to PATH [[/usr/lib/mozilla/plugins]]],
|
|
[
|
|
PLUGINDIR="$withval"
|
|
]
|
|
)
|
|
AC_SUBST(PLUGINDIR)
|
|
|
|
# Check for PIN entry program used by OpenSC Signer
|
|
PIN_ENTRY="/usr/local/bin/gpinentry"
|
|
AC_ARG_WITH(pin-entry,
|
|
[ --with-pin-entry=PROG Run PROG as PIN-entry for OpenSC Signer],
|
|
[
|
|
if test ! -z "$withval" -a "x$withval" != "xno" ; then
|
|
PIN_ENTRY="$withval"
|
|
fi
|
|
]
|
|
)
|
|
AC_DEFINE_UNQUOTED(PIN_ENTRY, "$PIN_ENTRY", [PIN-entry program for OpenSC Signer])
|
|
|
|
if test "x$prefix" = xNONE; then
|
|
prefix=$ac_default_prefix
|
|
fi
|
|
|
|
dnl Enable/disable debugging messages.
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug enable debug messages. [default=no]],
|
|
, enable_debug=no)
|
|
if (test x$enable_debug = xyes); then
|
|
AC_DEFINE(DEBUG, 1, [Enable debug messages.])
|
|
fi
|
|
|
|
dnl Check for SGML processor
|
|
AC_ARG_WITH(docbook,
|
|
[ --without-docbook do no generate html manual (needs docbook)],
|
|
with_docbook=$withval)
|
|
AC_CHECK_PROG(XSLTPROC, xsltproc, xsltproc)
|
|
if test "x$XSLTPROC" = "x"; then
|
|
if test "x$with_docbook" = "xyes"; then
|
|
AC_MSG_ERROR([Docbook support requested, but cannot find xsltproc])
|
|
fi
|
|
with_docbook=no
|
|
fi
|
|
AM_CONDITIONAL(HAVE_DOCBOOK, test "x$with_docbook" != "xno")
|
|
|
|
CPPFLAGS="-I\${top_builddir}/src/include $CPPFLAGS"
|
|
|
|
AC_SUBST(LIBSCCONF)
|
|
LIBSCCONF="\${top_builddir}/src/scconf/libscconf.la"
|
|
AC_SUBST(LIBSCLDAP)
|
|
LIBSCLDAP="\${top_builddir}/src/scldap/libscldap.la"
|
|
AC_SUBST(LIBSCRANDOM)
|
|
LIBSCRANDOM="\${top_builddir}/src/scrandom/libscrandom.la"
|
|
|
|
AM_CONDITIONAL(HAVE_SCIDI, test "foo" = "bar")
|
|
|
|
scldap_etc_path=`eval echo ${sysconfdir}` ; scldap_etc_path=`eval echo ${scldap_etc_path}`
|
|
AC_DEFINE_UNQUOTED(SCLDAP_ETC_PATH, "$scldap_etc_path", [etc path for libscldap])
|
|
scldap_conf_path=`eval echo ${scldap_etc_path}/scldap.conf`
|
|
AC_DEFINE_UNQUOTED(SCLDAP_CONF_PATH, "$scldap_conf_path", [default config file for libscldap])
|
|
|
|
opensc_etc_path=`eval echo ${sysconfdir}` ; opensc_etc_path=`eval echo ${opensc_etc_path}`
|
|
AC_DEFINE_UNQUOTED(OPENSC_ETC_PATH, "$opensc_etc_path", [etc path for libopensc])
|
|
opensc_conf_path=`eval echo ${opensc_etc_path}/opensc.conf`
|
|
AC_DEFINE_UNQUOTED(OPENSC_CONF_PATH, "$opensc_conf_path", [default config file for libopensc])
|
|
|
|
AC_SUBST(CFLAGS_OPENSC)
|
|
CFLAGS_OPENSC=""
|
|
AC_SUBST(LIBOPENSC)
|
|
LIBOPENSC="\${top_builddir}/src/libopensc/libopensc.la"
|
|
|
|
# Pass information about installed OpenSC requirements, so that
|
|
# a proper opensc-config file will be build.
|
|
OPENSC_LIBS="-L${libdir} -lopensc"
|
|
OPENSC_CFLAGS=""
|
|
AC_SUBST(OPENSC_LIBS)
|
|
AC_SUBST(OPENSC_CFLAGS)
|
|
|
|
pkgdata=`eval echo ${datadir}/${PACKAGE}` ; pkgdata=`eval echo ${pkgdata}`
|
|
AC_SUBST(pkgdata)
|
|
|
|
AC_OUTPUT([
|
|
Makefile
|
|
aclocal/Makefile
|
|
docs/Makefile
|
|
docs/pkcs15-profile.5
|
|
etc/Makefile
|
|
src/Makefile
|
|
src/assuan/Makefile
|
|
src/common/Makefile
|
|
src/include/Makefile
|
|
src/include/opensc/Makefile
|
|
src/include/opensc/rsaref/Makefile
|
|
src/libopensc/Makefile
|
|
src/libopensc/opensc-config
|
|
src/libopensc/libopensc.pc
|
|
src/openssh/Makefile
|
|
src/pam/Makefile
|
|
src/pkcs11/Makefile
|
|
src/pkcs11/rsaref/Makefile
|
|
src/pkcs15init/Makefile
|
|
src/scam/Makefile
|
|
src/scconf/Makefile
|
|
src/scldap/Makefile
|
|
src/scrandom/Makefile
|
|
src/sia/Makefile
|
|
src/signer/Makefile
|
|
src/signer/npinclude/Makefile
|
|
src/sslengines/Makefile
|
|
src/tests/Makefile
|
|
src/tests/regression/Makefile
|
|
src/tools/Makefile
|
|
src/usbtoken/Makefile
|
|
tools/Makefile
|
|
win32/Makefile
|
|
])
|
|
|
|
if test ! -z "$RANDOM_POOL" ; then
|
|
RAND_MSG="device ($RANDOM_POOL)"
|
|
else
|
|
if test ! -z "$PRNGD_PORT" ; then
|
|
RAND_MSG="PRNGD/EGD (port localhost:$PRNGD_PORT)"
|
|
elif test ! -z "$PRNGD_SOCKET" ; then
|
|
RAND_MSG="PRNGD/EGD (socket $PRNGD_SOCKET)"
|
|
else
|
|
RAND_MSG="Builtin kluge"
|
|
BUILTIN_RNG=1
|
|
fi
|
|
fi
|
|
|
|
dnl Someone please show me a better way :)
|
|
A=`eval echo ${prefix}` ; A=`eval echo ${A}`
|
|
B=`eval echo ${bindir}` ; B=`eval echo ${B}`
|
|
C=`eval echo ${sysconfdir}` ; C=`eval echo ${C}`
|
|
|
|
echo ""
|
|
echo "OpenSC has been configured with the following options"
|
|
|
|
echo ""
|
|
echo "User binaries: ${B}"
|
|
echo "Configuration files: ${C}"
|
|
|
|
echo ""
|
|
echo "Host: ${host}"
|
|
echo "Compiler: ${CC}"
|
|
echo "Compiler flags: ${CFLAGS}"
|
|
echo "Preprocessor flags: ${CPPFLAGS}"
|
|
echo "Linker flags: ${LDFLAGS}"
|
|
echo "Libraries: ${LIBS}"
|
|
|
|
echo ""
|
|
echo "Random number collection: ${RAND_MSG}"
|
|
echo "OpenSSL support: ${SSL_MSG}"
|
|
echo " with engine: ${ENGINE_MSG}"
|
|
echo "PC/SC support: ${PCSC_MSG}"
|
|
echo "USBToken support: ${USBTOKEN_MSG}"
|
|
echo "OpenCT support: ${OPENCT_MSG}"
|
|
echo "Assuan support: ${ASSUAN_MSG}"
|
|
echo "LDAP support: ${LDAP_MSG}"
|
|
echo "PAM support: ${PAM_MSG}"
|
|
echo "SIA support: ${SIA_MSG}"
|
|
|
|
echo ""
|
|
|
|
if test "x$ENGINE_MSG" = "xno" -a "x$SSL_MSG" = "xyes"
|
|
then
|
|
echo "OpenSSL was found. But to use the engine you will need"
|
|
echo "version 0.9.7a or later."
|
|
fi
|
|
|
|
if test ! -z "$BUILTIN_RNG" ; then
|
|
echo "WARNING: you are using the builtin random number service."
|
|
echo "The random number service is very simple and is only"
|
|
echo "intended for testing purposes. Please request your OS"
|
|
echo "vendor to include /dev/random in future versions of"
|
|
echo "their OS. Or use PRNGD/EGD instead, your choice."
|
|
fi
|