|
Packit |
fd8b60 |
AC_PREREQ(2.63)
|
|
Packit |
fd8b60 |
AC_COPYRIGHT([Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
|
|
Packit |
fd8b60 |
Massachusetts Institute of Technology.
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
define([K5_TOPDIR],[.])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(V5_SET_TOPDIR,[dnl
|
|
Packit |
fd8b60 |
ac_reltopdir="K5_TOPDIR"
|
|
Packit |
fd8b60 |
if test ! -r "$srcdir/K5_TOPDIR/aclocal.m4"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([Configure could not determine the relative topdir])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
ac_topdir=$srcdir/$ac_reltopdir
|
|
Packit |
fd8b60 |
ac_config_fragdir=$ac_reltopdir/config
|
|
Packit |
fd8b60 |
# echo "Looking for $srcdir/$ac_config_fragdir"
|
|
Packit |
fd8b60 |
if test -d "$srcdir/$ac_config_fragdir"; then
|
|
Packit |
fd8b60 |
AC_CONFIG_AUX_DIR(K5_TOPDIR/config)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([can not find config/ directory in $ac_reltopdir])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Version info.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
pushdef([x],esyscmd([sed -n 's/#define \([A-Z0-9_]*\)[ \t]*\(.*\)/\1=\2/p' < ]K5_TOPDIR/patchlevel.h))
|
|
Packit |
fd8b60 |
define([PL_KRB5_MAJOR_RELEASE],regexp(x,[KRB5_MAJOR_RELEASE=\(.*\)],[\1]))
|
|
Packit |
fd8b60 |
ifelse(PL_KRB5_MAJOR_RELEASE,,[errprint([Can't determine KRB5_MAJOR_RELEASE value from patchlevel.h.
|
|
Packit |
fd8b60 |
]) m4exit(1) dnl sometimes that does not work?
|
|
Packit |
fd8b60 |
builtin(m4exit,1)])
|
|
Packit |
fd8b60 |
define([PL_KRB5_MINOR_RELEASE],regexp(x,[KRB5_MINOR_RELEASE=\(.*\)],[\1]))
|
|
Packit |
fd8b60 |
ifelse(PL_KRB5_MINOR_RELEASE,,[errprint([Can't determine KRB5_MINOR_RELEASE value from patchlevel.h.
|
|
Packit |
fd8b60 |
]) m4exit(1) dnl sometimes that does not work?
|
|
Packit |
fd8b60 |
builtin(m4exit,1)])
|
|
Packit |
fd8b60 |
define([PL_KRB5_PATCHLEVEL],regexp(x,[KRB5_PATCHLEVEL=\(.*\)],[\1]))
|
|
Packit |
fd8b60 |
ifelse(PL_KRB5_PATCHLEVEL,,[errprint([Can't determine KRB5_PATCHLEVEL value from patchlevel.h.
|
|
Packit |
fd8b60 |
]) m4exit(1) dnl sometimes that does not work?
|
|
Packit |
fd8b60 |
builtin(m4exit,1)])
|
|
Packit |
fd8b60 |
define([PL_KRB5_RELTAIL],regexp(x,[KRB5_RELTAIL="\(.*\)"],[\1]))
|
|
Packit |
fd8b60 |
dnl RELTAIL is allowed to not be defined.
|
|
Packit |
fd8b60 |
popdef([x])
|
|
Packit |
fd8b60 |
define([K5_VERSION],PL_KRB5_MAJOR_RELEASE.PL_KRB5_MINOR_RELEASE[]ifelse(PL_KRB5_PATCHLEVEL,0,,.PL_KRB5_PATCHLEVEL)ifelse(PL_KRB5_RELTAIL,,,-PL_KRB5_RELTAIL))
|
|
Packit |
fd8b60 |
define([K5_BUGADDR],krb5-bugs@mit.edu)
|
|
Packit |
fd8b60 |
define([K5_AC_INIT],[AC_INIT(Kerberos 5, K5_VERSION, K5_BUGADDR, krb5)
|
|
Packit |
fd8b60 |
AC_CONFIG_SRCDIR($1)
|
|
Packit |
fd8b60 |
build_dynobj=no])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl drop in standard rules for all configure files -- CONFIG_RULES
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CONFIG_RULES,[dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([V5_SET_TOPDIR]) dnl
|
|
Packit |
fd8b60 |
EXTRA_FILES=""
|
|
Packit |
fd8b60 |
AC_SUBST(EXTRA_FILES)
|
|
Packit |
fd8b60 |
dnl Consider using AC_USE_SYSTEM_EXTENSIONS when we require autoconf
|
|
Packit |
fd8b60 |
dnl 2.59c or later, but be sure to test on Solaris first.
|
|
Packit |
fd8b60 |
AC_DEFINE([_GNU_SOURCE], 1, [Define to enable extensions in glibc])
|
|
Packit |
fd8b60 |
AC_DEFINE([__STDC_WANT_LIB_EXT1__], 1, [Define to enable C11 extensions])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
WITH_CC dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE_CPP
|
|
Packit |
fd8b60 |
if test -z "$LD" ; then LD=$CC; fi
|
|
Packit |
fd8b60 |
AC_ARG_VAR(LD,[linker command [CC]])
|
|
Packit |
fd8b60 |
AC_SUBST(LDFLAGS) dnl
|
|
Packit |
fd8b60 |
KRB5_AC_CHOOSE_ET dnl
|
|
Packit |
fd8b60 |
KRB5_AC_CHOOSE_SS dnl
|
|
Packit |
fd8b60 |
KRB5_AC_CHOOSE_DB dnl
|
|
Packit |
fd8b60 |
dnl allow stuff in tree to access deprecated stuff for now
|
|
Packit |
fd8b60 |
dnl AC_DEFINE([KRB5_DEPRECATED], 1, [Define only if building in-tree])
|
|
Packit |
fd8b60 |
AC_C_CONST dnl
|
|
Packit |
fd8b60 |
WITH_NETLIB dnl
|
|
Packit |
fd8b60 |
WITH_HESIOD dnl
|
|
Packit |
fd8b60 |
KRB5_AC_MAINTAINER_MODE dnl
|
|
Packit |
fd8b60 |
AC_ARG_PROGRAM dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl This identifies the top of the source tree relative to the directory
|
|
Packit |
fd8b60 |
dnl in which the configure file lives.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
CONFIG_RELTOPDIR=$ac_reltopdir
|
|
Packit |
fd8b60 |
AC_SUBST(CONFIG_RELTOPDIR)
|
|
Packit |
fd8b60 |
lib_frag=$srcdir/$ac_config_fragdir/lib.in
|
|
Packit |
fd8b60 |
AC_SUBST_FILE(lib_frag)
|
|
Packit |
fd8b60 |
libobj_frag=$srcdir/$ac_config_fragdir/libobj.in
|
|
Packit |
fd8b60 |
AC_SUBST_FILE(libobj_frag)
|
|
Packit |
fd8b60 |
libnover_frag=$srcdir/$ac_config_fragdir/libnover.in
|
|
Packit |
fd8b60 |
AC_SUBST_FILE(libnover_frag)
|
|
Packit |
fd8b60 |
libpriv_frag=$srcdir/$ac_config_fragdir/libpriv.in
|
|
Packit |
fd8b60 |
AC_SUBST_FILE(libpriv_frag)
|
|
Packit |
fd8b60 |
libnodeps_frag=$srcdir/$ac_config_fragdir/libnodeps.in
|
|
Packit |
fd8b60 |
AC_SUBST_FILE(libnodeps_frag)
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
KRB5_AC_PRAGMA_WEAK_REF
|
|
Packit |
fd8b60 |
WITH_LDAP
|
|
Packit |
fd8b60 |
KRB5_LIB_PARAMS
|
|
Packit |
fd8b60 |
KRB5_AC_INITFINI
|
|
Packit |
fd8b60 |
KRB5_AC_ENABLE_THREADS
|
|
Packit |
fd8b60 |
KRB5_AC_FIND_DLOPEN
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl Maintainer mode, akin to what automake provides, 'cept we don't
|
|
Packit |
fd8b60 |
dnl want to use automake right now.
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_MAINTAINER_MODE],
|
|
Packit |
fd8b60 |
[AC_ARG_ENABLE([maintainer-mode],
|
|
Packit |
fd8b60 |
AC_HELP_STRING([--enable-maintainer-mode],[enable rebuilding of source files, Makefiles, etc]),
|
|
Packit |
fd8b60 |
USE_MAINTAINER_MODE=$enableval,
|
|
Packit |
fd8b60 |
USE_MAINTAINER_MODE=no)
|
|
Packit |
fd8b60 |
if test "$USE_MAINTAINER_MODE" = yes; then
|
|
Packit |
fd8b60 |
MAINTAINER_MODE_TRUE=
|
|
Packit |
fd8b60 |
MAINTAINER_MODE_FALSE='#'
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(enabling maintainer mode)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
MAINTAINER_MODE_TRUE='#'
|
|
Packit |
fd8b60 |
MAINTAINER_MODE_FALSE=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
MAINT=$MAINTAINER_MODE_TRUE
|
|
Packit |
fd8b60 |
AC_SUBST(MAINTAINER_MODE_TRUE)
|
|
Packit |
fd8b60 |
AC_SUBST(MAINTAINER_MODE_FALSE)
|
|
Packit |
fd8b60 |
AC_SUBST(MAINT)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_INITFINI],[
|
|
Packit |
fd8b60 |
dnl Do we want initialization at load time?
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([delayed-initialization],
|
|
Packit |
fd8b60 |
AC_HELP_STRING([--disable-delayed-initialization],initialize library code when loaded @<:@delay until first use@:>@), , enable_delayed_initialization=yes)
|
|
Packit |
fd8b60 |
case "$enable_delayed_initialization" in
|
|
Packit |
fd8b60 |
yes)
|
|
Packit |
fd8b60 |
AC_DEFINE(DELAY_INITIALIZER,1,[Define if library initialization should be delayed until first use]) ;;
|
|
Packit |
fd8b60 |
no) ;;
|
|
Packit |
fd8b60 |
*) AC_MSG_ERROR(invalid option $enable_delayed_initialization for delayed-initialization) ;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
dnl We always want finalization at unload time.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Can we do things through gcc?
|
|
Packit |
fd8b60 |
KRB5_AC_GCC_ATTRS
|
|
Packit |
fd8b60 |
dnl How about with the linker?
|
|
Packit |
fd8b60 |
if test -z "$use_linker_init_option" ; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(ran INITFINI before checking shlib.conf?)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$use_linker_init_option" = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(USE_LINKER_INIT_OPTION,1,[Define if link-time options for library initialization will be used])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$use_linker_fini_option" = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(USE_LINKER_FINI_OPTION,1,[Define if link-time options for library finalization will be used])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl find dlopen
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_FIND_DLOPEN],[
|
|
Packit |
fd8b60 |
old_LIBS="$LIBS"
|
|
Packit |
fd8b60 |
DL_LIB=
|
|
Packit |
fd8b60 |
AC_SEARCH_LIBS(dlopen, dl, [
|
|
Packit |
fd8b60 |
if test "$ac_cv_search_dlopen" != "none required"; then
|
|
Packit |
fd8b60 |
DL_LIB=$ac_cv_search_dlopen
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
LIBS="$old_LIBS"
|
|
Packit |
fd8b60 |
AC_DEFINE(USE_DLOPEN,1,[Define if dlopen should be used])])
|
|
Packit |
fd8b60 |
AC_SUBST(DL_LIB)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl Hack for now.
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_ENABLE_THREADS],[
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([thread-support],
|
|
Packit |
fd8b60 |
AC_HELP_STRING([--disable-thread-support],don't enable thread support @<:@enabled@:>@), , enable_thread_support=yes)
|
|
Packit |
fd8b60 |
if test "$enable_thread_support" = yes ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(enabling thread support)
|
|
Packit |
fd8b60 |
AC_DEFINE(ENABLE_THREADS,1,[Define if thread support enabled])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
dnl Maybe this should be inside the conditional above? Doesn't cache....
|
|
Packit |
fd8b60 |
if test "$enable_thread_support" = yes; then
|
|
Packit |
fd8b60 |
AX_PTHREAD(,[AC_MSG_ERROR([cannot determine options for enabling thread support; try --disable-thread-support])])
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(PTHREAD_CC = $PTHREAD_CC)
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(PTHREAD_CFLAGS = $PTHREAD_CFLAGS)
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(PTHREAD_LIBS = $PTHREAD_LIBS)
|
|
Packit |
fd8b60 |
dnl Not really needed -- if pthread.h isn't found, ACX_PTHREAD will fail.
|
|
Packit |
fd8b60 |
dnl AC_CHECK_HEADERS(pthread.h)
|
|
Packit |
fd8b60 |
# AIX and Tru64 don't support weak references, and don't have
|
|
Packit |
fd8b60 |
# stub versions of the pthread code in libc.
|
|
Packit |
fd8b60 |
case "${host_os}" in
|
|
Packit |
fd8b60 |
aix* | osf*)
|
|
Packit |
fd8b60 |
# On these platforms, we'll always pull in the thread support.
|
|
Packit |
fd8b60 |
LIBS="$LIBS $PTHREAD_LIBS"
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
fd8b60 |
# We don't need to sometimes add the flags we've just folded in...
|
|
Packit |
fd8b60 |
PTHREAD_LIBS=
|
|
Packit |
fd8b60 |
PTHREAD_CFLAGS=
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
hpux*)
|
|
Packit |
fd8b60 |
# These are the flags that "gcc -pthread" adds. But we don't
|
|
Packit |
fd8b60 |
# want "-pthread" because that has link-time effects, and we
|
|
Packit |
fd8b60 |
# don't exclude CFLAGS when linking. *sigh*
|
|
Packit |
fd8b60 |
PTHREAD_CFLAGS="-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L"
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
solaris2.[[1-9]])
|
|
Packit |
fd8b60 |
# On Solaris 10 with gcc 3.4.3, the autoconf archive macro doesn't
|
|
Packit |
fd8b60 |
# get the right result. XXX What about Solaris 9 and earlier?
|
|
Packit |
fd8b60 |
if test "$GCC" = yes ; then
|
|
Packit |
fd8b60 |
PTHREAD_CFLAGS="-D_REENTRANT -pthreads"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
solaris*)
|
|
Packit |
fd8b60 |
# On Solaris 10 with gcc 3.4.3, the autoconf archive macro doesn't
|
|
Packit |
fd8b60 |
# get the right result.
|
|
Packit |
fd8b60 |
if test "$GCC" = yes ; then
|
|
Packit |
fd8b60 |
PTHREAD_CFLAGS="-D_REENTRANT -pthreads"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
# On Solaris 10, the thread support is always available in libc.
|
|
Packit |
fd8b60 |
AC_DEFINE(NO_WEAK_PTHREADS,1,[Define if references to pthread routines should be non-weak.])
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
THREAD_SUPPORT=1
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
PTHREAD_CC="$CC"
|
|
Packit |
fd8b60 |
PTHREAD_CFLAGS=""
|
|
Packit |
fd8b60 |
PTHREAD_LIBS=""
|
|
Packit |
fd8b60 |
THREAD_SUPPORT=0
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(THREAD_SUPPORT)
|
|
Packit |
fd8b60 |
dnl We want to know where these routines live, so on systems with weak
|
|
Packit |
fd8b60 |
dnl reference support we can figure out whether or not the pthread library
|
|
Packit |
fd8b60 |
dnl has been linked in.
|
|
Packit |
fd8b60 |
dnl If we don't add any libraries for thread support, don't bother.
|
|
Packit |
fd8b60 |
AC_CHECK_FUNCS(pthread_once pthread_rwlock_init)
|
|
Packit |
fd8b60 |
old_CC="$CC"
|
|
Packit |
fd8b60 |
test "$PTHREAD_CC" != "" && test "$ac_cv_c_compiler_gnu" = no && CC=$PTHREAD_CC
|
|
Packit |
fd8b60 |
old_CFLAGS="$CFLAGS"
|
|
Packit |
fd8b60 |
# On Solaris, -pthreads is added to CFLAGS, no extra explicit libraries.
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
Packit |
fd8b60 |
AC_SUBST(PTHREAD_CFLAGS)
|
|
Packit |
fd8b60 |
old_LIBS="$LIBS"
|
|
Packit |
fd8b60 |
LIBS="$PTHREAD_LIBS $LIBS"
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(rechecking with PTHREAD_... options)
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(c, pthread_rwlock_init,
|
|
Packit |
fd8b60 |
[AC_DEFINE(HAVE_PTHREAD_RWLOCK_INIT_IN_THREAD_LIB,1,[Define if pthread_rwlock_init is provided in the thread library.])])
|
|
Packit |
fd8b60 |
LIBS="$old_LIBS"
|
|
Packit |
fd8b60 |
CC="$old_CC"
|
|
Packit |
fd8b60 |
CFLAGS="$old_CFLAGS"
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl This is somewhat gross and should go away when the build system
|
|
Packit |
fd8b60 |
dnl is revamped. -- tlyu
|
|
Packit |
fd8b60 |
dnl DECLARE_SYS_ERRLIST - check for sys_errlist in libc
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([DECLARE_SYS_ERRLIST],
|
|
Packit |
fd8b60 |
[AC_CACHE_CHECK([for sys_errlist declaration], krb5_cv_decl_sys_errlist,
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE([#include <stdio.h>
|
|
Packit |
fd8b60 |
#include <errno.h>], [1+sys_nerr;],
|
|
Packit |
fd8b60 |
krb5_cv_decl_sys_errlist=yes, krb5_cv_decl_sys_errlist=no)])
|
|
Packit |
fd8b60 |
# assume sys_nerr won't be declared w/o being in libc
|
|
Packit |
fd8b60 |
if test $krb5_cv_decl_sys_errlist = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(SYS_ERRLIST_DECLARED,1,[Define if sys_errlist is defined in errno.h])
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_SYS_ERRLIST,1,[Define if sys_errlist in libc])
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
# This means that sys_errlist is not declared in errno.h, but may still
|
|
Packit |
fd8b60 |
# be in libc.
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([for sys_errlist in libc], krb5_cv_var_sys_errlist,
|
|
Packit |
fd8b60 |
[AC_TRY_LINK([extern int sys_nerr;], [if (1+sys_nerr < 0) return 1;],
|
|
Packit |
fd8b60 |
krb5_cv_var_sys_errlist=yes, krb5_cv_var_sys_errlist=no;)])
|
|
Packit |
fd8b60 |
if test $krb5_cv_var_sys_errlist = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_SYS_ERRLIST,1,[Define if sys_errlist in libc])
|
|
Packit |
fd8b60 |
# Do this cruft for backwards compatibility for now.
|
|
Packit |
fd8b60 |
AC_DEFINE(NEED_SYS_ERRLIST,1,[Define if need to declare sys_errlist])
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_WARN([sys_errlist is neither in errno.h nor in libc])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for sigmask/sigprocmask -- CHECK_SIGPROCMASK
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_SIGPROCMASK,[
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING([for use of sigprocmask])
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_func_sigprocmask_use,
|
|
Packit |
fd8b60 |
[AC_TRY_LINK([#include <signal.h>], [sigprocmask(SIG_SETMASK,0,0);],
|
|
Packit |
fd8b60 |
krb5_cv_func_sigprocmask_use=yes,
|
|
Packit |
fd8b60 |
AC_TRY_LINK([#include <signal.h>], [sigmask(1);],
|
|
Packit |
fd8b60 |
krb5_cv_func_sigprocmask_use=no, krb5_cv_func_sigprocmask_use=yes))])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_func_sigprocmask_use)
|
|
Packit |
fd8b60 |
if test $krb5_cv_func_sigprocmask_use = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(USE_SIGPROCMASK,1,[Define if sigprocmask should be used])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_PROG_ARCHIVE, [AC_CHECK_PROG(ARCHIVE, ar, ar cqv, false)])dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_PROG_ARCHIVE_ADD, [AC_CHECK_PROG(ARADD, ar, ar cruv, false)])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for <dirent.h> -- CHECK_DIRENT
|
|
Packit |
fd8b60 |
dnl (may need to be more complex later)
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_DIRENT,[
|
|
Packit |
fd8b60 |
AC_CHECK_HEADER(dirent.h,AC_DEFINE(USE_DIRENT_H,1,[Define if you have dirent.h functionality]))])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check if union wait is defined, or if WAIT_USES_INT -- CHECK_WAIT_TYPE
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_WAIT_TYPE,[
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING([if argument to wait is int *])
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_struct_wait,
|
|
Packit |
fd8b60 |
dnl Test for prototype clash - if there is none - then assume int * works
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE([#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <sys/wait.h>
|
|
Packit |
fd8b60 |
extern pid_t wait(int *);],[], krb5_cv_struct_wait=no,dnl
|
|
Packit |
fd8b60 |
dnl Else fallback on old stuff
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE(
|
|
Packit |
fd8b60 |
[#include <sys/wait.h>], [union wait i;
|
|
Packit |
fd8b60 |
#ifdef WEXITSTATUS
|
|
Packit |
fd8b60 |
WEXITSTATUS (i);
|
|
Packit |
fd8b60 |
#endif
|
|
Packit |
fd8b60 |
],
|
|
Packit |
fd8b60 |
krb5_cv_struct_wait=yes, krb5_cv_struct_wait=no)])])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_struct_wait)
|
|
Packit |
fd8b60 |
if test $krb5_cv_struct_wait = no; then
|
|
Packit |
fd8b60 |
AC_DEFINE(WAIT_USES_INT,1,[Define if wait takes int as a argument])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for POSIX signal handling -- CHECK_SIGNALS
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_SIGNALS,[
|
|
Packit |
fd8b60 |
AC_CHECK_FUNC(sigprocmask,
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for sigset_t and POSIX_SIGNALS)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_type_sigset_t,
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE(
|
|
Packit |
fd8b60 |
[#include <signal.h>],
|
|
Packit |
fd8b60 |
[sigset_t x],
|
|
Packit |
fd8b60 |
krb5_cv_type_sigset_t=yes, krb5_cv_type_sigset_t=no)])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_type_sigset_t)
|
|
Packit |
fd8b60 |
if test $krb5_cv_type_sigset_t = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(POSIX_SIGNALS,1,[Define if POSIX signal handling is used])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
)])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for signal type
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl AC_RETSIGTYPE isn't quite right, but almost.
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_SIGTYPE,[
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING([POSIX signal handlers])
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_has_posix_signals,
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE(
|
|
Packit |
fd8b60 |
[#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <signal.h>
|
|
Packit |
fd8b60 |
#ifdef signal
|
|
Packit |
fd8b60 |
#undef signal
|
|
Packit |
fd8b60 |
#endif
|
|
Packit |
fd8b60 |
extern void (*signal ()) ();], [],
|
|
Packit |
fd8b60 |
krb5_cv_has_posix_signals=yes, krb5_cv_has_posix_signals=no)])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_has_posix_signals)
|
|
Packit |
fd8b60 |
if test $krb5_cv_has_posix_signals = yes; then
|
|
Packit |
fd8b60 |
stype=void
|
|
Packit |
fd8b60 |
AC_DEFINE(POSIX_SIGTYPE, 1, [Define if POSIX signal handlers are used])
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
if test $ac_cv_type_signal = void; then
|
|
Packit |
fd8b60 |
stype=void
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
stype=int
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_DEFINE_UNQUOTED(krb5_sigtype, $stype, [Define krb5_sigtype to type of signal handler])dnl
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for POSIX setjmp/longjmp -- CHECK_SETJMP
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_SETJMP,[
|
|
Packit |
fd8b60 |
AC_CHECK_FUNC(sigsetjmp,
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for sigjmp_buf)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_struct_sigjmp_buf,
|
|
Packit |
fd8b60 |
[AC_TRY_COMPILE(
|
|
Packit |
fd8b60 |
[#include <setjmp.h>],[sigjmp_buf x],
|
|
Packit |
fd8b60 |
krb5_cv_struct_sigjmp_buf=yes,krb5_cv_struct_sigjmp_buf=no)])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_struct_sigjmp_buf)
|
|
Packit |
fd8b60 |
if test $krb5_cv_struct_sigjmp_buf = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(POSIX_SETJMP,1,[Define if setjmp indicates POSIX interface])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
)])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Check for IPv6 compile-time support.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_INET6,[
|
|
Packit |
fd8b60 |
AC_CHECK_HEADERS(sys/types.h sys/socket.h netinet/in.h netdb.h)
|
|
Packit |
fd8b60 |
AC_CHECK_FUNCS(inet_ntop inet_pton getnameinfo)
|
|
Packit |
fd8b60 |
dnl getaddrinfo test needs netdb.h, for proper compilation on alpha
|
|
Packit |
fd8b60 |
dnl under OSF/1^H^H^H^H^HDigital^H^H^H^H^H^H^HTru64 UNIX, where it's
|
|
Packit |
fd8b60 |
dnl a macro
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for getaddrinfo)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(ac_cv_func_getaddrinfo,
|
|
Packit |
fd8b60 |
[AC_TRY_LINK([#ifdef HAVE_NETDB_H
|
|
Packit |
fd8b60 |
#include <netdb.h>
|
|
Packit |
fd8b60 |
#endif],[
|
|
Packit |
fd8b60 |
struct addrinfo *ai;
|
|
Packit |
fd8b60 |
getaddrinfo("kerberos.mit.edu", "echo", 0, &ai;;
|
|
Packit |
fd8b60 |
], ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no)])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($ac_cv_func_getaddrinfo)
|
|
Packit |
fd8b60 |
if test $ac_cv_func_getaddrinfo = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_SOCKADDR_SA_LEN])dnl
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for IPv6 compile-time support without -DINET6)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_inet6,[
|
|
Packit |
fd8b60 |
if test "$ac_cv_func_inet_ntop" != "yes" ; then
|
|
Packit |
fd8b60 |
krb5_cv_inet6=no
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([
|
|
Packit |
fd8b60 |
#ifdef HAVE_SYS_TYPES_H
|
|
Packit |
fd8b60 |
#include <sys/types.h>
|
|
Packit |
fd8b60 |
#endif
|
|
Packit |
fd8b60 |
#include <sys/socket.h>
|
|
Packit |
fd8b60 |
#include <netinet/in.h>
|
|
Packit |
fd8b60 |
#include <netdb.h>
|
|
Packit |
fd8b60 |
],[
|
|
Packit |
fd8b60 |
struct sockaddr_in6 in;
|
|
Packit |
fd8b60 |
AF_INET6;
|
|
Packit |
fd8b60 |
IN6_IS_ADDR_LINKLOCAL (&in.sin6_addr);
|
|
Packit |
fd8b60 |
],krb5_cv_inet6=yes,krb5_cv_inet6=no)])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_inet6)
|
|
Packit |
fd8b60 |
if test "$krb5_cv_inet6" = no && test "$ac_cv_func_inet_ntop" = yes; then
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for IPv6 compile-time support with -DINET6)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_inet6_with_dinet6,[
|
|
Packit |
fd8b60 |
old_CC="$CC"
|
|
Packit |
fd8b60 |
CC="$CC -DINET6"
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([
|
|
Packit |
fd8b60 |
#ifdef HAVE_SYS_TYPES_H
|
|
Packit |
fd8b60 |
#include <sys/types.h>
|
|
Packit |
fd8b60 |
#endif
|
|
Packit |
fd8b60 |
#include <sys/socket.h>
|
|
Packit |
fd8b60 |
#include <netinet/in.h>
|
|
Packit |
fd8b60 |
#include <netdb.h>
|
|
Packit |
fd8b60 |
],[
|
|
Packit |
fd8b60 |
struct sockaddr_in6 in;
|
|
Packit |
fd8b60 |
AF_INET6;
|
|
Packit |
fd8b60 |
IN6_IS_ADDR_LINKLOCAL (&in.sin6_addr);
|
|
Packit |
fd8b60 |
],krb5_cv_inet6_with_dinet6=yes,krb5_cv_inet6_with_dinet6=no)
|
|
Packit |
fd8b60 |
CC="$old_CC"])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_inet6_with_dinet6)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $krb5_cv_inet6 = yes || test "$krb5_cv_inet6_with_dinet6" = yes; then
|
|
Packit |
fd8b60 |
if test "$krb5_cv_inet6_with_dinet6" = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(INET6,1,[May need to be defined to enable IPv6 support, for example on IRIX])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_CHECK_FOR_CFLAGS,[
|
|
Packit |
fd8b60 |
AC_BEFORE([$0],[AC_PROG_CC])
|
|
Packit |
fd8b60 |
AC_BEFORE([$0],[AC_PROG_CXX])
|
|
Packit |
fd8b60 |
krb5_ac_cflags_set=${CFLAGS+set}
|
|
Packit |
fd8b60 |
krb5_ac_cxxflags_set=${CXXFLAGS+set}
|
|
Packit |
fd8b60 |
krb5_ac_warn_cflags_set=${WARN_CFLAGS+set}
|
|
Packit |
fd8b60 |
krb5_ac_warn_cxxflags_set=${WARN_CXXFLAGS+set}
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(TRY_WARN_CC_FLAG_1,[dnl
|
|
Packit |
fd8b60 |
cachevar=`echo "krb5_cv_cc_flag_$1" | sed -e s/=/_eq_/g -e s/-/_dash_/g -e s/[[^a-zA-Z0-9_]]/_/g`
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([if C compiler supports $1], [$cachevar],
|
|
Packit |
fd8b60 |
[# first try without, then with
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([], 1;,
|
|
Packit |
fd8b60 |
[old_cflags="$CFLAGS"
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS $cflags_warning_test_flags $1"
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([], 1;, eval $cachevar=yes, eval $cachevar=no)
|
|
Packit |
fd8b60 |
CFLAGS="$old_cflags"],
|
|
Packit |
fd8b60 |
[AC_MSG_ERROR(compiling simple test program with $CFLAGS failed)])])
|
|
Packit |
fd8b60 |
if eval test '"${'$cachevar'}"' = yes; then
|
|
Packit |
fd8b60 |
WARN_CFLAGS="$WARN_CFLAGS $1"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
eval flag_supported='${'$cachevar'}'
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Are additional flags needed to make unsupported warning options
|
|
Packit |
fd8b60 |
dnl get reported as errors?
|
|
Packit |
fd8b60 |
AC_DEFUN(CHECK_CC_WARNING_TEST_FLAGS,[dnl
|
|
Packit |
fd8b60 |
cflags_warning_test_flags=
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG_1(-Werror=unknown-warning-option)
|
|
Packit |
fd8b60 |
if test $flag_supported = yes; then
|
|
Packit |
fd8b60 |
cflags_warning_test_flags=-Werror=unknown-warning-option
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(TRY_WARN_CC_FLAG,[dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([CHECK_CC_WARNING_TEST_FLAGS])dnl
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG_1($1)dnl
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(WITH_CC,[dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_AC_CHECK_FOR_CFLAGS])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_CC])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_CXX])dnl
|
|
Packit |
fd8b60 |
if test $ac_cv_c_compiler_gnu = yes ; then
|
|
Packit |
fd8b60 |
HAVE_GCC=yes
|
|
Packit |
fd8b60 |
else HAVE_GCC=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(HAVE_GCC)
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([for GNU linker], krb5_cv_prog_gnu_ld,
|
|
Packit |
fd8b60 |
[krb5_cv_prog_gnu_ld=no
|
|
Packit |
fd8b60 |
if test "$GCC" = yes; then
|
|
Packit |
fd8b60 |
if AC_TRY_COMMAND([$CC -Wl,-v 2>&1 dnl
|
|
Packit |
fd8b60 |
| grep "GNU ld" > /dev/null]); then
|
|
Packit |
fd8b60 |
krb5_cv_prog_gnu_ld=yes
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi])
|
|
Packit |
fd8b60 |
AC_ARG_WITH([size-optimizations],
|
|
Packit |
fd8b60 |
[ --with-size-optimizations enable a few optimizations to reduce code size
|
|
Packit |
fd8b60 |
possibly at some run-time cost],
|
|
Packit |
fd8b60 |
,
|
|
Packit |
fd8b60 |
withval=no)
|
|
Packit |
fd8b60 |
if test "$withval" = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(CONFIG_SMALL,1,[Define to reduce code size even if it means more cpu usage])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
# -Wno-long-long, if needed, for k5-platform.h without inttypes.h etc.
|
|
Packit |
fd8b60 |
extra_gcc_warn_opts="-Wall -Wcast-align -Wshadow"
|
|
Packit |
fd8b60 |
# -Wmissing-prototypes
|
|
Packit |
fd8b60 |
if test "$GCC" = yes ; then
|
|
Packit |
fd8b60 |
# Putting this here means we get -Os after -O2, which works.
|
|
Packit |
fd8b60 |
if test "$with_size_optimizations" = yes && test "x$krb5_ac_cflags_set" != xset; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(adding -Os optimization option)
|
|
Packit |
fd8b60 |
case "$CFLAGS" in
|
|
Packit |
fd8b60 |
"-g -O2") CFLAGS="-g -Os" ;;
|
|
Packit |
fd8b60 |
"-O2") CFLAGS="-Os" ;;
|
|
Packit |
fd8b60 |
*) CFLAGS="$CFLAGS -Os" ;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "x$krb5_ac_warn_cflags_set" = xset ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(not adding extra gcc warning flags because WARN_CFLAGS was set)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(adding extra warning flags for gcc)
|
|
Packit |
fd8b60 |
WARN_CFLAGS="$WARN_CFLAGS $extra_gcc_warn_opts -Wmissing-prototypes"
|
|
Packit |
fd8b60 |
if test "`uname -s`" = Darwin ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(skipping pedantic warnings on Darwin)
|
|
Packit |
fd8b60 |
elif test "`uname -s`" = Linux ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(skipping pedantic warnings on Linux)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
WARN_CFLAGS="$WARN_CFLAGS -pedantic"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$ac_cv_cxx_compiler_gnu" = yes; then
|
|
Packit |
fd8b60 |
if test "x$krb5_ac_warn_cxxflags_set" = xset ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(not adding extra g++ warnings because WARN_CXXFLAGS was set)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(adding extra warning flags for g++)
|
|
Packit |
fd8b60 |
WARN_CXXFLAGS="$WARN_CXXFLAGS $extra_gcc_warn_opts"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
# Currently, G++ does not support -Wno-format-zero-length.
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-Wno-format-zero-length)
|
|
Packit |
fd8b60 |
# Other flags here may not be supported on some versions of
|
|
Packit |
fd8b60 |
# gcc that people want to use.
|
|
Packit |
fd8b60 |
for flag in overflow strict-overflow missing-format-attribute missing-prototypes return-type missing-braces parentheses switch unused-function unused-label unused-variable unused-value unknown-pragmas sign-compare newline-eof error=uninitialized no-maybe-uninitialized error=pointer-arith error=int-conversion error=incompatible-pointer-types error=discarded-qualifiers error=implicit-int ; do
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-W$flag)
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
# old-style-definition? generates many, many warnings
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Warnings that we'd like to turn into errors on versions of gcc
|
|
Packit |
fd8b60 |
# that support promoting only specific warnings to errors, but
|
|
Packit |
fd8b60 |
# we'll take as warnings on older compilers. (If such a warning
|
|
Packit |
fd8b60 |
# is added after the -Werror=foo feature, you can just put
|
|
Packit |
fd8b60 |
# error=foo in the above list, and skip the test for the
|
|
Packit |
fd8b60 |
# warning-only form.) At least in some versions, -Werror= doesn't
|
|
Packit |
fd8b60 |
# seem to make the conditions actual errors, but still issues
|
|
Packit |
fd8b60 |
# warnings; I guess we'll take what we can get.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# We're currently targeting C89+, not C99, so disallow some
|
|
Packit |
fd8b60 |
# constructs.
|
|
Packit |
fd8b60 |
for flag in declaration-after-statement ; do
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-Werror=$flag)
|
|
Packit |
fd8b60 |
if test "$flag_supported" = no; then
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-W$flag)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
# We require function declarations now.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# In some compiler versions -- e.g., "gcc version 4.2.1 (Apple
|
|
Packit |
fd8b60 |
# Inc. build 5664)" -- the -Werror- option works, but the -Werror=
|
|
Packit |
fd8b60 |
# version doesn't cause implicitly declared functions to be
|
|
Packit |
fd8b60 |
# flagged as errors. If neither works, -Wall implies
|
|
Packit |
fd8b60 |
# -Wimplicit-function-declaration so don't bother.
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-Werror-implicit-function-declaration)
|
|
Packit |
fd8b60 |
if test "implicit-function-declaration_supported" = no; then
|
|
Packit |
fd8b60 |
TRY_WARN_CC_FLAG(-Werror=implicit-function-declaration)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "`uname -s`" = Darwin ; then
|
|
Packit |
fd8b60 |
# Someday this should be a feature test.
|
|
Packit |
fd8b60 |
# One current (Jaguar = OS 10.2) problem:
|
|
Packit |
fd8b60 |
# Archive library with foo.o undef sym X and bar.o common sym X,
|
|
Packit |
fd8b60 |
# if foo.o is pulled in at link time, bar.o may not be, causing
|
|
Packit |
fd8b60 |
# the linker to complain.
|
|
Packit |
fd8b60 |
# Dynamic library problems too?
|
|
Packit |
fd8b60 |
case "$CC $CFLAGS" in
|
|
Packit |
fd8b60 |
*-fcommon*) ;; # why someone would do this, I don't know
|
|
Packit |
fd8b60 |
*-fno-common*) ;; # okay, they're already doing the right thing
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(disabling the use of common storage on Darwin)
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS -fno-common"
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
case "$LD $LDFLAGS" in
|
|
Packit |
fd8b60 |
*-Wl,-search_paths_first*) ;;
|
|
Packit |
fd8b60 |
*) LDFLAGS="${LDFLAGS} -Wl,-search_paths_first" ;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
if test "`uname -s`" = AIX ; then
|
|
Packit |
fd8b60 |
# Using AIX but not GCC, assume native compiler.
|
|
Packit |
fd8b60 |
# The native compiler appears not to give a nonzero exit
|
|
Packit |
fd8b60 |
# status for certain classes of errors, like missing arguments
|
|
Packit |
fd8b60 |
# in function calls. Let's try to fix that with -qhalt=e.
|
|
Packit |
fd8b60 |
case "$CC $CFLAGS" in
|
|
Packit |
fd8b60 |
*-qhalt=*) ;;
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS -qhalt=e"
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(adding -qhalt=e for better error reporting)
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
# Also, the optimizer isn't turned on by default, which means
|
|
Packit |
fd8b60 |
# the static inline functions get left in random object files,
|
|
Packit |
fd8b60 |
# leading to references to pthread_mutex_lock from anything that
|
|
Packit |
fd8b60 |
# includes k5-int.h whether it uses threads or not.
|
|
Packit |
fd8b60 |
case "$CC $CFLAGS" in
|
|
Packit |
fd8b60 |
*-O*) ;;
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
CFLAGS="$CFLAGS -O"
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(adding -O for inline thread-support function elimination)
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "`uname -s`" = SunOS ; then
|
|
Packit |
fd8b60 |
# Using Solaris but not GCC, assume Sunsoft compiler.
|
|
Packit |
fd8b60 |
# We have some error-out-on-warning options available.
|
|
Packit |
fd8b60 |
# Sunsoft 12 compiler defaults to -xc99=all, it appears, so "inline"
|
|
Packit |
fd8b60 |
# works, but it also means that declaration-in-code warnings won't
|
|
Packit |
fd8b60 |
# be issued.
|
|
Packit |
fd8b60 |
# -v -fd -errwarn=E_DECLARATION_IN_CODE ...
|
|
Packit |
fd8b60 |
if test "x$krb5_ac_warn_cflags_set" = xset ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(not adding extra warning flags because WARN_CFLAGS was set)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
WARN_CFLAGS="-errtags=yes -errwarn=E_BAD_PTR_INT_COMBINATION,E_BAD_PTR_INT_COMB_ARG,E_PTR_TO_VOID_IN_ARITHMETIC,E_NO_IMPLICIT_DECL_ALLOWED,E_ATTRIBUTE_PARAM_UNDEFINED"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "x$krb5_ac_warn_cxxflags_set" = xset ; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(not adding extra warning flags because WARN_CXXFLAGS was set)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
WARN_CXXFLAGS="-errtags=yes +w +w2 -xport64"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(WARN_CFLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(WARN_CXXFLAGS)
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl check for yylineno -- HAVE_YYLINENO
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(HAVE_YYLINENO,[dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE_CPP()AC_REQUIRE([AC_PROG_LEX])dnl
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING([for yylineno declaration])
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_type_yylineno,
|
|
Packit |
fd8b60 |
# some systems have yylineno, others don't...
|
|
Packit |
fd8b60 |
echo '%%
|
|
Packit |
fd8b60 |
%%' | ${LEX} -t > conftest.out
|
|
Packit |
fd8b60 |
if egrep yylineno conftest.out >/dev/null 2>&1; then
|
|
Packit |
fd8b60 |
krb5_cv_type_yylineno=yes
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
krb5_cv_type_yylineno=no
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
rm -f conftest.out)
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($krb5_cv_type_yylineno)
|
|
Packit |
fd8b60 |
if test $krb5_cv_type_yylineno = no; then
|
|
Packit |
fd8b60 |
AC_DEFINE(NO_YYLINENO, 1, [Define if lex produes code with yylineno])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl K5_GEN_MAKEFILE([dir, [frags]])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(K5_GEN_MAKEFILE,[dnl
|
|
Packit |
fd8b60 |
ifelse($1, ,[_K5_GEN_MAKEFILE(.,$2)],[_K5_GEN_MAKEFILE($1,$2)])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl _K5_GEN_MAKEFILE(dir, [frags])
|
|
Packit |
fd8b60 |
dnl dir must be present in this case
|
|
Packit |
fd8b60 |
dnl Note: Be careful in quoting.
|
|
Packit |
fd8b60 |
dnl The ac_foreach generates the list of fragments to include
|
|
Packit |
fd8b60 |
dnl or "" if $2 is empty
|
|
Packit |
fd8b60 |
AC_DEFUN(_K5_GEN_MAKEFILE,[dnl
|
|
Packit |
fd8b60 |
AC_CONFIG_FILES([$1/Makefile:$srcdir/]K5_TOPDIR[/config/pre.in:$1/Makefile.in:$1/deps:$srcdir/]K5_TOPDIR[/config/post.in])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl K5_GEN_FILE( <ac_output arguments> )
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(K5_GEN_FILE,[AC_CONFIG_FILES($1)])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl K5_AC_OUTPUT
|
|
Packit |
fd8b60 |
dnl Note: Adds the variables to config.status for individual
|
|
Packit |
fd8b60 |
dnl Makefile generation from config.status
|
|
Packit |
fd8b60 |
AC_DEFUN(K5_AC_OUTPUT,[AC_OUTPUT])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl V5_AC_OUTPUT_MAKEFILE
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(V5_AC_OUTPUT_MAKEFILE,
|
|
Packit |
fd8b60 |
[ifelse($1, , [_V5_AC_OUTPUT_MAKEFILE(.,$2)],[_V5_AC_OUTPUT_MAKEFILE($1,$2)])])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
define(_V5_AC_OUTPUT_MAKEFILE,
|
|
Packit |
fd8b60 |
[ifelse($2, , ,AC_CONFIG_FILES($2))
|
|
Packit |
fd8b60 |
AC_FOREACH([DIR], [$1],dnl
|
|
Packit |
fd8b60 |
[AC_CONFIG_FILES(DIR[/Makefile:$srcdir/]K5_TOPDIR[/config/pre.in:]DIR[/Makefile.in:]DIR[/deps:$srcdir/]K5_TOPDIR[/config/post.in])])
|
|
Packit |
fd8b60 |
K5_AC_OUTPUT])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_SOCKADDR_SA_LEN: define HAVE_SA_LEN if sockaddr contains the sa_len
|
|
Packit |
fd8b60 |
dnl component
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_SOCKADDR_SA_LEN],[ dnl
|
|
Packit |
fd8b60 |
AC_CHECK_MEMBER(struct sockaddr.sa_len,
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len])
|
|
Packit |
fd8b60 |
,,[#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <sys/socket.h>])])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl WITH_NETLIB
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(WITH_NETLIB,[
|
|
Packit |
fd8b60 |
AC_ARG_WITH([netlib],
|
|
Packit |
fd8b60 |
AC_HELP_STRING([--with-netlib=LIBS], use user defined resolver library),
|
|
Packit |
fd8b60 |
[ if test "$withval" = yes -o "$withval" = no ; then
|
|
Packit |
fd8b60 |
AC_MSG_RESULT("netlib will link with C library resolver only")
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
LIBS="$LIBS $withval"
|
|
Packit |
fd8b60 |
AC_MSG_RESULT("netlib will use \'$withval\'")
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
],dnl
|
|
Packit |
fd8b60 |
[AC_LIBRARY_NET]
|
|
Packit |
fd8b60 |
)])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_NEED_DAEMON, [
|
|
Packit |
fd8b60 |
KRB5_NEED_PROTO([#ifdef HAVE_UNISTD_H
|
|
Packit |
fd8b60 |
#include <unistd.h>
|
|
Packit |
fd8b60 |
#endif],daemon,1)])dnl
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_NEED_LIBGEN --- check if libgen needs to be linked in for
|
|
Packit |
fd8b60 |
dnl compile/step
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_NEED_LIBGEN,[
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_CC])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl regcomp is present but non-functional on Solaris 2.4
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for working regcomp)
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(ac_cv_func_regcomp,[
|
|
Packit |
fd8b60 |
AC_TRY_RUN([
|
|
Packit |
fd8b60 |
#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <regex.h>
|
|
Packit |
fd8b60 |
regex_t x; regmatch_t m;
|
|
Packit |
fd8b60 |
int main() { return regcomp(&x,"pat.*",0) || regexec(&x,"pattern",1,&m,0); }
|
|
Packit |
fd8b60 |
], ac_cv_func_regcomp=yes, ac_cv_func_regcomp=no, AC_MSG_ERROR([Cannot test regcomp when cross compiling]))])
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($ac_cv_func_regcomp)
|
|
Packit |
fd8b60 |
test $ac_cv_func_regcomp = yes && AC_DEFINE(HAVE_REGCOMP,1,[Define if regcomp exists and functions])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Check for the compile and step functions - only if regcomp is not available
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
if test $ac_cv_func_regcomp = no; then
|
|
Packit |
fd8b60 |
save_LIBS="$LIBS"
|
|
Packit |
fd8b60 |
LIBS=-lgen
|
|
Packit |
fd8b60 |
dnl this will fail if there's no compile/step in -lgen, or if there's
|
|
Packit |
fd8b60 |
dnl no -lgen. This is fine.
|
|
Packit |
fd8b60 |
AC_CHECK_FUNCS(compile step)
|
|
Packit |
fd8b60 |
LIBS="$save_LIBS"
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Set GEN_LIB if necessary
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(gen, compile, GEN_LIB=-lgen, GEN_LIB=)
|
|
Packit |
fd8b60 |
AC_SUBST(GEN_LIB)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_REGEX_FUNCS --- check for different regular expression
|
|
Packit |
fd8b60 |
dnl support functions
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_REGEX_FUNCS,[
|
|
Packit |
fd8b60 |
AC_CHECK_FUNCS(re_comp re_exec regexec)
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_AC_NEED_LIBGEN])dnl
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl AC_KRB5_TCL_FIND_CONFIG (uses tcl_dir)
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_KRB5_TCL_FIND_CONFIG,[
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_LIB_AUX])dnl
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(for tclConfig.sh)
|
|
Packit |
fd8b60 |
dnl On Debian, we might be given --with-tcl=/usr, or tclsh might
|
|
Packit |
fd8b60 |
dnl point us to /usr/lib/tcl8.4; either way, we need to find
|
|
Packit |
fd8b60 |
dnl /usr/lib/tcl8.4/tclConfig.sh.
|
|
Packit |
fd8b60 |
dnl On NetBSD, we might be given --with-tcl=/usr/pkg, or tclsh
|
|
Packit |
fd8b60 |
dnl might point us to /usr/pkg/lib/tcl8.4; we need to find
|
|
Packit |
fd8b60 |
dnl /usr/pkg/lib/tclConfig.sh.
|
|
Packit |
fd8b60 |
if test -r "$tcl_dir/lib/tclConfig.sh" ; then
|
|
Packit |
fd8b60 |
tcl_conf="$tcl_dir/lib/tclConfig.sh"
|
|
Packit |
fd8b60 |
elif test -r "$tcl_dir/tclConfig.sh" ; then
|
|
Packit |
fd8b60 |
tcl_conf="$tcl_dir/tclConfig.sh"
|
|
Packit |
fd8b60 |
elif test -r "$tcl_dir/../tclConfig.sh" ; then
|
|
Packit |
fd8b60 |
tcl_conf="$tcl_dir/../tclConfig.sh"
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
tcl_conf=
|
|
Packit |
fd8b60 |
lib="$tcl_dir/lib"
|
|
Packit |
fd8b60 |
changequote(<<,>>)dnl
|
|
Packit |
fd8b60 |
for d in "$lib" "$lib"/tcl7.[0-9] "$lib"/tcl8.[0-9] ; do
|
|
Packit |
fd8b60 |
if test -r "$d/tclConfig.sh" ; then
|
|
Packit |
fd8b60 |
tcl_conf="$tcl_conf $d/tclConfig.sh"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
changequote([,])dnl
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test -n "$tcl_conf" ; then
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($tcl_conf)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(not found)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
tcl_ok_conf=
|
|
Packit |
fd8b60 |
tcl_vers_maj=
|
|
Packit |
fd8b60 |
tcl_vers_min=
|
|
Packit |
fd8b60 |
old_CPPFLAGS=$CPPFLAGS
|
|
Packit |
fd8b60 |
old_LIBS=$LIBS
|
|
Packit |
fd8b60 |
old_LDFLAGS=$LDFLAGS
|
|
Packit |
fd8b60 |
if test -n "$tcl_conf" ; then
|
|
Packit |
fd8b60 |
for file in $tcl_conf ; do
|
|
Packit |
fd8b60 |
TCL_MAJOR_VERSION=x ; TCL_MINOR_VERSION=x
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(Tcl info in $file)
|
|
Packit |
fd8b60 |
. $file
|
|
Packit |
fd8b60 |
v=$TCL_MAJOR_VERSION.$TCL_MINOR_VERSION
|
|
Packit |
fd8b60 |
if test -z "$tcl_vers_maj" \
|
|
Packit |
fd8b60 |
|| test "$tcl_vers_maj" -lt "$TCL_MAJOR_VERSION" \
|
|
Packit |
fd8b60 |
|| test "$tcl_vers_maj" = "$TCL_MAJOR_VERSION" -a "$tcl_vers_min" -lt "$TCL_MINOR_VERSION" ; then
|
|
Packit |
fd8b60 |
for incdir in "$TCL_PREFIX/include/tcl$v" "$TCL_PREFIX/include" ; do
|
|
Packit |
fd8b60 |
if test -r "$incdir/tcl.h" -o -r "$incdir/tcl/tcl.h" ; then
|
|
Packit |
fd8b60 |
CPPFLAGS="$old_CPPFLAGS -I$incdir"
|
|
Packit |
fd8b60 |
break
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
LIBS="$old_LIBS `eval echo x $TCL_LIB_SPEC $TCL_LIBS | sed 's/^x//'`"
|
|
Packit |
fd8b60 |
LDFLAGS="$old_LDFLAGS $TCL_LD_FLAGS"
|
|
Packit |
fd8b60 |
AC_TRY_LINK( , [Tcl_CreateInterp ();],
|
|
Packit |
fd8b60 |
tcl_ok_conf=$file
|
|
Packit |
fd8b60 |
tcl_vers_maj=$TCL_MAJOR_VERSION
|
|
Packit |
fd8b60 |
tcl_vers_min=$TCL_MINOR_VERSION
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($v - working),
|
|
Packit |
fd8b60 |
AC_MSG_RESULT($v - compilation failed)
|
|
Packit |
fd8b60 |
)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(older version $v)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
CPPFLAGS=$old_CPPFLAGS
|
|
Packit |
fd8b60 |
LIBS=$old_LIBS
|
|
Packit |
fd8b60 |
LDFLAGS=$old_LDFLAGS
|
|
Packit |
fd8b60 |
tcl_header=no
|
|
Packit |
fd8b60 |
tcl_lib=no
|
|
Packit |
fd8b60 |
if test -n "$tcl_ok_conf" ; then
|
|
Packit |
fd8b60 |
. $tcl_ok_conf
|
|
Packit |
fd8b60 |
TCL_INCLUDES=
|
|
Packit |
fd8b60 |
for incdir in "$TCL_PREFIX/include/tcl$v" "$TCL_PREFIX/include" ; do
|
|
Packit |
fd8b60 |
if test -r "$incdir/tcl.h" -o -r "$incdir/tcl/tcl.h" ; then
|
|
Packit |
fd8b60 |
if test "$incdir" != "/usr/include" ; then
|
|
Packit |
fd8b60 |
TCL_INCLUDES=-I$incdir
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
break
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
# Need eval because the first-level expansion could reference
|
|
Packit |
fd8b60 |
# variables like ${TCL_DBGX}.
|
|
Packit |
fd8b60 |
eval TCL_LIBS='"'$TCL_LIB_SPEC $TCL_LIBS $TCL_DL_LIBS'"'
|
|
Packit |
fd8b60 |
TCL_LIBPATH="-L$TCL_EXEC_PREFIX/lib"
|
|
Packit |
fd8b60 |
TCL_RPATH=":$TCL_EXEC_PREFIX/lib"
|
|
Packit |
fd8b60 |
if test "$DEPLIBEXT" != "$SHLIBEXT" && test -n "$RPATH_FLAG"; then
|
|
Packit |
fd8b60 |
TCL_MAYBE_RPATH='$(RPATH_FLAG)'"$TCL_EXEC_PREFIX/lib$RPATH_TAIL"
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
TCL_MAYBE_RPATH=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
CPPFLAGS="$old_CPPFLAGS $TCL_INCLUDES"
|
|
Packit |
fd8b60 |
AC_CHECK_HEADER(tcl.h,AC_DEFINE(HAVE_TCL_H,1,[Define if tcl.h is available]) tcl_header=yes)
|
|
Packit |
fd8b60 |
if test $tcl_header=no; then
|
|
Packit |
fd8b60 |
AC_CHECK_HEADER(tcl/tcl.h,AC_DEFINE(HAVE_TCL_TCL_H,1,[Define if tcl/tcl.h is available]) tcl_header=yes)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
CPPFLAGS="$old_CPPFLAGS"
|
|
Packit |
fd8b60 |
tcl_lib=yes
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
# If we read a tclConfig.sh file, it probably set this.
|
|
Packit |
fd8b60 |
TCL_LIBS=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_INCLUDES)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_LIBS)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_LIBPATH)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_RPATH)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_MAYBE_RPATH)
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl AC_KRB5_TCL_TRYOLD
|
|
Packit |
fd8b60 |
dnl attempt to use old search algorithm for locating tcl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_KRB5_TCL_TRYOLD, [
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_AC_FIND_DLOPEN])
|
|
Packit |
fd8b60 |
AC_MSG_WARN([trying old tcl search code])
|
|
Packit |
fd8b60 |
if test "$with_tcl" != yes -a "$with_tcl" != no; then
|
|
Packit |
fd8b60 |
TCL_INCLUDES=-I$with_tcl/include
|
|
Packit |
fd8b60 |
TCL_LIBPATH=-L$with_tcl/lib
|
|
Packit |
fd8b60 |
TCL_RPATH=:$with_tcl/lib
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$with_tcl" != no ; then
|
|
Packit |
fd8b60 |
krb5_save_CPPFLAGS="$CPPFLAGS"
|
|
Packit |
fd8b60 |
krb5_save_LDFLAGS="$LDFLAGS"
|
|
Packit |
fd8b60 |
CPPFLAGS="$CPPFLAGS $TCL_INCLUDES"
|
|
Packit |
fd8b60 |
LDFLAGS="$LDFLAGS $TCL_LIBPATH"
|
|
Packit |
fd8b60 |
tcl_header=no
|
|
Packit |
fd8b60 |
AC_CHECK_HEADER(tcl.h,AC_DEFINE(HAVE_TCL_H,1,[Define if tcl.h found]) tcl_header=yes)
|
|
Packit |
fd8b60 |
if test $tcl_header=no; then
|
|
Packit |
fd8b60 |
AC_CHECK_HEADER(tcl/tcl.h,AC_DEFINE(HAVE_TCL_TCL_H,1,[Define if tcl/tcl.h found]) tcl_header=yes)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $tcl_header = yes ; then
|
|
Packit |
fd8b60 |
tcl_lib=no
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test $tcl_lib = no; then
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(tcl8.0, Tcl_CreateCommand,
|
|
Packit |
fd8b60 |
TCL_LIBS="$TCL_LIBS -ltcl8.0 -lm $DL_LIB $LIBS"
|
|
Packit |
fd8b60 |
tcl_lib=yes,,-lm $DL_LIB)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $tcl_lib = no; then
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(tcl7.6, Tcl_CreateCommand,
|
|
Packit |
fd8b60 |
TCL_LIBS="$TCL_LIBS -ltcl7.6 -lm $DL_LIB $LIBS"
|
|
Packit |
fd8b60 |
tcl_lib=yes,,-lm $DL_LIB)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $tcl_lib = no; then
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(tcl7.5, Tcl_CreateCommand,
|
|
Packit |
fd8b60 |
TCL_LIBS="$TCL_LIBS -ltcl7.5 -lm $DL_LIB $LIBS"
|
|
Packit |
fd8b60 |
tcl_lib=yes,,-lm $DL_LIB)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $tcl_lib = no ; then
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(tcl, Tcl_CreateCommand,
|
|
Packit |
fd8b60 |
TCL_LIBS="$TCL_LIBS -ltcl -lm $DL_LIB $LIBS"
|
|
Packit |
fd8b60 |
tcl_lib=yes,,-lm $DL_LIB)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $tcl_lib = no ; then
|
|
Packit |
fd8b60 |
AC_MSG_WARN("tcl.h found but not library")
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_WARN(Could not find Tcl which is needed for the kadm5 tests)
|
|
Packit |
fd8b60 |
TCL_LIBS=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
CPPFLAGS="$krb5_save_CPPFLAGS"
|
|
Packit |
fd8b60 |
LDFLAGS="$krb5_save_LDFLAGS"
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_INCLUDES)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_LIBS)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_LIBPATH)
|
|
Packit |
fd8b60 |
AC_SUBST(TCL_RPATH)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_RESULT("Not looking for Tcl library")
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl AC_KRB5_TCL - determine if the TCL library is present on system
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_KRB5_TCL,[
|
|
Packit |
fd8b60 |
TCL_INCLUDES=
|
|
Packit |
fd8b60 |
TCL_LIBPATH=
|
|
Packit |
fd8b60 |
TCL_RPATH=
|
|
Packit |
fd8b60 |
TCL_LIBS=
|
|
Packit |
fd8b60 |
TCL_WITH=
|
|
Packit |
fd8b60 |
tcl_dir=
|
|
Packit |
fd8b60 |
AC_ARG_WITH(tcl,
|
|
Packit |
fd8b60 |
[ --with-tcl=path where Tcl resides], , with_tcl=try)
|
|
Packit |
fd8b60 |
if test "$with_tcl" = no ; then
|
|
Packit |
fd8b60 |
true
|
|
Packit |
fd8b60 |
elif test "$with_tcl" = yes -o "$with_tcl" = try ; then
|
|
Packit |
fd8b60 |
tcl_dir=/usr
|
|
Packit |
fd8b60 |
if test ! -r /usr/lib/tclConfig.sh; then
|
|
Packit |
fd8b60 |
cat >> conftest <<\EOF
|
|
Packit |
fd8b60 |
puts "tcl_dir=$tcl_library"
|
|
Packit |
fd8b60 |
EOF
|
|
Packit |
fd8b60 |
if tclsh conftest >conftest.out 2>/dev/null; then
|
|
Packit |
fd8b60 |
if grep tcl_dir= conftest.out >/dev/null 2>&1; then
|
|
Packit |
fd8b60 |
t=`sed s/tcl_dir=// conftest.out`
|
|
Packit |
fd8b60 |
tcl_dir=$t
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi # tclsh ran script okay
|
|
Packit |
fd8b60 |
rm -f conftest conftest.out
|
|
Packit |
fd8b60 |
fi # no /usr/lib/tclConfig.sh
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
tcl_dir=$with_tcl
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test "$with_tcl" != no ; then
|
|
Packit |
fd8b60 |
AC_KRB5_TCL_FIND_CONFIG
|
|
Packit |
fd8b60 |
if test $tcl_lib = no ; then
|
|
Packit |
fd8b60 |
if test "$with_tcl" != try ; then
|
|
Packit |
fd8b60 |
AC_KRB5_TCL_TRYOLD
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_WARN(Could not find Tcl which is needed for some tests)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
# If "yes" or pathname, error out if not found.
|
|
Packit |
fd8b60 |
if test "$with_tcl" != no -a "$with_tcl" != try ; then
|
|
Packit |
fd8b60 |
if test "$tcl_header $tcl_lib" != "yes yes" ; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(Could not find Tcl)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl WITH_HESIOD
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(WITH_HESIOD,
|
|
Packit |
fd8b60 |
[AC_ARG_WITH(hesiod, AC_HELP_STRING(--with-hesiod[=path], compile with hesiod support @<:@omitted@:>@),
|
|
Packit |
fd8b60 |
hesiod=$with_hesiod, with_hesiod=no)
|
|
Packit |
fd8b60 |
if test "$with_hesiod" != "no"; then
|
|
Packit |
fd8b60 |
HESIOD_DEFS=-DHESIOD
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(resolv, res_send, res_lib=-lresolv)
|
|
Packit |
fd8b60 |
if test "$hesiod" != "yes"; then
|
|
Packit |
fd8b60 |
HESIOD_LIBS="-L${hesiod}/lib -lhesiod $res_lib"
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
HESIOD_LIBS="-lhesiod $res_lib"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
HESIOD_DEFS=
|
|
Packit |
fd8b60 |
HESIOD_LIBS=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(HESIOD_DEFS)
|
|
Packit |
fd8b60 |
AC_SUBST(HESIOD_LIBS)])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_BUILD_LIBRARY
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Pull in the necessary stuff to create the libraries.
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_BUILD_LIBRARY,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([KRB5_LIB_AUX])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_LN_S])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_ARCHIVE])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_ARCHIVE_ADD])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
|
Packit |
fd8b60 |
AC_CHECK_PROG(AR, ar, ar, false)
|
|
Packit |
fd8b60 |
if test "$AR" = "false"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([ar not found in PATH])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_CHECK_PROG(PERL, perl, perl, false)
|
|
Packit |
fd8b60 |
if test "$ac_cv_prog_PERL" = "false"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(Perl is now required for Kerberos builds.)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(LIBLIST)
|
|
Packit |
fd8b60 |
AC_SUBST(LIBLINKS)
|
|
Packit |
fd8b60 |
AC_SUBST(PLUGIN)
|
|
Packit |
fd8b60 |
AC_SUBST(PLUGINLINK)
|
|
Packit |
fd8b60 |
AC_SUBST(PLUGININST)
|
|
Packit |
fd8b60 |
AC_SUBST(KDB5_PLUGIN_DEPLIBS)
|
|
Packit |
fd8b60 |
AC_SUBST(KDB5_PLUGIN_LIBS)
|
|
Packit |
fd8b60 |
AC_SUBST(MAKE_SHLIB_COMMAND)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIB_RPATH_FLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIB_EXPFLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIB_EXPORT_FILE_DEP)
|
|
Packit |
fd8b60 |
AC_SUBST(DYNOBJ_EXPDEPS)
|
|
Packit |
fd8b60 |
AC_SUBST(DYNOBJ_EXPFLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(INSTALL_SHLIB)
|
|
Packit |
fd8b60 |
AC_SUBST(STLIBEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIBEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIBVEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(SHLIBSEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(DEPLIBEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(PFLIBEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(LIBINSTLIST)
|
|
Packit |
fd8b60 |
AC_SUBST(DYNOBJEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(MAKE_DYNOBJ_COMMAND)
|
|
Packit |
fd8b60 |
AC_SUBST(UNDEF_CHECK)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_BUILD_LIBOBJS
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Pull in the necessary stuff to build library objects.
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_BUILD_LIBOBJS,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([KRB5_LIB_AUX])dnl
|
|
Packit |
fd8b60 |
AC_SUBST(OBJLISTS)
|
|
Packit |
fd8b60 |
AC_SUBST(STOBJEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(SHOBJEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(PFOBJEXT)
|
|
Packit |
fd8b60 |
AC_SUBST(PICFLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(PROFFLAGS)])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_BUILD_PROGRAM
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Set variables to build a program.
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_BUILD_PROGRAM,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([KRB5_LIB_AUX])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([KRB5_AC_NEED_LIBGEN])dnl
|
|
Packit |
fd8b60 |
AC_SUBST(CC_LINK)
|
|
Packit |
fd8b60 |
AC_SUBST(CXX_LINK)
|
|
Packit |
fd8b60 |
AC_SUBST(RPATH_FLAG)
|
|
Packit |
fd8b60 |
AC_SUBST(PROG_RPATH_FLAGS)
|
|
Packit |
fd8b60 |
AC_SUBST(DEPLIBEXT)])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_RUN_FLAGS
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Set up environment for running dynamic executables out of build tree
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_RUN_FLAGS,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([KRB5_LIB_AUX])dnl
|
|
Packit |
fd8b60 |
KRB5_RUN_ENV="$RUN_ENV"
|
|
Packit |
fd8b60 |
KRB5_RUN_VARS="$RUN_VARS"
|
|
Packit |
fd8b60 |
AC_SUBST(KRB5_RUN_ENV)
|
|
Packit |
fd8b60 |
AC_SUBST(KRB5_RUN_VARS)])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_LIB_AUX
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Parse configure options related to library building.
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_LIB_AUX,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([KRB5_LIB_PARAMS])dnl
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([static],,, [enable_static=no])
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([shared],,, [enable_shared=yes])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test "x$enable_static" = "x$enable_shared"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([--enable-static must be specified with --disable-shared])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([rpath],
|
|
Packit |
fd8b60 |
AC_HELP_STRING([--disable-rpath],[suppress run path flags in link lines]),,
|
|
Packit |
fd8b60 |
[enable_rpath=yes])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test "x$enable_rpath" != xyes ; then
|
|
Packit |
fd8b60 |
# Unset the rpath flag values set by shlib.conf
|
|
Packit |
fd8b60 |
SHLIB_RPATH_FLAGS=
|
|
Packit |
fd8b60 |
RPATH_FLAG=
|
|
Packit |
fd8b60 |
PROG_RPATH_FLAGS=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test "$SHLIBEXT" = ".so-nobuild"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([Shared libraries are not yet supported on this platform.])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
DEPLIBEXT=$SHLIBEXT
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test "x$enable_static" = xyes; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE([using static libraries])
|
|
Packit |
fd8b60 |
LIBLIST='lib$(LIBBASE)$(STLIBEXT)'
|
|
Packit |
fd8b60 |
LIBLINKS='$(TOPLIBD)/lib$(LIBBASE)$(STLIBEXT)'
|
|
Packit |
fd8b60 |
PLUGIN='libkrb5_$(LIBBASE)$(STLIBEXT)'
|
|
Packit |
fd8b60 |
PLUGINLINK='$(TOPLIBD)/libkrb5_$(LIBBASE)$(STLIBEXT)'
|
|
Packit |
fd8b60 |
PLUGININST=install-static
|
|
Packit |
fd8b60 |
OBJLISTS=OBJS.ST
|
|
Packit |
fd8b60 |
LIBINSTLIST=install-static
|
|
Packit |
fd8b60 |
DEPLIBEXT=$STLIBEXT
|
|
Packit |
fd8b60 |
AC_DEFINE([STATIC_PLUGINS], 1, [Define for static plugin linkage])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_DEPLIBS='$(TOPLIBD)/libkrb5_db2$(DEPLIBEXT)'
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_LIBS='-lkrb5_db2'
|
|
Packit |
fd8b60 |
if test "x$OPENLDAP_PLUGIN" = xyes; then
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_DEBLIBS=$KDB5_PLUGIN_DEPLIBS' $(TOPLIBD)/libkrb5_ldap$(DEPLIBEXT) $(TOPLIBD)/libkdb_ldap$(DEPLIBEXT)'
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_LIBS=$KDB5_PLUGIN_LIBS' -lkrb5_kldap -lkdb_ldap $(LDAP_LIBS)'
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
# kadm5srv_mit normally comes before kdb on the link line. Add it
|
|
Packit |
fd8b60 |
# again after the KDB plugins, since they depend on it for XDR stuff.
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_DEPLIBS=$KDB5_PLUGIN_DEPLIBS' $(TOPLIBD)/libkadm5srv_mit$(DEPLIBEXT)'
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_LIBS=$KDB5_PLUGIN_LIBS' -lkadm5srv_mit'
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
# avoid duplicate rules generation for AIX and such
|
|
Packit |
fd8b60 |
SHLIBEXT=.so-nobuild
|
|
Packit |
fd8b60 |
SHLIBVEXT=.so.v-nobuild
|
|
Packit |
fd8b60 |
SHLIBSEXT=.so.s-nobuild
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE([using shared libraries])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
# Clear some stuff in case of AIX, etc.
|
|
Packit |
fd8b60 |
if test "$STLIBEXT" = "$SHLIBEXT" ; then
|
|
Packit |
fd8b60 |
STLIBEXT=.a-nobuild
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
case "$SHLIBSEXT" in
|
|
Packit |
fd8b60 |
.so.s-nobuild)
|
|
Packit |
fd8b60 |
LIBLIST='lib$(LIBBASE)$(SHLIBEXT)'
|
|
Packit |
fd8b60 |
LIBLINKS='$(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT)'
|
|
Packit |
fd8b60 |
LIBINSTLIST="install-shared"
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
LIBLIST='lib$(LIBBASE)$(SHLIBEXT) lib$(LIBBASE)$(SHLIBSEXT)'
|
|
Packit |
fd8b60 |
LIBLINKS='$(TOPLIBD)/lib$(LIBBASE)$(SHLIBEXT) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBVEXT) $(TOPLIBD)/lib$(LIBBASE)$(SHLIBSEXT)'
|
|
Packit |
fd8b60 |
LIBINSTLIST="install-shlib-soname"
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
OBJLISTS="OBJS.SH"
|
|
Packit |
fd8b60 |
PLUGIN='$(LIBBASE)$(DYNOBJEXT)'
|
|
Packit |
fd8b60 |
PLUGINLINK='../$(PLUGIN)'
|
|
Packit |
fd8b60 |
PLUGININST=install-plugin
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_DEPLIBS=
|
|
Packit |
fd8b60 |
KDB5_PLUGIN_LIBS=
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
CC_LINK="$CC_LINK_SHARED"
|
|
Packit |
fd8b60 |
CXX_LINK="$CXX_LINK_SHARED"
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test -z "$LIBLIST"; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([must enable one of shared or static libraries])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
# Check whether to build profiled libraries.
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([profiled],
|
|
Packit |
fd8b60 |
dnl [ --enable-profiled build profiled libraries @<:@disabled@:>@]
|
|
Packit |
fd8b60 |
,
|
|
Packit |
fd8b60 |
[if test "$enableval" = yes; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR([Sorry, profiled libraries do not work in this release.])
|
|
Packit |
fd8b60 |
fi])])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_LIB_PARAMS
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Determine parameters related to libraries, e.g. various extensions.
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_LIB_PARAMS,
|
|
Packit |
fd8b60 |
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
|
Packit |
fd8b60 |
krb5_cv_host=$host
|
|
Packit |
fd8b60 |
AC_SUBST(krb5_cv_host)
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_PROG_CC])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([V5_SET_TOPDIR])dnl
|
|
Packit |
fd8b60 |
. $ac_topdir/config/shlib.conf])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl The following was written by jhawk@mit.edu
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl AC_LIBRARY_NET: Id: net.m4,v 1.4 1997/10/25 20:49:53 jhawk Exp
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl This test is for network applications that need socket() and
|
|
Packit |
fd8b60 |
dnl gethostbyname() -ish functions. Under Solaris, those applications need to
|
|
Packit |
fd8b60 |
dnl link with "-lsocket -lnsl". Under IRIX, they should *not* link with
|
|
Packit |
fd8b60 |
dnl "-lsocket" because libsocket.a breaks a number of things (for instance:
|
|
Packit |
fd8b60 |
dnl gethostbyname() under IRIX 5.2, and snoop sockets under most versions of
|
|
Packit |
fd8b60 |
dnl IRIX).
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Unfortunately, many application developers are not aware of this, and
|
|
Packit |
fd8b60 |
dnl mistakenly write tests that cause -lsocket to be used under IRIX. It is
|
|
Packit |
fd8b60 |
dnl also easy to write tests that cause -lnsl to be used under operating
|
|
Packit |
fd8b60 |
dnl systems where neither are necessary (or useful), such as SunOS 4.1.4, which
|
|
Packit |
fd8b60 |
dnl uses -lnsl for TLI.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl This test exists so that every application developer does not test this in
|
|
Packit |
fd8b60 |
dnl a different, and subtly broken fashion.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl It has been argued that this test should be broken up into two separate
|
|
Packit |
fd8b60 |
dnl tests, one for the resolver libraries, and one for the libraries necessary
|
|
Packit |
fd8b60 |
dnl for using Sockets API. Unfortunately, the two are carefully intertwined and
|
|
Packit |
fd8b60 |
dnl allowing the autoconf user to use them independantly potentially results in
|
|
Packit |
fd8b60 |
dnl unfortunate ordering dependencies -- as such, such component macros would
|
|
Packit |
fd8b60 |
dnl have to carefully use indirection and be aware if the other components were
|
|
Packit |
fd8b60 |
dnl executed. Since other autoconf macros do not go to this trouble, and almost
|
|
Packit |
fd8b60 |
dnl no applications use sockets without the resolver, this complexity has not
|
|
Packit |
fd8b60 |
dnl been implemented.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl The check for libresolv is in case you are attempting to link statically
|
|
Packit |
fd8b60 |
dnl and happen to have a libresolv.a lying around (and no libnsl.a).
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(AC_LIBRARY_NET, [
|
|
Packit |
fd8b60 |
# Most operating systems have gethostbyname() in the default searched
|
|
Packit |
fd8b60 |
# libraries (i.e. libc):
|
|
Packit |
fd8b60 |
AC_CHECK_FUNC(gethostbyname, , [
|
|
Packit |
fd8b60 |
# Some OSes (eg. Solaris) place it in libnsl:
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(nsl, gethostbyname, , [
|
|
Packit |
fd8b60 |
# Some strange OSes (SINIX) have it in libsocket:
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(socket, gethostbyname, , [
|
|
Packit |
fd8b60 |
# Unfortunately libsocket sometimes depends on libnsl.
|
|
Packit |
fd8b60 |
# AC_CHECK_LIB's API is essentially broken so the following
|
|
Packit |
fd8b60 |
# ugliness is necessary:
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(socket, gethostbyname,
|
|
Packit |
fd8b60 |
LIBS="-lsocket -lnsl $LIBS",
|
|
Packit |
fd8b60 |
[AC_CHECK_LIB(resolv, gethostbyname,
|
|
Packit |
fd8b60 |
LIBS="-lresolv $LIBS" )],
|
|
Packit |
fd8b60 |
-lnsl)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, ,
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl)))
|
|
Packit |
fd8b60 |
KRB5_AC_ENABLE_DNS
|
|
Packit |
fd8b60 |
if test "$enable_dns" = yes ; then
|
|
Packit |
fd8b60 |
# We assume that if libresolv exists we can link against it.
|
|
Packit |
fd8b60 |
# This may get us a gethostby* that doesn't respect nsswitch.
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(resolv, main)
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
_KRB5_AC_CHECK_RES_FUNCS(res_ninit res_nclose res_ndestroy res_nsearch dnl
|
|
Packit |
fd8b60 |
ns_initparse ns_name_uncompress dn_skipname res_search)
|
|
Packit |
fd8b60 |
if test $krb5_cv_func_res_nsearch = no \
|
|
Packit |
fd8b60 |
&& test $krb5_cv_func_res_search = no; then
|
|
Packit |
fd8b60 |
# Attempt to link with res_search(), in case it's not prototyped.
|
|
Packit |
fd8b60 |
AC_CHECK_FUNC(res_search,
|
|
Packit |
fd8b60 |
[AC_DEFINE(HAVE_RES_SEARCH, 1,
|
|
Packit |
fd8b60 |
[Define to 1 if you have the `res_search' function])],
|
|
Packit |
fd8b60 |
[AC_ERROR([cannot find res_nsearch or res_search])])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
AC_DEFUN([_KRB5_AC_CHECK_RES_FUNCS],
|
|
Packit |
fd8b60 |
[AC_FOREACH([AC_Func], [$1],
|
|
Packit |
fd8b60 |
[AH_TEMPLATE(AS_TR_CPP(HAVE_[]AC_Func),
|
|
Packit |
fd8b60 |
[Define to 1 if you have the `]AC_Func[' function.])])dnl
|
|
Packit |
fd8b60 |
for krb5_func in $1; do
|
|
Packit |
fd8b60 |
_KRB5_AC_CHECK_RES_FUNC($krb5_func)
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
AC_DEFUN([_KRB5_AC_CHECK_RES_FUNC], [
|
|
Packit |
fd8b60 |
# Solaris 9 prototypes ns_name_uncompress() in arpa/nameser.h, but
|
|
Packit |
fd8b60 |
# doesn't export it from libresolv.so, so we use extreme paranoia here
|
|
Packit |
fd8b60 |
# and check both for the declaration and that we can link against the
|
|
Packit |
fd8b60 |
# function.
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([for $1], [krb5_cv_func_$1], [AC_TRY_LINK(
|
|
Packit |
fd8b60 |
[#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <netinet/in.h>
|
|
Packit |
fd8b60 |
#include <arpa/nameser.h>
|
|
Packit |
fd8b60 |
@%:@include <resolv.h>],
|
|
Packit |
fd8b60 |
[/*
|
|
Packit |
fd8b60 |
* Use volatile, or else optimization can cause false positives.
|
|
Packit |
fd8b60 |
*/
|
|
Packit |
fd8b60 |
void (* volatile p)() = (void (*)())$1;],
|
|
Packit |
fd8b60 |
[AS_VAR_SET(krb5_cv_func_$1, yes)],
|
|
Packit |
fd8b60 |
[AS_VAR_SET(krb5_cv_func_$1, no)])])
|
|
Packit |
fd8b60 |
AS_IF([test AS_VAR_GET(krb5_cv_func_$1) = yes],
|
|
Packit |
fd8b60 |
[AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_$1]), 1,
|
|
Packit |
fd8b60 |
[Define to 1 if you have the `$1' function])])[]dnl
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_ENABLE_DNS
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(KRB5_AC_ENABLE_DNS, [
|
|
Packit |
fd8b60 |
enable_dns=yes
|
|
Packit |
fd8b60 |
AC_ARG_ENABLE([dns-for-realm],
|
|
Packit |
fd8b60 |
[ --enable-dns-for-realm enable DNS lookups of Kerberos realm names], ,
|
|
Packit |
fd8b60 |
[enable_dns_for_realm=no])
|
|
Packit |
fd8b60 |
if test "$enable_dns_for_realm" = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE(KRB5_DNS_LOOKUP_REALM,1,[Define to enable DNS lookups of Kerberos realm names])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
AC_DEFINE(KRB5_DNS_LOOKUP, 1,[Define for DNS support of locating realms and KDCs])
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Check if we need the prototype for a function - we give it a bogus
|
|
Packit |
fd8b60 |
dnl prototype and if it complains - then a valid prototype exists on the
|
|
Packit |
fd8b60 |
dnl system.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_NEED_PROTO(includes, function, [bypass])
|
|
Packit |
fd8b60 |
dnl if $3 set, don't see if library defined.
|
|
Packit |
fd8b60 |
dnl Useful for case where we will define in libkrb5 the function if need be
|
|
Packit |
fd8b60 |
dnl but want to know if a prototype exists in either case on system.
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_NEED_PROTO], [
|
|
Packit |
fd8b60 |
ifelse([$3], ,[if test "x$ac_cv_func_$2" = xyes; then])
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([if $2 needs a prototype provided], krb5_cv_func_$2_noproto,
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([$1],
|
|
Packit |
fd8b60 |
[#undef $2
|
|
Packit |
fd8b60 |
struct k5foo {int foo; } xx;
|
|
Packit |
fd8b60 |
extern int $2 (struct k5foo*);
|
|
Packit |
fd8b60 |
$2(&xx;;
|
|
Packit |
fd8b60 |
],
|
|
Packit |
fd8b60 |
krb5_cv_func_$2_noproto=yes,krb5_cv_func_$2_noproto=no))
|
|
Packit |
fd8b60 |
if test $krb5_cv_func_$2_noproto = yes; then
|
|
Packit |
fd8b60 |
AC_DEFINE([NEED_]translit($2, [a-z], [A-Z])[_PROTO], 1, dnl
|
|
Packit |
fd8b60 |
[define if the system header files are missing prototype for $2()])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
ifelse([$3], ,[fi])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl =============================================================
|
|
Packit |
fd8b60 |
dnl Internal function for testing for getpeername prototype
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_GETPEERNAME_ARGS],[
|
|
Packit |
fd8b60 |
AC_DEFINE([GETPEERNAME_ARG3_TYPE],GETSOCKNAME_ARG3_TYPE,[Type of getpeername second argument.])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl =============================================================
|
|
Packit |
fd8b60 |
dnl Internal function for testing for getsockname arguments
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([TRY_GETSOCK_INT],[
|
|
Packit |
fd8b60 |
krb5_lib_var=`echo "$1 $2" | sed 'y% ./+-*%___p_p%'`
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING([if getsockname() takes arguments $1 and $2])
|
|
Packit |
fd8b60 |
AC_CACHE_VAL(krb5_cv_getsockname_proto_$krb5_lib_var,
|
|
Packit |
fd8b60 |
[
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([#include <sys/types.h>
|
|
Packit |
fd8b60 |
#include <sys/socket.h>
|
|
Packit |
fd8b60 |
extern int getsockname(int, $1, $2);
|
|
Packit |
fd8b60 |
],,eval "krb5_cv_getsockname_proto_$krb5_lib_var=yes",
|
|
Packit |
fd8b60 |
eval "krb5_cv_getsockname_proto_$krb5_lib_var=no")])
|
|
Packit |
fd8b60 |
if eval "test \"`echo '$krb5_cv_getsockname_proto_'$krb5_lib_var`\" = yes"; then
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(yes)
|
|
Packit |
fd8b60 |
sock_set=yes; res1="$1"; res2="$2"
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(no)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl Determines the types of the second and third arguments to getsockname().
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_GETSOCKNAME_ARGS],[
|
|
Packit |
fd8b60 |
sock_set=no
|
|
Packit |
fd8b60 |
for sock_arg1 in "struct sockaddr *" "void *"
|
|
Packit |
fd8b60 |
do
|
|
Packit |
fd8b60 |
for sock_arg2 in "size_t *" "int *" "socklen_t *"
|
|
Packit |
fd8b60 |
do
|
|
Packit |
fd8b60 |
if test $sock_set = no; then
|
|
Packit |
fd8b60 |
TRY_GETSOCK_INT($sock_arg1, $sock_arg2)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
done
|
|
Packit |
fd8b60 |
if test "$sock_set" = no; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(assuming struct sockaddr and socklen_t for getsockname args)
|
|
Packit |
fd8b60 |
res1="struct sockaddr *"
|
|
Packit |
fd8b60 |
res2="socklen_t *"
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
res1=`echo "$res1" | tr -d '*' | sed -e 's/ *$//'`
|
|
Packit |
fd8b60 |
res2=`echo "$res2" | tr -d '*' | sed -e 's/ *$//'`
|
|
Packit |
fd8b60 |
AC_DEFINE_UNQUOTED([GETSOCKNAME_ARG3_TYPE],$res2,[Type of pointer target for argument 3 to getsockname])
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_CHOOSE_ET],[
|
|
Packit |
fd8b60 |
AC_ARG_WITH([system-et],
|
|
Packit |
fd8b60 |
AC_HELP_STRING(--with-system-et,use system compile_et and -lcom_err @<:@default: build and install a local version@:>@))
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(which version of com_err to use)
|
|
Packit |
fd8b60 |
if test "x$with_system_et" = xyes ; then
|
|
Packit |
fd8b60 |
# This will be changed to "intlsys" if textdomain support is present.
|
|
Packit |
fd8b60 |
COM_ERR_VERSION=sys
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(system)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
COM_ERR_VERSION=k5
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(krb5)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
if test $COM_ERR_VERSION = sys; then
|
|
Packit |
fd8b60 |
# check for various functions we need
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(com_err, add_error_table, :, AC_MSG_ERROR(cannot find add_error_table in com_err library))
|
|
Packit |
fd8b60 |
AC_CHECK_LIB(com_err, remove_error_table, :, AC_MSG_ERROR(cannot find remove_error_table in com_err library))
|
|
Packit |
fd8b60 |
# make sure compile_et provides "et_foo" name
|
|
Packit |
fd8b60 |
cat >> conf$$e.et <
|
|
Packit |
fd8b60 |
error_table foo
|
|
Packit |
fd8b60 |
error_code ERR_FOO, "foo"
|
|
Packit |
fd8b60 |
end
|
|
Packit |
fd8b60 |
EOF
|
|
Packit |
fd8b60 |
AC_CHECK_PROGS(compile_et,compile_et,false)
|
|
Packit |
fd8b60 |
if test "$compile_et" = false; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(cannot find compile_et)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK(whether compile_et is useful,krb5_cv_compile_et_useful,[
|
|
Packit |
fd8b60 |
if compile_et conf$$e.et >/dev/null 2>&1 ; then true ; else
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(execution failed)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_TRY_COMPILE([#include "conf$$e.h"
|
|
Packit |
fd8b60 |
],[ &et_foo_error_table; ],:,
|
|
Packit |
fd8b60 |
[AC_MSG_ERROR(cannot use et_foo_error_table)])
|
|
Packit |
fd8b60 |
# Anything else we need to test for?
|
|
Packit |
fd8b60 |
rm -f conf$$e.c conf$$e.h
|
|
Packit |
fd8b60 |
krb5_cv_compile_et_useful=yes
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK(whether compile_et supports --textdomain,
|
|
Packit |
fd8b60 |
krb5_cv_compile_et_textdomain,[
|
|
Packit |
fd8b60 |
krb5_cv_compile_et_textdomain=no
|
|
Packit |
fd8b60 |
if compile_et --textdomain=xyzw conf$$e.et >/dev/null 2>&1 ; then
|
|
Packit |
fd8b60 |
if grep -q xyzw conf$$e.c; then
|
|
Packit |
fd8b60 |
krb5_cv_compile_et_textdomain=yes
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
rm -f conf$$e.c conf$$e.h
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
if test "$krb5_cv_compile_et_textdomain" = yes; then
|
|
Packit |
fd8b60 |
COM_ERR_VERSION=intlsys
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
rm -f conf$$e.et
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(COM_ERR_VERSION)
|
|
Packit |
fd8b60 |
if test "$COM_ERR_VERSION" = k5 -o "$COM_ERR_VERSION" = intlsys; then
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_COM_ERR_INTL,1,
|
|
Packit |
fd8b60 |
[Define if com_err has compatible gettext support])
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_CHOOSE_SS],[
|
|
Packit |
fd8b60 |
AC_ARG_WITH(system-ss,
|
|
Packit |
fd8b60 |
AC_HELP_STRING(--with-system-ss,use system -lss and mk_cmds @<:@private version@:>@))
|
|
Packit |
fd8b60 |
AC_ARG_VAR(SS_LIB,[system libraries for 'ss' package [-lss]])
|
|
Packit |
fd8b60 |
AC_MSG_CHECKING(which version of subsystem package to use)
|
|
Packit |
fd8b60 |
if test "x$with_system_ss" = xyes ; then
|
|
Packit |
fd8b60 |
SS_VERSION=sys
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(system)
|
|
Packit |
fd8b60 |
# todo: check for various libraries we might need
|
|
Packit |
fd8b60 |
# in the meantime...
|
|
Packit |
fd8b60 |
test "x${SS_LIB+set}" = xset || SS_LIB=-lss
|
|
Packit |
fd8b60 |
old_LIBS="$LIBS"
|
|
Packit |
fd8b60 |
LIBS="$LIBS $SS_LIB"
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK(whether system ss package works, krb5_cv_system_ss_okay,[
|
|
Packit |
fd8b60 |
AC_TRY_RUN([
|
|
Packit |
fd8b60 |
#include <ss/ss.h>
|
|
Packit |
fd8b60 |
int main(int argc, char *argv[]) {
|
|
Packit |
fd8b60 |
if (argc == 42) {
|
|
Packit |
fd8b60 |
int i, err;
|
|
Packit |
fd8b60 |
i = ss_create_invocation("foo","foo","",0,&err;;
|
|
Packit |
fd8b60 |
ss_listen(i);
|
|
Packit |
fd8b60 |
}
|
|
Packit |
fd8b60 |
return 0;
|
|
Packit |
fd8b60 |
}], krb5_cv_system_ss_okay=yes, AC_MSG_ERROR(cannot run test program),
|
|
Packit |
fd8b60 |
krb5_cv_system_ss_okay="assumed")])
|
|
Packit |
fd8b60 |
LIBS="$old_LIBS"
|
|
Packit |
fd8b60 |
KRB5_NEED_PROTO([#include <ss/ss.h>],ss_execute_command,1)
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
SS_VERSION=k5
|
|
Packit |
fd8b60 |
AC_MSG_RESULT(krb5)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(SS_LIB)
|
|
Packit |
fd8b60 |
AC_SUBST(SS_VERSION)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_CHOOSE_DB],[
|
|
Packit |
fd8b60 |
AC_ARG_WITH(system-db,
|
|
Packit |
fd8b60 |
AC_HELP_STRING(--with-system-db,use system Berkeley db @<:@private version@:>@))
|
|
Packit |
fd8b60 |
AC_ARG_VAR(DB_HEADER,[header file for system Berkeley db package [db.h]])
|
|
Packit |
fd8b60 |
AC_ARG_VAR(DB_LIB,[library for system Berkeley db package [-ldb]])
|
|
Packit |
fd8b60 |
if test "x$with_system_db" = xyes ; then
|
|
Packit |
fd8b60 |
DB_VERSION=sys
|
|
Packit |
fd8b60 |
# TODO: Do we have specific routines we should check for?
|
|
Packit |
fd8b60 |
# How about known, easily recognizable bugs?
|
|
Packit |
fd8b60 |
# We want to use bt_rseq in some cases, but no other version but
|
|
Packit |
fd8b60 |
# ours has it right now.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# Okay, check the variables.
|
|
Packit |
fd8b60 |
test "x${DB_HEADER+set}" = xset || DB_HEADER=db.h
|
|
Packit |
fd8b60 |
test "x${DB_LIB+set}" = xset || DB_LIB=-ldb
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
if test "x${DB_HEADER}" = xdb.h ; then
|
|
Packit |
fd8b60 |
DB_HEADER_VERSION=sys
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
DB_HEADER_VERSION=redirect
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
KDB5_DB_LIB="$DB_LIB"
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
DB_VERSION=k5
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_BT_RSEQ,1,[Define if bt_rseq is available, for recursive btree traversal.])
|
|
Packit |
fd8b60 |
DB_HEADER=db.h
|
|
Packit |
fd8b60 |
DB_HEADER_VERSION=k5
|
|
Packit |
fd8b60 |
# libdb gets sucked into libkdb
|
|
Packit |
fd8b60 |
KDB5_DB_LIB=
|
|
Packit |
fd8b60 |
# needed for a couple of things that need libdb for its own sake
|
|
Packit |
fd8b60 |
DB_LIB=-ldb
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(DB_VERSION)
|
|
Packit |
fd8b60 |
AC_SUBST(DB_HEADER)
|
|
Packit |
fd8b60 |
AC_SUBST(DB_HEADER_VERSION)
|
|
Packit |
fd8b60 |
AC_SUBST(DB_LIB)
|
|
Packit |
fd8b60 |
AC_SUBST(KDB5_DB_LIB)
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_PRIOCNTL_HACK
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_PRIOCNTL_HACK],
|
|
Packit |
fd8b60 |
[AC_REQUIRE([AC_PROG_AWK])dnl
|
|
Packit |
fd8b60 |
AC_REQUIRE([AC_LANG_COMPILER_REQUIRE])dnl
|
|
Packit |
fd8b60 |
AC_CACHE_CHECK([whether to use priocntl hack], [krb5_cv_priocntl_hack],
|
|
Packit |
fd8b60 |
[case $krb5_cv_host in
|
|
Packit |
fd8b60 |
*-*-solaris2.9*)
|
|
Packit |
fd8b60 |
if test "$cross_compiling" = yes; then
|
|
Packit |
fd8b60 |
krb5_cv_priocntl_hack=yes
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
# Solaris patch 117171-11 (sparc) or 117172-11 (x86)
|
|
Packit |
fd8b60 |
# fixes the Solaris 9 bug where final pty output
|
|
Packit |
fd8b60 |
# gets lost on close.
|
|
Packit |
fd8b60 |
if showrev -p | $AWK 'BEGIN { e = 1 }
|
|
Packit |
fd8b60 |
/Patch: 11717[[12]]/ { x = index[]([$]2, "-");
|
|
Packit |
fd8b60 |
if (substr[]([$]2, x + 1, length([$]2) - x) >= 11)
|
|
Packit |
fd8b60 |
{ e = 0 } else { e = 1 } }
|
|
Packit |
fd8b60 |
END { exit e; }'; then
|
|
Packit |
fd8b60 |
krb5_cv_priocntl_hack=no
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
krb5_cv_priocntl_hack=yes
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
*)
|
|
Packit |
fd8b60 |
krb5_cv_priocntl_hack=no
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac])
|
|
Packit |
fd8b60 |
if test "$krb5_cv_priocntl_hack" = yes; then
|
|
Packit |
fd8b60 |
PRIOCNTL_HACK=1
|
|
Packit |
fd8b60 |
else
|
|
Packit |
fd8b60 |
PRIOCNTL_HACK=0
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
AC_SUBST(PRIOCNTL_HACK)])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_GCC_ATTRS
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_GCC_ATTRS],
|
|
Packit |
fd8b60 |
[AC_CACHE_CHECK([for constructor/destructor attribute support],krb5_cv_attr_constructor_destructor,
|
|
Packit |
fd8b60 |
[rm -f conftest.1 conftest.2
|
|
Packit |
fd8b60 |
if test -r conftest.1 || test -r conftest.2 ; then
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(write error in local file system?)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
true > conftest.1
|
|
Packit |
fd8b60 |
true > conftest.2
|
|
Packit |
fd8b60 |
if test -r conftest.1 && test -r conftest.2 ; then true ; else
|
|
Packit |
fd8b60 |
AC_MSG_ERROR(write error in local file system?)
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
a=no
|
|
Packit |
fd8b60 |
b=no
|
|
Packit |
fd8b60 |
# blindly assume we have 'unlink'...
|
|
Packit |
fd8b60 |
AC_TRY_RUN([void foo1() __attribute__((constructor));
|
|
Packit |
fd8b60 |
void foo1() { unlink("conftest.1"); }
|
|
Packit |
fd8b60 |
void foo2() __attribute__((destructor));
|
|
Packit |
fd8b60 |
void foo2() { unlink("conftest.2"); }
|
|
Packit |
fd8b60 |
int main () { return 0; }],
|
|
Packit |
fd8b60 |
[test -r conftest.1 || a=yes
|
|
Packit |
fd8b60 |
test -r conftest.2 || b=yes], , AC_MSG_ERROR(Cannot test for constructor/destructor support when cross compiling))
|
|
Packit |
fd8b60 |
case $krb5_cv_host in
|
|
Packit |
fd8b60 |
*-*-aix4.*)
|
|
Packit |
fd8b60 |
# Under AIX 4.3.3, at least, shared library destructor functions
|
|
Packit |
fd8b60 |
# appear to get executed in reverse link order (right to left),
|
|
Packit |
fd8b60 |
# so that a library's destructor function may run after that of
|
|
Packit |
fd8b60 |
# libraries it depends on, and may still have to access in the
|
|
Packit |
fd8b60 |
# destructor.
|
|
Packit |
fd8b60 |
#
|
|
Packit |
fd8b60 |
# That counts as "not working", for me, but it's a much more
|
|
Packit |
fd8b60 |
# complicated test case to set up.
|
|
Packit |
fd8b60 |
b=no
|
|
Packit |
fd8b60 |
;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
krb5_cv_attr_constructor_destructor="$a,$b"
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
# Okay, krb5_cv_... should be set now.
|
|
Packit |
fd8b60 |
case $krb5_cv_attr_constructor_destructor in
|
|
Packit |
fd8b60 |
yes,*)
|
|
Packit |
fd8b60 |
AC_DEFINE(CONSTRUCTOR_ATTR_WORKS,1,[Define if __attribute__((constructor)) works]) ;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
case $krb5_cv_attr_constructor_destructor in
|
|
Packit |
fd8b60 |
*,yes)
|
|
Packit |
fd8b60 |
AC_DEFINE(DESTRUCTOR_ATTR_WORKS,1,[Define if __attribute__((destructor)) works]) ;;
|
|
Packit |
fd8b60 |
esac
|
|
Packit |
fd8b60 |
dnl End of attributes we care about right now.
|
|
Packit |
fd8b60 |
])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl KRB5_AC_PRAGMA_WEAK_REF
|
|
Packit |
fd8b60 |
AC_DEFUN([KRB5_AC_PRAGMA_WEAK_REF],
|
|
Packit |
fd8b60 |
[AC_CACHE_CHECK([whether pragma weak references are supported],
|
|
Packit |
fd8b60 |
krb5_cv_pragma_weak_ref,
|
|
Packit |
fd8b60 |
[AC_TRY_LINK([#pragma weak flurbl
|
|
Packit |
fd8b60 |
extern int flurbl(void);],[if (&flurbl != 0) return flurbl();],
|
|
Packit |
fd8b60 |
krb5_cv_pragma_weak_ref=yes,krb5_cv_pragma_weak_ref=no)])
|
|
Packit |
fd8b60 |
if test $krb5_cv_pragma_weak_ref = yes ; then
|
|
Packit |
fd8b60 |
AC_DEFINE(HAVE_PRAGMA_WEAK_REF,1,[Define if #pragma weak references work])
|
|
Packit |
fd8b60 |
fi])
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
m4_include(config/ac-archive/ax_pthread.m4)
|
|
Packit |
fd8b60 |
m4_include(config/ac-archive/ax_recursive_eval.m4)
|
|
Packit |
fd8b60 |
m4_include(config/pkg.m4)
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
dnl --with-ldap=value
|
|
Packit |
fd8b60 |
dnl
|
|
Packit |
fd8b60 |
AC_DEFUN(WITH_LDAP,[
|
|
Packit |
fd8b60 |
AC_ARG_WITH([ldap],
|
|
Packit |
fd8b60 |
[ --with-ldap compile OpenLDAP database backend module],
|
|
Packit |
fd8b60 |
[case "$withval" in
|
|
Packit |
fd8b60 |
OPENLDAP) with_ldap=yes ;;
|
|
Packit |
fd8b60 |
yes | no) ;;
|
|
Packit |
fd8b60 |
*) AC_MSG_ERROR(Invalid option value --with-ldap="$withval") ;;
|
|
Packit |
fd8b60 |
esac], with_ldap=no)dnl
|
|
Packit |
fd8b60 |
|
|
Packit |
fd8b60 |
if test "$with_ldap" = yes; then
|
|
Packit |
fd8b60 |
AC_MSG_NOTICE(enabling OpenLDAP database backend module support)
|
|
Packit |
fd8b60 |
OPENLDAP_PLUGIN=yes
|
|
Packit |
fd8b60 |
fi
|
|
Packit |
fd8b60 |
])dnl
|