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