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 AC_CHECK_TYPE(u_char, uint8_t)
37 AC_CHECK_TYPE(u_int32_t, uint32_t)
39 dnl Not all systems have err.h, so we provide a replacement. Heimdal
40 dnl unconditionally #includes <err.h>, so we need to create an err.h,
41 dnl but we can't just have a static one because we don't want to use
42 dnl it on systems that have a real err.h. If the system has a real
43 dnl err.h, we should use that (eg. on Darwin, the declarations get
44 dnl linker attributes added, so we can't guarantee that our local
45 dnl declarations will be correct). Phew!
46 AC_CHECK_HEADERS([err.h], [],
47 [ cp heimdal/lib/roken/err.hin heimdal_build/err.h ])
113 love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
114 #include <sys/bswap.h>
117 love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
118 #include <sys/bswap.h>
121 AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
122 AC_MSG_CHECKING(for struct winsize)
123 AC_CACHE_VAL(ac_cv_struct_winsize, [
124 ac_cv_struct_winsize=no
125 for i in sys/termios.h sys/ioctl.h; do
127 struct[[ ]]*winsize,dnl
128 $i, ac_cv_struct_winsize=yes; break)dnl
131 if test "$ac_cv_struct_winsize" = "yes"; then
132 AC_DEFINE(HAVE_STRUCT_WINSIZE, 1, [define if struct winsize is declared in sys/termios.h])
134 AC_MSG_RESULT($ac_cv_struct_winsize)
135 AC_EGREP_HEADER(ws_xpixel, termios.h,
136 AC_DEFINE(HAVE_WS_XPIXEL, 1, [define if struct winsize has ws_xpixel]))
137 AC_EGREP_HEADER(ws_ypixel, termios.h,
138 AC_DEFINE(HAVE_WS_YPIXEL, 1, [define if struct winsize has ws_ypixel]))
141 AC_KRB_STRUCT_WINSIZE
144 if test "$ac_cv_type_signal" = "void" ; then
145 AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
147 AC_SUBST(VOID_RETSIGTYPE)
150 m4_include(heimdal/cf/check-var.m4)
152 rk_CHECK_VAR(h_errno,
153 [#ifdef HAVE_SYS_TYPES_H
154 #include <sys/types.h>
160 m4_include(heimdal/cf/find-func.m4)
161 m4_include(heimdal/cf/find-func-no-libs.m4)
162 m4_include(heimdal/cf/find-func-no-libs2.m4)
163 m4_include(heimdal/cf/resolv.m4)
166 AC_CHECK_LIB_EXT(util, OPENPTY_LIBS, openpty)
168 SMB_ENABLE(OPENPTY,YES)
170 SMB_EXT_LIB(OPENPTY,[${OPENPTY_LIBS}],[${OPENPTY_CFLAGS}],[${OPENPTY_CPPFLAGS}],[${OPENPTY_LDFLAGS}])
176 dnl This fills in the global LIBS...
179 dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
180 SMB_ENABLE(RESOLV,YES)
182 if test x"$LIBS" != "x"; then
188 SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
191 # these are disabled unless heimdal is found below
192 SMB_ENABLE(KERBEROS_LIB, NO)
193 SMB_ENABLE(asn1_compile, NO)
194 SMB_ENABLE(compile_et, NO)
197 # We need bison -y and flex in new versions
198 # Otherwise we get random runtime failures
200 LEX_YACC_COMBINATIONS=""
201 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
202 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.34:bison-2.3"
205 LEX_BASENAME=`basename "$LEX"`
206 if test x"$LEX_BASENAME" = x"flex"; then
208 FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
209 AC_MSG_CHECKING(flex version)
210 AC_MSG_RESULT($FLEX_VERSION)
211 FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
212 FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
213 FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
215 LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
219 YACC_BASENAME=`basename "$YACC"`
220 if test x"$YACC_BASENAME" = x"bison -y"; then
221 # bison (GNU Bison) 2.3
222 BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
223 AC_MSG_CHECKING(bison version)
224 AC_MSG_RESULT($BISON_VERSION)
225 BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
226 BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
228 YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
231 AC_MSG_CHECKING(working LEX YACC combination)
233 if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
234 V="$LEX_VERSION:$YACC_VERSION"
235 for C in $LEX_YACC_COMBINATIONS; do
236 if test x"$V" = x"$C"; then
242 if test x"$LEX_YACC" = x"no"; then
246 AC_MSG_RESULT($LEX_YACC)
248 # Portions of heimdal kerberos are unpacked into source/heimdal
249 # of the samba source tree.
251 # if we ever get to using a host kerberos, we might add conditionals here
252 AC_DEFINE(HAVE_COM_ERR,1,[Whether com_err is available])
254 AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
256 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
258 SMB_ENABLE(KERBEROS_LIB, YES)
259 SMB_ENABLE(asn1_compile, YES)
260 SMB_ENABLE(compile_et, YES)
262 # only add closefrom if needed
263 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
264 if test t$ac_cv_func_closefrom != tyes; then
265 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
268 # only add getprogname if needed
269 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, NO)
270 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, NO)
271 if test t$ac_cv_func_getprogname != tyes; then
272 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, YES)
273 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, YES)
276 VPATH="$VPATH:\$(HEIMDAL_VPATH)"
278 AC_DEFINE(SAMBA4_INTERNAL_HEIMDAL,1,[Whether we use in internal heimdal build])
280 SMB_INCLUDE_MK(heimdal_build/internal.mk)