r195: adding files to ignore list
[Samba.git] / source / configure.in
blob0367b5f8d07eeb01cd7d900a7d2cdd391b02f518
1 dnl Process this file with autoconf to produce a configure script.
3 dnl We must use autotools 2.53 or above
4 AC_PREREQ(2.53)
5 AC_INIT(include/includes.h)
6 AC_CONFIG_HEADER(include/config.h)
8 AC_DISABLE_STATIC
9 AC_ENABLE_SHARED
11 #################################################
12 # Directory handling stuff to support both the
13 # legacy SAMBA directories and FHS compliant
14 # ones...
15 AC_PREFIX_DEFAULT(/usr/local/samba)
17 lockdir="\${VARDIR}/locks"
18 piddir="\${VARDIR}/locks"
19 mandir="\${prefix}/man"
20 logfilebase="\${VARDIR}"
21 privatedir="\${prefix}/private"
22 libdir="\${prefix}/lib"
23 configdir="\${LIBDIR}"
24 swatdir="\${prefix}/swat"
26 AC_ARG_WITH(fhs, 
27 [  --with-fhs              Use FHS-compliant paths (default=no)],
28 [ case "$withval" in
29   yes)
30     lockdir="\${VARDIR}/lib/samba"
31     piddir="\${VARDIR}/run"
32     mandir="\${prefix}/share/man"
33     logfilebase="\${VARDIR}/log/samba"
34     privatedir="\${CONFIGDIR}/private"
35     libdir="\${prefix}/lib/samba"
36     configdir="${sysconfdir}/samba"
37     swatdir="\${DATADIR}/samba/swat"
38     ;;
39   esac])
41 #################################################
42 # set private directory location
43 AC_ARG_WITH(privatedir,
44 [  --with-privatedir=DIR   Where to put smbpasswd ($ac_default_prefix/private)],
45 [ case "$withval" in
46   yes|no)
47   #
48   # Just in case anybody calls it without argument
49   #
50     AC_MSG_WARN([--with-privatedir called without argument - will use default])
51   ;;
52   * )
53     privatedir="$withval"
54     ;;
55   esac])
57 #################################################
58 # set lock directory location
59 AC_ARG_WITH(lockdir,
60 [  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)],
61 [ case "$withval" in
62   yes|no)
63   #
64   # Just in case anybody calls it without argument
65   #
66     AC_MSG_WARN([--with-lockdir called without argument - will use default])
67   ;;
68   * )
69     lockdir="$withval"
70     ;;
71   esac])
73 #################################################
74 # set pid directory location
75 AC_ARG_WITH(piddir,
76 [  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/locks)],
77 [ case "$withval" in
78   yes|no)
79   #
80   # Just in case anybody calls it without argument
81   #
82     AC_MSG_WARN([--with-piddir called without argument - will use default])
83   ;;
84   * )
85     piddir="$withval"
86     ;;
87   esac])
89 #################################################
90 # set SWAT directory location
91 AC_ARG_WITH(swatdir,
92 [  --with-swatdir=DIR      Where to put SWAT files ($ac_default_prefix/swat)],
93 [ case "$withval" in
94   yes|no)
95   #
96   # Just in case anybody does it
97   #
98     AC_MSG_WARN([--with-swatdir called without argument - will use default])
99   ;;
100   * )
101     swatdir="$withval"
102     ;;
103   esac])
105 #################################################
106 # set configuration directory location
107 AC_ARG_WITH(configdir,
108 [  --with-configdir=DIR    Where to put configuration files ($libdir)],
109 [ case "$withval" in
110   yes|no)
111   #
112   # Just in case anybody does it
113   #
114     AC_MSG_WARN([--with-configdir called without argument - will use default])
115   ;;
116   * )
117     configdir="$withval"
118     ;;
119   esac])
121 #################################################
122 # set log directory location
123 AC_ARG_WITH(logfilebase,
124 [  --with-logfilebase=DIR  Where to put log files ($VARDIR)],
125 [ case "$withval" in
126   yes|no)
127   #
128   # Just in case anybody does it
129   #
130     AC_MSG_WARN([--with-logfilebase called without argument - will use default])
131   ;;
132   * )
133     logfilebase="$withval"
134     ;;
135   esac])
137 #################################################
138 # set lib directory location
139 AC_ARG_WITH(libdir,
140 [  --with-libdir=DIR       Where to put libdir ($libdir)],
141 [ case "$withval" in
142   yes|no)
143   #
144   # Just in case anybody does it
145   #
146     AC_MSG_WARN([--with-libdir without argument - will use default])
147   ;;
148   * )
149     libdir="$withval"
150     ;;
151   esac])
153 #################################################
154 # set lib directory location
155 AC_ARG_WITH(mandir,
156 [  --with-mandir=DIR       Where to put man pages ($mandir)],
157 [ case "$withval" in
158   yes|no)
159   #
160   # Just in case anybody does it
161   #
162     AC_MSG_WARN([--with-mandir without argument - will use default])
163   ;;
164   * )
165     mandir="$withval"
166     ;;
167   esac])
169 AC_ARG_WITH(cfenc,
170 [  --with-cfenc=HEADERDIR  Use internal CoreFoundation encoding API
171                           for optimization (Mac OS X/Darwin only)],
173 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
174 # Should have been in framework $withval/CoreFoundation.framework/Headers.
175 for d in \
176     $withval/CoreFoundation/StringEncodings.subproj \
177     $withval/StringEncodings.subproj \
178     $withval/CoreFoundation.framework/Headers \
179     $withval/Headers \
180     $withval
182     if test -r $d/CFStringEncodingConverter.h; then
183         ln -sfh $d include/CoreFoundation
184     fi
185 done
188 AC_SUBST(configdir)
189 AC_SUBST(lockdir)
190 AC_SUBST(piddir)
191 AC_SUBST(logfilebase)
192 AC_SUBST(privatedir)
193 AC_SUBST(swatdir)
194 AC_SUBST(bindir)
195 AC_SUBST(sbindir)
197 dnl Unique-to-Samba variables we'll be playing with.
198 AC_SUBST(SHELL)
199 AC_SUBST(LDSHFLAGS)
200 AC_SUBST(SONAMEFLAG)
201 AC_SUBST(SHLD)
202 AC_SUBST(HOST_OS)
203 AC_SUBST(PICFLAGS)
204 AC_SUBST(PICSUFFIX)
205 AC_SUBST(SHLIBEXT)
206 AC_SUBST(INSTALLCLIENT)
207 AC_SUBST(INSTALLCLIENTCMD_SH)
208 AC_SUBST(INSTALLCLIENTCMD_A)
209 AC_SUBST(LIBSMBCLIENT_SHARED)
210 AC_SUBST(LIBSMBCLIENT)
211 AC_SUBST(PRINT_LIBS)
212 AC_SUBST(AUTH_LIBS)
213 AC_SUBST(ACL_LIBS)
214 AC_SUBST(PASSDB_LIBS)
215 AC_SUBST(IDMAP_LIBS)
216 AC_SUBST(KRB5_LIBS)
217 AC_SUBST(LDAP_LIBS)
218 AC_SUBST(SHLIB_PROGS)
219 AC_SUBST(SMBWRAPPER)
220 AC_SUBST(EXTRA_BIN_PROGS)
221 AC_SUBST(EXTRA_SBIN_PROGS)
222 AC_SUBST(EXTRA_ALL_TARGETS)
224 AC_ARG_ENABLE(debug, 
225 [  --enable-debug          Turn on compiler debugging information (default=no)],
226     [if eval "test x$enable_debug = xyes"; then
227         CFLAGS="${CFLAGS} -g"
228     fi])
230 AC_ARG_ENABLE(developer, [  --enable-developer      Turn on developer warnings and debugging (default=no)],
231     [if eval "test x$enable_developer = xyes"; then
232         developer=yes
233         CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
234     fi])
236 AC_ARG_ENABLE(krb5developer, [  --enable-krb5developer  Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
237     [if eval "test x$enable_krb5developer = xyes"; then
238         developer=yes
239         CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
240     fi])
242 AC_ARG_ENABLE(dmalloc, [  --enable-dmalloc        Enable heap debugging [default=no]])
244 if test "x$enable_dmalloc" = xyes
245 then
246         AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
247         AC_DEFINE(DMALLOC_FUNC_CHECK, 1, 
248                   [Define to check invariants around some common functions])
249         LIBS="$LIBS -ldmalloc"  
252 dnl Checks for programs.
255 ## for some reason this macro resets the CFLAGS
256 ## so save and restore
258 OLD_CFLAGS=${CFLAGS}
259 AC_PROG_CC
260 CFLAGS=${OLD_CFLAGS}
262 OLD_CFLAGS=${CFLAGS}
263 AC_PROG_CPP
264 CFLAGS=${OLD_CFLAGS}
266 AC_PROG_INSTALL
267 AC_PROG_AWK
268 AC_PATH_PROG(PERL, perl)
270 AC_CHECK_TOOL(AR, ar)
272 # compile with optimization and without debugging by default, but
273 # allow people to set their own preference.
274 if test "x$CFLAGS" = x
275 then
276   CFLAGS="-O ${CFLAGS}"
279 dnl Check if we use GNU ld
280 LD=ld
281 AC_PROG_LD_GNU
283 dnl needed before AC_TRY_COMPILE
284 AC_ISC_POSIX
286 dnl look for executable suffix
287 AC_EXEEXT
289 dnl Check if C compiler understands -c and -o at the same time
290 AC_PROG_CC_C_O
291 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
292       BROKEN_CC=
293 else
294       BROKEN_CC=#
296 AC_SUBST(BROKEN_CC)
298 dnl Check if the C compiler understands -Werror
299 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
300  AC_TRY_RUN_STRICT([
301   int main(void)
302   {
303         return 0;
304   }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
305   samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
306 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
307    Werror_FLAGS="-Werror"
308 else 
309 dnl Check if the C compiler understands -w2
310 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
311  AC_TRY_RUN_STRICT([
312   int main(void)
313   {
314         return 0;
315   }],[-w2],[$CPPFLAGS],[$LDFLAGS],
316   samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
317 if test x"$samba_cv_HAVE_w2" = x"yes"; then
318    Werror_FLAGS="-w2"
322 dnl Check if the C compiler understands volatile (it should, being ANSI).
323 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
324     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
325         samba_cv_volatile=yes,samba_cv_volatile=no)])
326 if test x"$samba_cv_volatile" = x"yes"; then
327    AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
330 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
331 AC_MSG_CHECKING(uname -s)
332 AC_MSG_RESULT(${UNAME_S})
334 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
335 AC_MSG_CHECKING(uname -r)
336 AC_MSG_RESULT(${UNAME_R})
338 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
339 AC_MSG_CHECKING(uname -m)
340 AC_MSG_RESULT(${UNAME_M})
342 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
343 AC_MSG_CHECKING(uname -p)
344 AC_MSG_RESULT(${UNAME_P})
346 AC_CANONICAL_SYSTEM
348 dnl Add #include for broken IRIX header files
349   case "$host_os" in
350         *irix6*) AC_ADD_INCLUDE(<standards.h>)
351         ;;
352 esac
354 AC_VALIDATE_CACHE_SYSTEM_TYPE
356 DYNEXP=
358 dnl Add modules that have to be built by default here
359 dnl These have to be built static:
360 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsa rpc_samr rpc_reg rpc_lsa_ds rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin"
362 dnl These are preferably build shared, and static if dlopen() is not available
363 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs charset_CP850 charset_CP437"
365 if test "x$developer" = xyes; then
366    default_static_modules="$default_static_modules rpc_echo"
367    default_shared_modules="$default_shared_modules charset_weird"
371 # Config CPPFLAG settings for strange OS's that must be set
372 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
373 # case statement; its first reference must be unconditional.
375 case "$host_os" in
376 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
377     *hpux*)
378     
379       AC_PROG_CC_FLAG(Ae)
380       # mmap on HPUX is completely broken...
381       AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
382       if test $ac_cv_prog_cc_Ae = yes; then
383         CPPFLAGS="$CPPFLAGS -Ae"
384       fi
386 # Defines needed for HPUX support.
387 # HPUX has bigcrypt but (sometimes?) doesn't use it for
388 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
390       case `uname -r` in
391                         *9*|*10*)
392                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
393                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
394                                 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
395                                 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
396                                 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
397                                 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
398                                 ;;
399                         *11*)
400                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
401                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
402                                 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
403                                 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
404                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
405                                 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
406                                 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
407                                 ;;
408       esac
409       DYNEXP="-Wl,-E"
410       ;;
413 # CRAY Unicos has broken const handling
414        *unicos*)
415           AC_MSG_RESULT([disabling const])
416           CPPFLAGS="$CPPFLAGS -Dconst="
417           ;;
418         
420 # AIX4.x doesn't even admit to having large
421 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
423     *aix4*)
424           AC_MSG_RESULT([enabling large file support])
425       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
426           AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
427       ;;    
429 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
430 # to the existance of large files..
431 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
432 # recommendations on large file support, however it makes the
433 # compile work using gcc 2.7 and 2.8, whereas using the Sun
434 # recommendation makes the compile fail on gcc2.7. JRA.
436 # Solaris uses SYSV printing.  Make sure to set that here.  --jerry
438         *solaris*)
439                 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
440                 case `uname -r` in
441                         5.0*|5.1*|5.2*|5.3*|5.5*)
442                                 AC_MSG_RESULT([no large file support])
443                                 ;;
444                         5.*)
445                         AC_MSG_RESULT([enabling large file support])
446                         if test "$ac_cv_prog_gcc" = yes; then
447                                 ${CC-cc} -v >conftest.c 2>&1
448                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
449                                 rm -fr conftest.c
450                                 case "$ac_cv_gcc_compiler_version_number" in
451                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
452                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
453                                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
454                                                 ;;
455                                         *)
456                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
457                                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
458                                                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
459                                                 ;;
460                                 esac
461                         else
462                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
463                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
464                                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
465                         fi
466                         ;;
467                 esac
468                 ;;
470 # IRIX uses SYSV printing.  Make sure to set that here
472         *irix*)
473                 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
474                 ;;
475         *freebsd*)
476                 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
477                 ;;
479 # VOS may need to have POSIX support and System V compatibility enabled.
481     *vos*)
482     case "$CPPFLAGS" in
483           *-D_POSIX_C_SOURCE*)
484                 ;;
485           *)
486                 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
487                 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
488                 ;;
489     esac
490     case "$CPPFLAGS" in
491           *-D_SYSV*|*-D_SVID_SOURCE*)
492                 ;;
493           *)
494                 CPPFLAGS="$CPPFLAGS -D_SYSV"
495                 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
496     esac
497     ;;
499 # Tests needed for SINIX large file support.
501     *sysv4*)
502       if test $host = mips-sni-sysv4 ; then
503         AC_MSG_CHECKING([for LFS support])
504         old_CPPFLAGS="$CPPFLAGS"
505         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
506         AC_TRY_RUN([
507 #include <unistd.h>
508 main () {
509 #if _LFS64_LARGEFILE == 1
510 exit(0);
511 #else
512 exit(1);
513 #endif
514 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
515         CPPFLAGS="$old_CPPFLAGS"
516         if test x$SINIX_LFS_SUPPORT = xyes ; then
517           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
518                   AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
519           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
520           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
521           LIBS="`getconf LFS64_LIBS` $LIBS"
522         fi
523       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
524       fi
525     ;;
527 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
529     *linux*)
530         AC_MSG_CHECKING([for LFS support])
531         old_CPPFLAGS="$CPPFLAGS"
532         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
533        AC_TRY_RUN([
534 #include <unistd.h>
535 #include <sys/utsname.h>
536 #include <string.h>
537 #include <stdlib.h>
538 main() {
539 #if _LFS64_LARGEFILE == 1
540        struct utsname uts;
541        char *release;
542        int major, minor;
544        /* Ensure this is glibc 2.2 or higher */
545 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
546        int libc_major = __GLIBC__;
547        int libc_minor = __GLIBC_MINOR__;
549        if (libc_major < 2)
550               exit(1);
551        if (libc_minor < 2)
552               exit(1);
553 #endif
555        /* Ensure this is kernel 2.4 or higher */
557        uname(&uts);
558        release = strdup(uts.release);
559        major = atoi(strsep(&release, "."));
560        minor = atoi(strsep(&release, "."));
562        if (major > 2 || (major == 2 && minor > 3))
563                exit(0);
564        exit(1);
565 #else
566        exit(1);
567 #endif
569 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
570         CPPFLAGS="$old_CPPFLAGS"
571         if test x$LINUX_LFS_SUPPORT = xyes ; then
572                 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
573                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
574                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
575                 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
576         fi
577         AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
578         ;;
581 # MacOS X is the *only* system that uses compose character in utf8. This
582 # is so horribly broken....
584     *darwin*)
585         AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
586 # Add Fink directories for various packages, like dlcompat.
587 # Note: iconv does that explicitly below, but other packages
588 # don't.
589         CPPFLAGS="$CPPFLAGS -I/sw/include"
590         LDFLAGS="$LDFLAGS -L/sw/lib"
592 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
593 # use that instead of plain dlsym.
595         AC_CHECK_LIB(dl,dlopen)
596         AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
598 # Add a system specific charset module.
600         default_shared_modules="$default_shared_modules charset_macosxfs"
601         ;;
602     *hurd*)
603         AC_MSG_CHECKING([for LFS support])
604         old_CPPFLAGS="$CPPFLAGS"
605         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
606         AC_TRY_RUN([
607 #include <unistd.h>
608 main () {
609 #if _LFS64_LARGEFILE == 1
610 exit(0);
611 #else
612 exit(1);
613 #endif
614 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
615         CPPFLAGS="$old_CPPFLAGS"
616         if test x$GLIBC_LFS_SUPPORT = xyes ; then
617           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
618                   AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
619           AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
620         fi
621       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
622     ;;
624 esac
626 AC_INLINE
627 AC_HEADER_STDC
628 AC_HEADER_DIRENT
629 AC_HEADER_TIME
630 AC_HEADER_SYS_WAIT
631 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
632 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
633 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
634 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
635 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
636 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
637 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
638 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h)
639 AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
640 AC_CHECK_HEADERS(langinfo.h locale.h)
642 # Look for Darwin headers
643 old_CPPFLAGS="$CPPFLAGS"
644 CPPFLAGS="-Iinclude $CPPFLAGS"
645 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
646 CPPFLAGS="$old_CPPFLAGS"
648 # In valgrind 1.0.x, it's just valgrind.h.  In 1.9.x+ there's a
649 # subdirectory of headers.
650 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
653 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
654 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
656 case "$host_os" in
657     *hpux*)
658                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
659                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
660                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
661                    AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
662                 fi
663         ;;
664 esac
665 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
666 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
667 AC_CHECK_HEADERS(stropts.h poll.h)
668 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
669 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/cdefs.h glob.h)
671 # For experimental utmp support (lastlog on some BSD-like systems)
672 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
674 AC_CHECK_SIZEOF(int,cross)
675 AC_CHECK_SIZEOF(long,cross)
676 AC_CHECK_SIZEOF(short,cross)
678 AC_C_CONST
679 AC_C_INLINE
680 AC_C_BIGENDIAN
681 AC_C_CHAR_UNSIGNED
683 AC_TYPE_SIGNAL
684 AC_TYPE_UID_T
685 AC_TYPE_MODE_T
686 AC_TYPE_OFF_T
687 AC_TYPE_SIZE_T
688 AC_TYPE_PID_T
689 AC_STRUCT_ST_RDEV
690 AC_DIRENT_D_OFF
691 AC_CHECK_TYPE(ino_t,unsigned)
692 AC_CHECK_TYPE(loff_t,off_t)
693 AC_CHECK_TYPE(offset_t,loff_t)
694 AC_CHECK_TYPE(ssize_t, int)
695 AC_CHECK_TYPE(wchar_t, unsigned short)
697 ############################################
698 # for cups support we need libcups, and a handful of header files
700 AC_ARG_ENABLE(cups,
701 [  --enable-cups           Turn on CUPS support (default=auto)])
703 if test x$enable_cups != xno; then
704         AC_PATH_PROG(CUPS_CONFIG, cups-config)
706         if test "x$CUPS_CONFIG" != x; then
707                         AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
708                 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
709                 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
710                 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
711         fi
714 ############################################
715 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
716 AC_SEARCH_LIBS(dlopen, [dl])
717 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
719 ############################################
720 # check if the compiler can do immediate structures
721 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
722     AC_TRY_COMPILE([
723 #include <stdio.h>],
725    typedef struct {unsigned x;} FOOBAR;
726    #define X_FOOBAR(x) ((FOOBAR) { x })
727    #define FOO_ONE X_FOOBAR(1)
728    FOOBAR f = FOO_ONE;   
729    static struct {
730         FOOBAR y; 
731         } f2[] = {
732                 {FOO_ONE}
733         };   
735         samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
736 if test x"$samba_cv_immediate_structures" = x"yes"; then
737    AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
740 ############################################
741 # check if the compiler can do immediate structures
742 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
743     AC_TRY_LINK([
744 #include <stdio.h>],
746                 if (0) {
747                    this_function_does_not_exist();
748                 } else {
749                   return 1;
750                 }
753         samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
754 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
755    AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
758 ############################################
759 # check for unix domain sockets
760 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
761     AC_TRY_COMPILE([
762 #include <sys/types.h>
763 #include <stdlib.h>
764 #include <stddef.h>
765 #include <sys/socket.h>
766 #include <sys/un.h>],
768   struct sockaddr_un sunaddr; 
769   sunaddr.sun_family = AF_UNIX;
771         samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
772 if test x"$samba_cv_unixsocket" = x"yes"; then
773    AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
777 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
778     AC_TRY_COMPILE([
779 #include <sys/types.h>
780 #if STDC_HEADERS
781 #include <stdlib.h>
782 #include <stddef.h>
783 #endif
784 #include <sys/socket.h>],[socklen_t i = 0],
785         samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
786 if test x"$samba_cv_socklen_t" = x"yes"; then
787    AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
790 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
791     AC_TRY_COMPILE([
792 #include <sys/types.h>
793 #if STDC_HEADERS
794 #include <stdlib.h>
795 #include <stddef.h>
796 #endif
797 #include <signal.h>],[sig_atomic_t i = 0],
798         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
799 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
800    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
803 # stupid headers have the functions but no declaration. grrrr.
804 AC_HAVE_DECL(errno, [#include <errno.h>])
805 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
806 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
807 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
808 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
809 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
810 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
812 # and glibc has setresuid under linux but the function does
813 # nothing until kernel 2.1.44! very dumb.
814 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
815     AC_TRY_RUN([#include <errno.h>
816 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
817         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
818 if test x"$samba_cv_have_setresuid" = x"yes"; then
819     AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
822 # Do the same check for setresguid...
824 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
825     AC_TRY_RUN([#include <unistd.h>
826 #include <errno.h>
827 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
828         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
829 if test x"$samba_cv_have_setresgid" = x"yes"; then
830     AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
833 AC_FUNC_MEMCMP
835 ###############################################
836 # Readline included by default unless explicitly asked not to
837 test "${with_readline+set}" != "set" && with_readline=yes
839 # test for where we get readline() from
840 AC_MSG_CHECKING(whether to use readline)
841 AC_ARG_WITH(readline,
842 [  --with-readline[=DIR]     Look for readline include/libs in DIR (default=auto) ],
843 [  case "$with_readline" in
844   yes)
845     AC_MSG_RESULT(yes)
847     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
848     AC_CHECK_HEADERS(readline/history.h)
850     AC_CHECK_HEADERS(readline.h readline/readline.h,[
851       for termlib in ncurses curses termcap terminfo termlib tinfo; do
852        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
853       done
854       AC_CHECK_LIB(readline, rl_callback_handler_install,
855        [TERMLIBS="-lreadline $TERMLIBS"
856        AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
857        break], [TERMLIBS=], $TERMLIBS)])
858     ;;
859   no)
860     AC_MSG_RESULT(no)
861     ;;
862   *)
863     AC_MSG_RESULT(yes)
865     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
866     # alternate readline path
867     _ldflags=${LDFLAGS}
868     _cppflags=${CPPFLAGS}
870     # Add additional search path
871     LDFLAGS="-L$with_readline/lib $LDFLAGS"
872     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
874     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
875     AC_CHECK_HEADERS(readline/history.h)
877     AC_CHECK_HEADERS(readline.h readline/readline.h,[
878       for termlib in ncurses curses termcap terminfo termlib; do
879        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
880       done
881       AC_CHECK_LIB(readline, rl_callback_handler_install,
882        [TERMLDFLAGS="-L$with_readline/lib"
883        TERMCPPFLAGS="-I$with_readline/include"
884        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
885        TERMLIBS="-lreadline $TERMLIBS"
886        AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
887        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
889     LDFLAGS=$_ldflags
890     ;;
891   esac],
892   AC_MSG_RESULT(no)
894 AC_SUBST(TERMLIBS)
895 AC_SUBST(TERMLDFLAGS)
897 # The readline API changed slightly from readline3 to readline4, so
898 # code will generate warnings on one of them unless we have a few
899 # special cases.
900 AC_CHECK_LIB(readline, rl_completion_matches,
901              [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, 
902                         [Do we have rl_completion_matches?])],
903              [],
904              [$TERMLIBS])
906 # The following test taken from the cvs sources
907 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
908 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
909 # libsocket.so which has a bad implementation of gethostbyname (it
910 # only looks in /etc/hosts), so we only look for -lsocket if we need
911 # it.
912 AC_CHECK_FUNCS(connect)
913 if test x"$ac_cv_func_connect" = x"no"; then
914     case "$LIBS" in
915     *-lnsl*) ;;
916     *) AC_CHECK_LIB(nsl_s, printf) ;;
917     esac
918     case "$LIBS" in
919     *-lnsl*) ;;
920     *) AC_CHECK_LIB(nsl, printf) ;;
921     esac
922     case "$LIBS" in
923     *-lsocket*) ;;
924     *) AC_CHECK_LIB(socket, connect) ;;
925     esac
926     case "$LIBS" in
927     *-linet*) ;;
928     *) AC_CHECK_LIB(inet, connect) ;;
929     esac
930     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
931     dnl has been cached.
932     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
933        test x"$ac_cv_lib_inet_connect" = x"yes"; then
934         # ac_cv_func_connect=yes
935         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
936         AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
937     fi
940 ###############################################
941 # test for where we get yp_get_default_domain() from
942 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
943 AC_CHECK_FUNCS(yp_get_default_domain)
945 # Check if we have execl, if not we need to compile smbrun.
946 AC_CHECK_FUNCS(execl)
947 if test x"$ac_cv_func_execl" = x"no"; then
948     EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
951 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
952 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
953 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
954 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
955 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
956 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
957 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
958 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
959 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
960 AC_CHECK_FUNCS(syslog vsyslog timegm)
961 AC_CHECK_FUNCS(setlocale nl_langinfo)
962 # setbuffer, shmget, shm_open are needed for smbtorture
963 AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
964 AC_CHECK_HEADERS(libexc.h)
965 AC_CHECK_LIB(exc, trace_back_stack)
967 # syscall() is needed for smbwrapper.
968 AC_CHECK_FUNCS(syscall)
970 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
971 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
972 AC_CHECK_FUNCS(__getcwd _getcwd)
973 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
974 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
975 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
976 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
977 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
978 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
979 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
980 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
981 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
982 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
983 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
988 case "$host_os" in
989     *linux*)
990        # glibc <= 2.3.2 has a broken getgrouplist
991        AC_TRY_RUN([
992 #include <unistd.h>
993 #include <sys/utsname.h>
994 main() {
995        /* glibc up to 2.3 has a broken getgrouplist */
996 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
997        int libc_major = __GLIBC__;
998        int libc_minor = __GLIBC_MINOR__;
1000        if (libc_major < 2)
1001               exit(1);
1002        if ((libc_major == 2) && (libc_minor <= 3))
1003               exit(1);
1004 #endif
1005        exit(0);
1007 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1008        if test x"$linux_getgrouplist_ok" = x"yes"; then
1009           AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1010        fi
1011        ;;
1012     *)
1013        AC_CHECK_FUNCS(getgrouplist)
1014        ;;
1015 esac
1018 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1021 if test x$ac_cv_func_stat64 = xno ; then
1022   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1023   AC_TRY_LINK([
1024 #if defined(HAVE_UNISTD_H)
1025 #include <unistd.h>
1026 #endif
1027 #include <sys/stat.h>
1028 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1029   AC_MSG_RESULT([$ac_cv_func_stat64])
1030   if test x$ac_cv_func_stat64 = xyes ; then
1031     AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1032   fi
1035 if test x$ac_cv_func_lstat64 = xno ; then
1036   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1037   AC_TRY_LINK([
1038 #if defined(HAVE_UNISTD_H)
1039 #include <unistd.h>
1040 #endif
1041 #include <sys/stat.h>
1042 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1043   AC_MSG_RESULT([$ac_cv_func_lstat64])
1044   if test x$ac_cv_func_lstat64 = xyes ; then
1045     AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1046   fi
1049 if test x$ac_cv_func_fstat64 = xno ; then
1050   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1051   AC_TRY_LINK([
1052 #if defined(HAVE_UNISTD_H)
1053 #include <unistd.h>
1054 #endif
1055 #include <sys/stat.h>
1056 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1057   AC_MSG_RESULT([$ac_cv_func_fstat64])
1058   if test x$ac_cv_func_fstat64 = xyes ; then
1059     AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1060   fi
1063 #####################################
1064 # we might need the resolv library on some systems
1065 AC_CHECK_LIB(resolv, dn_expand)
1068 # Check for the functions putprpwnam, set_auth_parameters,
1069 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1070 # Needed for OSF1 and HPUX.
1073 AC_LIBTESTFUNC(security, putprpwnam)
1074 AC_LIBTESTFUNC(sec, putprpwnam)
1076 AC_LIBTESTFUNC(security, set_auth_parameters)
1077 AC_LIBTESTFUNC(sec, set_auth_parameters)
1079 # UnixWare 7.x has its getspnam in -lgen
1080 AC_LIBTESTFUNC(gen, getspnam)
1082 AC_LIBTESTFUNC(security, getspnam)
1083 AC_LIBTESTFUNC(sec, getspnam)
1085 AC_LIBTESTFUNC(security, bigcrypt)
1086 AC_LIBTESTFUNC(sec, bigcrypt)
1088 AC_LIBTESTFUNC(security, getprpwnam)
1089 AC_LIBTESTFUNC(sec, getprpwnam)
1091 ############################################
1092 # Check if we have libattr
1093 AC_SEARCH_LIBS(getxattr, [attr])
1094 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1095 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1096 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1097 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1098 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1100 # Assume non-shared by default and override below
1101 BLDSHARED="false"
1103 # these are the defaults, good for lots of systems
1104 HOST_OS="$host_os"
1105 LDSHFLAGS="-shared"
1106 SONAMEFLAG="#"
1107 SHLD="\${CC} \${CFLAGS}"
1108 PICFLAGS=""
1109 PICSUFFIX="po"
1110 SHLIBEXT="so"
1112 if test "$enable_shared" = "yes"; then
1113   # this bit needs to be modified for each OS that is suported by
1114   # smbwrapper. You need to specify how to created a shared library and
1115   # how to compile C code to produce PIC object files
1117   AC_MSG_CHECKING([ability to build shared libraries])
1119   # and these are for particular systems
1120   case "$host_os" in
1121                 *linux*)   AC_DEFINE(LINUX,1,[Whether the host os is linux])
1122                         BLDSHARED="true"
1123                         LDSHFLAGS="-shared" 
1124                         DYNEXP="-Wl,--export-dynamic"
1125                         PICFLAGS="-fPIC"
1126                         SONAMEFLAG="-Wl,-soname="
1127                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1128                         ;;
1129                 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1130                         BLDSHARED="true"
1131                         LDSHFLAGS="-G"
1132                         SONAMEFLAG="-h "
1133                         if test "${GCC}" = "yes"; then
1134                                 PICFLAGS="-fPIC"
1135                                 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1136                                         DYNEXP="-Wl,-E"
1137                                 fi
1138                         else
1139                                 PICFLAGS="-KPIC"
1140                                 ## ${CFLAGS} added for building 64-bit shared 
1141                                 ## libs using Sun's Compiler
1142                                 LDSHFLAGS="-G \${CFLAGS}"
1143                                 PICSUFFIX="po.o"
1144                         fi
1145                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1146                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1147                         ;;
1148                 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1149                         BLDSHARED="true"
1150                         LDSHFLAGS="-G"
1151                         SONAMEFLAG="-Wl,-h,"
1152                         PICFLAGS="-KPIC"   # Is this correct for SunOS
1153                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1154                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1155                         ;;
1156                 *netbsd* | *freebsd*)  BLDSHARED="true"
1157                         LDSHFLAGS="-shared"
1158                         DYNEXP="-Wl,--export-dynamic"
1159                         SONAMEFLAG="-Wl,-soname,"
1160                         PICFLAGS="-fPIC -DPIC"
1161                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1162                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1163                         ;;
1164                 *openbsd*)  BLDSHARED="true"
1165                         LDSHFLAGS="-shared"
1166                         DYNEXP="-Wl,-Bdynamic"
1167                         SONAMEFLAG="-Wl,-soname,"
1168                         PICFLAGS="-fPIC"
1169                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1170                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1171                         ;;
1172                 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1173                         case "$host_os" in
1174                         *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1175                         ;;
1176                         esac
1177                         BLDSHARED="true"
1178                         LDSHFLAGS="-set_version sgi1.0 -shared"
1179                         SONAMEFLAG="-soname "
1180                         SHLD="\${LD}"
1181                         if test "${GCC}" = "yes"; then
1182                                 PICFLAGS="-fPIC"
1183                         else 
1184                                 PICFLAGS="-KPIC"
1185                         fi
1186                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1187                         ;;
1188                 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1189                         BLDSHARED="true"
1190                         LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
1191                         DYNEXP="-Wl,-brtl,-bexpall"
1192                         PICFLAGS="-O2"
1193                         if test "${GCC}" != "yes"; then
1194                                 ## for funky AIX compiler using strncpy()
1195                                 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1196                         fi
1198                         AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1199                         ;;
1200                 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1201                         SHLIBEXT="sl"
1202                         # Use special PIC flags for the native HP-UX compiler.
1203                         if test $ac_cv_prog_cc_Ae = yes; then
1204                                 BLDSHARED="true"
1205                                 SHLD="/usr/bin/ld"
1206                                 LDSHFLAGS="-B symbolic -b -z"
1207                                 SONAMEFLAG="+h "
1208                                 PICFLAGS="+z"
1209                         elif test "${GCC}" = "yes"; then
1210                                 PICFLAGS="-fPIC"
1211                         fi
1212                         DYNEXP="-Wl,-E"
1213                         AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1214                         AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1215                         ;;
1216                 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1217                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1218                         ;;
1219                 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1220                         BLDSHARED="true"
1221                         LDSHFLAGS="-shared"
1222                         SONAMEFLAG="-Wl,-soname,"
1223                         PICFLAGS="-fPIC"
1224                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1225                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1226                         ;;
1227                 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1228                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1229                         ;;
1230                 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1231                         BLDSHARED="true"
1232                         LDSHFLAGS="-shared"
1233                         SONAMEFLAG="-Wl,-soname,"
1234                         PICFLAGS="-KPIC"
1235                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1236                         ;;
1237                 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1238                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1239                         ;;
1240                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1241                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1242                         ;;
1243                 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1244                         case "$host" in
1245                                 *-univel-*)     if [ test "$GCC" != yes ]; then
1246                                                 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1247                                         fi
1248                                         LDSHFLAGS="-G"
1249                                         DYNEXP="-Bexport"
1250                                 ;;
1251                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1252                         esac
1253                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1254                         ;;
1256                 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1257                         if [ test "$GCC" != yes ]; then
1258                                 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1259                         fi
1260                         LDSHFLAGS="-G"
1261                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1262                         ;;
1263                 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1264                         BLDSHARED="false"
1265                         LDSHFLAGS=""
1266                         ;;
1268                 *darwin*)   AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1269                         BLDSHARED="true"
1270                         LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1271                         SHLIBEXT="dylib"
1272                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1273                         ;;
1275                 *)
1276                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1277                         ;;
1278   esac
1279   AC_SUBST(DYNEXP)
1280   AC_MSG_RESULT($BLDSHARED)
1281   AC_MSG_CHECKING([linker flags for shared libraries])
1282   AC_MSG_RESULT([$LDSHFLAGS])
1283   AC_MSG_CHECKING([compiler flags for position-independent code])
1284   AC_MSG_RESULT([$PICFLAGS])
1287 #######################################################
1288 # test whether building a shared library actually works
1289 if test $BLDSHARED = true; then
1290 AC_CACHE_CHECK([whether building shared libraries actually works], 
1291                [ac_cv_shlib_works],[
1292    ac_cv_shlib_works=no
1293    # try building a trivial shared library
1294    $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1295         shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1296         $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1297         shlib.$PICSUFFIX && \
1298         ac_cv_shlib_works=yes
1299    rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1301 if test $ac_cv_shlib_works = no; then
1302    BLDSHARED=false
1306 ################
1308 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1309 AC_TRY_RUN([#include <stdio.h>
1310 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1311 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1312 if test x"$samba_cv_have_longlong" = x"yes"; then
1313     AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1317 # Check if the compiler supports the LL prefix on long long integers.
1318 # AIX needs this.
1320 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1321     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1322         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1323 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1324    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1327   
1328 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1329 AC_TRY_RUN([#include <stdio.h>
1330 #include <sys/stat.h>
1331 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1332 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1333 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1334     AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1337 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1338 AC_TRY_RUN([
1339 #if defined(HAVE_UNISTD_H)
1340 #include <unistd.h>
1341 #endif
1342 #include <stdio.h>
1343 #include <sys/stat.h>
1344 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1345 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1346 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1347     AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1350 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1351 AC_TRY_RUN([#include <stdio.h>
1352 #include <sys/stat.h>
1353 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1354 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1355 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1356     AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1359 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1360 AC_TRY_RUN([
1361 #if defined(HAVE_UNISTD_H)
1362 #include <unistd.h>
1363 #endif
1364 #include <stdio.h>
1365 #include <sys/stat.h>
1366 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1367 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1368 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1369     AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1372 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1373 AC_TRY_RUN([
1374 #if defined(HAVE_UNISTD_H)
1375 #include <unistd.h>
1376 #endif
1377 #include <stdio.h>
1378 #include <sys/stat.h>
1379 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1380 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1381 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1382     AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1385 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1386 AC_TRY_COMPILE([
1387 #if defined(HAVE_UNISTD_H)
1388 #include <unistd.h>
1389 #endif
1390 #include <sys/types.h>
1391 #include <dirent.h>],
1392 [struct dirent64 de;],
1393 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1394 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1395     AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1398 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1399 AC_TRY_RUN([
1400 #if defined(HAVE_UNISTD_H)
1401 #include <unistd.h>
1402 #endif
1403 #include <sys/types.h>
1404 main() { dev_t dev; int i = major(dev); return 0; }],
1405 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1406 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1407     AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1410 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1411 AC_TRY_RUN([
1412 #if defined(HAVE_UNISTD_H)
1413 #include <unistd.h>
1414 #endif
1415 #include <sys/types.h>
1416 main() { dev_t dev; int i = minor(dev); return 0; }],
1417 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1418 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1419     AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1422 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1423 AC_TRY_RUN([#include <stdio.h>
1424 main() { char c; c=250; exit((c > 0)?0:1); }],
1425 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1426 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1427     AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1430 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1431 AC_TRY_COMPILE([#include <sys/types.h>
1432 #include <sys/socket.h>
1433 #include <netinet/in.h>],
1434 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1435 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1436 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1437     AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1440 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1441 AC_TRY_COMPILE([#include <sys/types.h>
1442 #include <dirent.h>
1443 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1444 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1445 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1446     AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1449 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1450 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1451 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1452 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1453     AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1456 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1457 AC_TRY_RUN([
1458 #include <sys/time.h>
1459 #include <unistd.h>
1460 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1461            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1462 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1463     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1466 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
1467 AC_TRY_LINK([#include <stdarg.h>
1468 va_list ap1,ap2;], [va_copy(ap1,ap2);],
1469 samba_cv_HAVE_VA_COPY=yes,
1470 samba_cv_HAVE_VA_COPY=no)])
1471 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1472     AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
1473 else
1474     AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
1475     AC_TRY_LINK([#include <stdarg.h>
1476     va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1477     samba_cv_HAVE___VA_COPY=yes,
1478     samba_cv_HAVE___VA_COPY=no)])
1479     if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
1480         AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
1481     fi
1484 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1485 AC_TRY_RUN([
1486 #include <sys/types.h>
1487 #include <stdarg.h>
1488 void foo(const char *format, ...) { 
1489        va_list ap;
1490        int len;
1491        char buf[5];
1493        va_start(ap, format);
1494        len = vsnprintf(buf, 0, format, ap);
1495        va_end(ap);
1496        if (len != 5) exit(1);
1498        va_start(ap, format);
1499        len = vsnprintf(0, 0, format, ap);
1500        va_end(ap);
1501        if (len != 5) exit(1);
1503        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1505        exit(0);
1507 main() { foo("hello"); }
1509 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1510 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1511     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1514 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1515 AC_TRY_RUN([#include <sys/types.h>
1516 #include <dirent.h>
1517 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1518 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1519 di->d_name[0] == 0) exit(0); exit(1);} ],
1520 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1521 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1522     AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1525 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1526 AC_TRY_COMPILE([#include <sys/types.h>
1527 #include <utime.h>],
1528 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1529 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1530 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1531     AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1534 ##############
1535 # Check utmp details, but only if our OS offers utmp.h
1536 if test x"$ac_cv_header_utmp_h" = x"yes"; then
1537 dnl  utmp and utmpx come in many flavours
1538 dnl  We need to check for many of them
1539 dnl  But we don't need to do each and every one, because our code uses
1540 dnl  mostly just the utmp (not utmpx) fields.
1542 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1544 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1545 AC_TRY_COMPILE([#include <sys/types.h>
1546 #include <utmp.h>],
1547 [struct utmp ut;  ut.ut_name[0] = 'a';],
1548 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1549 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1550     AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1551 fi 
1553 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1554 AC_TRY_COMPILE([#include <sys/types.h>
1555 #include <utmp.h>],
1556 [struct utmp ut;  ut.ut_user[0] = 'a';],
1557 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1558 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1559     AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1560 fi 
1562 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1563 AC_TRY_COMPILE([#include <sys/types.h>
1564 #include <utmp.h>],
1565 [struct utmp ut;  ut.ut_id[0] = 'a';],
1566 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1567 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1568     AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1569 fi 
1571 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1572 AC_TRY_COMPILE([#include <sys/types.h>
1573 #include <utmp.h>],
1574 [struct utmp ut;  ut.ut_host[0] = 'a';],
1575 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1576 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1577     AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1578 fi 
1580 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1581 AC_TRY_COMPILE([#include <sys/types.h>
1582 #include <utmp.h>],
1583 [struct utmp ut;  time_t t; ut.ut_time = t;],
1584 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1585 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1586     AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1587 fi 
1589 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1590 AC_TRY_COMPILE([#include <sys/types.h>
1591 #include <utmp.h>],
1592 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
1593 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1594 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1595     AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1596 fi 
1598 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1599 AC_TRY_COMPILE([#include <sys/types.h>
1600 #include <utmp.h>],
1601 [struct utmp ut;  ut.ut_type = 0;],
1602 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1603 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1604     AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1605 fi 
1607 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1608 AC_TRY_COMPILE([#include <sys/types.h>
1609 #include <utmp.h>],
1610 [struct utmp ut;  ut.ut_pid = 0;],
1611 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1612 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1613     AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1614 fi 
1616 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1617 AC_TRY_COMPILE([#include <sys/types.h>
1618 #include <utmp.h>],
1619 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
1620 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1621 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1622     AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1623 fi 
1625 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1626 AC_TRY_COMPILE([#include <sys/types.h>
1627 #include <utmp.h>],
1628 [struct utmp ut;  ut.ut_addr = 0;],
1629 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1630 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1631     AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1632 fi 
1634 if test x$ac_cv_func_pututline = xyes ; then
1635   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1636   AC_TRY_COMPILE([#include <sys/types.h>
1637 #include <utmp.h>],
1638   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1639   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1640   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1641       AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1642   fi
1645 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1646 AC_TRY_COMPILE([#include <sys/types.h>
1647 #include <utmpx.h>],
1648 [struct utmpx ux;  ux.ut_syslen = 0;],
1649 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1650 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1651     AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1652 fi 
1655 # end utmp details
1658 ICONV_LOCATION=standard
1659 LOOK_DIRS="/usr /usr/local /sw"
1660 AC_ARG_WITH(libiconv,
1661 [  --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1663   if test "$withval" = "no" ; then
1664     AC_MSG_ERROR([argument to --with-libiconv must be a directory])
1665   else
1666      if test "$withval" != "yes" ; then
1667         ICONV_PATH_SPEC=yes
1668         LOOK_DIRS="$withval"
1669      fi
1670   fi
1673 ICONV_FOUND="no"
1674 for i in $LOOK_DIRS ; do
1675     save_LIBS=$LIBS
1676     save_LDFLAGS=$LDFLAGS
1677     save_CPPFLAGS=$CPPFLAGS
1678     CPPFLAGS="$CPPFLAGS -I$i/include"
1679 dnl This is here to handle -withval stuff for --with-libiconv
1680 dnl Perhaps we should always add a -L
1681     LDFLAGS="$LDFLAGS -L$i/lib"
1682     LIBS=
1683     export LDFLAGS LIBS CPPFLAGS
1684 dnl Try to find iconv(3)
1685     jm_ICONV($i)
1687     if test "$ICONV_FOUND" = yes; then
1688         LDFLAGS=$save_LDFLAGS
1689         LIB_ADD_DIR(LDFLAGS, "$i/lib")
1690         CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1691         LIBS="$save_LIBS"
1692         ICONV_LOCATION=$i
1693         export LDFLAGS LIBS CPPFLAGS
1694 dnl Now, check for a working iconv ... we want to do it here because
1695 dnl there might be a working iconv further down the list of LOOK_DIRS
1697         ############
1698         # check for iconv in libc
1699         ic_save_LIBS="$LIBS"
1700         if test x"$ICONV_PATH_SPEC" = "xyes" ; then
1701            LIBS="$LIBS -L$ICONV_LOCATION/lib"
1702         fi
1703         if test x"$jm_cv_lib_iconv" != x; then
1704            LIBS="$LIBS -l$jm_cv_lib_iconv"
1705         fi
1706 dnl        AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1707         default_dos_charset=no
1708         default_display_charset=no
1709         default_unix_charset=no
1711         # check for default dos charset name
1712         for j in CP850 IBM850 ; do
1713             rjs_CHARSET($j)
1714             if test x"$ICONV_CHARSET" = x"$j"; then
1715                 default_dos_charset="\"$j\""
1716                 break
1717             fi
1718         done
1719         # check for default display charset name
1720         for j in ASCII 646 ; do
1721             rjs_CHARSET($j)
1722             if test x"$ICONV_CHARSET" = x"$j"; then
1723                 default_display_charset="\"$j\""
1724                 break
1725             fi
1726         done
1727         # check for default unix charset name
1728         for j in UTF-8 UTF8 ; do
1729             rjs_CHARSET($j)
1730             if test x"$ICONV_CHARSET" = x"$j"; then
1731                 default_unix_charset="\"$j\""
1732                 break
1733             fi
1734         done
1735         
1736         if test "$default_dos_charset" != "no" -a \
1737                 "$default_dos_charset" != "cross" -a \
1738                 "$default_display_charset" != "no" -a \ 
1739                 "$default_display_charset" != "cross" -a \
1740                 "$default_unix_charset" != "no" -a \
1741                 "$default_unix_charset" != "cross"
1742         then
1743                 samba_cv_HAVE_NATIVE_ICONV=yes
1744         else if test "$default_dos_charset" = "cross" -o \
1745                      "$default_display_charset" = "cross" -o \
1746                      "$default_unix_charset" = "cross"
1747         then
1748                 samba_cv_HAVE_NATIVE_ICONV=cross
1749         else
1750                 samba_cv_HAVE_NATIVE_ICONV=no
1751         fi
1752         fi
1753 dnl ])
1755         LIBS="$ic_save_LIBS"
1756         if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1757            CPPFLAGS=$save_CPPFLAGS
1758            LDFLAGS=$save_LDFLAGS
1759            LIBS=$save_LIBS
1760            if test x"$jm_cv_lib_iconv" != x; then
1761               LIBS="$LIBS -l$jm_cv_lib_iconv"
1762            fi
1763            dnl Add the flags we need to CPPFLAGS and LDFLAGS
1764            CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1765            LIB_ADD_DIR(LDFLAGS, "$i/lib")
1766            export CPPFLAGS
1767            AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1768            AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
1769            AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
1770            AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
1771            break
1772         fi
1773 dnl We didn't find a working iconv, so keep going
1774     fi
1775 dnl We only need to clean these up here for the next pass through the loop
1776     CPPFLAGS=$save_CPPFLAGS
1777     LDFLAGS=$save_LDFLAGS
1778     LIBS=$save_LIBS
1779     export LDFLAGS LIBS CPPFLAGS
1780 done
1783 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1784     AC_MSG_WARN([Sufficient support for iconv function was not found. 
1785     Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1786    AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
1787    AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
1788    AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
1792 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1793 AC_TRY_RUN([
1794 #include <sys/types.h>
1795 #include <fcntl.h>
1796 #ifndef F_GETLEASE
1797 #define F_GETLEASE      1025
1798 #endif
1799 main() {
1800        int fd = open("/dev/null", O_RDONLY);
1801        return fcntl(fd, F_GETLEASE, 0) == -1;
1804 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1805 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1806     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1809 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1810 AC_TRY_RUN([
1811 #include <sys/types.h>
1812 #include <fcntl.h>
1813 #include <signal.h>
1814 #ifndef F_NOTIFY
1815 #define F_NOTIFY 1026
1816 #endif
1817 main() {
1818         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
1821 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1822 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1823     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1826 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1827 AC_TRY_RUN([
1828 #include <sys/types.h>
1829 #include <fcntl.h>
1830 #include <signal.h>
1831 #include <sys/file.h>
1832 #ifndef LOCK_MAND
1833 #define LOCK_MAND       32
1834 #define LOCK_READ       64
1835 #endif
1836 main() {
1837         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1840 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1841 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1842     AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1848 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1849 AC_TRY_COMPILE([#include <sys/types.h>
1850 #include <fcntl.h>],
1851 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1852 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1853 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1854     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1857 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1858 AC_TRY_RUN([#include <sys/types.h>
1859 #include <sys/capability.h>
1860 main() {
1861  cap_t cap;
1862  if ((cap = cap_get_proc()) == NULL)
1863    exit(1);
1864  cap->cap_effective |= CAP_NETWORK_MGT;
1865  cap->cap_inheritable |= CAP_NETWORK_MGT;
1866  cap_set_proc(cap);
1867  exit(0);
1870 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1871 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1872     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1876 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1877 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1880 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1881 AC_TRY_COMPILE([#include <sys/types.h>
1882 #if defined(HAVE_RPC_RPC_H)
1883 #include <rpc/rpc.h>
1884 #endif],
1885 [int16 testvar;],
1886 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1887 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1888     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1891 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1892 AC_TRY_COMPILE([#include <sys/types.h>
1893 #if defined(HAVE_RPC_RPC_H)
1894 #include <rpc/rpc.h>
1895 #endif],
1896 [uint16 testvar;],
1897 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1898 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1899     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1902 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1903 AC_TRY_COMPILE([#include <sys/types.h>
1904 #if defined(HAVE_RPC_RPC_H)
1905 #include <rpc/rpc.h>
1906 #endif],
1907 [int32 testvar;],
1908 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1909 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1910     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1913 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1914 AC_TRY_COMPILE([#include <sys/types.h>
1915 #if defined(HAVE_RPC_RPC_H)
1916 #include <rpc/rpc.h>
1917 #endif],
1918 [uint32 testvar;],
1919 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1920 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1921     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1925 dnl Some systems (SCO) have a problem including
1926 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1927 dnl as a #define in <prot.h> and as part of an enum
1928 dnl in <rpc/rpc.h>.
1931 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1932 AC_TRY_COMPILE([#include <sys/types.h>
1933 #ifdef HAVE_SYS_SECURITY_H
1934 #include <sys/security.h>
1935 #include <prot.h>
1936 #endif  /* HAVE_SYS_SECURITY_H */
1937 #if defined(HAVE_RPC_RPC_H)
1938 #include <rpc/rpc.h>
1939 #endif],
1940 [int testvar;],
1941 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1942 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1943     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1946 AC_MSG_CHECKING([for test routines])
1947 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1948            AC_MSG_RESULT(yes),
1949            AC_MSG_ERROR([cant find test code. Aborting config]),
1950            AC_MSG_WARN([cannot run when cross-compiling]))
1952 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1953 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1954            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1955 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1956     AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1959 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1960 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1961            samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1962            samba_cv_HAVE_WORKING_AF_LOCAL=no,
1963            samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1964 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1965 then
1966     AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1969 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1970 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1971            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1972 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1973     AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1976 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1977 SAVE_CPPFLAGS="$CPPFLAGS"
1978 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt  -I${srcdir-.}/smbwrapper"
1979 AC_TRY_COMPILE([
1980 #define REPLACE_GETPASS 1
1981 #define NO_PROTO_H 1
1982 #define NO_CONFIG_H 1
1983 #define main dont_declare_main
1984 #include "${srcdir-.}/lib/getsmbpass.c"
1985 #undef main
1986 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1987 CPPFLAGS="$SAVE_CPPFLAGS"
1989 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1990         AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1993 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1994 AC_TRY_RUN([
1995 #include <stdio.h>
1996 #include <sys/types.h>
1997 #include <netinet/in.h>
1998 #ifdef HAVE_ARPA_INET_H
1999 #include <arpa/inet.h>
2000 #endif
2001 main() { struct in_addr ip; ip.s_addr = 0x12345678;
2002 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
2003     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
2004 exit(1);}],
2005            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
2006 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
2007     AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
2010 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2011 AC_TRY_RUN([#include <stdlib.h>
2012 #include <sys/types.h>
2013 #include <sys/stat.h>
2014 #include <unistd.h>
2015 main() { 
2016   struct stat st;
2017   char tpl[20]="/tmp/test.XXXXXX"; 
2018   int fd = mkstemp(tpl); 
2019   if (fd == -1) exit(1);
2020   unlink(tpl);
2021   if (fstat(fd, &st) != 0) exit(1);
2022   if ((st.st_mode & 0777) != 0600) exit(1);
2023   exit(0);
2025 samba_cv_HAVE_SECURE_MKSTEMP=yes,
2026 samba_cv_HAVE_SECURE_MKSTEMP=no,
2027 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
2028 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2029     AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2032 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
2033 AC_TRY_RUN([#include <unistd.h>
2034 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
2035 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
2036 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
2037     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
2040 AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
2041 AC_TRY_RUN([#include <unistd.h>
2042 main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
2043 samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
2044 if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
2045     AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
2048 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2049 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2050            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2051 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2052     AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2053 else
2054     AC_MSG_WARN(running as non-root will disable some tests)
2057 ##################
2058 # look for a method of finding the list of network interfaces
2059 iface=no;
2060 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2061 AC_TRY_RUN([
2062 #define HAVE_IFACE_AIX 1
2063 #define AUTOCONF_TEST 1
2064 #include "confdefs.h"
2065 #include "${srcdir-.}/lib/interfaces.c"],
2066            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2067 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2068     iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2071 if test $iface = no; then
2072 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2073 AC_TRY_RUN([
2074 #define HAVE_IFACE_IFCONF 1
2075 #define AUTOCONF_TEST 1
2076 #include "confdefs.h"
2077 #include "${srcdir-.}/lib/interfaces.c"],
2078            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2079 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2080     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2084 if test $iface = no; then
2085 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2086 AC_TRY_RUN([
2087 #define HAVE_IFACE_IFREQ 1
2088 #define AUTOCONF_TEST 1
2089 #include "confdefs.h"
2090 #include "${srcdir-.}/lib/interfaces.c"],
2091            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2092 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2093     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2098 ################################################
2099 # look for a method of setting the effective uid
2100 seteuid=no;
2101 if test $seteuid = no; then
2102 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2103 AC_TRY_RUN([
2104 #define AUTOCONF_TEST 1
2105 #define USE_SETRESUID 1
2106 #include "confdefs.h"
2107 #include "${srcdir-.}/lib/util_sec.c"],
2108            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2109 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2110     seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2115 if test $seteuid = no; then
2116 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2117 AC_TRY_RUN([
2118 #define AUTOCONF_TEST 1
2119 #define USE_SETREUID 1
2120 #include "confdefs.h"
2121 #include "${srcdir-.}/lib/util_sec.c"],
2122            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2123 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2124     seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2128 if test $seteuid = no; then
2129 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2130 AC_TRY_RUN([
2131 #define AUTOCONF_TEST 1
2132 #define USE_SETEUID 1
2133 #include "confdefs.h"
2134 #include "${srcdir-.}/lib/util_sec.c"],
2135            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2136 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2137     seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2141 if test $seteuid = no; then
2142 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2143 AC_TRY_RUN([
2144 #define AUTOCONF_TEST 1
2145 #define USE_SETUIDX 1
2146 #include "confdefs.h"
2147 #include "${srcdir-.}/lib/util_sec.c"],
2148            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2149 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2150     seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2155 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2156 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2157            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2158 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2159     AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2162 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
2163 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
2164            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
2165 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
2166     AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
2169 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2170 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2171            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2172 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2173     AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2176 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2177 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2178            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2179 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2180     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2182 else
2185 dnl Don't check for 64 bit fcntl locking if we know that the
2186 dnl glibc2.1 broken check has succeeded.
2187 dnl 
2189   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2190   AC_TRY_RUN([
2191 #if defined(HAVE_UNISTD_H)
2192 #include <unistd.h>
2193 #endif
2194 #include <stdio.h>
2195 #include <stdlib.h>
2197 #ifdef HAVE_FCNTL_H
2198 #include <fcntl.h>
2199 #endif
2201 #ifdef HAVE_SYS_FCNTL_H
2202 #include <sys/fcntl.h>
2203 #endif
2204 main() { struct flock64 fl64;
2205 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2206 exit(0);
2207 #else
2208 exit(1);
2209 #endif
2211        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2213   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2214       AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2215   fi
2218 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2219 AC_TRY_COMPILE([#include <sys/types.h>
2220 #include <sys/stat.h>
2221 #include <unistd.h>],
2222 [struct stat st;  st.st_blocks = 0;],
2223 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2224 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2225     AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2226 fi 
2228 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2229 AC_TRY_COMPILE([#include <sys/types.h>
2230 #include <sys/stat.h>
2231 #include <unistd.h>],
2232 [struct stat st;  st.st_blksize = 0;],
2233 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2234 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2235     AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2238 case "$host_os" in
2239 *linux*)
2240 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2241 AC_TRY_COMPILE([
2242 #ifdef HAVE_SYS_VFS_H
2243 #include <sys/vfs.h>
2244 #endif
2245 #ifdef HAVE_SYS_CAPABILITY_H
2246 #include <sys/capability.h>
2247 #endif
2248 ],[int i;],
2249    samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2250 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2251    AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2254 esac
2256 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2257 AC_TRY_COMPILE([
2258 #include <sys/types.h>
2259 #include <sys/acl.h>
2260 #if defined(HAVE_RPCSVC_NIS_H)
2261 #include <rpcsvc/nis.h>
2262 #endif],
2263 [int i;],
2264 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2265 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2266         AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2270 #################################################
2271 # check for smbwrapper support
2272 AC_MSG_CHECKING(whether to use smbwrapper)
2273 AC_ARG_WITH(smbwrapper,
2274 [  --with-smbwrapper       Include SMB wrapper support (default=no) ],
2275 [ case "$withval" in
2276   yes)
2277     AC_MSG_RESULT(yes)
2278     AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2279         WRAPPROG="bin/smbsh\$(EXEEXT)"
2280         WRAP="bin/smbwrapper.$SHLIBEXT"
2282 # Conditions under which smbwrapper should not be built.
2284         if test x$PICFLAGS = x; then
2285            echo No support for PIC code - disabling smbwrapper and smbsh
2286            WRAPPROG=""
2287            WRAP=""
2288         elif test x$ac_cv_func_syscall = xno; then
2289            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2290            WRAPPROG=""
2291            WRAP=""
2292         fi
2293         EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
2294         SMBWRAPPER="$WRAPPROG $WRAP"
2295     ;;
2296   *)
2297     AC_MSG_RESULT(no)
2298     ;;
2299   esac ],
2300   AC_MSG_RESULT(no)
2303 #################################################
2304 # check for AFS clear-text auth support
2305 samba_cv_WITH_AFS=no
2306 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2307 AC_ARG_WITH(afs,
2308 [  --with-afs              Include AFS clear-text auth support (default=no) ],
2309 [ case "$withval" in
2310   yes|auto)
2311     AC_MSG_RESULT($withval)
2312     samba_cv_WITH_AFS=$withval
2313     ;;
2314   *)
2315     AC_MSG_RESULT(no)
2316     ;;
2317   esac ],
2318   AC_MSG_RESULT(no)
2321 ####################################################
2322 # check for Linux-specific AFS fake-kaserver support
2323 samba_cv_WITH_FAKE_KASERVER=no
2324 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2325 AC_ARG_WITH(fake-kaserver,
2326 [  --with-fake-kaserver    Include AFS fake-kaserver support (default=no) ],
2327 [ case "$withval" in
2328   yes|auto)
2329     AC_MSG_RESULT($withval)
2330     samba_cv_WITH_FAKE_KASERVER=$withval
2331     ;;
2332   *)
2333     AC_MSG_RESULT(no)
2334     ;;
2335   esac ],
2336   AC_MSG_RESULT(no)
2339 #################################################
2340 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2341 if test x"$samba_cv_WITH_AFS" != x"no" ||
2342    test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2344     # see if this box has the afs-headers in /usr/include/afs
2345     AC_MSG_CHECKING(for /usr/include/afs)
2346     if test -d /usr/include/afs; then
2347           CFLAGS="$CFLAGS -I/usr/include/afs"
2348           CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2349           AC_MSG_RESULT(yes)
2350     else
2351       AC_MSG_RESULT(no)
2352     fi
2353    
2354     # check for afs.h
2355     have_afs_headers=no
2356     AC_CHECK_HEADERS(afs.h afs/afs.h)
2357     if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2358         if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2359            test x"$samba_cv_WITH_AFS" = x"auto"; then
2360                 AC_MSG_WARN([AFS cannot be supported without afs.h])
2361         else
2362                 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2363         fi
2364     else
2365         have_afs_headers=yes
2366     fi
2369 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2370         AC_CHECK_LIB( crypto, DES_pcbc_encrypt, LIBS="$LIBS -lcrypto" )
2373 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" == x"yes"; then
2374     AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2376         
2377 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2378     AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2381 #################################################
2382 # check for the DFS clear-text auth system
2383 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2384 AC_ARG_WITH(dfs,
2385 [  --with-dce-dfs          Include DCE/DFS clear-text auth support (default=no)],
2386 [ case "$withval" in
2387   yes)
2388     AC_MSG_RESULT(yes)
2389     AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2390     ;;
2391   *)
2392     AC_MSG_RESULT(no)
2393     ;;
2394   esac ],
2395   AC_MSG_RESULT(no)
2398 ########################################################
2399 # Compile with LDAP support?
2401 with_ldap_support=auto
2402 AC_MSG_CHECKING([for LDAP support])
2404 AC_ARG_WITH(ldap,
2405 [  --with-ldap             LDAP support (default yes)],
2406 [ case "$withval" in
2407     yes|no)
2408         with_ldap_support=$withval
2409         ;;
2410   esac ])
2412 AC_MSG_RESULT($with_ldap_support)
2414 SMBLDAP=""
2415 AC_SUBST(SMBLDAP)
2416 if test x"$with_ldap_support" != x"no"; then
2418   ##################################################################
2419   # first test for ldap.h and lber.h
2420   # (ldap.h is required for this test)
2421   AC_CHECK_HEADERS(ldap.h lber.h)
2422   
2423   if test x"$ac_cv_header_ldap_h" != x"yes"; then
2424         if test x"$with_ldap_support" = x"yes"; then
2425          AC_MSG_ERROR(ldap.h is needed for LDAP support)
2426         else
2427          AC_MSG_WARN(ldap.h is needed for LDAP support)
2428         fi
2429         
2430         with_ldap_support=no
2431   fi
2434 if test x"$with_ldap_support" != x"no"; then
2435   ac_save_LIBS=$LIBS
2437   ##################################################################
2438   # we might need the lber lib on some systems. To avoid link errors
2439   # this test must be before the libldap test
2440   AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
2442   ########################################################
2443   # now see if we can find the ldap libs in standard paths
2444   AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
2446   AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
2447   
2448   ########################################################
2449   # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2450   # Check found in pam_ldap 145.
2451   AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
2453   LIBS="$LIBS $LDAP_LIBS"
2454   AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
2455     AC_TRY_COMPILE([
2456         #include <lber.h>
2457         #include <ldap.h>], 
2458         [ldap_set_rebind_proc(0, 0, 0);], 
2459         [smb_ldap_cv_ldap_set_rebind_proc=3], 
2460         [smb_ldap_cv_ldap_set_rebind_proc=2]
2461     ) 
2462   ])
2463   
2464   AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2466   AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS) 
2467   
2468   if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
2469     AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2470     default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2471     SMBLDAP="lib/smbldap.o"
2472     with_ldap_support=yes
2473     AC_MSG_CHECKING(whether LDAP support is used)
2474     AC_MSG_RESULT(yes)
2475   else
2476     if test x"$with_ldap_support" = x"yes"; then
2477         AC_MSG_ERROR(libldap is needed for LDAP support)
2478     else
2479         AC_MSG_WARN(libldap is needed for LDAP support)
2480     fi
2481     
2482     LDAP_LIBS=""
2483     with_ldap_support=no
2484   fi
2485   LIBS=$ac_save_LIBS
2489 #################################################
2490 # active directory support
2492 with_ads_support=auto
2493 AC_MSG_CHECKING([for Active Directory and krb5 support])
2495 AC_ARG_WITH(ads,
2496 [  --with-ads              Active Directory support (default auto)],
2497 [ case "$withval" in
2498     yes|no)
2499         with_ads_support="$withval"
2500         ;;
2501   esac ])
2503 AC_MSG_RESULT($with_ads_support)
2505 FOUND_KRB5=no
2506 KRB5_LIBS=""
2508 if test x"$with_ldap_support" != x"yes"; then
2509     if test x"$with_ads_support" = x"yes"; then
2510         AC_MSG_ERROR(Active Directory Support requires LDAP support)
2511     elif test x"$with_ads_support" != x"no"; then
2512         AC_MSG_WARN(Active Directory Support requires LDAP support)
2513     fi
2514     with_ads_support=no
2517 if test x"$with_ads_support" != x"no"; then
2519   # Do no harm to the values of CFLAGS and LIBS while testing for
2520   # Kerberos support.
2522   #################################################
2523   # check for krb5-config from recent MIT and Heimdal kerberos 5
2524   AC_PATH_PROG(KRB5_CONFIG, krb5-config)
2525   AC_MSG_CHECKING(for working krb5-config)
2526   if test -x "$KRB5_CONFIG"; then
2527     ac_save_CFLAGS=$CFLAGS
2528     CFLAGS="";export CFLAGS
2529     ac_save_LDFLAGS=$LDFLAGS
2530     LDFLAGS="";export LDFLAGS
2531     KRB5_LIBS="`$KRB5_CONFIG --libs gssapi`"
2532     KRB5_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`" 
2533     KRB5_CPPFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
2534     CFLAGS=$ac_save_CFLAGS;export CFLAGS
2535     LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
2536     FOUND_KRB5=yes
2537     AC_MSG_RESULT(yes)
2538   else
2539     AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2540   fi
2541   
2542   if test x$FOUND_KRB5 = x"no"; then
2543     #################################################
2544     # check for location of Kerberos 5 install
2545     AC_MSG_CHECKING(for kerberos 5 install path)
2546     AC_ARG_WITH(krb5,
2547     [  --with-krb5=base-dir    Locate Kerberos 5 support (default=/usr)],
2548     [ case "$withval" in
2549       no)
2550         AC_MSG_RESULT(no krb5-path given)
2551         ;;
2552       yes)
2553         AC_MSG_RESULT(/usr)
2554         FOUND_KRB5=yes
2555         ;;
2556       *)
2557         AC_MSG_RESULT($withval)
2558         KRB5_CFLAGS="-I$withval/include"
2559         KRB5_CPPFLAGS="-I$withval/include"
2560         KRB5_LDFLAGS="-L$withval/lib"
2561         FOUND_KRB5=yes
2562         ;;
2563       esac ],
2564       AC_MSG_RESULT(no krb5-path given)
2565     )
2566   fi
2568   if test x$FOUND_KRB5 = x"no"; then
2569     #################################################
2570     # see if this box has the SuSE location for the heimdal krb implementation
2571     AC_MSG_CHECKING(for /usr/include/heimdal)
2572     if test -d /usr/include/heimdal; then
2573       if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2574           KRB5_CFLAGS="-I/usr/include/heimdal"
2575           KRB5_CPPFLAGS="-I/usr/include/heimdal"
2576           KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2577           AC_MSG_RESULT(yes)
2578       else
2579           KRB5_CFLAGS="-I/usr/include/heimdal"
2580           KRB5_CPPFLAGS="-I/usr/include/heimdal"
2581           AC_MSG_RESULT(yes)
2582       fi
2583     else
2584       AC_MSG_RESULT(no)
2585     fi
2586   fi
2588   if test x$FOUND_KRB5 = x"no"; then
2589     #################################################
2590     # see if this box has the RedHat location for kerberos
2591     AC_MSG_CHECKING(for /usr/kerberos)
2592     if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2593       KRB5_LDFLAGS="-L/usr/kerberos/lib"
2594       KRB5_CFLAGS="-I/usr/kerberos/include"
2595       KRB5_CPPFLAGS="-I/usr/kerberos/include"
2596       AC_MSG_RESULT(yes)
2597     else
2598       AC_MSG_RESULT(no)
2599     fi
2600   fi
2602   ac_save_CFLAGS=$CFLAGS
2603   ac_save_CPPFLAGS=$CPPFLAGS
2604   ac_save_LDFLAGS=$LDFLAGS
2606   CFLAGS="$CFLAGS $KRB5_CFLAGS"
2607   CPPFLAGS="$CPPFLAGS $KRB5_CPPFLAGS"
2608   LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
2610   KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2612   # now check for krb5.h. Some systems have the libraries without the headers!
2613   # note that this check is done here to allow for different kerberos
2614   # include paths
2615   AC_CHECK_HEADERS(krb5.h)
2617   if test x"$ac_cv_header_krb5_h" = x"no"; then
2619     # Give a warning if AD support was not explicitly requested,
2620     # i.e with_ads_support = auto, otherwise die with an error.
2622     if test x"$with_ads_support" = x"yes"; then
2623       AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
2624     else
2625       AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
2626     fi
2628     # Turn off AD support and restore CFLAGS and LIBS variables
2630     with_ads_support="no"
2631     
2632     CFLAGS=$ac_save_CFLAGS
2633     CPPFLAGS=$ac_save_CPPFLAGS
2634     LDFLAGS=$ac_save_LDFLAGS
2635   fi
2638 # Now we have determined whether we really want ADS support
2640 if test x"$with_ads_support" != x"no"; then
2641   ac_save_LIBS=$LIBS
2643   # now check for gssapi headers.  This is also done here to allow for
2644   # different kerberos include paths
2645   AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2647   ##################################################################
2648   # we might need the k5crypto and com_err libraries on some systems
2649   AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
2650   AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2652   # Heimdal checks.
2653   AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
2654   AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
2655   AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2657   # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2658   AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
2659                                 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2661   ########################################################
2662   # now see if we can find the krb5 libs in standard paths
2663   # or as specified above
2664   AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2666   ########################################################
2667   # now see if we can find the gssapi libs in standard paths
2668   AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
2669             AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2671   AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
2672   AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
2673   AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
2674   AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
2675   AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
2676   AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS) 
2677   AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
2678   AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS) 
2679   AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
2680   AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS) 
2681   AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
2682   AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS) 
2683   AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS) 
2684   AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2685   AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2686   AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2688   LIBS="$LIBS $KRB5_LIBS"
2689   
2690   AC_CACHE_CHECK([for addrtype in krb5_address],
2691                 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2692     AC_TRY_COMPILE([#include <krb5.h>],
2693       [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2694       samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
2695       samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2697   if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2698     AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
2699                [Whether the krb5_address struct has a addrtype property])
2700   fi
2702   AC_CACHE_CHECK([for addr_type in krb5_address],
2703                  samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2704     AC_TRY_COMPILE([#include <krb5.h>],
2705       [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2706       samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
2707       samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2709   if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2710     AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
2711               [Whether the krb5_address struct has a addr_type property])
2712   fi
2714   AC_CACHE_CHECK([for enc_part2 in krb5_ticket], 
2715                  samba_cv_HAVE_KRB5_TKT_ENC_PART2,
2716                  [AC_TRY_COMPILE([#include <krb5.h>],
2717     [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2718     samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2720   if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2721     AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
2722               [Whether the krb5_ticket struct has a enc_part2 property])
2723   fi
2725   AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
2726                  samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2727     AC_TRY_COMPILE([#include <krb5.h>],
2728       [krb5_keyblock key; key.keyvalue.data = NULL;],
2729       samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
2730       samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2732   if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2733     AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
2734               [Whether the krb5_keyblock struct has a keyvalue property])
2735   fi
2737   AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
2738                  samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2739     AC_TRY_COMPILE([#include <krb5.h>],
2740       [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2741       samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
2742       samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2743   AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
2744                  samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
2745     AC_TRY_COMPILE([#include <krb5.h>],
2746       [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
2747       samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
2748       samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
2749 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
2750 # w.r.t. arcfour and windows, so we must not enable it here
2751   if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
2752           x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2753     AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
2754               [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2755   fi
2757   AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
2758                  samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
2759     AC_TRY_COMPILE([#include <krb5.h>],
2760       [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
2761       samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
2762       samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
2764   if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
2765     AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
2766               [Whether the AP_OPTS_USE_SUBKEY ap option is available])
2767   fi
2769   AC_CACHE_CHECK([for the krb5_princ_component macro],
2770                 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
2771     AC_TRY_LINK([#include <krb5.h>],
2772       [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
2773       samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
2774       samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
2776   if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
2777     AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
2778                [Whether krb5_princ_component is available])
2779   fi
2781   AC_CACHE_CHECK([for key in krb5_keytab_entry],
2782                  samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
2783     AC_TRY_COMPILE([#include <krb5.h>],
2784       [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
2785       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
2786       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
2788   if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
2789     AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
2790               [Whether krb5_keytab_entry has key member])
2791   fi
2793   AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
2794                  samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
2795     AC_TRY_COMPILE([#include <krb5.h>],
2796       [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
2797       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
2798       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
2800   if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
2801     AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
2802               [Whether krb5_keytab_entry has keyblock member])
2803   fi
2805   if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
2806     AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
2807     AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
2808     AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
2809     AC_MSG_RESULT(yes)
2810   else
2811     if test x"$with_ads_support" = x"yes"; then
2812         AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
2813     else
2814         AC_MSG_WARN(libkrb5 is needed for Active Directory support)
2815     fi
2816     KRB5_LIBS=""
2817     with_ads_support=no 
2818   fi
2819   LIBS="$ac_save_LIBS"
2822 ########################################################
2823 # Compile experimental passdb backends?
2824 # (pdb_xml, pdb_mysql, pdb_pgsql)
2825 AC_MSG_CHECKING(whether to build experimental passdb libraries)
2826 AC_ARG_WITH(expsam,
2827 [  --with-expsam=<list>    Include experimental passdb libraries (default=no)]
2828 [                          Valid choices include (comma separated list): ]
2829 [                              xml, mysql & pgsql],
2830 [ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
2831   if test "z$expsam_pdb_modules" = "zyes"; then
2832     expsam_pdb_modules="xml mysql pgsql"
2833   fi
2834   AC_MSG_RESULT($expsam_pdb_modules)
2835   for i in $expsam_pdb_modules
2836   do 
2837     case "$i" in
2838     xml|all|yes)
2839       ## pdb_xml
2840           AM_PATH_XML2([2.0.0],[default_shared_modules="$default_shared_modules pdb_xml"],[AC_MSG_ERROR([Can't find XML libraries while XML support is requested])])
2841       CFLAGS="$CFLAGS $XML_CFLAGS"
2842       ;;
2843     mysql|all|yes)
2844       ## pdb_mysql
2845           AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
2846       CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2847       ;;
2848      pgsql|all|yes)
2849       ## pdb_pgsql
2850       AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
2851       CFLAGS="$CFLAGS $PGSQL_CFLAGS"
2852       ;;
2853     no)
2854       ;;
2855     *)
2856       echo "Unknown module name \"$i\"!  Exiting..."
2857       exit 1
2858       ;;
2859     esac
2860   done ],
2861   AC_MSG_RESULT(no)
2864 #################################################
2865 # check for automount support
2866 AC_MSG_CHECKING(whether to use automount)
2867 AC_ARG_WITH(automount,
2868 [  --with-automount        Include automount support (default=no)],
2869 [ case "$withval" in
2870   yes)
2871     AC_MSG_RESULT(yes)
2872     AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2873     ;;
2874   *)
2875     AC_MSG_RESULT(no)
2876     ;;
2877   esac ],
2878   AC_MSG_RESULT(no)
2881 #################################################
2882 # check for smbmount support
2883 AC_MSG_CHECKING(whether to use smbmount)
2884 AC_ARG_WITH(smbmount,
2885 [  --with-smbmount         Include smbmount (Linux only) support (default=no)],
2886 [ case "$withval" in
2887   yes)
2888         case "$host_os" in
2889         *linux*)
2890                 AC_MSG_RESULT(yes)
2891                 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2892                 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
2893                 ;;
2894         *)
2895                 AC_MSG_ERROR(not on a linux system!)
2896                 ;;
2897         esac
2898     ;;
2899   *)
2900     AC_MSG_RESULT(no)
2901     ;;
2902   esac ],
2903   AC_MSG_RESULT(no)
2907 #################################################
2908 # check for a PAM clear-text auth, accounts, password and session support
2909 with_pam_for_crypt=no
2910 AC_MSG_CHECKING(whether to use PAM)
2911 AC_ARG_WITH(pam,
2912 [  --with-pam              Include PAM support (default=no)],
2913 [ case "$withval" in
2914   yes)
2915     AC_MSG_RESULT(yes)
2916     if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
2917        if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
2918           if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
2919              AC_MSG_ERROR(--with-pam specified but no PAM headers found)
2920           fi
2921        fi
2922     fi
2923     AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2924     AUTH_LIBS="$AUTH_LIBS -lpam"
2925     with_pam_for_crypt=yes
2926     ;;
2927   *)
2928     AC_MSG_RESULT(no)
2929     ;;
2930   esac ],
2931   AC_MSG_RESULT(no)
2934 # we can't build a pam module if we don't have pam.
2935 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2937 #################################################
2938 # check for pam_smbpass support
2939 AC_MSG_CHECKING(whether to use pam_smbpass)
2940 AC_ARG_WITH(pam_smbpass,
2941 [  --with-pam_smbpass      Build PAM module for authenticating against passdb backends (default=no)],
2942 [ case "$withval" in
2943   yes)
2944     AC_MSG_RESULT(yes)
2946        # Conditions under which pam_smbpass should not be built.
2948        if test x$PICFLAGS = x; then
2949           AC_MSG_ERROR([No support for PIC code])
2950        elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
2951           AC_MSG_ERROR([No security/pam_appl.h found])
2952        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2953           AC_MSG_ERROR([No libpam found])
2954        else
2955           AUTH_LIBS="$AUTH_LIBS -lpam"
2956           SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
2957        fi
2958     ;;
2959   *)
2960     AC_MSG_RESULT(no)
2961     ;;
2962   esac ],
2963   AC_MSG_RESULT(no)
2967 ###############################################
2968 # test for where we get crypt() from
2969 AC_SEARCH_LIBS(crypt, [crypt],
2970   [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
2971   AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
2974 ## moved after the check for -lcrypt in order to
2975 ## ensure that the necessary libraries are included
2976 ## check checking for truncated salt.  Wrapped by the
2977 ## $with_pam_for_crypt variable as above   --jerry
2979 if test $with_pam_for_crypt = no; then
2980 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2981 crypt_LIBS="$LIBS"
2982 LIBS="$AUTH_LIBS $LIBS"
2983 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2984         samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2985 LIBS="$crypt_LIBS"])
2986 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2987         AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2992 dictpath="/usr/lib/cracklib_dict"
2993 with_cracklib=yes
2994 ###############################################
2995 # test for where we get FaciestCheck from
2996 AC_MSG_CHECKING(where to use cracklib from (default=$dictpath))
2997 AC_ARG_WITH(cracklib,
2998 [  --with-cracklib[=DIR]     Look for cracklib dictionary in this location ],
2999 [  case "$withval" in
3000   yes)
3001     AC_MSG_RESULT(${dictpath})
3002     ;;
3003   no)
3004     AC_MSG_RESULT(no)
3005       dictpath=""
3006     ;;
3007   *)
3008       dictpath="$withval"
3009     AC_MSG_RESULT(${dictpath})
3010     ;;
3011   esac ],
3012   dictpath=""
3013   AC_MSG_RESULT(no)
3016 if test x$dictpath != x""; then
3017      AC_SEARCH_LIBS(FascistCheck, [crack],
3018                     [test "$ac_cv_search_crack" = "none required" || samba_cv_found_crack="yes"
3019                     AC_DEFINE(HAVE_CRACK,1,[Whether the system has the FaciestCheck function from cracklib])])
3021      crack_saved_libs=$LIBS;
3023      if test x$samba_cv_found_crack=x"yes"; then
3024         AC_SEARCH_LIBS(CRACKLIB_DICTPATH, [crypt],
3025             AC_DEFINE(HAVE_CRACKLIB_DICTPATH, 1, [Whether we have given a CRACKLIB_DICTPATH in our headers])
3026         )
3028         AC_DEFINE_UNQUOTED(SAMBA_CRACKLIB_DICTPATH, "$dictpath", [Where the cracklib dictionay is])
3029         AC_MSG_CHECKING(Whether we have a working cracklib)
3030         AC_TRY_RUN([
3031                 #include "${srcdir-.}/tests/crack.c"],
3032               AC_MSG_RESULT(yes)
3033               AC_DEFINE(HAVE_WORKING_CRACKLIB,1,[Whether we have a working cracklib])
3034               AUTH_LIBS="-lcrack $AUTH_LIBS",
3036               AC_MSG_RESULT(no)
3037               AC_MSG_WARN(cracklib exists - but does not function correctly),
3039               AC_MSG_RESULT(no)
3040               AC_MSG_WARN(cannot test-run when cross-compiling)
3041               )
3042     else
3043         AC_MSG_CHECKING(Whether we have cracklib)
3044         AC_MSG_RESULT(no)
3045     fi
3046     LIBS=$crack_saved_libs
3049 ########################################################################################
3051 ## TESTS FOR SAM BACKENDS.  KEEP THESE GROUPED TOGETHER
3053 ########################################################################################
3055 #################################################
3056 # check for a LDAP password database configuration backwards compatibility
3057 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
3058 AC_ARG_WITH(ldapsam,
3059 [  --with-ldapsam          Include LDAP SAM 2.2 compatible configuration (default=no)],
3060 [ case "$withval" in
3061   yes)
3062     AC_MSG_RESULT(yes)
3063     AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
3064     ;;
3065   *)
3066     AC_MSG_RESULT(no)
3067     ;;
3068   esac ],
3069   AC_MSG_RESULT(no)
3072 ########################################################################################
3074 ## END OF TESTS FOR SAM BACKENDS.  
3076 ########################################################################################
3078 #################################################
3079 # check for a NISPLUS_HOME support 
3080 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
3081 AC_ARG_WITH(nisplus-home,
3082 [  --with-nisplus-home     Include NISPLUS_HOME support (default=no)],
3083 [ case "$withval" in
3084   yes)
3085     AC_MSG_RESULT(yes)
3086     AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3087     ;;
3088   *)
3089     AC_MSG_RESULT(no)
3090     ;;
3091   esac ],
3092   AC_MSG_RESULT(no)
3095 #################################################
3096 # check for syslog logging
3097 AC_MSG_CHECKING(whether to use syslog logging)
3098 AC_ARG_WITH(syslog,
3099 [  --with-syslog           Include experimental SYSLOG support (default=no)],
3100 [ case "$withval" in
3101   yes)
3102     AC_MSG_RESULT(yes)
3103     AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3104     ;;
3105   *)
3106     AC_MSG_RESULT(no)
3107     ;;
3108   esac ],
3109   AC_MSG_RESULT(no)
3112 #################################################
3113 # check for a shared memory profiling support
3114 AC_MSG_CHECKING(whether to use profiling)
3115 AC_ARG_WITH(profiling-data,
3116 [  --with-profiling-data   Include gathering source code profile information (default=no)],
3117 [ case "$withval" in
3118   yes)
3119     AC_MSG_RESULT(yes)
3120     AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
3121     ;;
3122   *)
3123     AC_MSG_RESULT(no)
3124     ;;
3125   esac ],
3126   AC_MSG_RESULT(no)
3130 #################################################
3131 # check for experimental disk-quotas support
3133 samba_cv_WITH_QUOTAS=auto
3134 samba_cv_TRY_QUOTAS=no
3135 samba_cv_RUN_QUOTA_TESTS=auto
3136 samba_cv_WITH_SYS_QUOTAS=auto
3137 samba_cv_TRY_SYS_QUOTAS=no
3138 samba_cv_SYSQUOTA_FOUND=no;
3140 AC_MSG_CHECKING(whether to try disk-quotas support)
3141 AC_ARG_WITH(quotas,
3142 [  --with-quotas           Include disk-quota support (default=no)],
3143 [ case "$withval" in
3144   yes)
3145     AC_MSG_RESULT(yes)
3146     samba_cv_WITH_QUOTAS=yes
3147     samba_cv_TRY_QUOTAS=yes
3148     samba_cv_RUN_QUOTA_TESTS=yes
3149     #set sys quotas to auto in this case
3150     samba_cv_TRY_SYS_QUOTAS=auto
3151     ;;
3152   auto)
3153     AC_MSG_RESULT(auto)
3154     samba_cv_WITH_QUOTAS=auto
3155     samba_cv_TRY_QUOTAS=auto
3156     samba_cv_RUN_QUOTA_TESTS=auto
3157     #set sys quotas to auto in this case
3158     samba_cv_TRY_SYS_QUOTAS=auto
3159     ;;
3160   no)
3161     AC_MSG_RESULT(no)
3162     samba_cv_WITH_QUOTAS=no
3163     samba_cv_TRY_QUOTAS=no
3164     samba_cv_RUN_QUOTA_TESTS=no
3165     ;;
3166   *)
3167     AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3168     ;;
3169   esac ],
3170   AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3173 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
3174 AC_ARG_WITH(sys-quotas,
3175 [  --with-sys-quotas       Include lib/sysquotas.c support (default=auto)],
3176 [ case "$withval" in
3177   yes)
3178     AC_MSG_RESULT(yes)
3179     samba_cv_WITH_SYS_QUOTAS=yes
3180     samba_cv_TRY_SYS_QUOTAS=yes
3181     samba_cv_RUN_QUOTA_TESTS=yes
3182     ;;
3183   auto)
3184     AC_MSG_RESULT(auto)
3185     samba_cv_WITH_SYS_QUOTAS=auto
3186     samba_cv_TRY_SYS_QUOTAS=auto
3187     samba_cv_RUN_QUOTA_TESTS=auto
3188     ;;
3189   no)
3190     AC_MSG_RESULT(no)
3191     samba_cv_WITH_SYS_QUOTAS=no
3192     samba_cv_TRY_SYS_QUOTAS=no
3193     ;;
3194   *)
3195     AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3196     ;;
3197   esac ],
3198   AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3201 if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
3202 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
3203   case "$host_os" in
3204         *linux*)
3205             AC_MSG_RESULT(yes)
3206             samba_cv_TRY_SYS_QUOTAS=yes
3207             samba_cv_RUN_QUOTA_TESTS=yes
3208             samba_cv_SYSQUOTA_FOUND=yes
3209             AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
3210             samba_cv_sysquotas_file="lib/sysquotas_linux.c"
3211             AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
3212             samba_cv_found_xfs_header=yes
3213             ;;
3214         *)
3215             AC_MSG_RESULT(no)
3216             samba_cv_TRY_SYS_QUOTAS=no
3217             ;;
3218   esac
3221 #############################################
3222 # only check for quota stuff if --with-quotas
3223 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
3225 # some broken header files need this
3226 AC_CHECK_HEADER(asm/types.h,[
3227             AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
3228             AC_ADD_INCLUDE(<asm/types.h>)
3229             ])
3231 # For quotas on Veritas VxFS filesystems
3232 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
3234 # For sys/quota.h and linux/quota.h
3235 AC_CHECK_HEADERS(sys/quota.h)
3237 if test x"$samba_cv_found_xfs_header" != x"yes"; then
3238 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
3239 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
3240 AC_TRY_COMPILE([
3241 #include "confdefs.h"
3242 #ifdef HAVE_SYS_TYPES_H
3243 #include <sys/types.h>
3244 #endif
3245 #ifdef HAVE_ASM_TYPES_H
3246 #include <asm/types.h>
3247 #endif
3248 #include <sys/quota.h>
3249 ],[int i = Q_XGETQUOTA;],
3250 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
3251 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
3252         samba_cv_found_xfs_header=yes
3256 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX 
3257 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
3258 AC_TRY_COMPILE([
3259 #include "confdefs.h"
3260 #ifdef HAVE_SYS_QUOTA_H
3261 #include <sys/quota.h>
3262 #endif
3264 struct dqblk D;
3265 D.dqb_fsoftlimit = 0;],
3266 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
3267 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
3268         AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
3271 ##################
3272 # look for a working quota system
3274 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3275 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
3276 AC_TRY_RUN_STRICT([
3277 #define HAVE_QUOTACTL_4A 1
3278 #define AUTOCONF_TEST 1
3279 #include "confdefs.h"
3280 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3281            samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
3282 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
3283     samba_cv_SYSQUOTA_FOUND=yes;
3284     AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
3285     samba_cv_sysquotas_file="lib/sysquotas_4A.c"
3289 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3290 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
3291 AC_TRY_RUN_STRICT([
3292 #define HAVE_QUOTACTL_4B 1
3293 #define AUTOCONF_TEST 1
3294 #include "confdefs.h"
3295 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3296            samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
3297 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
3298     echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
3299     samba_cv_SYSQUOTA_FOUND=yes;
3300     AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
3301     samba_cv_sysquotas_file="lib/sysquotas_4B.c"
3305 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3306 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
3307 AC_TRY_RUN_STRICT([
3308 #define HAVE_QUOTACTL_3 1
3309 #define AUTOCONF_TEST 1
3310 #include "confdefs.h"
3311 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3312            samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
3313 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
3314     echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
3315     samba_cv_SYSQUOTA_FOUND=yes;
3316     AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
3317     samba_cv_sysquotas_file="lib/sysquotas_3.c"
3321 #################################################
3322 # check for mntent.h and struct mntent
3323 AC_CHECK_HEADERS(mntent.h)
3324 #################################################
3325 # check for setmntent,getmntent,endmntent
3326 AC_CHECK_FUNCS(setmntent getmntent endmntent)
3328 #################################################
3329 # check for devnm.h and struct mntent
3330 AC_CHECK_HEADERS(devnm.h)
3331 #################################################
3332 # check for devnm
3333 AC_CHECK_FUNCS(devnm)
3335 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
3336     if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3337         # if --with-sys-quotas=yes then build it 
3338         # you have can use the get/set quota command smb.conf
3339         # options then
3340         samba_cv_SYSQUOTA_FOUND=auto
3341     fi
3342     if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
3343         # if --with-sys-quotas=yes then build it 
3344         # you have can use the get/set quota command smb.conf
3345         # options then
3346         samba_cv_TRY_SYS_QUOTAS=auto
3347     fi
3350 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
3351 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
3352 SAVE_CPPFLAGS="$CPPFLAGS"
3353 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt  -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3354 AC_TRY_COMPILE([
3355 #include "confdefs.h"
3356 #define NO_PROTO_H 1
3357 #define NO_CONFIG_H 1
3358 #define HAVE_SYS_QUOTAS 1
3359 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
3360 #include "${srcdir-.}/lib/sysquotas.c"
3361 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
3362 CPPFLAGS="$SAVE_CPPFLAGS"
3364 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
3365 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
3366     if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then 
3367         AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3368         AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
3369         samba_cv_WE_USE_SYS_QUOTAS=yes
3370         AC_MSG_RESULT(yes)
3371     else
3372         AC_MSG_RESULT(no)
3373     fi
3377 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
3378 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
3379 SAVE_CPPFLAGS="$CPPFLAGS"
3380 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt  -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3381 AC_TRY_COMPILE([
3382 #include "confdefs.h"
3383 #define NO_PROTO_H 1
3384 #define NO_CONFIG_H 1
3385 #define HAVE_SYS_QUOTAS 1
3386 #define HAVE_XFS_QUOTAS 1
3387 #include "${srcdir-.}/lib/sysquotas_xfs.c"
3388 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
3389 CPPFLAGS="$SAVE_CPPFLAGS"
3391 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
3392     if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
3393         AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
3394     fi
3398 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
3399 SAVE_CPPFLAGS="$CPPFLAGS"
3400 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt  -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3401 AC_TRY_COMPILE([
3402 #include "confdefs.h"
3403 #define NO_PROTO_H 1
3404 #define NO_CONFIG_H 1
3405 #include "${srcdir-.}/smbd/quotas.c"
3406 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
3407 CPPFLAGS="$SAVE_CPPFLAGS"
3409 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
3410 AC_MSG_CHECKING(whether to use the old quota support)
3411     if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
3412       if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
3413         AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3414         AC_MSG_RESULT(yes)
3415       else
3416         AC_MSG_RESULT(no)
3417       fi
3418     else
3419       AC_MSG_RESULT(no)
3420     fi
3423 ####################
3424 # End of quota check samba_cv_RUN_QUOTA_TESTS
3427 #################################################
3428 # check for experimental utmp accounting
3430 AC_MSG_CHECKING(whether to support utmp accounting)
3431 WITH_UTMP=yes
3432 AC_ARG_WITH(utmp,
3433 [  --with-utmp             Include utmp accounting (default, if supported by OS)],
3434 [ case "$withval" in
3435   no)
3436                 WITH_UTMP=no
3437                 ;;
3438   *)
3439                 WITH_UTMP=yes
3440                 ;;
3441   esac ],
3444 # utmp requires utmp.h
3445 # Note similar check earlier, when checking utmp details.
3447 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
3448         utmp_no_reason=", no utmp.h on $host_os"
3449         WITH_UTMP=no
3452 # Display test results
3454 if test x"$WITH_UTMP" = x"yes"; then
3455         AC_MSG_RESULT(yes)
3456         AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
3457 else
3458         AC_MSG_RESULT(no$utmp_no_reason)
3461 #################################################
3462 # choose native language(s) of man pages
3463 AC_MSG_CHECKING(chosen man pages' language(s))
3464 AC_ARG_WITH(manpages-langs,
3465 [  --with-manpages-langs={en,ja,pl}  Choose man pages' language(s). (en)],
3466 [ case "$withval" in
3467   yes|no)
3468     AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
3469     manlangs="en"
3470   ;;
3471   *)
3472     manlangs="$withval"
3473   ;;
3474   esac
3476   AC_MSG_RESULT($manlangs)
3477   manlangs=`echo $manlangs | sed "s/,/ /g"`   # replacing commas with spaces to produce a list
3478   AC_SUBST(manlangs)],
3480   [manlangs="en"
3481   AC_MSG_RESULT($manlangs)
3482   AC_SUBST(manlangs)]
3485 #################################################
3486 # should we build libsmbclient?
3488 INSTALLCLIENTCMD_SH=:
3489 INSTALLCLIENTCMD_A=:
3490 INSTALLCLIENT=
3491 LIBSMBCLIENT_SHARED=
3492 LIBSMBCLIENT=
3493 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
3494 AC_ARG_WITH(libsmbclient,
3495 [  --with-libsmbclient     Build the libsmbclient shared library (default=yes if shared libs supported)],
3496 [ case "$withval" in
3497   no) 
3498      AC_MSG_RESULT(no)
3499      ;;
3500   *)
3501      if test $BLDSHARED = true; then
3502         INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3503         ## build the static version of libsmbclient as well
3504         INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3505         LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3506         LIBSMBCLIENT=libsmbclient
3507         AC_MSG_RESULT(yes)
3508      else
3509         enable_static=yes
3510         AC_MSG_RESULT(no shared library support -- will supply static library)
3511      fi
3512      if test $enable_static = yes; then
3513         INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3514         LIBSMBCLIENT=libsmbclient
3515      fi
3516      INSTALLCLIENT=installclientlib
3517      ;;
3518   esac ],
3520 # if unspecified, default is to built it iff possible.
3521   if test $BLDSHARED = true; then
3522      INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3523      LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3524      LIBSMBCLIENT=libsmbclient
3525      AC_MSG_RESULT(yes)
3526    else
3527      enable_static=yes
3528      AC_MSG_RESULT(no shared library support -- will supply static library)
3529    fi
3530    if test $enable_static = yes; then
3531      INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3532      LIBSMBCLIENT=libsmbclient
3533   fi]
3534   INSTALLCLIENT=installclientlib
3538 #################################################
3539 # these tests are taken from the GNU fileutils package
3540 AC_CHECKING(how to get filesystem space usage)
3541 space=no
3543 # Test for statvfs64.
3544 if test $space = no; then
3545   # SVR4
3546   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
3547   [AC_TRY_RUN([
3548 #if defined(HAVE_UNISTD_H)
3549 #include <unistd.h>
3550 #endif
3551 #include <sys/types.h>
3552 #include <sys/statvfs.h>
3553   main ()
3554   {
3555     struct statvfs64 fsd;
3556     exit (statvfs64 (".", &fsd));
3557   }],
3558   fu_cv_sys_stat_statvfs64=yes,
3559   fu_cv_sys_stat_statvfs64=no,
3560   fu_cv_sys_stat_statvfs64=cross)])
3561   if test $fu_cv_sys_stat_statvfs64 = yes; then
3562     space=yes
3563     AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
3564   fi
3567 # Perform only the link test since it seems there are no variants of the
3568 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
3569 # because that got a false positive on SCO OSR5.  Adding the declaration
3570 # of a `struct statvfs' causes this test to fail (as it should) on such
3571 # systems.  That system is reported to work fine with STAT_STATFS4 which
3572 # is what it gets when this test fails.
3573 if test $space = no; then
3574   # SVR4
3575   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
3576                  [AC_TRY_LINK([#include <sys/types.h>
3577 #include <sys/statvfs.h>],
3578                               [struct statvfs fsd; statvfs (0, &fsd);],
3579                               fu_cv_sys_stat_statvfs=yes,
3580                               fu_cv_sys_stat_statvfs=no)])
3581   if test $fu_cv_sys_stat_statvfs = yes; then
3582     space=yes
3583     AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
3584   fi
3587 if test $space = no; then
3588   # DEC Alpha running OSF/1
3589   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
3590   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
3591   [AC_TRY_RUN([
3592 #include <sys/param.h>
3593 #include <sys/types.h>
3594 #include <sys/mount.h>
3595   main ()
3596   {
3597     struct statfs fsd;
3598     fsd.f_fsize = 0;
3599     exit (statfs (".", &fsd, sizeof (struct statfs)));
3600   }],
3601   fu_cv_sys_stat_statfs3_osf1=yes,
3602   fu_cv_sys_stat_statfs3_osf1=no,
3603   fu_cv_sys_stat_statfs3_osf1=no)])
3604   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
3605   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
3606     space=yes
3607     AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
3608   fi
3611 if test $space = no; then
3612 # AIX
3613   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
3614 member (AIX, 4.3BSD)])
3615   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
3616   [AC_TRY_RUN([
3617 #ifdef HAVE_SYS_PARAM_H
3618 #include <sys/param.h>
3619 #endif
3620 #ifdef HAVE_SYS_MOUNT_H
3621 #include <sys/mount.h>
3622 #endif
3623 #ifdef HAVE_SYS_VFS_H
3624 #include <sys/vfs.h>
3625 #endif
3626   main ()
3627   {
3628   struct statfs fsd;
3629   fsd.f_bsize = 0;
3630   exit (statfs (".", &fsd));
3631   }],
3632   fu_cv_sys_stat_statfs2_bsize=yes,
3633   fu_cv_sys_stat_statfs2_bsize=no,
3634   fu_cv_sys_stat_statfs2_bsize=no)])
3635   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
3636   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
3637     space=yes
3638     AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
3639   fi
3642 if test $space = no; then
3643 # SVR3
3644   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
3645   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
3646   [AC_TRY_RUN([#include <sys/types.h>
3647 #include <sys/statfs.h>
3648   main ()
3649   {
3650   struct statfs fsd;
3651   exit (statfs (".", &fsd, sizeof fsd, 0));
3652   }],
3653     fu_cv_sys_stat_statfs4=yes,
3654     fu_cv_sys_stat_statfs4=no,
3655     fu_cv_sys_stat_statfs4=no)])
3656   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
3657   if test $fu_cv_sys_stat_statfs4 = yes; then
3658     space=yes
3659     AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
3660   fi
3663 if test $space = no; then
3664 # 4.4BSD and NetBSD
3665   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
3666 member (4.4BSD and NetBSD)])
3667   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
3668   [AC_TRY_RUN([#include <sys/types.h>
3669 #ifdef HAVE_SYS_PARAM_H
3670 #include <sys/param.h>
3671 #endif
3672 #ifdef HAVE_SYS_MOUNT_H
3673 #include <sys/mount.h>
3674 #endif
3675   main ()
3676   {
3677   struct statfs fsd;
3678   fsd.f_fsize = 0;
3679   exit (statfs (".", &fsd));
3680   }],
3681   fu_cv_sys_stat_statfs2_fsize=yes,
3682   fu_cv_sys_stat_statfs2_fsize=no,
3683   fu_cv_sys_stat_statfs2_fsize=no)])
3684   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
3685   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
3686     space=yes
3687         AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
3688   fi
3691 if test $space = no; then
3692   # Ultrix
3693   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
3694   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
3695   [AC_TRY_RUN([#include <sys/types.h>
3696 #ifdef HAVE_SYS_PARAM_H
3697 #include <sys/param.h>
3698 #endif
3699 #ifdef HAVE_SYS_MOUNT_H
3700 #include <sys/mount.h>
3701 #endif
3702 #ifdef HAVE_SYS_FS_TYPES_H
3703 #include <sys/fs_types.h>
3704 #endif
3705   main ()
3706   {
3707   struct fs_data fsd;
3708   /* Ultrix's statfs returns 1 for success,
3709      0 for not mounted, -1 for failure.  */
3710   exit (statfs (".", &fsd) != 1);
3711   }],
3712   fu_cv_sys_stat_fs_data=yes,
3713   fu_cv_sys_stat_fs_data=no,
3714   fu_cv_sys_stat_fs_data=no)])
3715   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
3716   if test $fu_cv_sys_stat_fs_data = yes; then
3717     space=yes
3718     AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
3719   fi
3723 # As a gating factor for large file support, in order to
3724 # use <4GB files we must have the following minimal support
3725 # available.
3726 # long long, and a 64 bit off_t or off64_t.
3727 # If we don't have all of these then disable large
3728 # file support.
3730 AC_MSG_CHECKING([if large file support can be enabled])
3731 AC_TRY_COMPILE([
3732 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
3733 #include <sys/types.h>
3734 #else
3735 __COMPILE_ERROR_
3736 #endif
3738 [int i],
3739 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
3740 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
3741         AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
3743 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
3745 AC_ARG_WITH(spinlocks, 
3746 [  --with-spinlocks        Use spin locks instead of fcntl locks (default=no) ])
3747 if test "x$with_spinlocks" = "xyes"; then
3748     AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
3750     case "$host_cpu" in
3751         sparc)
3752             AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
3753             ;;
3755         i386|i486|i586|i686)
3756             AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
3757             ;;
3759         mips)
3760             AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
3761             ;;
3763         powerpc)
3764             AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
3765             ;;
3766     esac
3769 #################################################
3770 # check for ACL support
3772 AC_MSG_CHECKING(whether to support ACLs)
3773 AC_ARG_WITH(acl-support,
3774 [  --with-acl-support      Include ACL support (default=no)],
3775 [ case "$withval" in
3776   yes)
3778         case "$host_os" in
3779         *sysv5*)
3780                 AC_MSG_RESULT(Using UnixWare ACLs)
3781                 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
3782                 ;;
3783         *solaris*)
3784                 AC_MSG_RESULT(Using solaris ACLs)
3785                 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
3786                 ;;
3787         *hpux*)
3788                 AC_MSG_RESULT(Using HPUX ACLs)
3789                 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
3790                 ;;
3791         *irix*)
3792                 AC_MSG_RESULT(Using IRIX ACLs)
3793                 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
3794                 ;;
3795         *aix*)
3796                 AC_MSG_RESULT(Using AIX ACLs)
3797                 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
3798                 ;;
3799         *osf*)
3800                 AC_MSG_RESULT(Using Tru64 ACLs)
3801                 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
3802                 ACL_LIBS="$ACL_LIBS -lpacl"
3803                 ;;
3804         *freebsd5*)
3805                 AC_MSG_RESULT(Using FreeBSD posix ACLs)
3806                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
3807                 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3808                 ;;
3809         *linux*)
3810                 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
3811                 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3812                 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3813                 acl_LIBS=$LIBS
3814                 LIBS="$LIBS -lacl"
3815                 AC_TRY_LINK([#include <sys/types.h>
3816 #include <sys/acl.h>],
3817 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3818 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3819                 LIBS=$acl_LIBS])
3820                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3821                                 AC_MSG_RESULT(Using posix ACLs)
3822                                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3823                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3824                                 acl_LIBS=$LIBS
3825                                 LIBS="$LIBS -lacl"
3826                                 AC_TRY_LINK([#include <sys/types.h>
3827 #include <sys/acl.h>],
3828 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3829 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3830                                 LIBS=$acl_LIBS])
3831                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3832                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3833                                 fi
3834                         fi
3835             ;;
3836          *)
3837                 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3838                 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3839                 acl_LIBS=$LIBS
3840                 LIBS="$LIBS -lacl"
3841                 AC_TRY_LINK([#include <sys/types.h>
3842 #include <sys/acl.h>],
3843 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3844 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3845                 LIBS=$acl_LIBS])
3846                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3847                                 AC_MSG_RESULT(Using posix ACLs)
3848                                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3849                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3850                                 acl_LIBS=$LIBS
3851                                 LIBS="$LIBS -lacl"
3852                                 AC_TRY_LINK([#include <sys/types.h>
3853 #include <sys/acl.h>],
3854 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3855 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3856                                 LIBS=$acl_LIBS])
3857                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3858                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3859                                 fi
3860                         fi
3861             ;;
3862         esac
3863         ;;
3864   *)
3865     AC_MSG_RESULT(no)
3866     AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
3867     ;;
3868   esac ],
3869   AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
3870   AC_MSG_RESULT(no)
3873 #################################################
3874 # check for sendfile support
3876 with_sendfile_support=yes
3877 AC_MSG_CHECKING(whether to check to support sendfile)
3878 AC_ARG_WITH(sendfile-support,
3879 [  --with-sendfile-support Check for sendfile support (default=yes)],
3880 [ case "$withval" in
3881   yes)
3883         AC_MSG_RESULT(yes);
3885         case "$host_os" in
3886         *linux*)
3887                 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3888                 AC_TRY_LINK([#include <sys/sendfile.h>],
3890 int tofd, fromfd;
3891 off64_t offset;
3892 size_t total;
3893 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
3895 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3897                 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
3898                 AC_TRY_LINK([#include <sys/sendfile.h>],
3900 int tofd, fromfd;
3901 off_t offset;
3902 size_t total;
3903 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3905 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3907 # Try and cope with broken Linux sendfile....
3908                 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
3909                 AC_TRY_LINK([\
3910 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
3911 #undef _FILE_OFFSET_BITS
3912 #endif
3913 #include <sys/sendfile.h>],
3915 int tofd, fromfd;
3916 off_t offset;
3917 size_t total;
3918 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3920 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
3922         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3923                 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
3924                 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3925                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3926         elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3927                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
3928                 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3929                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3930         elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
3931                 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
3932                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
3933         else
3934                 AC_MSG_RESULT(no);
3935         fi
3937         ;;
3938         *freebsd*)
3939                 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
3940                 AC_TRY_LINK([\
3941 #include <sys/types.h>
3942 #include <unistd.h>
3943 #include <sys/socket.h>
3944 #include <sys/uio.h>],
3946         int fromfd, tofd, ret, total=0;
3947         off_t offset, nwritten;
3948         struct sf_hdtr hdr;
3949         struct iovec hdtrl;
3950         hdr.headers = &hdtrl;
3951         hdr.hdr_cnt = 1;
3952         hdr.trailers = NULL;
3953         hdr.trl_cnt = 0;
3954         hdtrl.iov_base = NULL;
3955         hdtrl.iov_len = 0;
3956         ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
3958 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3960         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3961                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
3962                 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
3963                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3964         else
3965                 AC_MSG_RESULT(no);
3966         fi
3967         ;;
3969         *hpux*)
3970                 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3971                 AC_TRY_LINK([\
3972 #include <sys/socket.h>
3973 #include <sys/uio.h>],
3975         int fromfd, tofd;
3976         size_t total=0;
3977         struct iovec hdtrl[2];
3978         ssize_t nwritten;
3979         off64_t offset;
3981         hdtrl[0].iov_base = 0;
3982         hdtrl[0].iov_len = 0;
3984         nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
3986 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3987         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3988                 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
3989                 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
3990                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3991         else
3992                 AC_MSG_RESULT(no);
3993         fi
3995                 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
3996                 AC_TRY_LINK([\
3997 #include <sys/socket.h>
3998 #include <sys/uio.h>],
4000         int fromfd, tofd;
4001         size_t total=0;
4002         struct iovec hdtrl[2];
4003         ssize_t nwritten;
4004         off_t offset;
4006         hdtrl[0].iov_base = 0;
4007         hdtrl[0].iov_len = 0;
4009         nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
4011 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4012         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4013                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4014                 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4015                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4016         else
4017                 AC_MSG_RESULT(no);
4018         fi
4019         ;;
4021         *solaris*)
4022                 AC_CHECK_LIB(sendfile,sendfilev)
4023                 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
4024                 AC_TRY_LINK([\
4025 #include <sys/sendfile.h>],
4027         int sfvcnt;
4028         size_t xferred;
4029         struct sendfilevec vec[2];
4030         ssize_t nwritten;
4031         int tofd;
4033         sfvcnt = 2;
4035         vec[0].sfv_fd = SFV_FD_SELF;
4036         vec[0].sfv_flag = 0;
4037         vec[0].sfv_off = 0;
4038         vec[0].sfv_len = 0;
4040         vec[1].sfv_fd = 0;
4041         vec[1].sfv_flag = 0;
4042         vec[1].sfv_off = 0;
4043         vec[1].sfv_len = 0;
4044         nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
4046 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
4048         if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
4049                 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
4050                 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
4051                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4052         else
4053                 AC_MSG_RESULT(no);
4054         fi
4056                 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
4057                 AC_TRY_LINK([\
4058 #include <sys/sendfile.h>],
4060         int sfvcnt;
4061         size_t xferred;
4062         struct sendfilevec vec[2];
4063         ssize_t nwritten;
4064         int tofd;
4066         sfvcnt = 2;
4068         vec[0].sfv_fd = SFV_FD_SELF;
4069         vec[0].sfv_flag = 0;
4070         vec[0].sfv_off = 0;
4071         vec[0].sfv_len = 0;
4073         vec[1].sfv_fd = 0;
4074         vec[1].sfv_flag = 0;
4075         vec[1].sfv_off = 0;
4076         vec[1].sfv_len = 0;
4077         nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
4079 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
4081         if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
4082                 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
4083                 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
4084                 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4085         else
4086                 AC_MSG_RESULT(no);
4087         fi
4088         ;;
4090         *)
4091         ;;
4092         esac
4093         ;;
4094   *)
4095     AC_MSG_RESULT(no)
4096     ;;
4097   esac ],
4098   AC_MSG_RESULT(yes)
4102 #################################################
4103 # Check whether winbind is supported on this platform.  If so we need to
4104 # build and install client programs, sbin programs and shared libraries
4106 AC_MSG_CHECKING(whether to build winbind)
4108 # Initially, the value of $host_os decides whether winbind is supported
4110 HAVE_WINBIND=yes
4112 # Define the winbind shared library name and any specific linker flags
4113 # it needs to be built with.
4115 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
4116 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
4117 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
4119 case "$host_os" in
4120         *linux*)
4121                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
4122                 ;;
4123         *freebsd5*)
4124                 # FreeBSD winbind client is implemented as a wrapper around
4125                 # the Linux version.
4126                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
4127                     nsswitch/winbind_nss_linux.o"
4128                 ;;
4129         *irix*)
4130                 # IRIX has differently named shared libraries
4131                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
4132                 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
4133                 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
4134                 ;;
4135         *solaris*)
4136                 # Solaris winbind client is implemented as a wrapper around
4137                 # the Linux version.
4138                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
4139                     nsswitch/winbind_nss_linux.o"
4140                 WINBIND_NSS_EXTRA_LIBS="-lsocket"
4141                 ;;
4142         *hpux11*)
4143                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
4144                 ;;
4145         *aix*)
4146                 # AIX has even differently named shared libraries.  No
4147                 # WINS support has been implemented yet.
4148                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
4149                 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
4150                 WINBIND_NSS="nsswitch/WINBIND"
4151                 WINBIND_WINS_NSS=""
4152                 ;;
4153         *)
4154                 HAVE_WINBIND=no
4155                 winbind_no_reason=", unsupported on $host_os"
4156                 ;;
4157 esac
4159 AC_SUBST(WINBIND_NSS)
4160 AC_SUBST(WINBIND_WINS_NSS)
4161 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
4162 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
4163 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
4165 # Check the setting of --with-winbindd
4167 AC_ARG_WITH(winbind,
4168 [  --with-winbind          Build winbind (default, if supported by OS)],
4170   case "$withval" in
4171         yes)
4172                 HAVE_WINBIND=yes
4173                 ;;
4174         no)
4175                 HAVE_WINBIND=no
4176                 winbind_reason=""
4177                 ;;
4178   esac ],
4181 # We need unix domain sockets for winbind
4183 if test x"$HAVE_WINBIND" = x"yes"; then
4184         if test x"$samba_cv_unixsocket" = x"no"; then
4185                 winbind_no_reason=", no unix domain socket support on $host_os"
4186                 HAVE_WINBIND=no
4187         fi
4190 # Display test results
4192 if test x"$HAVE_WINBIND" = x"yes"; then
4193         AC_MSG_RESULT(yes)
4194         AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
4196         EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
4197         EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
4198         if test $BLDSHARED = true; then
4199                 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
4201                 if test x"$with_pam" = x"yes"; then
4202                         SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
4203                 fi
4204         fi
4205 else
4206         AC_MSG_RESULT(no$winbind_no_reason)
4209 # Solaris has some extra fields in struct passwd that need to be
4210 # initialised otherwise nscd crashes.  
4212 AC_CHECK_MEMBER(struct passwd.pw_comment,
4213                 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
4214                 [#include <pwd.h>])
4216 AC_CHECK_MEMBER(struct passwd.pw_age,
4217                 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
4218                 [#include <pwd.h>])
4220 #################################################
4221 # Check to see if we should use the included popt 
4223 AC_ARG_WITH(included-popt,
4224 [  --with-included-popt    use bundled popt library, not from system],
4226   case "$withval" in
4227         yes)
4228                 INCLUDED_POPT=yes
4229                 ;;
4230         no)
4231                 INCLUDED_POPT=no
4232                 ;;
4233   esac ],
4235 if test x"$INCLUDED_POPT" != x"yes"; then
4236     AC_CHECK_LIB(popt, poptGetContext,
4237                  INCLUDED_POPT=no, INCLUDED_POPT=yes)
4240 AC_MSG_CHECKING(whether to use included popt)
4241 if test x"$INCLUDED_POPT" = x"yes"; then
4242     AC_MSG_RESULT(yes)
4243     BUILD_POPT='$(POPT_OBJS)'
4244         POPTLIBS='$(POPT_OBJS)'
4245     FLAGS1="-I$srcdir/popt"
4246 else
4247     AC_MSG_RESULT(no)
4248         BUILD_POPT=""
4249     POPTLIBS="-lpopt"
4251 AC_SUBST(BUILD_POPT)
4252 AC_SUBST(POPTLIBS)
4253 AC_SUBST(FLAGS1)
4255 #################################################
4256 # Check if the user wants Python
4258 # At the moment, you can use this to set which Python binary to link
4259 # against.  (Libraries built for Python2.2 can't be used by 2.1,
4260 # though they can coexist in different directories.)  In the future
4261 # this might make the Python stuff be built by default.
4263 # Defaulting python breaks the clean target if python isn't installed
4265 PYTHON=
4267 AC_ARG_WITH(python,
4268 [  --with-python=PYTHONNAME  build Python libraries],
4269 [ case "${withval-python}" in
4270   yes)
4271         PYTHON=python
4272         EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
4273         ;;
4274   no)
4275         PYTHON=
4276         ;;
4277   *)
4278         PYTHON=${withval-python}
4279         ;;
4280   esac ])
4281 AC_SUBST(PYTHON)
4283 for i in `echo $default_static_modules | sed -e's/,/ /g'`
4285         eval MODULE_DEFAULT_$i=STATIC
4286 done
4288 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
4290         dnl Fall back to static if we cannot build shared libraries
4291         eval MODULE_DEFAULT_$i=STATIC
4293         if test $BLDSHARED = true; then
4294                 eval MODULE_DEFAULT_$i=SHARED
4295         fi
4296 done
4298 dnl Always built these modules static
4299 MODULE_pdb_guest=STATIC
4300 MODULE_rpc_spoolss=STATIC
4301 MODULE_rpc_srv=STATIC
4302 MODULE_idmap_tdb=STATIC
4304 AC_ARG_WITH(static-modules,
4305 [  --with-static-modules=MODULES  Comma-seperated list of names of modules to statically link in],
4306 [ if test $withval; then
4307         for i in `echo $withval | sed -e's/,/ /g'`
4308         do
4309                 eval MODULE_$i=STATIC
4310         done
4311 fi ])
4313 AC_ARG_WITH(shared-modules,
4314 [  --with-shared-modules=MODULES  Comma-seperated list of names of modules to build shared],
4315 [ if test $withval; then
4316         for i in `echo $withval | sed -e's/,/ /g'`
4317         do
4318                         eval MODULE_$i=SHARED
4319         done
4320 fi ])
4322 ###########################################################################
4323 ## contributed pdb_modules
4325 SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
4326                   [ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
4327 SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB, 
4328                    [ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ]   )
4329 SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB, 
4330                    [ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ]   )
4332 ## end of contributed pdb_modules
4333 ###########################################################################
4335 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, "bin/ldapsam.$SHLIBEXT", PDB, 
4336                    [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
4337 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
4338 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
4339 SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
4340 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
4342 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
4343 SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
4344 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
4345 SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
4346 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
4347 SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
4348 SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
4349 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
4350 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
4351 SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
4352 SMB_SUBSYSTEM(RPC,smbd/server.o)
4354 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/idmap_ldap.$SHLIBEXT", IDMAP)
4355 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/idmap_tdb.$SHLIBEXT", IDMAP)
4356 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
4358 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
4359 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
4360 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
4361 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
4362 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
4364 SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
4365 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
4366 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
4367 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
4368 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
4369 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
4370 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
4371 SMB_SUBSYSTEM(AUTH,auth/auth.o)
4373 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
4374 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
4375 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
4376 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
4377 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
4378 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
4379 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
4380 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
4381 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
4382 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
4384 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
4386 #################################################
4387 # do extra things if we are running insure
4389 if test "${ac_cv_prog_CC}" = "insure"; then
4390         CPPFLAGS="$CPPFLAGS -D__INSURE__"
4393 #################################################
4394 # Display summary of libraries detected
4396 AC_MSG_RESULT([Using libraries:])
4397 AC_MSG_RESULT([    LIBS = $LIBS])
4398 if test x"$with_ads_support" != x"no"; then
4399    AC_MSG_RESULT([    KRB5_LIBS = $KRB5_LIBS])
4401 if test x"$with_ldap_support" != x"no"; then
4402    AC_MSG_RESULT([    LDAP_LIBS = $LDAP_LIBS])
4404 AC_MSG_RESULT([    AUTH_LIBS = $AUTH_LIBS])
4406 #################################################
4407 # final configure stuff
4409 AC_MSG_CHECKING([configure summary])
4410 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
4411            AC_MSG_RESULT(yes),
4412            AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
4413            AC_MSG_WARN([cannot run when cross-compiling]))
4415 builddir=`pwd`
4416 AC_SUBST(builddir)
4418 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
4419 LIB_REMOVE_USR_LIB(LDFLAGS)
4420 LIB_REMOVE_USR_LIB(LIBS)
4422 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
4423 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
4424 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
4426 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
4428 #################################################
4429 # Print very concise instructions on building/use
4430 if test "x$enable_dmalloc" = xyes
4431 then
4432         AC_MSG_RESULT([Note: The dmalloc debug library will be included.  To turn it on use])
4433         AC_MSG_RESULT([      \$ eval \`dmalloc samba\`.])