Actually pick up the kerberos libs in RedHat - the previous shell construct
[ambi/samba-autobuild/.git] / source3 / configure.in
1 dnl -*- mode: m4-mode -*-
2 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(include/includes.h)
4 AC_CONFIG_HEADER(include/config.h)
5
6 #################################################
7 # Directory handling stuff to support both the
8 # legacy SAMBA directories and FHS compliant
9 # ones...
10 AC_PREFIX_DEFAULT(/usr/local/samba)
11
12 AC_ARG_WITH(fhs, 
13 [  --with-fhs              Use FHS-compliant paths (default=no)],
14     configdir="${sysconfdir}/samba"
15     lockdir="\${VARDIR}/cache/samba"
16     piddir="\$(VARDIR)/run/samba"
17     logfilebase="\${VARDIR}/log/samba"
18     privatedir="\${CONFIGDIR}/private"
19     swatdir="\${DATADIR}/samba/swat",
20     configdir="\$(LIBDIR)"
21     logfilebase="\$(VARDIR)"
22     lockdir="\${VARDIR}/locks"
23     piddir="\$(VARDIR)/locks"
24     privatedir="\${prefix}/private"
25     swatdir="\${prefix}/swat")
26
27 #################################################
28 # set private directory location
29 AC_ARG_WITH(privatedir,
30 [  --with-privatedir=DIR   Where to put smbpasswd ($ac_default_prefix/private)],
31 [ case "$withval" in
32   yes|no)
33   #
34   # Just in case anybody calls it without argument
35   #
36     AC_MSG_WARN([--with-privatedir called without argument - will use default])
37   ;;
38   * )
39     privatedir="$withval"
40     ;;
41   esac])
42
43 #################################################
44 # set lock directory location
45 AC_ARG_WITH(lockdir,
46 [  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)],
47 [ case "$withval" in
48   yes|no)
49   #
50   # Just in case anybody calls it without argument
51   #
52     AC_MSG_WARN([--with-lockdir called without argument - will use default])
53   ;;
54   * )
55     lockdir="$withval"
56     ;;
57   esac])
58
59 #################################################
60 # set pid directory location
61 AC_ARG_WITH(piddir,
62 [  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/locks)],
63 [ case "$withval" in
64   yes|no)
65   #
66   # Just in case anybody calls it without argument
67   #
68     AC_MSG_WARN([--with-piddir called without argument - will use default])
69   ;;
70   * )
71     piddir="$withval"
72     ;;
73   esac])
74
75 #################################################
76 # set SWAT directory location
77 AC_ARG_WITH(swatdir,
78 [  --with-swatdir=DIR      Where to put SWAT files ($ac_default_prefix/swat)],
79 [ case "$withval" in
80   yes|no)
81   #
82   # Just in case anybody does it
83   #
84     AC_MSG_WARN([--with-swatdir called without argument - will use default])
85   ;;
86   * )
87     swatdir="$withval"
88     ;;
89   esac])
90
91 #################################################
92 # set configuration directory location
93 AC_ARG_WITH(configdir,
94 [  --with-configdir=DIR    Where to put configuration files (\$libdir)],
95 [ case "$withval" in
96   yes|no)
97   #
98   # Just in case anybody does it
99   #
100     AC_MSG_WARN([--with-configdir called without argument - will use default])
101   ;;
102   * )
103     configdir="$withval"
104     ;;
105   esac])
106
107 #################################################
108 # set log directory location
109 AC_ARG_WITH(logfilebase,
110 [  --with-logfilebase=DIR  Where to put log files (\$(VARDIR))],
111 [ case "$withval" in
112   yes|no)
113   #
114   # Just in case anybody does it
115   #
116     AC_MSG_WARN([--with-logfilebase called without argument - will use default])
117   ;;
118   * )
119     logfilebase="$withval"
120     ;;
121   esac])
122
123 AC_SUBST(configdir)
124 AC_SUBST(lockdir)
125 AC_SUBST(piddir)
126 AC_SUBST(logfilebase)
127 AC_SUBST(privatedir)
128 AC_SUBST(swatdir)
129 AC_SUBST(bindir)
130 AC_SUBST(sbindir)
131
132 dnl Unique-to-Samba variables we'll be playing with.
133 AC_SUBST(SHELL)
134 AC_SUBST(RUNPROG)
135 AC_SUBST(MPROGS)
136 AC_SUBST(LDSHFLAGS)
137 AC_SUBST(SONAMEFLAG)
138 AC_SUBST(SHLD)
139 AC_SUBST(HOST_OS)
140 AC_SUBST(PAM_MOD)
141 AC_SUBST(WRAP)
142 AC_SUBST(WRAP32)
143 AC_SUBST(WRAPPROG)
144 AC_SUBST(PICFLAG)
145 AC_SUBST(PICSUFFIX)
146 AC_SUBST(POBAD_CC)
147 AC_SUBST(SHLIBEXT)
148 AC_SUBST(LIBSMBCLIENT_SHARED)
149 AC_SUBST(LIBSMBCLIENT)
150 AC_SUBST(PRINTLIBS)
151
152 # compile with optimization and without debugging by default
153 CFLAGS="-O ${CFLAGS}"
154
155 AC_ARG_ENABLE(debug, 
156 [  --enable-debug          Turn on compiler debugging information (default=no)],
157     [if eval "test x$enable_debug = xyes"; then
158         CFLAGS="${CFLAGS} -g"
159     fi])
160
161 AC_ARG_ENABLE(developer, [  --enable-developer      Turn on developer warnings and debugging (default=no)],
162     [if eval "test x$enable_developer = xyes"; then
163         CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -DDEBUG_PASSWORD -DDEVELOPER"
164     fi])
165
166 AC_ARG_ENABLE(krb5developer, [  --enable-krb5developer  Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
167     [if eval "test x$enable_krb5developer = xyes"; then
168         CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -DDEBUG_PASSWORD -DDEVELOPER"
169     fi])
170
171 AC_ARG_ENABLE(dmalloc, [  --enable-dmalloc        Enable heap debugging [default=no]])
172
173 if test "x$enable_dmalloc" = xyes
174 then
175         AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
176         AC_DEFINE(DMALLOC_FUNC_CHECK, 1, 
177                   [Define to check invariants around some common functions])
178         LIBS="$LIBS -ldmalloc"  
179 fi
180
181 dnl Checks for programs.
182 AC_PROG_CC
183 AC_PROG_INSTALL
184 AC_PROG_AWK
185
186 dnl Check if we use GNU ld
187 LD=ld
188 AC_PROG_LD_GNU
189
190 dnl needed before AC_TRY_COMPILE
191 AC_ISC_POSIX
192
193 dnl Check if C compiler understands -c and -o at the same time
194 AC_PROG_CC_C_O
195 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
196       BROKEN_CC=
197 else
198       BROKEN_CC=#
199 fi
200 AC_SUBST(BROKEN_CC)
201
202 dnl Check if the C compiler understands volatile (it should, being ANSI).
203 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
204     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
205         samba_cv_volatile=yes,samba_cv_volatile=no)])
206 if test x"$samba_cv_volatile" = x"yes"; then
207    AC_DEFINE(HAVE_VOLATILE)
208 fi
209
210
211 AC_CANONICAL_SYSTEM
212
213 dnl Add #include for broken IRIX header files
214   case "$host_os" in
215         *irix6*) AC_ADD_INCLUDE(<standards.h>)
216         ;;
217 esac
218
219 AC_VALIDATE_CACHE_SYSTEM_TYPE
220
221 DYNEXP=
222
223 #
224 # Config CPPFLAG settings for strange OS's that must be set
225 # before other tests.
226 #
227 case "$host_os" in
228 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
229     *hpux*)
230     
231       AC_PROG_CC_FLAG(Ae)
232       # mmap on HPUX is completely broken...
233       AC_DEFINE(MMAP_BLACKLIST)
234       if test $ac_cv_prog_cc_Ae = yes; then
235         CPPFLAGS="$CPPFLAGS -Ae"
236       fi
237 #
238 # Defines needed for HPUX support.
239 # HPUX has bigcrypt but (sometimes?) doesn't use it for
240 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
241 #
242       case `uname -r` in
243                         *9*|*10*)
244                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
245                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
246                                 AC_DEFINE(_HPUX_SOURCE)
247                                 AC_DEFINE(_POSIX_SOURCE)
248                                 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
249                                 AC_DEFINE(_MAX_ALIGNMENT,4)
250                                 ;;
251                         *11*)
252                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
253                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
254                                 AC_DEFINE(_HPUX_SOURCE)
255                                 AC_DEFINE(_POSIX_SOURCE)
256                                 AC_DEFINE(_LARGEFILE64_SOURCE)
257                                 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
258                                 AC_DEFINE(_MAX_ALIGNMENT,4)
259                                 ;;
260       esac
261       DYNEXP="-Wl,-E"
262       ;;
263
264 #
265 # CRAY Unicos has broken const handling
266        *unicos*)
267           AC_MSG_RESULT([disabling const])
268           CPPFLAGS="$CPPFLAGS -Dconst="
269           ;;
270         
271 #
272 # AIX4.x doesn't even admit to having large
273 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
274 #
275     *aix4*)
276           AC_MSG_RESULT([enabling large file support])
277       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
278       AC_DEFINE(_LARGE_FILES)
279       ;;    
280 #
281 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
282 # to the existance of large files..
283 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
284 # recommendations on large file support, however it makes the
285 # compile work using gcc 2.7 and 2.8, whereas using the Sun
286 # recommendation makes the compile fail on gcc2.7. JRA.
287 #
288         *solaris*)
289                 case `uname -r` in
290                         5.0*|5.1*|5.2*|5.3*|5.5*)
291                                 AC_MSG_RESULT([no large file support])
292                                 ;;
293                         5.*)
294                         AC_MSG_RESULT([enabling large file support])
295                         if test "$ac_cv_prog_gcc" = yes; then
296                                 ${CC-cc} -v >conftest.c 2>&1
297                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
298                                 rm -fr conftest.c
299                                 case "$ac_cv_gcc_compiler_version_number" in
300                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
301                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
302                                                 AC_DEFINE(_LARGEFILE64_SOURCE)
303                                                 ;;
304                                         *)
305                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
306                                                 AC_DEFINE(_LARGEFILE64_SOURCE)
307                                                 AC_DEFINE(_FILE_OFFSET_BITS,64)
308                                                 ;;
309                                 esac
310                         else
311                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
312                                 AC_DEFINE(_LARGEFILE64_SOURCE)
313                                 AC_DEFINE(_FILE_OFFSET_BITS,64)
314                         fi
315                         ;;
316                 esac
317                 ;;
318 #
319 # Tests needed for SINIX large file support.
320 #
321     *sysv4*)
322       if test $host = mips-sni-sysv4 ; then
323         AC_MSG_CHECKING([for LFS support])
324         old_CPPFLAGS="$CPPFLAGS"
325         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
326         AC_TRY_RUN([
327 #include <unistd.h>
328 main () {
329 #if _LFS64_LARGEFILE == 1
330 exit(0);
331 #else
332 exit(1);
333 #endif
334 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
335         CPPFLAGS="$old_CPPFLAGS"
336         if test x$SINIX_LFS_SUPPORT = xyes ; then
337           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
338           AC_DEFINE(_LARGEFILE64_SOURCE)
339           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
340           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
341           LIBS="`getconf LFS64_LIBS` $LIBS"
342         fi
343       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
344       fi
345     ;;
346
347 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
348 #
349     *linux*)
350         AC_MSG_CHECKING([for LFS support])
351         old_CPPFLAGS="$CPPFLAGS"
352         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
353        AC_TRY_RUN([
354 #include <unistd.h>
355 #include <sys/utsname.h>
356 main() {
357 #if _LFS64_LARGEFILE == 1
358        struct utsname uts;
359        char *release;
360        int major, minor;
361
362        /* Ensure this is glibc 2.2 or higher */
363 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
364        int libc_major = __GLIBC__;
365        int libc_minor = __GLIBC_MINOR__;
366
367        if (libc_major < 2)
368               exit(1);
369        if (libc_minor < 2)
370               exit(1);
371 #endif
372
373        /* Ensure this is kernel 2.4 or higher */
374
375        uname(&uts);
376        release = uts.release;
377        major = atoi(strsep(&release, "."));
378        minor = atoi(strsep(&release, "."));
379
380        if (major > 2 || (major == 2 && minor > 3))
381                exit(0);
382        exit(1);
383 #else
384        exit(1);
385 #endif
386 }
387 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
388         CPPFLAGS="$old_CPPFLAGS"
389         if test x$LINUX_LFS_SUPPORT = xyes ; then
390           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
391           AC_DEFINE(_LARGEFILE64_SOURCE)
392           AC_DEFINE(_FILE_OFFSET_BITS,64)
393           AC_DEFINE(_GNU_SOURCE)
394         fi
395        AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
396                 ;;
397
398     *hurd*)
399         AC_MSG_CHECKING([for LFS support])
400         old_CPPFLAGS="$CPPFLAGS"
401         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
402         AC_TRY_RUN([
403 #include <unistd.h>
404 main () {
405 #if _LFS64_LARGEFILE == 1
406 exit(0);
407 #else
408 exit(1);
409 #endif
410 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
411         CPPFLAGS="$old_CPPFLAGS"
412         if test x$GLIBC_LFS_SUPPORT = xyes ; then
413           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
414           AC_DEFINE(_LARGEFILE64_SOURCE)
415           AC_DEFINE(_GNU_SOURCE)
416         fi
417       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
418     ;;
419
420 esac
421
422 AC_INLINE
423 AC_HEADER_STDC
424 AC_HEADER_DIRENT
425 AC_HEADER_TIME
426 AC_HEADER_SYS_WAIT
427 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
428 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
429 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
430 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
431 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
432 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
433 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
434 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn.h)
435 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
436
437 #
438 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
439 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
440 #
441 case "$host_os" in
442     *hpux*)
443                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
444                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
445                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
446                    AC_DEFINE(HAVE_SHADOW_H)
447                 fi
448         ;;
449 esac
450 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
451 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
452 AC_CHECK_HEADERS(stropts.h poll.h)
453 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
454 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
455
456 # For experimental utmp support (lastlog on some BSD-like systems)
457 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
458  
459 # For quotas on Veritas VxFS filesystems
460 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
461
462 # For quotas on Linux XFS filesystems
463 AC_CHECK_HEADERS(linux/xqm.h)
464
465 AC_CHECK_SIZEOF(int,cross)
466 AC_CHECK_SIZEOF(long,cross)
467 AC_CHECK_SIZEOF(short,cross)
468
469 AC_C_CONST
470 AC_C_INLINE
471 AC_C_BIGENDIAN
472 AC_C_CHAR_UNSIGNED
473
474 AC_TYPE_SIGNAL
475 AC_TYPE_UID_T
476 AC_TYPE_MODE_T
477 AC_TYPE_OFF_T
478 AC_TYPE_SIZE_T
479 AC_TYPE_PID_T
480 AC_STRUCT_ST_RDEV
481 AC_DIRENT_D_OFF
482 AC_CHECK_TYPE(ino_t,unsigned)
483 AC_CHECK_TYPE(loff_t,off_t)
484 AC_CHECK_TYPE(offset_t,loff_t)
485 AC_CHECK_TYPE(ssize_t, int)
486 AC_CHECK_TYPE(wchar_t, unsigned short)
487
488 ############################################
489 # for cups support we need libcups, and a handful of header files
490
491 AC_ARG_ENABLE(cups,
492 [  --enable-cups           Turn on CUPS support (default=auto)])
493
494 if test x$enable_cups != xno; then
495         AC_PATH_PROG(CUPS_CONFIG, cups-config)
496
497         if test "x$CUPS_CONFIG" != x; then
498                         AC_DEFINE(HAVE_CUPS)
499                 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
500                 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
501                 PRINTLIBS="$PRINTLIBS `$CUPS_CONFIG --libs`"
502         fi
503 fi
504
505 ############################################
506 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the new VFS code
507 AC_CHECK_FUNCS(dlopen)
508 if test x"$ac_cv_func_dlopen" = x"no"; then
509     AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
510         AC_DEFINE(HAVE_DLOPEN)])
511 fi
512 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
513
514 ############################################
515 # check if the compiler can do immediate structures
516 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
517     AC_TRY_COMPILE([
518 #include <stdio.h>],
519 [
520    typedef struct {unsigned x;} FOOBAR;
521    #define X_FOOBAR(x) ((FOOBAR) { x })
522    #define FOO_ONE X_FOOBAR(1)
523    FOOBAR f = FOO_ONE;   
524    static struct {
525         FOOBAR y; 
526         } f2[] = {
527                 {FOO_ONE}
528         };   
529 ],
530         samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
531 if test x"$samba_cv_immediate_structures" = x"yes"; then
532    AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
533 fi
534
535 ############################################
536 # check for unix domain sockets
537 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
538     AC_TRY_COMPILE([
539 #include <sys/types.h>
540 #include <stdlib.h>
541 #include <stddef.h>
542 #include <sys/socket.h>
543 #include <sys/un.h>],
544 [
545   struct sockaddr_un sunaddr; 
546   sunaddr.sun_family = AF_UNIX;
547 ],
548         samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
549 if test x"$samba_cv_unixsocket" = x"yes"; then
550    AC_DEFINE(HAVE_UNIXSOCKET)
551 fi
552
553
554 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
555     AC_TRY_COMPILE([
556 #include <sys/types.h>
557 #if STDC_HEADERS
558 #include <stdlib.h>
559 #include <stddef.h>
560 #endif
561 #include <sys/socket.h>],[socklen_t i = 0],
562         samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
563 if test x"$samba_cv_socklen_t" = x"yes"; then
564    AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
565 fi
566
567 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
568     AC_TRY_COMPILE([
569 #include <sys/types.h>
570 #if STDC_HEADERS
571 #include <stdlib.h>
572 #include <stddef.h>
573 #endif
574 #include <signal.h>],[sig_atomic_t i = 0],
575         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
576 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
577    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
578 fi
579
580 # stupid headers have the functions but no declaration. grrrr.
581 AC_HAVE_DECL(errno, [#include <errno.h>])
582 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
583 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
584 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
585 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
586 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
587 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
588
589 # and glibc has setresuid under linux but the function does
590 # nothing until kernel 2.1.44! very dumb.
591 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
592     AC_TRY_RUN([#include <errno.h>
593 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
594         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
595 if test x"$samba_cv_have_setresuid" = x"yes"; then
596     AC_DEFINE(HAVE_SETRESUID)
597 fi
598
599 # Do the same check for setresguid...
600 #
601 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
602     AC_TRY_RUN([#include <unistd.h>
603 #include <errno.h>
604 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
605         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
606 if test x"$samba_cv_have_setresgid" = x"yes"; then
607     AC_DEFINE(HAVE_SETRESGID)
608 fi
609
610 AC_FUNC_MEMCMP
611
612 ###############################################
613 # test for where we get crypt() from
614 AC_CHECK_FUNCS(crypt)
615 if test x"$ac_cv_func_crypt" = x"no"; then
616     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
617         AC_DEFINE(HAVE_CRYPT)])
618 fi
619
620
621 ###############################################
622 # Readline included by default unless explicitly asked not to
623 test "${with_readline+set}" != "set" && with_readline=yes
624
625 # test for where we get readline() from
626 AC_MSG_CHECKING(whether to use readline)
627 AC_ARG_WITH(readline,
628 [  --with-readline[=DIR]   Look for readline include/libs in DIR (default=auto) ],
629 [  case "$with_readline" in
630   yes)
631     AC_MSG_RESULT(yes)
632
633     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
634     AC_CHECK_HEADERS(readline/history.h)
635
636     AC_CHECK_HEADERS(readline.h readline/readline.h,[
637       for termlib in ncurses curses termcap terminfo termlib; do
638        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
639       done
640       AC_CHECK_LIB(readline, rl_callback_handler_install,
641        [TERMLIBS="-lreadline $TERMLIBS"
642        AC_DEFINE(HAVE_LIBREADLINE)
643        break], [TERMLIBS=], $TERMLIBS)])
644     ;;
645   no)
646     AC_MSG_RESULT(no)
647     ;;
648   *)
649     AC_MSG_RESULT(yes)
650
651     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
652     # alternate readline path
653     _ldflags=${LDFLAGS}
654     _cppflags=${CPPFLAGS}
655
656     # Add additional search path
657     LDFLAGS="-L$with_readline/lib $LDFLAGS"
658     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
659
660     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
661     AC_CHECK_HEADERS(readline/history.h)
662
663     AC_CHECK_HEADERS(readline.h readline/readline.h,[
664       for termlib in ncurses curses termcap terminfo termlib; do
665        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
666       done
667       AC_CHECK_LIB(readline, rl_callback_handler_install,
668        [TERMLDFLAGS="-L$with_readline/lib"
669        TERMCPPFLAGS="-I$with_readline/include"
670        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
671        TERMLIBS="-lreadline $TERMLIBS"
672        AC_DEFINE(HAVE_LIBREADLINE)
673        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
674
675     LDFLAGS=$_ldflags
676     ;;
677   esac],
678   AC_MSG_RESULT(no)
679 )
680 AC_SUBST(TERMLIBS)
681 AC_SUBST(TERMLDFLAGS)
682
683 # The readline API changed slightly from readline3 to readline4, so
684 # code will generate warnings on one of them unless we have a few
685 # special cases.
686 AC_CHECK_LIB(readline, rl_completion_matches,
687              [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, 
688                         [Do we have rl_completion_matches?])],
689              [],
690              [$TERMLIBS])
691
692 # The following test taken from the cvs sources
693 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
694 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
695 # libsocket.so which has a bad implementation of gethostbyname (it
696 # only looks in /etc/hosts), so we only look for -lsocket if we need
697 # it.
698 AC_CHECK_FUNCS(connect)
699 if test x"$ac_cv_func_connect" = x"no"; then
700     case "$LIBS" in
701     *-lnsl*) ;;
702     *) AC_CHECK_LIB(nsl_s, printf) ;;
703     esac
704     case "$LIBS" in
705     *-lnsl*) ;;
706     *) AC_CHECK_LIB(nsl, printf) ;;
707     esac
708     case "$LIBS" in
709     *-lsocket*) ;;
710     *) AC_CHECK_LIB(socket, connect) ;;
711     esac
712     case "$LIBS" in
713     *-linet*) ;;
714     *) AC_CHECK_LIB(inet, connect) ;;
715     esac
716     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
717     dnl has been cached.
718     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
719        test x"$ac_cv_lib_inet_connect" = x"yes"; then
720         # ac_cv_func_connect=yes
721         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
722         AC_DEFINE(HAVE_CONNECT)
723     fi
724 fi
725
726 ###############################################
727 # test for where we get get_yp_default_domain() from
728 AC_CHECK_FUNCS(yp_get_default_domain)
729 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
730         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
731         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
732 fi
733
734 # Check if we have execl, if not we need to compile smbrun.
735 AC_CHECK_FUNCS(execl)
736 if test x"$ac_cv_func_execl" = x"no"; then
737     RUNPROG="bin/smbrun"
738 else
739     RUNPROG=""
740 fi
741
742 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
743 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
744 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
745 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
746 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
747 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
748 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
749 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
750 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
751 AC_CHECK_FUNCS(syslog vsyslog getgrouplist)
752 # setbuffer is needed for smbtorture
753 AC_CHECK_FUNCS(setbuffer)
754
755 # syscall() is needed for smbwrapper.
756 AC_CHECK_FUNCS(syscall)
757
758 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
759 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
760 AC_CHECK_FUNCS(__getcwd _getcwd)
761 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
762 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
763 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
764 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
765 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
766 AC_CHECK_FUNCS(_write __write _fork __fork)
767 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
768 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
769 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
770 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
771 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
772
773 #
774 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
775 #
776
777 if test x$ac_cv_func_stat64 = xno ; then
778   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
779   AC_TRY_LINK([
780 #if defined(HAVE_UNISTD_H)
781 #include <unistd.h>
782 #endif
783 #include <sys/stat.h>
784 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
785   AC_MSG_RESULT([$ac_cv_func_stat64])
786   if test x$ac_cv_func_stat64 = xyes ; then
787     AC_DEFINE(HAVE_STAT64)
788   fi
789 fi
790
791 if test x$ac_cv_func_lstat64 = xno ; then
792   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
793   AC_TRY_LINK([
794 #if defined(HAVE_UNISTD_H)
795 #include <unistd.h>
796 #endif
797 #include <sys/stat.h>
798 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
799   AC_MSG_RESULT([$ac_cv_func_lstat64])
800   if test x$ac_cv_func_lstat64 = xyes ; then
801     AC_DEFINE(HAVE_LSTAT64)
802   fi
803 fi
804
805 if test x$ac_cv_func_fstat64 = xno ; then
806   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
807   AC_TRY_LINK([
808 #if defined(HAVE_UNISTD_H)
809 #include <unistd.h>
810 #endif
811 #include <sys/stat.h>
812 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
813   AC_MSG_RESULT([$ac_cv_func_fstat64])
814   if test x$ac_cv_func_fstat64 = xyes ; then
815     AC_DEFINE(HAVE_FSTAT64)
816   fi
817 fi
818
819 #####################################
820 # we might need the resolv library on some systems
821 AC_CHECK_LIB(resolv, dn_expand)
822
823 #
824 # Check for the functions putprpwnam, set_auth_parameters,
825 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
826 # Needed for OSF1 and HPUX.
827 #
828
829 AC_LIBTESTFUNC(security, putprpwnam)
830 AC_LIBTESTFUNC(sec, putprpwnam)
831
832 AC_LIBTESTFUNC(security, set_auth_parameters)
833 AC_LIBTESTFUNC(sec, set_auth_parameters)
834
835 # UnixWare 7.x has its getspnam in -lgen
836 AC_LIBTESTFUNC(gen, getspnam)
837
838 AC_LIBTESTFUNC(security, getspnam)
839 AC_LIBTESTFUNC(sec, getspnam)
840
841 AC_LIBTESTFUNC(security, bigcrypt)
842 AC_LIBTESTFUNC(sec, bigcrypt)
843
844 AC_LIBTESTFUNC(security, getprpwnam)
845 AC_LIBTESTFUNC(sec, getprpwnam)
846
847 # this bit needs to be modified for each OS that is suported by
848 # smbwrapper. You need to specify how to created a shared library and
849 # how to compile C code to produce PIC object files
850
851 # these are the defaults, good for lots of systems
852 HOST_OS="$host_os"
853 LDSHFLAGS="-shared"
854 SONAMEFLAG="#"
855 SHLD="\${CC}"
856 PICFLAG=""
857 PICSUFFIX="po"
858 POBAD_CC="#"
859 SHLIBEXT="so"
860 # Assume non-shared by default and override below
861 BLDSHARED="false"
862 AC_MSG_CHECKING([ability to build shared libraries])
863
864 # and these are for particular systems
865 case "$host_os" in
866                 *linux*)   AC_DEFINE(LINUX)
867                         BLDSHARED="true"
868                         LDSHFLAGS="-shared" 
869                         DYNEXP="-Wl,--export-dynamic"
870                         PICFLAG="-fPIC"
871                         SONAMEFLAG="-Wl,-soname="
872                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
873                 ;;
874                 *solaris*) AC_DEFINE(SUNOS5)
875                         BLDSHARED="true"
876                         LDSHFLAGS="-G"
877                         SONAMEFLAG="-h "
878                         if test "${GCC}" = "yes"; then
879                                 PICFLAG="-fPIC"
880                                 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
881                                         DYNEXP="-Wl,-E"
882                                 fi
883                         else
884                                 PICFLAG="-KPIC"
885                                 ## ${CFLAGS} added for building 64-bit shared 
886                                 ## libs using Sun's Compiler
887                                 LDSHFLAGS="-G \${CFLAGS}"
888                                 POBAD_CC=""
889                                 PICSUFFIX="po.o"
890                         fi
891                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
892                 ;;
893                 *sunos*) AC_DEFINE(SUNOS4)
894                         BLDSHARED="true"
895                         LDSHFLAGS="-G"
896                         SONAMEFLAG="-Wl,-h,"
897                         PICFLAG="-KPIC"   # Is this correct for SunOS
898                 ;;
899                 *freebsd*)  BLDSHARED="true"
900                         LDSHFLAGS="-shared"
901                         DYNEXP="-Wl,--export-dynamic"
902                         SONAMEFLAG="-Wl,-soname,"
903                         PICFLAG="-fPIC -DPIC"
904                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
905                 ;;
906                 *openbsd*)  BLDSHARED="true"
907                         LDSHFLAGS="-shared"
908                         DYNEXP="-Wl,-Bdynamic"
909                         SONAMEFLAG="-Wl,-soname,"
910                         PICFLAG="-fPIC"
911                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
912                 ;;
913                 *irix*) AC_DEFINE(IRIX)
914                         case "$host_os" in
915                         *irix6*) AC_DEFINE(IRIX6)
916                         ;;
917                         esac
918                         ATTEMPT_WRAP32_BUILD=yes
919                         BLDSHARED="true"
920                         LDSHFLAGS="-set_version sgi1.0 -shared"
921                         SONAMEFLAG="-soname "
922                         SHLD="\${LD}"
923                         if test "${GCC}" = "yes"; then
924                                 PICFLAG="-fPIC"
925                         else 
926                                 PICFLAG="-KPIC"
927                         fi
928                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
929                 ;;
930                 *aix*) AC_DEFINE(AIX)
931                         BLDSHARED="true"
932                         LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
933                         DYNEXP="-Wl,-brtl,-bexpall"
934                         PICFLAG="-O2"
935                         if test "${GCC}" != "yes"; then
936                                 ## for funky AIX compiler using strncpy()
937                                 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
938                         fi
939
940                         AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE)
941                 ;;
942                 *hpux*) AC_DEFINE(HPUX)
943                         SHLIBEXT="sl"
944                         # Use special PIC flags for the native HP-UX compiler.
945                         if test $ac_cv_prog_cc_Ae = yes; then
946                                 BLDSHARED="true"
947                                 SHLD="/usr/bin/ld"
948                                 LDSHFLAGS="-B symbolic -b -z"
949                                 SONAMEFLAG="+h "
950                                 PICFLAG="+z"
951                         fi
952                         DYNEXP="-Wl,-E"
953                         AC_DEFINE(STAT_ST_BLOCKSIZE,8192)
954                 ;;
955                 *qnx*) AC_DEFINE(QNX);;
956                 *osf*) AC_DEFINE(OSF1)
957                         BLDSHARED="true"
958                         LDSHFLAGS="-shared"
959                         SONAMEFLAG="-Wl,-soname,"
960                         PICFLAG="-fPIC"
961                 ;;
962                 *sco*) AC_DEFINE(SCO);;
963                 *unixware*) AC_DEFINE(UNIXWARE)
964                         BLDSHARED="true"
965                         LDSHFLAGS="-shared"
966                         SONAMEFLAG="-Wl,-soname,"
967                         PICFLAG="-KPIC"
968                 ;;
969                 *next2*) AC_DEFINE(NEXT2);;
970                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
971                 *sysv4*)
972                         case "$host" in
973                                 *-univel-*)     if [ test "$GCC" != yes ]; then
974                                                 AC_DEFINE(HAVE_MEMSET)
975                                         fi
976                                         LDSHFLAGS="-G"
977                                         DYNEXP="-Bexport"
978                                 ;;
979                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
980                         esac
981                 ;;
982
983                 *sysv5*)
984                         if [ test "$GCC" != yes ]; then
985                                 AC_DEFINE(HAVE_MEMSET)
986                         fi
987                         LDSHFLAGS="-G"
988                 ;;
989 esac
990 AC_SUBST(DYNEXP)
991 AC_MSG_RESULT($BLDSHARED)
992 AC_MSG_CHECKING([linker flags for shared libraries])
993 AC_MSG_RESULT([$LDSHFLAGS])
994 AC_MSG_CHECKING([compiler flags for position-independent code])
995 AC_MSG_RESULT([$PICFLAGS])
996
997 #######################################################
998 # test whether building a shared library actually works
999 if test $BLDSHARED = true; then
1000 AC_CACHE_CHECK([whether building shared libraries actually works], 
1001                [ac_cv_shlib_works],[
1002    ac_cv_shlib_works=no
1003    # try building a trivial shared library
1004    $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.po ${srcdir-.}/tests/shlib.c &&
1005      $CC $CPPFLAGS $CFLAGS $LDSHFLAGS -o shlib.so shlib.po &&
1006      ac_cv_shlib_works=yes
1007    rm -f shlib.so shlib.po
1008 ])
1009 if test $ac_cv_shlib_works = no; then
1010    BLDSHARED=false
1011 fi
1012 fi
1013
1014
1015 # this updates our target list if we can build shared libs
1016 if test $BLDSHARED = true; then
1017    LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
1018 else
1019    LIBSMBCLIENT_SHARED=
1020 fi
1021
1022 ################
1023
1024 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1025 AC_TRY_RUN([#include <stdio.h>
1026 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1027 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1028 if test x"$samba_cv_have_longlong" = x"yes"; then
1029     AC_DEFINE(HAVE_LONGLONG)
1030 fi
1031
1032 #
1033 # Check if the compiler supports the LL prefix on long long integers.
1034 # AIX needs this.
1035
1036 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1037     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1038         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1039 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1040    AC_DEFINE(COMPILER_SUPPORTS_LL)
1041 fi
1042
1043   
1044 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1045 AC_TRY_RUN([#include <stdio.h>
1046 #include <sys/stat.h>
1047 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1048 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1049 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1050     AC_DEFINE(SIZEOF_OFF_T,8)
1051 fi
1052
1053 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1054 AC_TRY_RUN([
1055 #if defined(HAVE_UNISTD_H)
1056 #include <unistd.h>
1057 #endif
1058 #include <stdio.h>
1059 #include <sys/stat.h>
1060 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1061 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1062 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1063     AC_DEFINE(HAVE_OFF64_T)
1064 fi
1065
1066 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1067 AC_TRY_RUN([#include <stdio.h>
1068 #include <sys/stat.h>
1069 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1070 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1071 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1072     AC_DEFINE(SIZEOF_INO_T,8)
1073 fi
1074
1075 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1076 AC_TRY_RUN([
1077 #if defined(HAVE_UNISTD_H)
1078 #include <unistd.h>
1079 #endif
1080 #include <stdio.h>
1081 #include <sys/stat.h>
1082 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1083 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1084 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1085     AC_DEFINE(HAVE_INO64_T)
1086 fi
1087
1088 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1089 AC_TRY_RUN([
1090 #if defined(HAVE_UNISTD_H)
1091 #include <unistd.h>
1092 #endif
1093 #include <stdio.h>
1094 #include <sys/stat.h>
1095 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1096 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1097 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1098     AC_DEFINE(HAVE_DEV64_T)
1099 fi
1100
1101 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1102 AC_TRY_COMPILE([
1103 #if defined(HAVE_UNISTD_H)
1104 #include <unistd.h>
1105 #endif
1106 #include <sys/types.h>
1107 #include <dirent.h>],
1108 [struct dirent64 de;],
1109 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1110 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1111     AC_DEFINE(HAVE_STRUCT_DIRENT64)
1112 fi
1113
1114 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1115 AC_TRY_RUN([
1116 #if defined(HAVE_UNISTD_H)
1117 #include <unistd.h>
1118 #endif
1119 #include <sys/types.h>
1120 main() { dev_t dev; int i = major(dev); return 0; }],
1121 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1122 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1123     AC_DEFINE(HAVE_DEVICE_MAJOR_FN)
1124 fi
1125
1126 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1127 AC_TRY_RUN([
1128 #if defined(HAVE_UNISTD_H)
1129 #include <unistd.h>
1130 #endif
1131 #include <sys/types.h>
1132 main() { dev_t dev; int i = minor(dev); return 0; }],
1133 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1134 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1135     AC_DEFINE(HAVE_DEVICE_MINOR_FN)
1136 fi
1137
1138 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1139 AC_TRY_RUN([#include <stdio.h>
1140 main() { char c; c=250; exit((c > 0)?0:1); }],
1141 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1142 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1143     AC_DEFINE(HAVE_UNSIGNED_CHAR)
1144 fi
1145
1146 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1147 AC_TRY_COMPILE([#include <sys/types.h>
1148 #include <sys/socket.h>
1149 #include <netinet/in.h>],
1150 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1151 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1152 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1153     AC_DEFINE(HAVE_SOCK_SIN_LEN)
1154 fi
1155
1156 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1157 AC_TRY_COMPILE([#include <sys/types.h>
1158 #include <dirent.h>
1159 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1160 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1161 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1162     AC_DEFINE(SEEKDIR_RETURNS_VOID)
1163 fi
1164
1165 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1166 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1167 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1168 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1169     AC_DEFINE(HAVE_FILE_MACRO)
1170 fi
1171
1172 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1173 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1174 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1175 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1176     AC_DEFINE(HAVE_FUNCTION_MACRO)
1177 fi
1178
1179 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1180 AC_TRY_RUN([
1181 #include <sys/time.h>
1182 #include <unistd.h>
1183 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1184            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1185 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1186     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
1187 fi
1188
1189 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1190 AC_TRY_LINK([#include <stdarg.h>
1191 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1192 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1193 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1194     AC_DEFINE(HAVE_VA_COPY)
1195 fi
1196
1197 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1198 AC_TRY_RUN([
1199 #include <sys/types.h>
1200 #include <stdarg.h>
1201 void foo(const char *format, ...) { 
1202        va_list ap;
1203        int len;
1204        char buf[5];
1205
1206        va_start(ap, format);
1207        len = vsnprintf(buf, 0, format, ap);
1208        va_end(ap);
1209        if (len != 5) exit(1);
1210
1211        va_start(ap, format);
1212        len = vsnprintf(0, 0, format, ap);
1213        va_end(ap);
1214        if (len != 5) exit(1);
1215
1216        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1217
1218        exit(0);
1219 }
1220 main() { foo("hello"); }
1221 ],
1222 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1223 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1224     AC_DEFINE(HAVE_C99_VSNPRINTF)
1225 fi
1226
1227 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1228 AC_TRY_RUN([#include <sys/types.h>
1229 #include <dirent.h>
1230 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1231 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1232 di->d_name[0] == 0) exit(0); exit(1);} ],
1233 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1234 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1235     AC_DEFINE(HAVE_BROKEN_READDIR)
1236 fi
1237
1238 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1239 AC_TRY_COMPILE([#include <sys/types.h>
1240 #include <utime.h>],
1241 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1242 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1243 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1244     AC_DEFINE(HAVE_UTIMBUF)
1245 fi
1246
1247 dnl  utmp and utmpx come in many flavours
1248 dnl  We need to check for many of them
1249 dnl  But we don't need to do each and every one, because our code uses
1250 dnl  mostly just the utmp (not utmpx) fields.
1251
1252 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1253
1254 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1255 AC_TRY_COMPILE([#include <sys/types.h>
1256 #include <utmp.h>],
1257 [struct utmp ut;  ut.ut_name[0] = 'a';],
1258 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1259 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1260     AC_DEFINE(HAVE_UT_UT_NAME)
1261 fi 
1262
1263 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1264 AC_TRY_COMPILE([#include <sys/types.h>
1265 #include <utmp.h>],
1266 [struct utmp ut;  ut.ut_user[0] = 'a';],
1267 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1268 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1269     AC_DEFINE(HAVE_UT_UT_USER)
1270 fi 
1271
1272 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1273 AC_TRY_COMPILE([#include <sys/types.h>
1274 #include <utmp.h>],
1275 [struct utmp ut;  ut.ut_id[0] = 'a';],
1276 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1277 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1278     AC_DEFINE(HAVE_UT_UT_ID)
1279 fi 
1280
1281 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1282 AC_TRY_COMPILE([#include <sys/types.h>
1283 #include <utmp.h>],
1284 [struct utmp ut;  ut.ut_host[0] = 'a';],
1285 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1286 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1287     AC_DEFINE(HAVE_UT_UT_HOST)
1288 fi 
1289
1290 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1291 AC_TRY_COMPILE([#include <sys/types.h>
1292 #include <utmp.h>],
1293 [struct utmp ut;  time_t t; ut.ut_time = t;],
1294 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1295 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1296     AC_DEFINE(HAVE_UT_UT_TIME)
1297 fi 
1298
1299 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1300 AC_TRY_COMPILE([#include <sys/types.h>
1301 #include <utmp.h>],
1302 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
1303 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1304 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1305     AC_DEFINE(HAVE_UT_UT_TV)
1306 fi 
1307
1308 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1309 AC_TRY_COMPILE([#include <sys/types.h>
1310 #include <utmp.h>],
1311 [struct utmp ut;  ut.ut_type = 0;],
1312 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1313 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1314     AC_DEFINE(HAVE_UT_UT_TYPE)
1315 fi 
1316
1317 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1318 AC_TRY_COMPILE([#include <sys/types.h>
1319 #include <utmp.h>],
1320 [struct utmp ut;  ut.ut_pid = 0;],
1321 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1322 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1323     AC_DEFINE(HAVE_UT_UT_PID)
1324 fi 
1325
1326 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1327 AC_TRY_COMPILE([#include <sys/types.h>
1328 #include <utmp.h>],
1329 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
1330 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1331 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1332     AC_DEFINE(HAVE_UT_UT_EXIT)
1333 fi 
1334
1335 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1336 AC_TRY_COMPILE([#include <sys/types.h>
1337 #include <utmp.h>],
1338 [struct utmp ut;  ut.ut_addr = 0;],
1339 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1340 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1341     AC_DEFINE(HAVE_UT_UT_ADDR)
1342 fi 
1343
1344 if test x$ac_cv_func_pututline = xyes ; then
1345   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1346   AC_TRY_COMPILE([#include <sys/types.h>
1347 #include <utmp.h>],
1348   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1349   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1350   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1351       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1352   fi
1353 fi
1354
1355 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1356 AC_TRY_COMPILE([#include <sys/types.h>
1357 #include <utmpx.h>],
1358 [struct utmpx ux;  ux.ut_syslen = 0;],
1359 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1360 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1361     AC_DEFINE(HAVE_UX_UT_SYSLEN)
1362 fi 
1363
1364
1365 #################################################
1366 # check for libiconv support
1367 AC_MSG_CHECKING(whether to use libiconv)
1368 AC_ARG_WITH(libiconv,
1369 [  --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1370 [ case "$withval" in
1371   no)
1372     AC_MSG_RESULT(no)
1373     ;;
1374   *)
1375     AC_MSG_RESULT(yes)
1376     CFLAGS="$CFLAGS -I$withval/include"
1377     LDFLAGS="$LDFLAGS -L$withval/lib"
1378     AC_CHECK_LIB(iconv, iconv_open)
1379     AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}")
1380     ;;
1381   esac ],
1382   AC_MSG_RESULT(no)
1383 )
1384
1385
1386 ############
1387 # check for iconv in libc
1388 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1389 AC_TRY_RUN([
1390 #include <iconv.h>
1391 main() {
1392        iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1393        if (cd == 0 || cd == (iconv_t)-1) return -1;
1394        return 0;
1395 }
1396 ],
1397 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1398 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1399     AC_DEFINE(HAVE_NATIVE_ICONV)
1400 fi
1401
1402
1403 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1404 AC_TRY_RUN([
1405 #include <sys/types.h>
1406 #include <fcntl.h>
1407 #ifndef F_GETLEASE
1408 #define F_GETLEASE      1025
1409 #endif
1410 main() {
1411        int fd = open("/dev/null", O_RDONLY);
1412        return fcntl(fd, F_GETLEASE, 0) == -1;
1413 }
1414 ],
1415 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1416 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1417     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1418 fi
1419
1420 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1421 AC_TRY_RUN([
1422 #include <sys/types.h>
1423 #include <fcntl.h>
1424 #include <signal.h>
1425 #ifndef F_NOTIFY
1426 #define F_NOTIFY 1026
1427 #endif
1428 main() {
1429         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
1430 }
1431 ],
1432 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1433 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1434     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1435 fi
1436
1437 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1438 AC_TRY_RUN([
1439 #include <sys/types.h>
1440 #include <fcntl.h>
1441 #include <signal.h>
1442 #include <sys/file.h>
1443 #ifndef LOCK_MAND
1444 #define LOCK_MAND       32
1445 #define LOCK_READ       64
1446 #endif
1447 main() {
1448         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1449 }
1450 ],
1451 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1452 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1453     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1454 fi
1455
1456
1457
1458
1459 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1460 AC_TRY_COMPILE([#include <sys/types.h>
1461 #include <fcntl.h>],
1462 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1463 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1464 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1465     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1466 fi
1467
1468 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1469 AC_TRY_RUN([#include <sys/types.h>
1470 #include <sys/capability.h>
1471 main() {
1472  cap_t cap;
1473  if ((cap = cap_get_proc()) == NULL)
1474    exit(1);
1475  cap->cap_effective |= CAP_NETWORK_MGT;
1476  cap->cap_inheritable |= CAP_NETWORK_MGT;
1477  cap_set_proc(cap);
1478  exit(0);
1479 }
1480 ],
1481 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1482 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1483     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1484 fi
1485
1486 #
1487 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1488 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1489 #
1490
1491 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1492 AC_TRY_COMPILE([#include <sys/types.h>
1493 #if defined(HAVE_RPC_RPC_H)
1494 #include <rpc/rpc.h>
1495 #endif],
1496 [int16 testvar;],
1497 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1498 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1499     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1500 fi
1501
1502 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1503 AC_TRY_COMPILE([#include <sys/types.h>
1504 #if defined(HAVE_RPC_RPC_H)
1505 #include <rpc/rpc.h>
1506 #endif],
1507 [uint16 testvar;],
1508 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1509 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1510     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1511 fi
1512
1513 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1514 AC_TRY_COMPILE([#include <sys/types.h>
1515 #if defined(HAVE_RPC_RPC_H)
1516 #include <rpc/rpc.h>
1517 #endif],
1518 [int32 testvar;],
1519 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1520 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1521     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1522 fi
1523
1524 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1525 AC_TRY_COMPILE([#include <sys/types.h>
1526 #if defined(HAVE_RPC_RPC_H)
1527 #include <rpc/rpc.h>
1528 #endif],
1529 [uint32 testvar;],
1530 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1531 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1532     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1533 fi
1534
1535 dnl
1536 dnl Some systems (SCO) have a problem including
1537 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1538 dnl as a #define in <prot.h> and as part of an enum
1539 dnl in <rpc/rpc.h>.
1540 dnl
1541
1542 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1543 AC_TRY_COMPILE([#include <sys/types.h>
1544 #ifdef HAVE_SYS_SECURITY_H
1545 #include <sys/security.h>
1546 #include <prot.h>
1547 #endif  /* HAVE_SYS_SECURITY_H */
1548 #if defined(HAVE_RPC_RPC_H)
1549 #include <rpc/rpc.h>
1550 #endif],
1551 [int testvar;],
1552 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1553 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1554     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1555 fi
1556
1557 AC_MSG_CHECKING([for test routines])
1558 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1559            AC_MSG_RESULT(yes),
1560            AC_MSG_ERROR([cant find test code. Aborting config]),
1561            AC_MSG_WARN([cannot run when cross-compiling]))
1562
1563 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1564 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1565            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1566 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1567     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1568 fi
1569
1570 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1571 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1572            samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1573            samba_cv_HAVE_WORKING_AF_LOCAL=no,
1574            samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1575 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1576 then
1577     AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1578 fi
1579
1580 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1581 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1582            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1583 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1584     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1585 fi
1586
1587 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1588 SAVE_CPPFLAGS="$CPPFLAGS"
1589 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt  -I${srcdir-.}/smbwrapper"
1590 AC_TRY_COMPILE([
1591 #define REPLACE_GETPASS 1
1592 #define NO_CONFIG_H 1
1593 #define main dont_declare_main
1594 #include "${srcdir-.}/lib/getsmbpass.c"
1595 #undef main
1596 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1597 CPPFLAGS="$SAVE_CPPFLAGS"
1598 ])
1599 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1600         AC_DEFINE(REPLACE_GETPASS)
1601 fi
1602
1603 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1604 AC_TRY_RUN([
1605 #include <stdio.h>
1606 #include <sys/types.h>
1607 #include <netinet/in.h>
1608 #ifdef HAVE_ARPA_INET_H
1609 #include <arpa/inet.h>
1610 #endif
1611 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1612 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1613     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1614 exit(1);}],
1615            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1616 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1617     AC_DEFINE(REPLACE_INET_NTOA)
1618 fi
1619
1620 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1621 AC_TRY_RUN([#include <stdlib.h>
1622 #include <sys/types.h>
1623 #include <sys/stat.h>
1624 #include <unistd.h>
1625 main() { 
1626   struct stat st;
1627   char tpl[20]="/tmp/test.XXXXXX"; 
1628   int fd = mkstemp(tpl); 
1629   if (fd == -1) exit(1);
1630   unlink(tpl);
1631   if (fstat(fd, &st) != 0) exit(1);
1632   if ((st.st_mode & 0777) != 0600) exit(1);
1633   exit(0);
1634 }],
1635 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1636 samba_cv_HAVE_SECURE_MKSTEMP=no,
1637 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1638 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1639     AC_DEFINE(HAVE_SECURE_MKSTEMP)
1640 fi
1641
1642 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1643 AC_TRY_RUN([#include <unistd.h>
1644 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1645 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1646 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1647     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1648 fi
1649
1650 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1651 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1652            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1653 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1654     AC_DEFINE(HAVE_ROOT)
1655 else
1656     AC_MSG_WARN(running as non-root will disable some tests)
1657 fi
1658
1659 ##################
1660 # look for a method of finding the list of network interfaces
1661 iface=no;
1662 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1663 AC_TRY_RUN([
1664 #define HAVE_IFACE_AIX 1
1665 #define AUTOCONF_TEST 1
1666 #include "confdefs.h"
1667 #include "${srcdir-.}/lib/interfaces.c"],
1668            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1669 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1670     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1671 fi
1672
1673 if test $iface = no; then
1674 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1675 AC_TRY_RUN([
1676 #define HAVE_IFACE_IFCONF 1
1677 #define AUTOCONF_TEST 1
1678 #include "confdefs.h"
1679 #include "${srcdir-.}/lib/interfaces.c"],
1680            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1681 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1682     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1683 fi
1684 fi
1685
1686 if test $iface = no; then
1687 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1688 AC_TRY_RUN([
1689 #define HAVE_IFACE_IFREQ 1
1690 #define AUTOCONF_TEST 1
1691 #include "confdefs.h"
1692 #include "${srcdir-.}/lib/interfaces.c"],
1693            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1694 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1695     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1696 fi
1697 fi
1698
1699
1700 ################################################
1701 # look for a method of setting the effective uid
1702 seteuid=no;
1703 if test $seteuid = no; then
1704 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1705 AC_TRY_RUN([
1706 #define AUTOCONF_TEST 1
1707 #define USE_SETRESUID 1
1708 #include "confdefs.h"
1709 #include "${srcdir-.}/lib/util_sec.c"],
1710            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1711 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1712     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1713 fi
1714 fi
1715
1716
1717 if test $seteuid = no; then
1718 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1719 AC_TRY_RUN([
1720 #define AUTOCONF_TEST 1
1721 #define USE_SETREUID 1
1722 #include "confdefs.h"
1723 #include "${srcdir-.}/lib/util_sec.c"],
1724            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1725 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1726     seteuid=yes;AC_DEFINE(USE_SETREUID)
1727 fi
1728 fi
1729
1730 if test $seteuid = no; then
1731 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1732 AC_TRY_RUN([
1733 #define AUTOCONF_TEST 1
1734 #define USE_SETEUID 1
1735 #include "confdefs.h"
1736 #include "${srcdir-.}/lib/util_sec.c"],
1737            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1738 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1739     seteuid=yes;AC_DEFINE(USE_SETEUID)
1740 fi
1741 fi
1742
1743 if test $seteuid = no; then
1744 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1745 AC_TRY_RUN([
1746 #define AUTOCONF_TEST 1
1747 #define USE_SETUIDX 1
1748 #include "confdefs.h"
1749 #include "${srcdir-.}/lib/util_sec.c"],
1750            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1751 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1752     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1753 fi
1754 fi
1755
1756
1757 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1758 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1759            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1760 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1761     AC_DEFINE(HAVE_MMAP)
1762 fi
1763
1764 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1765 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1766            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1767 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1768     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1769 fi
1770
1771 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1772 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1773            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1774 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1775     AC_DEFINE(HAVE_FCNTL_LOCK)
1776 fi
1777
1778 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1779 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1780            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1781 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1782     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1783
1784 else
1785
1786 dnl
1787 dnl Don't check for 64 bit fcntl locking if we know that the
1788 dnl glibc2.1 broken check has succeeded.
1789 dnl 
1790
1791   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1792   AC_TRY_RUN([
1793 #if defined(HAVE_UNISTD_H)
1794 #include <unistd.h>
1795 #endif
1796 #include <stdio.h>
1797 #include <stdlib.h>
1798
1799 #ifdef HAVE_FCNTL_H
1800 #include <fcntl.h>
1801 #endif
1802
1803 #ifdef HAVE_SYS_FCNTL_H
1804 #include <sys/fcntl.h>
1805 #endif
1806 main() { struct flock64 fl64;
1807 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1808 exit(0);
1809 #else
1810 exit(1);
1811 #endif
1812 }],
1813        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1814
1815   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1816       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1817   fi
1818 fi
1819
1820 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1821 AC_TRY_COMPILE([#include <sys/types.h>
1822 #include <sys/stat.h>
1823 #include <unistd.h>],
1824 [struct stat st;  st.st_blocks = 0;],
1825 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1826 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1827     AC_DEFINE(HAVE_STAT_ST_BLOCKS)
1828 fi 
1829
1830 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1831 AC_TRY_COMPILE([#include <sys/types.h>
1832 #include <sys/stat.h>
1833 #include <unistd.h>],
1834 [struct stat st;  st.st_blksize = 0;],
1835 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1836 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1837     AC_DEFINE(HAVE_STAT_ST_BLKSIZE)
1838 fi
1839
1840 case "$host_os" in
1841 *linux*)
1842 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1843 AC_TRY_COMPILE([
1844 #ifdef HAVE_SYS_VFS_H
1845 #include <sys/vfs.h>
1846 #endif
1847 #ifdef HAVE_SYS_CAPABILITY_H
1848 #include <sys/capability.h>
1849 #endif
1850 ],[int i;],
1851    samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1852 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1853    AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS)
1854 fi
1855 ;;
1856 esac
1857
1858 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1859 AC_TRY_COMPILE([#include <sys/acl.h>
1860 #if defined(HAVE_RPCSVC_NIS_H)
1861 #include <rpcsvc/nis.h>
1862 #endif],
1863 [int i;],
1864 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1865 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1866     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1867 fi
1868
1869
1870 #################################################
1871 # check for smbwrapper support
1872 AC_MSG_CHECKING(whether to use smbwrapper)
1873 AC_ARG_WITH(smbwrapper,
1874 [  --with-smbwrapper       Include SMB wrapper support (default=no) ],
1875 [ case "$withval" in
1876   yes)
1877     AC_MSG_RESULT(yes)
1878     AC_DEFINE(WITH_SMBWRAPPER)
1879         WRAPPROG="bin/smbsh"
1880         WRAP="bin/smbwrapper.$SHLIBEXT"
1881
1882         if test x$ATTEMPT_WRAP32_BUILD = x; then
1883                 WRAP32=""
1884         else
1885                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1886         fi
1887
1888 # Conditions under which smbwrapper should not be built.
1889
1890         if test x$PICFLAG = x; then
1891            echo No support for PIC code - disabling smbwrapper and smbsh
1892            WRAPPROG=""
1893            WRAP=""
1894            WRAP32=""
1895         elif test x$ac_cv_func_syscall = xno; then
1896            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1897            WRAPPROG=""
1898            WRAP=""
1899            WRAP32=""
1900         fi
1901     ;;
1902   *)
1903     AC_MSG_RESULT(no)
1904     ;;
1905   esac ],
1906   AC_MSG_RESULT(no)
1907 )
1908
1909 #################################################
1910 # check for AFS clear-text auth support
1911 AC_MSG_CHECKING(whether to use AFS clear-text auth)
1912 AC_ARG_WITH(afs,
1913 [  --with-afs              Include AFS clear-text auth support (default=no) ],
1914 [ case "$withval" in
1915   yes)
1916     AC_MSG_RESULT(yes)
1917     AC_DEFINE(WITH_AFS)
1918     ;;
1919   *)
1920     AC_MSG_RESULT(no)
1921     ;;
1922   esac ],
1923   AC_MSG_RESULT(no)
1924 )
1925
1926
1927 #################################################
1928 # check for the DFS clear-text auth system
1929 AC_MSG_CHECKING(whether to use DFS clear-text auth)
1930 AC_ARG_WITH(dfs,
1931 [  --with-dce-dfs          Include DCE/DFS clear-text auth support (default=no)],
1932 [ case "$withval" in
1933   yes)
1934     AC_MSG_RESULT(yes)
1935     AC_DEFINE(WITH_DFS)
1936     ;;
1937   *)
1938     AC_MSG_RESULT(no)
1939     ;;
1940   esac ],
1941   AC_MSG_RESULT(no)
1942 )
1943
1944 #################################################
1945 # active directory support
1946
1947 with_ads_support=yes
1948 AC_MSG_CHECKING([whether to use Active Directory])
1949
1950 AC_ARG_WITH(ads,
1951 [   --with-ads  Active Directory support (default yes)],
1952 [ case "$withval" in
1953     no)
1954         with_ads_support=no
1955         ;;
1956   esac ])
1957
1958 if test x"$with_ads_support" = x"yes"; then
1959    AC_DEFINE(WITH_ADS)
1960 fi
1961
1962 AC_MSG_RESULT($with_ads_support)
1963
1964 FOUND_KRB5=no
1965 if test x"$with_ads_support" = x"yes"; then
1966
1967   #################################################
1968   # check for location of Kerberos 5 install
1969   AC_MSG_CHECKING(for kerberos 5 install path)
1970   AC_ARG_WITH(krb5,
1971   [  --with-krb5=base-dir    Locate Kerberos 5 support (default=/usr)],
1972   [ case "$withval" in
1973     no)
1974       AC_MSG_RESULT(no)
1975       ;;
1976     *)
1977       AC_MSG_RESULT(yes)
1978       LIBS="$LIBS -lkrb5"
1979       CFLAGS="$CFLAGS -I$withval/include"
1980       CPPFLAGS="$CPPFLAGS -I$withval/include"
1981       LDFLAGS="$LDFLAGS -L$withval/lib"
1982       FOUND_KRB5=yes
1983       ;;
1984     esac ],
1985     AC_MSG_RESULT(no)
1986   )
1987
1988
1989 if test x$FOUND_KRB5 = x"no"; then
1990 #################################################
1991 # see if this box has the RedHat location for kerberos
1992 AC_MSG_CHECKING(for /usr/kerberos)
1993 if test -d /usr/kerberos; then
1994     LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
1995     CFLAGS="$CFLAGS -I/usr/kerberos/include"
1996     CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
1997     AC_MSG_RESULT(yes)
1998 else
1999     AC_MSG_RESULT(no)
2000 fi
2001 fi
2002
2003
2004   # now check for krb5.h. Some systems have the libraries without the headers!
2005   # note that this check is done here to allow for different kerberos
2006   # include paths
2007   AC_CHECK_HEADERS(krb5.h)
2008
2009   # now check for gssapi headers.  This is also done here to allow for
2010   # different kerberos include paths
2011   AC_CHECK_HEADERS(gssapi/gssapi_generic.h gssapi/gssapi.h)
2012
2013   ##################################################################
2014   # we might need the k5crypto and com_err libraries on some systems
2015   AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
2016   AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
2017
2018   ########################################################
2019   # now see if we can find the krb5 libs in standard paths
2020   # or as specified above
2021   AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
2022         AC_DEFINE(HAVE_KRB5)])
2023
2024   ########################################################
2025   # now see if we can find the gssapi libs in standard paths
2026   AC_CHECK_LIB(gssapi_krb5, gss_display_status, [LIBS="$LIBS -lgssapi_krb5";
2027         AC_DEFINE(HAVE_GSSAPI)])
2028 fi
2029
2030 ########################################################
2031 # Compile with LDAP support?
2032
2033 with_ldap_support=yes
2034 AC_MSG_CHECKING([whether to use LDAP])
2035
2036 AC_ARG_WITH(ldap,
2037 [   --with-ldap  LDAP support (default yes)],
2038 [ case "$withval" in
2039     no)
2040         with_ldap_support=no
2041         ;;
2042   esac ])
2043
2044 AC_MSG_RESULT($with_ldap_support)
2045
2046 if test x"$with_ldap_support" = x"yes"; then
2047
2048   ##################################################################
2049   # we might need the lber lib on some systems. To avoid link errors
2050   # this test must be before the libldap test
2051   AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
2052
2053   ########################################################
2054   # now see if we can find the ldap libs in standard paths
2055   if test x$have_ldap != xyes; then
2056   AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap";
2057         AC_DEFINE(HAVE_LDAP)])
2058
2059         ########################################################
2060         # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2061         # Check found in pam_ldap 145.
2062         AC_CHECK_FUNCS(ldap_set_rebind_proc)
2063         AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, pam_ldap_cv_ldap_set_rebind_proc, [
2064         AC_TRY_COMPILE([
2065         #include <lber.h>
2066         #include <ldap.h>], [ldap_set_rebind_proc(0, 0, 0);], [pam_ldap_cv_ldap_set_rebind_proc=3], [pam_ldap_cv_ldap_set_rebind_proc=2]) ])
2067         AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc)
2068   fi
2069 fi
2070
2071 #################################################
2072 # check for automount support
2073 AC_MSG_CHECKING(whether to use AUTOMOUNT)
2074 AC_ARG_WITH(automount,
2075 [  --with-automount        Include AUTOMOUNT support (default=no)],
2076 [ case "$withval" in
2077   yes)
2078     AC_MSG_RESULT(yes)
2079     AC_DEFINE(WITH_AUTOMOUNT)
2080     ;;
2081   *)
2082     AC_MSG_RESULT(no)
2083     ;;
2084   esac ],
2085   AC_MSG_RESULT(no)
2086 )
2087
2088 #################################################
2089 # check for smbmount support
2090 AC_MSG_CHECKING(whether to use SMBMOUNT)
2091 AC_ARG_WITH(smbmount,
2092 [  --with-smbmount         Include SMBMOUNT (Linux only) support (default=no)],
2093 [ case "$withval" in
2094   yes)
2095         case "$host_os" in
2096         *linux*)
2097                 AC_MSG_RESULT(yes)
2098                 AC_DEFINE(WITH_SMBMOUNT)
2099                 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2100                 ;;
2101         *)
2102                 AC_MSG_ERROR(not on a linux system!)
2103                 ;;
2104         esac
2105     ;;
2106   *)
2107     AC_MSG_RESULT(no)
2108     MPROGS=
2109     ;;
2110   esac ],
2111   AC_MSG_RESULT(no)
2112   MPROGS=
2113 )
2114
2115
2116 #################################################
2117 # check for a PAM clear-text auth, accounts, password and session support
2118 with_pam_for_crypt=no
2119 AC_MSG_CHECKING(whether to use PAM)
2120 AC_ARG_WITH(pam,
2121 [  --with-pam              Include PAM support (default=no)],
2122 [ case "$withval" in
2123   yes)
2124     AC_MSG_RESULT(yes)
2125     AC_DEFINE(WITH_PAM)
2126     LIBS="$LIBS -lpam"
2127     with_pam_for_crypt=yes
2128     ;;
2129   *)
2130     AC_MSG_RESULT(no)
2131     ;;
2132   esac ],
2133   AC_MSG_RESULT(no)
2134 )
2135
2136 # we can't build a pam module if we don't have pam.
2137 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
2138
2139 #################################################
2140 # check for pam_smbpass support
2141 AC_MSG_CHECKING(whether to use pam_smbpass)
2142 AC_ARG_WITH(pam_smbpass,
2143 [  --with-pam_smbpass      Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2144 [ case "$withval" in
2145   yes)
2146     AC_MSG_RESULT(yes)
2147
2148 # Conditions under which pam_smbpass should not be built.
2149
2150        if test x$PICFLAG = x; then
2151           AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2152           PAM_MOD=""
2153        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2154           AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2155           PAM_MOD=""
2156        else
2157           PAM_MOD="bin/pam_smbpass.so"
2158        fi
2159     ;;
2160   *)
2161     AC_MSG_RESULT(no)
2162     ;;
2163   esac ],
2164   AC_MSG_RESULT(no)
2165 )
2166
2167
2168 ###############################################
2169 # test for where we get crypt() from, but only
2170 # if not using PAM
2171 if test x"$with_pam_for_crypt" = x"no"; then
2172 AC_CHECK_FUNCS(crypt)
2173 if test x"$ac_cv_func_crypt" = x"no"; then
2174     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
2175         AC_DEFINE(HAVE_CRYPT)])
2176 fi
2177 fi
2178
2179 ##
2180 ## moved after the check for -lcrypt in order to
2181 ## ensure that the necessary libraries are included
2182 ## check checking for truncated salt.  Wrapped by the
2183 ## $with_pam_for_crypt variable as above   --jerry
2184 ##
2185 if test $with_pam_for_crypt = no; then
2186 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2187 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2188         samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
2189 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2190         AC_DEFINE(HAVE_TRUNCATED_SALT)
2191 fi
2192 fi
2193
2194 # New experimental SAM system
2195
2196 AC_MSG_CHECKING([whether to build the new (experimental) SAM database])
2197 AC_ARG_WITH(sam,
2198 [  --with-sam              Build new (experimental) SAM database (default=no)],
2199 [ case "$withval" in
2200   yes)
2201     AC_MSG_RESULT(yes)
2202     AC_DEFINE(WITH_SAM)
2203     ;;
2204   *)
2205     AC_MSG_RESULT(no)
2206     ;;
2207   esac ],
2208   AC_MSG_RESULT(no)
2209 )
2210
2211
2212 ########################################################################################
2213 ##
2214 ## TESTS FOR SAM BACKENDS.  KEEP THESE GROUPED TOGETHER
2215 ##
2216 ########################################################################################
2217
2218 #################################################
2219 # check for a TDB password database
2220 AC_MSG_CHECKING(whether to use TDB SAM database)
2221 AC_ARG_WITH(tdbsam,
2222 [  --with-tdbsam           Include experimental TDB SAM support (default=no)],
2223 [ case "$withval" in
2224   yes)
2225     AC_MSG_RESULT(yes)
2226     AC_DEFINE(WITH_TDB_SAM)
2227     ;;
2228   *)
2229     AC_MSG_RESULT(no)
2230     ;;
2231   esac ],
2232   AC_MSG_RESULT(no)
2233 )
2234
2235 #################################################
2236 # check for a NISPLUS password database
2237 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2238 AC_ARG_WITH(nisplussam,
2239 [  --with-nisplussam       Include NISPLUS SAM support (default=no)],
2240 [ case "$withval" in
2241   yes)
2242     AC_MSG_RESULT(yes)
2243     AC_DEFINE(WITH_NISPLUS_SAM)
2244     ;;
2245   *)
2246     AC_MSG_RESULT(no)
2247     ;;
2248   esac ],
2249   AC_MSG_RESULT(no)
2250 )
2251
2252 ########################################################################################
2253 ##
2254 ## END OF TESTS FOR SAM BACKENDS.  
2255 ##
2256 ########################################################################################
2257
2258 #################################################
2259 # check for a NISPLUS_HOME support 
2260 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2261 AC_ARG_WITH(nisplus-home,
2262 [  --with-nisplus-home     Include NISPLUS_HOME support (default=no)],
2263 [ case "$withval" in
2264   yes)
2265     AC_MSG_RESULT(yes)
2266     AC_DEFINE(WITH_NISPLUS_HOME)
2267     ;;
2268   *)
2269     AC_MSG_RESULT(no)
2270     ;;
2271   esac ],
2272   AC_MSG_RESULT(no)
2273 )
2274
2275 #################################################
2276 # check for syslog logging
2277 AC_MSG_CHECKING(whether to use syslog logging)
2278 AC_ARG_WITH(syslog,
2279 [  --with-syslog           Include experimental SYSLOG support (default=no)],
2280 [ case "$withval" in
2281   yes)
2282     AC_MSG_RESULT(yes)
2283     AC_DEFINE(WITH_SYSLOG)
2284     ;;
2285   *)
2286     AC_MSG_RESULT(no)
2287     ;;
2288   esac ],
2289   AC_MSG_RESULT(no)
2290 )
2291
2292 #################################################
2293 # check for a shared memory profiling support
2294 AC_MSG_CHECKING(whether to use profiling)
2295 AC_ARG_WITH(profiling-data,
2296 [  --with-profiling-data   Include gathering source code profile information (default=no)],
2297 [ case "$withval" in
2298   yes)
2299     AC_MSG_RESULT(yes)
2300     AC_DEFINE(WITH_PROFILE)
2301     ;;
2302   *)
2303     AC_MSG_RESULT(no)
2304     ;;
2305   esac ],
2306   AC_MSG_RESULT(no)
2307 )
2308
2309
2310 #################################################
2311 # check for experimental disk-quotas support
2312 QUOTAOBJS=smbd/noquotas.o
2313
2314 AC_MSG_CHECKING(whether to support disk-quotas)
2315 AC_ARG_WITH(quotas,
2316 [  --with-quotas           Include experimental disk-quota support (default=no)],
2317 [ case "$withval" in
2318   yes)
2319     AC_MSG_RESULT(yes)
2320     case "$host_os" in
2321       *linux*)
2322         # Check for kernel 2.4.x quota braindamage...
2323         AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2324         AC_TRY_COMPILE([#include <stdio.h>
2325 #include <sys/types.h>
2326 #include <asm/types.h>
2327 #include <linux/quota.h>
2328 #include <mntent.h>
2329 #include <linux/unistd.h>],[struct mem_dqblk D;],
2330       samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2331 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2332         AC_DEFINE(LINUX_QUOTAS_2)
2333 else
2334         AC_DEFINE(LINUX_QUOTAS_1)
2335 fi
2336         ;;
2337       *)
2338         ;;
2339     esac
2340     QUOTAOBJS=smbd/quotas.o
2341     AC_DEFINE(WITH_QUOTAS)
2342     ;;
2343   *)
2344     AC_MSG_RESULT(no)
2345     ;;
2346   esac ],
2347   AC_MSG_RESULT(no)
2348 )
2349 AC_SUBST(QUOTAOBJS)
2350
2351 #################################################
2352 # check for experimental utmp accounting
2353
2354 AC_MSG_CHECKING(whether to support utmp accounting)
2355 AC_ARG_WITH(utmp,
2356 [  --with-utmp             Include experimental utmp accounting (default=no)],
2357 [ case "$withval" in
2358   yes)
2359     AC_MSG_RESULT(yes)
2360     AC_DEFINE(WITH_UTMP)
2361     ;;
2362   *)
2363     AC_MSG_RESULT(no)
2364     ;;
2365   esac ],
2366   AC_MSG_RESULT(no)
2367 )
2368
2369 #################################################
2370 # choose native language(s) of man pages
2371 AC_MSG_CHECKING(chosen man pages' language(s))
2372 AC_ARG_WITH(manpages-langs,
2373 [  --with-manpages-langs={en,ja,pl}  Choose man pages' language(s). (en)],
2374 [ case "$withval" in
2375   yes|no)
2376     AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2377     manlangs="en"
2378   ;;
2379   *)
2380     manlangs="$withval"
2381   ;;
2382   esac
2383
2384   AC_MSG_RESULT($manlangs)
2385   manlangs=`echo $manlangs | sed "s/,/ /"`   # replacing commas with spaces to produce a list
2386   AC_SUBST(manlangs)],
2387
2388   [manlangs="en"
2389   AC_MSG_RESULT($manlangs)
2390   AC_SUBST(manlangs)]
2391 )
2392
2393 #################################################
2394 # should we build libsmbclient?
2395
2396 LIBSMBCLIENT_SHARED=
2397 LIBSMBCLIENT=
2398 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2399 AC_ARG_WITH(libsmbclient,
2400 [  --with-libsmbclient     Build the libsmbclient shared library (default=yes)],
2401 [ case "$withval" in
2402   no) 
2403      AC_MSG_RESULT(no)
2404      ;;
2405   *)
2406      if test $BLDSHARED = true; then
2407         LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2408         LIBSMBCLIENT=libsmbclient
2409         AC_MSG_RESULT(yes)
2410      else
2411         AC_MSG_RESULT(no shared library support)
2412      fi
2413      ;;
2414   esac ],
2415   AC_MSG_RESULT(yes)
2416 )
2417
2418
2419 #################################################
2420 # these tests are taken from the GNU fileutils package
2421 AC_CHECKING(how to get filesystem space usage)
2422 space=no
2423
2424 # Test for statvfs64.
2425 if test $space = no; then
2426   # SVR4
2427   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2428   [AC_TRY_RUN([
2429 #if defined(HAVE_UNISTD_H)
2430 #include <unistd.h>
2431 #endif
2432 #include <sys/types.h>
2433 #include <sys/statvfs.h>
2434   main ()
2435   {
2436     struct statvfs64 fsd;
2437     exit (statvfs64 (".", &fsd));
2438   }],
2439   fu_cv_sys_stat_statvfs64=yes,
2440   fu_cv_sys_stat_statvfs64=no,
2441   fu_cv_sys_stat_statvfs64=cross)])
2442   if test $fu_cv_sys_stat_statvfs64 = yes; then
2443     space=yes
2444     AC_DEFINE(STAT_STATVFS64)
2445   fi
2446 fi
2447
2448 # Perform only the link test since it seems there are no variants of the
2449 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
2450 # because that got a false positive on SCO OSR5.  Adding the declaration
2451 # of a `struct statvfs' causes this test to fail (as it should) on such
2452 # systems.  That system is reported to work fine with STAT_STATFS4 which
2453 # is what it gets when this test fails.
2454 if test $space = no; then
2455   # SVR4
2456   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2457                  [AC_TRY_LINK([#include <sys/types.h>
2458 #include <sys/statvfs.h>],
2459                               [struct statvfs fsd; statvfs (0, &fsd);],
2460                               fu_cv_sys_stat_statvfs=yes,
2461                               fu_cv_sys_stat_statvfs=no)])
2462   if test $fu_cv_sys_stat_statvfs = yes; then
2463     space=yes
2464     AC_DEFINE(STAT_STATVFS)
2465   fi
2466 fi
2467
2468 if test $space = no; then
2469   # DEC Alpha running OSF/1
2470   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2471   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2472   [AC_TRY_RUN([
2473 #include <sys/param.h>
2474 #include <sys/types.h>
2475 #include <sys/mount.h>
2476   main ()
2477   {
2478     struct statfs fsd;
2479     fsd.f_fsize = 0;
2480     exit (statfs (".", &fsd, sizeof (struct statfs)));
2481   }],
2482   fu_cv_sys_stat_statfs3_osf1=yes,
2483   fu_cv_sys_stat_statfs3_osf1=no,
2484   fu_cv_sys_stat_statfs3_osf1=no)])
2485   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2486   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2487     space=yes
2488     AC_DEFINE(STAT_STATFS3_OSF1)
2489   fi
2490 fi
2491
2492 if test $space = no; then
2493 # AIX
2494   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2495 member (AIX, 4.3BSD)])
2496   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2497   [AC_TRY_RUN([
2498 #ifdef HAVE_SYS_PARAM_H
2499 #include <sys/param.h>
2500 #endif
2501 #ifdef HAVE_SYS_MOUNT_H
2502 #include <sys/mount.h>
2503 #endif
2504 #ifdef HAVE_SYS_VFS_H
2505 #include <sys/vfs.h>
2506 #endif
2507   main ()
2508   {
2509   struct statfs fsd;
2510   fsd.f_bsize = 0;
2511   exit (statfs (".", &fsd));
2512   }],
2513   fu_cv_sys_stat_statfs2_bsize=yes,
2514   fu_cv_sys_stat_statfs2_bsize=no,
2515   fu_cv_sys_stat_statfs2_bsize=no)])
2516   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2517   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2518     space=yes
2519     AC_DEFINE(STAT_STATFS2_BSIZE)
2520   fi
2521 fi
2522
2523 if test $space = no; then
2524 # SVR3
2525   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2526   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2527   [AC_TRY_RUN([#include <sys/types.h>
2528 #include <sys/statfs.h>
2529   main ()
2530   {
2531   struct statfs fsd;
2532   exit (statfs (".", &fsd, sizeof fsd, 0));
2533   }],
2534     fu_cv_sys_stat_statfs4=yes,
2535     fu_cv_sys_stat_statfs4=no,
2536     fu_cv_sys_stat_statfs4=no)])
2537   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2538   if test $fu_cv_sys_stat_statfs4 = yes; then
2539     space=yes
2540     AC_DEFINE(STAT_STATFS4)
2541   fi
2542 fi
2543
2544 if test $space = no; then
2545 # 4.4BSD and NetBSD
2546   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2547 member (4.4BSD and NetBSD)])
2548   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2549   [AC_TRY_RUN([#include <sys/types.h>
2550 #ifdef HAVE_SYS_PARAM_H
2551 #include <sys/param.h>
2552 #endif
2553 #ifdef HAVE_SYS_MOUNT_H
2554 #include <sys/mount.h>
2555 #endif
2556   main ()
2557   {
2558   struct statfs fsd;
2559   fsd.f_fsize = 0;
2560   exit (statfs (".", &fsd));
2561   }],
2562   fu_cv_sys_stat_statfs2_fsize=yes,
2563   fu_cv_sys_stat_statfs2_fsize=no,
2564   fu_cv_sys_stat_statfs2_fsize=no)])
2565   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2566   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2567     space=yes
2568     AC_DEFINE(STAT_STATFS2_FSIZE)
2569   fi
2570 fi
2571
2572 if test $space = no; then
2573   # Ultrix
2574   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2575   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2576   [AC_TRY_RUN([#include <sys/types.h>
2577 #ifdef HAVE_SYS_PARAM_H
2578 #include <sys/param.h>
2579 #endif
2580 #ifdef HAVE_SYS_MOUNT_H
2581 #include <sys/mount.h>
2582 #endif
2583 #ifdef HAVE_SYS_FS_TYPES_H
2584 #include <sys/fs_types.h>
2585 #endif
2586   main ()
2587   {
2588   struct fs_data fsd;
2589   /* Ultrix's statfs returns 1 for success,
2590      0 for not mounted, -1 for failure.  */
2591   exit (statfs (".", &fsd) != 1);
2592   }],
2593   fu_cv_sys_stat_fs_data=yes,
2594   fu_cv_sys_stat_fs_data=no,
2595   fu_cv_sys_stat_fs_data=no)])
2596   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2597   if test $fu_cv_sys_stat_fs_data = yes; then
2598     space=yes
2599     AC_DEFINE(STAT_STATFS2_FS_DATA)
2600   fi
2601 fi
2602
2603 #
2604 # As a gating factor for large file support, in order to
2605 # use <4GB files we must have the following minimal support
2606 # available.
2607 # long long, and a 64 bit off_t or off64_t.
2608 # If we don't have all of these then disable large
2609 # file support.
2610 #
2611 AC_MSG_CHECKING([if large file support can be enabled])
2612 AC_TRY_COMPILE([
2613 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2614 #include <sys/types.h>
2615 #else
2616 __COMPILE_ERROR_
2617 #endif
2618 ],
2619 [int i],
2620 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2621 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2622     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2623 fi
2624 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2625
2626 AC_ARG_WITH(spinlocks, 
2627 [  --with-spinlocks        Use spin locks instead of fcntl locks (default=no) ])
2628 if test "x$with_spinlocks" = "xyes"; then
2629     AC_DEFINE(USE_SPINLOCKS)
2630
2631     case "$host_cpu" in
2632         sparc)
2633             AC_DEFINE(SPARC_SPINLOCKS)
2634             ;;
2635
2636         i386|i486|i586|i686)
2637             AC_DEFINE(INTEL_SPINLOCKS)
2638             ;;
2639
2640         mips)
2641             AC_DEFINE(MIPS_SPINLOCKS)
2642             ;;
2643
2644         powerpc)
2645             AC_DEFINE(POWERPC_SPINLOCKS)
2646             ;;
2647     esac
2648 fi
2649
2650 #################################################
2651 # check for ACL support
2652
2653 AC_MSG_CHECKING(whether to support ACLs)
2654 AC_ARG_WITH(acl-support,
2655 [  --with-acl-support      Include ACL support (default=no)],
2656 [ case "$withval" in
2657   yes)
2658
2659         case "$host_os" in
2660         *sysv5*)
2661                 AC_MSG_RESULT(Using UnixWare ACLs)
2662                 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2663                 ;;
2664         *solaris*)
2665                 AC_MSG_RESULT(Using solaris ACLs)
2666                 AC_DEFINE(HAVE_SOLARIS_ACLS)
2667                 ;;
2668         *hpux*)
2669                 AC_MSG_RESULT(Using HPUX ACLs)
2670                 AC_DEFINE(HAVE_HPUX_ACLS)
2671                 ;;
2672         *irix*)
2673                 AC_MSG_RESULT(Using IRIX ACLs)
2674                 AC_DEFINE(HAVE_IRIX_ACLS)
2675                 ;;
2676         *aix*)
2677                 AC_MSG_RESULT(Using AIX ACLs)
2678                 AC_DEFINE(HAVE_AIX_ACLS)
2679                 ;;
2680         *osf*)
2681                 AC_MSG_RESULT(Using Tru64 ACLs)
2682                 AC_DEFINE(HAVE_TRU64_ACLS)
2683                 LIBS="$LIBS -lpacl"
2684                 ;;
2685         *)
2686                 AC_CHECK_LIB(acl,acl_get_file)
2687                 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2688                 AC_TRY_LINK([#include <sys/types.h>
2689 #include <sys/acl.h>],
2690 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2691 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2692                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2693                                 AC_MSG_RESULT(Using posix ACLs)
2694                                 AC_DEFINE(HAVE_POSIX_ACLS)
2695                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2696                                 AC_TRY_LINK([#include <sys/types.h>
2697 #include <sys/acl.h>],
2698 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2699 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2700                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2701                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2702                                 fi
2703                         fi
2704             ;;
2705         esac
2706         ;;
2707   *)
2708     AC_MSG_RESULT(no)
2709     AC_DEFINE(HAVE_NO_ACLS)
2710     ;;
2711   esac ],
2712   AC_DEFINE(HAVE_NO_ACLS)
2713   AC_MSG_RESULT(no)
2714 )
2715
2716 #################################################
2717 # check for sendfile support
2718
2719 AC_MSG_CHECKING(whether to support sendfile)
2720 AC_ARG_WITH(sendfile-support,
2721 [  --with-sendfile-support      Include sendfile support (default=no)],
2722 [ case "$withval" in
2723   yes)
2724
2725         case "$host_os" in
2726         *linux*)
2727                 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2728                 AC_TRY_LINK([#include <sys/sendfile.h>],
2729 [\
2730 int tofd, fromfd;
2731 off64_t offset;
2732 size_t total;
2733 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2734 ],
2735 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2736
2737                 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2738                 AC_TRY_LINK([#include <sys/sendfile.h>],
2739 [\
2740 int tofd, fromfd;
2741 off_t offset;
2742 size_t total;
2743 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2744 ],
2745 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2746
2747 # Try and cope with broken Linux sendfile....
2748                 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2749                 AC_TRY_LINK([\
2750 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2751 #undef _FILE_OFFSET_BITS
2752 #endif
2753 #include <sys/sendfile.h>],
2754 [\
2755 int tofd, fromfd;
2756 off_t offset;
2757 size_t total;
2758 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2759 ],
2760 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2761
2762         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2763                 AC_DEFINE(HAVE_SENDFILE64)
2764                 AC_DEFINE(LINUX_SENDFILE_API)
2765                 AC_DEFINE(WITH_SENDFILE)
2766         elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2767                 AC_DEFINE(HAVE_SENDFILE)
2768                 AC_DEFINE(LINUX_SENDFILE_API)
2769                 AC_DEFINE(WITH_SENDFILE)
2770         elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2771                 AC_DEFINE(LINUX_BROKEN_SENDFILE_API)
2772                 AC_DEFINE(WITH_SENDFILE)
2773         else
2774                 AC_MSG_RESULT(no);
2775         fi
2776
2777         ;;
2778         *freebsd*)
2779                 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2780                 AC_TRY_LINK([\
2781 #include <sys/types.h>
2782 #include <sys/socket.h>
2783 #include <sys/uio.h>],
2784 [\
2785         int fromfd, tofd;
2786         off_t offset, nwritten;
2787         struct sf_hdtr hdr;
2788         struct iovec hdtrl;
2789         hdr->headers = &hdtrl;
2790         hdr->hdr_cnt = 1;
2791         hdr->trailers = NULL;
2792         hdr->trl_cnt = 0;
2793         hdtrl.iov_base = NULL;
2794         hdtrl.iov_len = 0;
2795         int ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2796 ],
2797 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2798
2799         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2800                 AC_DEFINE(HAVE_SENDFILE)
2801                 AC_DEFINE(FREEBSD_SENDFILE_API)
2802                 AC_DEFINE(WITH_SENDFILE)
2803         else
2804                 AC_MSG_RESULT(no);
2805         fi
2806         ;;
2807
2808         *hpux*)
2809                 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2810                 AC_TRY_LINK([\
2811 #include <sys/socket.h>
2812 #include <sys/uio.h>],
2813 [\
2814         int fromfd, tofd;
2815         size_t total=0;
2816         struct iovec hdtrl[2];
2817         ssize_t nwritten;
2818         off64_t offset;
2819
2820         hdtrl[0].iov_base = 0;
2821         hdtrl[0].iov_len = 0;
2822
2823         nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2824 ],
2825 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2826         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2827                 AC_DEFINE(HAVE_SENDFILE64)
2828                 AC_DEFINE(HPUX_SENDFILE_API)
2829                 AC_DEFINE(WITH_SENDFILE)
2830         else
2831                 AC_MSG_RESULT(no);
2832         fi
2833
2834                 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2835                 AC_TRY_LINK([\
2836 #include <sys/socket.h>
2837 #include <sys/uio.h>],
2838 [\
2839         int fromfd, tofd;
2840         size_t total=0;
2841         struct iovec hdtrl[2];
2842         ssize_t nwritten;
2843         off_t offset;
2844
2845         hdtrl[0].iov_base = 0;
2846         hdtrl[0].iov_len = 0;
2847
2848         nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2849 ],
2850 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2851         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2852                 AC_DEFINE(HAVE_SENDFILE)
2853                 AC_DEFINE(HPUX_SENDFILE_API)
2854                 AC_DEFINE(WITH_SENDFILE)
2855         else
2856                 AC_MSG_RESULT(no);
2857         fi
2858
2859         ;;
2860
2861         *)
2862         ;;
2863         esac
2864         ;;
2865   *)
2866     AC_MSG_RESULT(no)
2867     ;;
2868   esac ],
2869   AC_MSG_RESULT(no)
2870 )
2871
2872
2873 #################################################
2874 # Check whether winbind is supported on this platform.  If so we need to
2875 # build and install client programs (WINBIND_TARGETS), sbin programs
2876 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2877
2878 AC_MSG_CHECKING(whether to build winbind)
2879
2880 # Initially, the value of $host_os decides whether winbind is supported
2881
2882 case "$host_os" in
2883         *linux*|*irix*)
2884                 HAVE_WINBIND=yes
2885                 ;;
2886         *solaris*)
2887                 HAVE_WINBIND=yes
2888                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2889                 WINBIND_NSS_EXTRA_LIBS="-lsocket"
2890                 ;;
2891         *hpux11*)
2892                 HAVE_WINBIND=yes
2893                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2894                 ;;
2895         *)
2896                 HAVE_WINBIND=no
2897                 winbind_no_reason=", unsupported on $host_os"
2898                 ;;
2899 esac
2900
2901 # Check the setting of --with-winbindd
2902
2903 AC_ARG_WITH(winbind,
2904 [  --with-winbind          Build winbind (default, if supported by OS)],
2905
2906   case "$withval" in
2907         yes)
2908                 HAVE_WINBIND=yes
2909                 ;;
2910         no)
2911                 HAVE_WINBIND=no
2912                 winbind_reason=""
2913                 ;;
2914   esac ],
2915 )
2916
2917 # We need unix domain sockets for winbind
2918
2919 if test x"$HAVE_WINBIND" = x"yes"; then
2920         if test x"$samba_cv_unixsocket" = x"no"; then
2921                 winbind_no_reason=", no unix domain socket support on $host_os"
2922                 HAVE_WINBIND=no
2923         fi
2924 fi
2925
2926 # Display test results
2927
2928 WINBIND_TARGETS=""
2929 WINBIND_STARGETS=""
2930 WINBIND_LTARGETS=""
2931 WINBIND_PAM_PROGS=""
2932
2933 if test x"$HAVE_WINBIND" = x"yes"; then
2934         AC_MSG_RESULT(yes)
2935         AC_DEFINE(WITH_WINBIND)
2936
2937         WINBIND_TARGETS="bin/wbinfo"
2938         WINBIND_STARGETS="bin/winbindd"
2939         if test x"$BLDSHARED" = x"true"; then
2940                 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
2941                 if test x"$with_pam" = x"yes"; then
2942                         WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
2943                 fi
2944         fi
2945 else
2946         AC_MSG_RESULT(no$winbind_no_reason)
2947 fi
2948
2949
2950 # Substitution time!
2951
2952 AC_SUBST(WINBIND_TARGETS)
2953 AC_SUBST(WINBIND_STARGETS)
2954 AC_SUBST(WINBIND_LTARGETS)
2955 AC_SUBST(WINBIND_PAM_TARGETS)
2956 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
2957 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
2958
2959 # Solaris has some extra fields in struct passwd that need to be
2960 # initialised otherwise nscd crashes.  Unfortunately autoconf < 2.50
2961 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
2962 # this. 
2963
2964 #AC_CHECK_MEMBER(struct passwd.pw_comment,
2965 #               AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
2966 #               [#include <pwd.h>])
2967
2968 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
2969     AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
2970         samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
2971 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
2972    AC_DEFINE(HAVE_PASSWD_PW_COMMENT)
2973 fi
2974
2975 #AC_CHECK_MEMBER(struct passwd.pw_age,
2976 #               AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
2977 #               [#include <pwd.h>])
2978
2979 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
2980     AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
2981         samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
2982 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
2983    AC_DEFINE(HAVE_PASSWD_PW_AGE)
2984 fi
2985
2986 #################################################
2987 # Check to see if we should use the included popt 
2988
2989 AC_ARG_WITH(included-popt,
2990 [  --with-included-popt    use bundled popt library, not from system],
2991
2992   case "$withval" in
2993         yes)
2994                 INCLUDED_POPT=yes
2995                 ;;
2996         no)
2997                 INCLUDED_POPT=no
2998                 ;;
2999   esac ],
3000 )
3001 if test x"$INCLUDED_POPT" != x"yes"; then
3002     AC_CHECK_LIB(popt, poptGetContext,
3003                  INCLUDED_POPT=no, INCLUDED_POPT=yes)
3004 fi
3005
3006 AC_MSG_CHECKING(whether to use included popt)
3007 if test x"$INCLUDED_POPT" = x"yes"; then
3008     AC_MSG_RESULT(yes)
3009     BUILD_POPT='$(POPT_OBJS)'
3010     FLAGS1="-I$srcdir/popt"
3011 else
3012     AC_MSG_RESULT(no)
3013     LIBS="$LIBS -lpopt"
3014 fi
3015 AC_SUBST(BUILD_POPT)
3016 AC_SUBST(FLAGS1)
3017
3018 #################################################
3019 # Check if the user wants Python
3020
3021 # At the moment, you can use this to set which Python binary to link
3022 # against.  (Libraries built for Python2.2 can't be used by 2.1,
3023 # though they can coexist in different directories.)  In the future
3024 # this might make the Python stuff be built by default.
3025
3026 AC_ARG_WITH(python,
3027 [  --with-python=PYTHONNAME  build Python libraries],
3028 [ case "${withval-python}" in
3029   yes)
3030         PYTHON=python
3031         ;;
3032   *)
3033         PYTHON=${withval-python}
3034         ;;
3035   esac ])
3036 AC_SUBST(PYTHON)
3037
3038 #################################################
3039 # do extra things if we are running insure
3040
3041 if test "${ac_cv_prog_CC}" = "insure"; then
3042         CPPFLAGS="$CPPFLAGS -D__INSURE__"
3043 fi
3044
3045 #################################################
3046 # final configure stuff
3047
3048 AC_MSG_CHECKING([configure summary])
3049 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3050            AC_MSG_RESULT(yes),
3051            AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3052            AC_MSG_WARN([cannot run when cross-compiling]))
3053
3054 builddir=`pwd`
3055 AC_SUBST(builddir)
3056
3057 # I added make files that are outside /source directory.
3058 # I know this is not a good solution, will work out a better
3059 # solution soon.                        --simo
3060 AC_OUTPUT(include/stamp-h Makefile script/findsmb ../examples/VFS/Makefile ../examples/pdb/mysql/Makefile ../examples/pdb/xml/Makefile ../examples/sam/Makefile)
3061
3062 #################################################
3063 # Print very concise instructions on building/use
3064 if test "x$enable_dmalloc" = xyes
3065 then
3066         AC_MSG_RESULT([Note: The dmalloc debug library will be included.  To turn it on use])
3067         AC_MSG_RESULT([      \$ eval \`dmalloc samba\`.])
3068 fi