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