1 m4_define([upcase],`echo $1 | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`)dnl
3 m4_ifndef([AC_WARNING_ENABLE],[AC_DEFUN([AC_WARNING_ENABLE],[])])
5 dnl love_FIND_FUNC(func, includes, arguments)
6 dnl kind of like AC_CHECK_FUNC, but with headerfiles
7 AC_DEFUN([love_FIND_FUNC], [
9 AC_MSG_CHECKING([for $1])
10 AC_CACHE_VAL(ac_cv_love_func_$1,
12 AC_LINK_IFELSE([AC_LANG_PROGRAM([[$2]],[[$1($3)]])],
13 [eval "ac_cv_love_func_$1=yes"],[eval "ac_cv_love_func_$1=no"])])
15 eval "ac_res=\$ac_cv_love_func_$1"
21 eval "ac_tr_func=HAVE_[]upcase($1)"
25 AC_DEFINE_UNQUOTED($ac_tr_func)
36 dnl Not all systems have err.h, so we provide a replacement. Heimdal
37 dnl unconditionally #includes <err.h>, so we need to create an err.h,
38 dnl but we can't just have a static one because we don't want to use
39 dnl it on systems that have a real err.h. If the system has a real
40 dnl err.h, we should use that (eg. on Darwin, the declarations get
41 dnl linker attributes added, so we can't guarantee that our local
42 dnl declarations will be correct). Phew!
43 AC_CHECK_HEADERS([err.h], [],
44 [ cp heimdal/lib/roken/err.hin heimdal_build/err.h ])
109 love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
110 #include <sys/bswap.h>
113 love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
114 #include <sys/bswap.h>
117 AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
118 AC_MSG_CHECKING(for struct winsize)
119 AC_CACHE_VAL(ac_cv_struct_winsize, [
120 ac_cv_struct_winsize=no
121 for i in sys/termios.h sys/ioctl.h; do
123 struct[[ ]]*winsize,dnl
124 $i, ac_cv_struct_winsize=yes; break)dnl
127 if test "$ac_cv_struct_winsize" = "yes"; then
128 AC_DEFINE(HAVE_STRUCT_WINSIZE, 1, [define if struct winsize is declared in sys/termios.h])
130 AC_MSG_RESULT($ac_cv_struct_winsize)
131 AC_EGREP_HEADER(ws_xpixel, termios.h,
132 AC_DEFINE(HAVE_WS_XPIXEL, 1, [define if struct winsize has ws_xpixel]))
133 AC_EGREP_HEADER(ws_ypixel, termios.h,
134 AC_DEFINE(HAVE_WS_YPIXEL, 1, [define if struct winsize has ws_ypixel]))
137 AC_KRB_STRUCT_WINSIZE
140 if test "$ac_cv_type_signal" = "void" ; then
141 AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
143 AC_SUBST(VOID_RETSIGTYPE)
146 m4_include(heimdal/cf/check-var.m4)
148 rk_CHECK_VAR(h_errno,
149 [#ifdef HAVE_SYS_TYPES_H
150 #include <sys/types.h>
156 m4_include(heimdal/cf/find-func.m4)
157 m4_include(heimdal/cf/find-func-no-libs.m4)
158 m4_include(heimdal/cf/find-func-no-libs2.m4)
159 m4_include(heimdal/cf/resolv.m4)
165 dnl This fills in the global LIBS...
168 dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
169 SMB_ENABLE(RESOLV,YES)
171 if test x"$LIBS" != "x"; then
177 SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
180 # these are disabled unless heimdal is found below
181 SMB_ENABLE(KERBEROS_LIB, NO)
182 SMB_ENABLE(asn1_compile, NO)
183 SMB_ENABLE(compile_et, NO)
186 # We need bison -y and flex in new versions
187 # Otherwise we get random runtime failures
189 LEX_YACC_COMBINATIONS=""
190 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
191 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.34:bison-2.3"
194 LEX_BASENAME=`basename "$LEX"`
195 if test x"$LEX_BASENAME" = x"flex"; then
197 FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
198 AC_MSG_CHECKING(flex version)
199 AC_MSG_RESULT($FLEX_VERSION)
200 FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
201 FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
202 FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
204 LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
208 YACC_BASENAME=`basename "$YACC"`
209 if test x"$YACC_BASENAME" = x"bison -y"; then
210 # bison (GNU Bison) 2.3
211 BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
212 AC_MSG_CHECKING(bison version)
213 AC_MSG_RESULT($BISON_VERSION)
214 BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
215 BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
217 YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
220 AC_MSG_CHECKING(working LEX YACC combination)
222 if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
223 V="$LEX_VERSION:$YACC_VERSION"
224 for C in $LEX_YACC_COMBINATIONS; do
225 if test x"$V" = x"$C"; then
231 if test x"$LEX_YACC" = x"no"; then
235 AC_MSG_RESULT($LEX_YACC)
237 # Portions of heimdal kerberos are unpacked into source/heimdal
238 # of the samba source tree.
240 # if we ever get to using a host kerberos, we might add conditionals here
241 AC_DEFINE(HAVE_COM_ERR,1,[Whether com_err is available])
243 AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
245 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
247 SMB_ENABLE(KERBEROS_LIB, YES)
248 SMB_ENABLE(asn1_compile, YES)
249 SMB_ENABLE(compile_et, YES)
251 # only add closefrom if needed
252 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
253 if test t$ac_cv_func_closefrom != tyes; then
254 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
257 # only add getprogname if needed
258 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, NO)
259 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, NO)
260 if test t$ac_cv_func_getprogname != tyes; then
261 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, YES)
262 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, YES)
265 VPATH="$VPATH:\$(HEIMDAL_VPATH)"
267 AC_DEFINE(SAMBA4_INTERNAL_HEIMDAL,1,[Whether we use in internal heimdal build])
269 SMB_INCLUDE_MK(heimdal_build/internal.mk)