Fix the section of the pam_winbind manpage.
[Samba/ekacnet.git] / source4 / heimdal_build / internal.m4
blob5c8d78e56d0346f7b486636924656b5abcfddaa7
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"
17 if false; then
18         AC_CHECK_FUNCS($1)
20 # $1
21 eval "ac_tr_func=HAVE_[]upcase($1)"
23 case "$ac_res" in
24         yes)
25         AC_DEFINE_UNQUOTED($ac_tr_func)
26         AC_MSG_RESULT([yes])
27         ;;
28         no)
29         AC_MSG_RESULT([no])
30         ;;
31 esac
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 ])
49 AC_CHECK_HEADERS([                              \
50         crypt.h                                 \
51         curses.h                                \
52         errno.h                                 \
53         inttypes.h                              \
54         netdb.h                                 \
55         signal.h                                \
56         sys/bswap.h                             \
57         sys/file.h                              \
58         sys/stropts.h                           \
59         sys/timeb.h                             \
60         sys/times.h                             \
61         sys/uio.h                               \
62         sys/un.h                                \
63         sys/utsname.h                           \
64         term.h                                  \
65         termcap.h                               \
66         time.h                                  \
67         timezone.h                              \
68         ttyname.h                               \
69         netinet/in.h                            \
70         netinet/in6.h                           \
71         netinet6/in6.h                          \
72         libintl.h
75 AC_CHECK_FUNCS([                                \
76         atexit                                  \
77         cgetent                                 \
78         getprogname                             \
79         setprogname                             \
80         inet_aton                               \
81         gethostname                             \
82         getnameinfo                             \
83         iruserok                                \
84         putenv                                  \
85         rcmd                                    \
86         readv                                   \
87         sendmsg                                 \
88         setitimer                               \
89         socket                                  \
90         strlwr                                  \
91         strncasecmp                             \
92         strptime                                \
93         strsep                                  \
94         strsep_copy                             \
95         strtok_r                                \
96         strupr                                  \
97         swab                                    \
98         umask                                   \
99         uname                                   \
100         unsetenv                                \
101         closefrom                               \
102         hstrerror                               \
103         err                                     \
104         warn                                    \
105         errx                                    \
106         warnx                                   \
107         flock                                   \
108         getipnodebyname                         \
109         getipnodebyaddr                         \
110         freehostent                             \
111         writev
114 love_FIND_FUNC(bswap16, [#ifdef HAVE_SYS_BSWAP_H
115 #include <sys/bswap.h>
116 #endif], 0)
118 love_FIND_FUNC(bswap32, [#ifdef HAVE_SYS_BSWAP_H
119 #include <sys/bswap.h>
120 #endif], 0)
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
127 AC_EGREP_HEADER(
128 struct[[        ]]*winsize,dnl
129 $i, ac_cv_struct_winsize=yes; break)dnl
130 done
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
144 AC_TYPE_SIGNAL
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>
156 #endif
157 #ifdef HAVE_NETDB_H
158 #include <netdb.h>
159 #endif])
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)
166 AC_CHECK_HEADERS([pty.h util.h libutil.h])
168 AC_CHECK_LIB_EXT(util, OPENPTY_LIBS, openpty)
170 SMB_ENABLE(OPENPTY,YES)
172 SMB_EXT_LIB(OPENPTY,[${OPENPTY_LIBS}],[${OPENPTY_CFLAGS}],[${OPENPTY_CPPFLAGS}],[${OPENPTY_LDFLAGS}])
174 AC_CHECK_LIB_EXT(intl, INTL_LIBS, gettext)
176 SMB_ENABLE(INTL,YES)
178 SMB_EXT_LIB(INTL, $INTL_LIBS)
180 smb_save_LIBS=$LIBS
181 RESOLV_LIBS=""
182 LIBS=""
184 dnl  This fills in the global LIBS...
185 rk_RESOLV
187 dnl AC_CHECK_LIB_EXT(resolv, RESOLV_LIBS, res_search)
188         SMB_ENABLE(RESOLV,YES)
190 if test x"$LIBS" != "x"; then
191         RESOLV_LIBS=$LIBS
194 LIBS=$smb_save_LIBS
196 SMB_EXT_LIB(RESOLV,[${RESOLV_LIBS}],[${RESOLV_CFLAGS}],[${RESOLV_CPPFLAGS}],[${RESOLV_LDFLAGS}])
199 # these are disabled unless heimdal is found below
200 SMB_ENABLE(KERBEROS_LIB, NO)
201 SMB_ENABLE(asn1_compile, NO)
202 SMB_ENABLE(compile_et, NO)
205 # We need bison -y and flex in new versions
206 # Otherwise we get random runtime failures
208 LEX_YACC_COMBINATIONS=""
209 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.33:bison-2.3"
210 LEX_YACC_COMBINATIONS="$LEX_YACC_COMBINATIONS flex-2.5.34:bison-2.3"
212 AC_PROG_LEX
213 LEX_BASENAME=`basename "$LEX"`
214 if test x"$LEX_BASENAME" = x"flex"; then
215         # "flex 2.5.33"
216         FLEX_VERSION=`$LEX --version | cut -d ' ' -f2`
217         AC_MSG_CHECKING(flex version)
218         AC_MSG_RESULT($FLEX_VERSION)
219         FLEX_MAJOR=`echo $FLEX_VERSION | cut -d '.' -f1`
220         FLEX_MINOR=`echo $FLEX_VERSION | cut -d '.' -f2`
221         FLEX_RELEASE=`echo $FLEX_VERSION | cut -d '.' -f3`
223         LEX_VERSION="flex-$FLEX_MAJOR.$FLEX_MINOR.$FLEX_RELEASE"
226 AC_PROG_YACC
227 YACC_BASENAME=`basename "$YACC"`
228 if test x"$YACC_BASENAME" = x"bison -y"; then
229         # bison (GNU Bison) 2.3
230         BISON_VERSION=`$YACC --version | head -1 | cut -d ' ' -f4`
231         AC_MSG_CHECKING(bison version)
232         AC_MSG_RESULT($BISON_VERSION)
233         BISON_MAJOR=`echo $BISON_VERSION | cut -d '.' -f1`
234         BISON_MINOR=`echo $BISON_VERSION | cut -d '.' -f2`
236         YACC_VERSION="bison-$BISON_MAJOR.$BISON_MINOR"
239 AC_MSG_CHECKING(working LEX YACC combination)
240 LEX_YACC="no"
241 if test x"$LEX_VERSION" != x"" -a x"$YACC_VERSION" != x""; then
242         V="$LEX_VERSION:$YACC_VERSION"
243         for C in $LEX_YACC_COMBINATIONS; do
244                 if test x"$V" = x"$C"; then
245                         LEX_YACC=$V
246                         break;
247                 fi
248         done
250 if test x"$LEX_YACC" = x"no"; then
251         LEX=false
252         YACC=false
254 AC_MSG_RESULT($LEX_YACC)
256 # Portions of heimdal kerberos are unpacked into source/heimdal
257 # of the samba source tree.  
259 # if we ever get to using a host kerberos, we might add conditionals here
260 AC_DEFINE(HAVE_COM_ERR,1,[Whether com_err is available])
261 HAVE_COM_ERR=YES
262 AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
263 HAVE_KRB5=YES
264 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
265 HAVE_GSSAPI=YES
266 SMB_ENABLE(KERBEROS_LIB, YES)
267 SMB_ENABLE(asn1_compile, YES)
268 SMB_ENABLE(compile_et, YES)
270 # only add closefrom if needed
271 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
272 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM_H, NO)
273 if test t$ac_cv_func_closefrom != tyes; then
274         SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, YES)
275         SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM_H, YES)
278 # only add getprogname if needed
279 SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME, NO)
280 SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME_H, NO)
281 if test t$ac_cv_func_getprogname != tyes; then
282         SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME, YES)
283         SMB_ENABLE(HEIMDAL_ROKEN_PROGNAME_H, YES)
286 VPATH="$VPATH:\$(HEIMDAL_VPATH)"
288 AC_DEFINE(SAMBA4_INTERNAL_HEIMDAL,1,[Whether we use in internal heimdal build])
290 SMB_INCLUDE_MK(heimdal_build/internal.mk)