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 ])
114 love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
115 #include <sys/bswap.h>
118 love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
119 #include <sys/bswap.h>
122 AC_DEFUN([AC_KRB_STRUCT_WINSIZE], [
123 AC_MSG_CHECKING(for struct winsize)
124 AC_CACHE_VAL(ac_cv_struct_winsize, [
125 ac_cv_struct_winsize=no
126 for i in sys/termios.h sys/ioctl.h; do
128 struct[[ ]]*winsize,dnl
129 $i, ac_cv_struct_winsize=yes; break)dnl
132 if test "$ac_cv_struct_winsize" = "yes"; then
133 AC_DEFINE(HAVE_STRUCT_WINSIZE, 1, [define if struct winsize is declared in sys/termios.h])
135 AC_MSG_RESULT($ac_cv_struct_winsize)
136 AC_EGREP_HEADER(ws_xpixel, termios.h,
137 AC_DEFINE(HAVE_WS_XPIXEL, 1, [define if struct winsize has ws_xpixel]))
138 AC_EGREP_HEADER(ws_ypixel, termios.h,
139 AC_DEFINE(HAVE_WS_YPIXEL, 1, [define if struct winsize has ws_ypixel]))
142 AC_KRB_STRUCT_WINSIZE
145 if test "$ac_cv_type_signal" = "void" ; then
146 AC_DEFINE(VOID_RETSIGTYPE, 1, [Define if signal handlers return void.])
148 AC_SUBST(VOID_RETSIGTYPE)
151 m4_include(heimdal/cf/check-var.m4)
153 rk_CHECK_VAR(h_errno,
154 [#ifdef HAVE_SYS_TYPES_H
155 #include <sys/types.h>
161 m4_include(heimdal/cf/find-func.m4)
162 m4_include(heimdal/cf/find-func-no-libs.m4)
163 m4_include(heimdal/cf/find-func-no-libs2.m4)
164 m4_include(heimdal/cf/resolv.m4)
167 AC_CHECK_LIB_EXT(util, OPENPTY_LIBS, openpty)
169 SMB_ENABLE(OPENPTY,YES)
171 SMB_EXT_LIB(OPENPTY,[${OPENPTY_LIBS}],[${OPENPTY_CFLAGS}],[${OPENPTY_CPPFLAGS}],[${OPENPTY_LDFLAGS}])
173 AC_CHECK_LIB_EXT(intl, INTL_LIBS, gettext)
177 SMB_EXT_LIB(INTL, $INTL_LIBS)
183 dnl This fills in the global LIBS...
186 dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
187 SMB_ENABLE(RESOLV,YES)
189 if test x"$LIBS" != "x"; then
195 SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
198 # these are disabled unless heimdal is found below
199 SMB_ENABLE(KERBEROS_LIB, NO)
200 SMB_ENABLE(asn1_compile, NO)
201 SMB_ENABLE(compile_et, NO)
204 # We need bison -y and flex in new versions
205 # Otherwise we get random runtime failures
207 LEX_YACC_COMBINATIONS=""
208 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
209 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.34:bison-2.3"
212 LEX_BASENAME=`basename "$LEX"`
213 if test x"$LEX_BASENAME" = x"flex"; then
215 FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
216 AC_MSG_CHECKING(flex version)
217 AC_MSG_RESULT($FLEX_VERSION)
218 FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
219 FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
220 FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
222 LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
226 YACC_BASENAME=`basename "$YACC"`
227 if test x"$YACC_BASENAME" = x"bison -y"; then
228 # bison (GNU Bison) 2.3
229 BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
230 AC_MSG_CHECKING(bison version)
231 AC_MSG_RESULT($BISON_VERSION)
232 BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
233 BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
235 YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
238 AC_MSG_CHECKING(working LEX YACC combination)
240 if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
241 V="$LEX_VERSION:$YACC_VERSION"
242 for C in $LEX_YACC_COMBINATIONS; do
243 if test x"$V" = x"$C"; then
249 if test x"$LEX_YACC" = x"no"; then
253 AC_MSG_RESULT($LEX_YACC)
255 # Portions of heimdal kerberos are unpacked into source/heimdal
256 # of the samba source tree.
258 # if we ever get to using a host kerberos, we might add conditionals here
259 AC_DEFINE(HAVE_COM_ERR,1,[Whether com_err is available])
261 AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
263 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
265 SMB_ENABLE(KERBEROS_LIB, YES)
266 SMB_ENABLE(asn1_compile, YES)
267 SMB_ENABLE(compile_et, YES)
269 # only add closefrom if needed
270 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
271 if test t$ac_cv_func_closefrom != tyes; then
272 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
275 # only add getprogname if needed
276 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, NO)
277 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, NO)
278 if test t$ac_cv_func_getprogname != tyes; then
279 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, YES)
280 SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, YES)
283 VPATH="$VPATH:\$(HEIMDAL_VPATH)"
285 AC_DEFINE(SAMBA4_INTERNAL_HEIMDAL,1,[Whether we use in internal heimdal build])
287 SMB_INCLUDE_MK(heimdal_build/internal.mk)