])
-
+dnl Not all systems have err.h, so we provide a replacement. Heimdal
+dnl unconditionally #includes <err.h>, so we need to create an err.h,
+dnl but we can't just have a static one because we don't want to use
+dnl it on systems that have a real err.h. If the system has a real
+dnl err.h, we should use that (eg. on Darwin, the declarations get
+dnl linker attributes added, so we can't guarantee that our local
+dnl declarations will be correct). Phew!
+AC_CHECK_HEADERS([err.h], [],
+ [ cp heimdal/lib/roken/err.hin heimdal_build/err.h ])
AC_CHECK_HEADERS([ \
crypt.h \
inttypes.h \
netdb.h \
signal.h \
- sys/bitypes.h \
sys/bswap.h \
sys/file.h \
sys/stropts.h \
atexit \
cgetent \
getprogname \
- inet_ntop \
inet_aton \
- inet_pton \
gethostname \
getnameinfo \
iruserok \
closefrom \
hstrerror \
err \
+ warn \
errx \
warnx \
flock \
- getaddrinfo \
- freeaddrinfo \
getipnodebyname \
getipnodebyaddr \
freehostent \
#include <sys/bswap.h>
#endif], 0)
-
-dnl AC_HAVE_TYPE(TYPE,INCLUDES)
-AC_DEFUN([AC_HAVE_TYPE], [
-AC_REQUIRE([AC_HEADER_STDC])
-cv=`echo "$1" | sed 'y%./+- %__p__%'`
-AC_MSG_CHECKING(for $1)
-AC_CACHE_VAL([ac_cv_type_$cv],
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-$2]],
-[[$1 foo;]])],
-[eval "ac_cv_type_$cv=yes"],
-[eval "ac_cv_type_$cv=no"]))dnl
-ac_foo=`eval echo \\$ac_cv_type_$cv`
-AC_MSG_RESULT($ac_foo)
-if test "$ac_foo" = yes; then
- ac_tr_hdr=HAVE_`echo $1 | sed 'y%abcdefghijklmnopqrstuvwxyz./- %ABCDEFGHIJKLMNOPQRSTUVWXYZ____%'`
-if false; then
- AC_CHECK_TYPES($1)
-fi
- AC_DEFINE_UNQUOTED($ac_tr_hdr, 1, [Define if you have type `$1'])
-fi
-])
-
-AC_HAVE_TYPE([sa_family_t],[#include <sys/socket.h>])
-AC_HAVE_TYPE([struct sockaddr], [#include <sys/socket.h>])
-AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/socket.h>])
-AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
-AC_HAVE_TYPE([struct ifaddrs], [#include <ifaddrs.h>])
-AC_HAVE_TYPE([socklen_t],[#include <sys/socket.h>])
-
-
AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
AC_MSG_CHECKING(for struct winsize)
AC_CACHE_VAL(ac_cv_struct_winsize, [
AC_SUBST(VOID_RETSIGTYPE)
-sinclude(heimdal/cf/check-var.m4)
+m4_include(heimdal/cf/check-var.m4)
rk_CHECK_VAR(h_errno,
[#ifdef HAVE_SYS_TYPES_H
#include <netdb.h>
#endif])
-sinclude(heimdal/cf/find-func.m4)
-sinclude(heimdal/cf/find-func-no-libs.m4)
-sinclude(heimdal/cf/find-func-no-libs2.m4)
-sinclude(heimdal/cf/resolv.m4)
+m4_include(heimdal/cf/find-func.m4)
+m4_include(heimdal/cf/find-func-no-libs.m4)
+m4_include(heimdal/cf/find-func-no-libs2.m4)
+m4_include(heimdal/cf/resolv.m4)
smb_save_LIBS=$LIBS
RESOLV_LIBS=""
SMB_ENABLE(asn1_compile, NO)
SMB_ENABLE(compile_et, NO)
+#
+# We need bison -y and flex in new versions
+# Otherwise we get random runtime failures
+#
+LEX_YACC_COMBINATIONS=""
+LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
+
AC_PROG_LEX
+LEX_BASENAME=`basename "$LEX"`
+if test x"$LEX_BASENAME" = x"flex"; then
+ # "flex 2.5.33"
+ FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
+ AC_MSG_CHECKING(flex version)
+ AC_MSG_RESULT($FLEX_VERSION)
+ FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
+ FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
+ FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
+
+ LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
+fi
+
AC_PROG_YACC
+YACC_BASENAME=`basename "$YACC"`
+if test x"$YACC_BASENAME" = x"bison -y"; then
+ # bison (GNU Bison) 2.3
+ BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
+ AC_MSG_CHECKING(bison version)
+ AC_MSG_RESULT($BISON_VERSION)
+ BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
+ BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
+
+ YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
+fi
+
+AC_MSG_CHECKING(working LEX YACC combination)
+LEX_YACC="no"
+if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
+ V="$LEX_VERSION:$YACC_VERSION"
+ for C in $LEX_YACC_COMBINATIONS; do
+ if test x"$V" = x"$C"; then
+ LEX_YACC=$V
+ break;
+ fi
+ done
+fi
+if test x"$LEX_YACC" = x"no"; then
+ LEX=false
+ YACC=false
+fi
+AC_MSG_RESULT($LEX_YACC)
# Portions of heimdal kerberos are unpacked into source/heimdal
# of the samba source tree.
SMB_ENABLE(asn1_compile, YES)
SMB_ENABLE(compile_et, YES)
-# only add getaddrinfo and related functions if needed
-SMB_ENABLE(HEIMDAL_ROKEN_ADDRINFO, NO)
-if test t$ac_cv_func_getaddrinfo != tyes; then
- SMB_ENABLE(HEIMDAL_ROKEN_ADDRINFO, YES)
-fi
-
-# only add inet_aton if needed
-SMB_ENABLE(HEIMDAL_ROKEN_INET_ATON, NO)
-if test t$ac_cv_func_inet_aton != tyes; then
- SMB_ENABLE(HEIMDAL_ROKEN_INET_ATON, YES)
+# only add closefrom if needed
+SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
+if test t$ac_cv_func_closefrom != tyes; then
+ SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
fi
-if test x"$ac_cv_func_inet_pton" = x"no"; then
- AC_CHECK_LIB_EXT(nsl_s, NSL_LIBS, inet_pton)
- AC_CHECK_LIB_EXT(nsl, NSL_LIBS, inet_pton)
- SMB_ENABLE(NSL,YES)
- if test x"$ac_cv_lib_ext_nsl_s_inet_pton" != x"yes" &&
- test x"$ac_cv_lib_ext_nsl_inet_pton" != x"yes"; then
- AC_MSG_ERROR([no inet_pton() function available!])
- fi
-fi
-
-SMB_EXT_LIB(NSL,[${NSL_LIBS}],[],[],[])
-
# only add getprogname if needed
SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, NO)
-SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_HOST, NO)
+SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, NO)
if test t$ac_cv_func_getprogname != tyes; then
SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, YES)
- SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_HOST, YES)
+ SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, YES)
fi
-
-# only add gai_strerror if needed
-SMB_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, NO)
-AC_CHECK_FUNC(gai_strerror)
-
-if test t$ac_cv_func_gai_strerror != tyes; then
- AC_CHECK_LIB_EXT(nsl, GAI_LIBS, gai_strerror)
- AC_CHECK_LIB_EXT(socket, GAI_LIBS, gai_strerror)
- AC_CHECK_LIB_EXT(xnet, GAI_LIBS, gai_strerror)
-
- dnl We can't just call AC_CHECK_FUNCS(gai_strerror) here, because the value
- dnl has been cached.
- if test x"$ac_cv_lib_ext_nsl_gai_strerror" = x"yes" ||
- test x"$ac_cv_lib_ext_socket_gai_strerror" = x"yes" ||
- test x"$ac_cv_lib_ext_xnet_gai_strerror" = x"yes"; then
- AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether the system has gai_strerror()])
- SMB_ENABLE(GAI, YES)
- else
- SMB_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, YES)
- fi
-
-else
- AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether gai_strerror() is available])
-fi
-
-SMB_EXT_LIB(GAI,[${GAI_LIBS}],[${GAI_CFLAGS}],[${GAI_CPPFLAGS}],[${GAI_LDFLAGS}])