r18865: fixed some of the most obvious NTSTATUS/WERROR mixups in Samba3. It
[Samba/nascimento.git] / source3 / configure.in
blob53b78e9e0eb5e2c1095884f06b22a6eb5940c8ac
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 SMB_VERSION_STRING=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2`
9 echo "SAMBA VERSION: ${SMB_VERSION_STRING}"
11 SAMBA_VERSION_SVN_REVISION=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-`
12 if test -n "${SAMBA_VERSION_SVN_REVISION}";then
13         echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
16 AC_LIBREPLACE_LOCATION_CHECKS
18 AC_DISABLE_STATIC
19 AC_ENABLE_SHARED
21 #################################################
22 # Directory handling stuff to support both the
23 # legacy SAMBA directories and FHS compliant
24 # ones...
25 AC_PREFIX_DEFAULT(/usr/local/samba)
27 rootsbindir="\${SBINDIR}"
28 lockdir="\${VARDIR}/locks"
29 piddir="\${VARDIR}/locks"
30 test "${mandir}" || mandir="\${prefix}/man"
31 logfilebase="\${VARDIR}"
32 privatedir="\${prefix}/private"
33 test "${libdir}" || libdir="\${prefix}/lib"
34 pammodulesdir="\${LIBDIR}/security"
35 configdir="\${LIBDIR}"
36 swatdir="\${prefix}/swat"
38 AC_ARG_WITH(fhs, 
39 [  --with-fhs              Use FHS-compliant paths (default=no)],
40 [ case "$withval" in
41   yes)
42     lockdir="\${VARDIR}/lib/samba"
43     piddir="\${VARDIR}/run"
44     mandir="\${prefix}/share/man"
45     logfilebase="\${VARDIR}/log/samba"
46     privatedir="\${CONFIGDIR}/private"
47     libdir="\${prefix}/lib/samba"
48     configdir="${sysconfdir}/samba"
49     swatdir="\${DATADIR}/samba/swat"
50     ;;
51   esac])
53 #################################################
54 # set private directory location
55 AC_ARG_WITH(privatedir,
56 [  --with-privatedir=DIR   Where to put smbpasswd ($ac_default_prefix/private)],
57 [ case "$withval" in
58   yes|no)
59   #
60   # Just in case anybody calls it without argument
61   #
62     AC_MSG_WARN([--with-privatedir called without argument - will use default])
63   ;;
64   * )
65     privatedir="$withval"
66     ;;
67   esac])
69 #################################################
70 # set root sbin directory location
71 AC_ARG_WITH(rootsbindir,
72 [  --with-rootsbindir=DIR  Which directory to use for root sbin ($ac_default_prefix/sbin)],
73 [ case "$withval" in
74   yes|no)
75   #
76   # Just in case anybody calls it without argument
77   #
78     AC_MSG_WARN([--with-rootsbindir called without argument - will use default])
79   ;;
80   * )
81     rootsbindir="$withval"
82     ;;
83   esac])
85 #################################################
86 # set lock directory location
87 AC_ARG_WITH(lockdir,
88 [  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)],
89 [ case "$withval" in
90   yes|no)
91   #
92   # Just in case anybody calls it without argument
93   #
94     AC_MSG_WARN([--with-lockdir called without argument - will use default])
95   ;;
96   * )
97     lockdir="$withval"
98     ;;
99   esac])
101 #################################################
102 # set pid directory location
103 AC_ARG_WITH(piddir,
104 [  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/locks)],
105 [ case "$withval" in
106   yes|no)
107   #
108   # Just in case anybody calls it without argument
109   #
110     AC_MSG_WARN([--with-piddir called without argument - will use default])
111   ;;
112   * )
113     piddir="$withval"
114     ;;
115   esac])
117 #################################################
118 # set SWAT directory location
119 AC_ARG_WITH(swatdir,
120 [  --with-swatdir=DIR      Where to put SWAT files ($ac_default_prefix/swat)],
121 [ case "$withval" in
122   yes|no)
123   #
124   # Just in case anybody does it
125   #
126     AC_MSG_WARN([--with-swatdir called without argument - will use default])
127   ;;
128   * )
129     swatdir="$withval"
130     ;;
131   esac])
133 #################################################
134 # set configuration directory location
135 AC_ARG_WITH(configdir,
136 [  --with-configdir=DIR    Where to put configuration files ($libdir)],
137 [ case "$withval" in
138   yes|no)
139   #
140   # Just in case anybody does it
141   #
142     AC_MSG_WARN([--with-configdir called without argument - will use default])
143   ;;
144   * )
145     configdir="$withval"
146     ;;
147   esac])
149 #################################################
150 # set log directory location
151 AC_ARG_WITH(logfilebase,
152 [  --with-logfilebase=DIR  Where to put log files ($VARDIR)],
153 [ case "$withval" in
154   yes|no)
155   #
156   # Just in case anybody does it
157   #
158     AC_MSG_WARN([--with-logfilebase called without argument - will use default])
159   ;;
160   * )
161     logfilebase="$withval"
162     ;;
163   esac])
165 #################################################
166 # set lib directory location
167 AC_ARG_WITH(libdir,
168 [  --with-libdir=DIR       Where to put libdir ($libdir)],
169 [ case "$withval" in
170   yes|no)
171   #
172   # Just in case anybody does it
173   #
174     AC_MSG_WARN([--with-libdir without argument - will use default])
175   ;;
176   * )
177     libdir="$withval"
178     ;;
179   esac])
181 #################################################
182 # set PAM modules directory location
183 AC_ARG_WITH(pammodulesdir,
184 [  --with-pammodulesdir=DIR  Which directory to use for PAM modules ($ac_default_prefix/$libdir/security)],
185 [ case "$withval" in
186   yes|no)
187   #
188   # Just in case anybody calls it without argument
189   #
190     AC_MSG_WARN([--with-pammodulesdir called without argument - will use default])
191   ;;
192   * )
193     pammodulesdir="$withval"
194     ;;
195   esac])
197 #################################################
198 # set man directory location
199 AC_ARG_WITH(mandir,
200 [  --with-mandir=DIR       Where to put man pages ($mandir)],
201 [ case "$withval" in
202   yes|no)
203   #
204   # Just in case anybody does it
205   #
206     AC_MSG_WARN([--with-mandir without argument - will use default])
207   ;;
208   * )
209     mandir="$withval"
210     ;;
211   esac])
213 AC_ARG_WITH(cfenc,
214 [  --with-cfenc=HEADERDIR  Use internal CoreFoundation encoding API
215                           for optimization (Mac OS X/Darwin only)],
217 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
218 # Should have been in framework $withval/CoreFoundation.framework/Headers.
219 for d in \
220     $withval/CoreFoundation/StringEncodings.subproj \
221     $withval/StringEncodings.subproj \
222     $withval/CoreFoundation.framework/Headers \
223     $withval/Headers \
224     $withval
226     if test -r $d/CFStringEncodingConverter.h; then
227         ln -sfh $d include/CoreFoundation
228     fi
229 done
232 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include  -I. -I${srcdir-.}"
233 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/replace"
234 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/talloc"
235 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/tdb/include"
236 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns"
237 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
239 SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/popt"
241 AC_SUBST(configdir)
242 AC_SUBST(lockdir)
243 AC_SUBST(piddir)
244 AC_SUBST(logfilebase)
245 AC_SUBST(privatedir)
246 AC_SUBST(swatdir)
247 AC_SUBST(bindir)
248 AC_SUBST(sbindir)
249 AC_SUBST(rootsbindir)
250 AC_SUBST(pammodulesdir)
252 dnl Unique-to-Samba variables we'll be playing with.
253 AC_SUBST(SAMBA_CPPFLAGS)
254 AC_SUBST(SHELL)
255 AC_SUBST(LDSHFLAGS)
256 AC_SUBST(SONAMEFLAG)
257 AC_SUBST(NSSSONAMEVERSIONSUFFIX)
258 AC_SUBST(SHLD)
259 AC_SUBST(HOST_OS)
260 AC_SUBST(PICFLAGS)
261 AC_SUBST(PICSUFFIX)
262 AC_SUBST(libc_cv_fpie)
263 AC_SUBST(PIE_CFLAGS)
264 AC_SUBST(PIE_LDFLAGS)
265 AC_SUBST(SHLIBEXT)
266 AC_SUBST(INSTALLLIBCMD_SH)
267 AC_SUBST(INSTALLLIBCMD_A)
268 AC_SUBST(UNINSTALLLIBCMD_SH)
269 AC_SUBST(UNINSTALLLIBCMD_A)
270 AC_SUBST(INSTALL_LIBMSRPC)
271 AC_SUBST(UNINSTALL_LIBMSRPC)
272 AC_SUBST(LIBMSRPC_SHARED)
273 AC_SUBST(LIBMSRPC)
274 AC_SUBST(INSTALL_LIBADDNS)
275 AC_SUBST(UNINSTALL_LIBADDNS)
276 AC_SUBST(LIBADDNS_SHARED)
277 AC_SUBST(LIBADDNS)
278 AC_SUBST(INSTALL_LIBSMBCLIENT)
279 AC_SUBST(UNINSTALL_LIBSMBCLIENT)
280 AC_SUBST(LIBSMBCLIENT_SHARED)
281 AC_SUBST(LIBSMBCLIENT)
282 AC_SUBST(INSTALL_LIBSMBSHAREMODES)
283 AC_SUBST(UNINSTALL_LIBSMBSHAREMODES)
284 AC_SUBST(LIBSMBSHAREMODES_SHARED)
285 AC_SUBST(LIBSMBSHAREMODES)
286 AC_SUBST(PRINT_LIBS)
287 AC_SUBST(AUTH_LIBS)
288 AC_SUBST(ACL_LIBS)
289 AC_SUBST(PASSDB_LIBS)
290 AC_SUBST(IDMAP_LIBS)
291 AC_SUBST(KRB5_LIBS)
292 AC_SUBST(UUID_LIBS)
293 AC_SUBST(LDAP_LIBS)
294 AC_SUBST(SHLIB_PROGS)
295 AC_SUBST(PAM_MODULES)
296 AC_SUBST(INSTALL_PAM_MODULES)
297 AC_SUBST(UNINSTALL_PAM_MODULES)
298 AC_SUBST(SMBWRAPPER)
299 AC_SUBST(SMBWRAP_OBJS)
300 AC_SUBST(SMBWRAP_INC)
301 AC_SUBST(EXTRA_BIN_PROGS)
302 AC_SUBST(CIFSMOUNT_PROGS)
303 AC_SUBST(INSTALL_CIFSMOUNT)
304 AC_SUBST(UNINSTALL_CIFSMOUNT)
305 AC_SUBST(EXTRA_SBIN_PROGS)
306 AC_SUBST(EXTRA_ALL_TARGETS)
307 AC_SUBST(CONFIG_LIBS)
308 AC_SUBST(NSCD_LIBS)
310 ## check for --enable-debug first before checking CFLAGS before
311 ## so that we don't mix -O and -g
312 AC_ARG_ENABLE(debug, 
313 [  --enable-debug          Turn on compiler debugging information (default=no)],
314     [if eval "test x$enable_debug = xyes"; then
315         CFLAGS="${CFLAGS} -g"
316     fi])
318 # compile with optimization and without debugging by default, but
319 # allow people to set their own preference.
320 # do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2"
321 # if it has no value.  This prevent *very* large debug binaries from occurring
322 # by default.
323 if test "x$CFLAGS" = x; then
324   CFLAGS="-O"
327 CFLAGS="${CFLAGS} -D_SAMBA_BUILD_=3"
329 AC_LIBREPLACE_CC_CHECKS
331 # Set defaults
332 PIE_CFLAGS=""
333 PIE_LDFLAGS=""
334 AC_ARG_ENABLE(pie, [  --enable-pie            Turn on pie support if available (default=yes)])
336 if test "x$enable_pie" != xno
337 then
338         AC_CACHE_CHECK(for -fPIE, libc_cv_fpie, [dnl
339                 cat > conftest.c <<EOF
340 int foo;
341 main () { return 0;}
343                 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
344                 then
345                         libc_cv_fpie=yes
346                         PIE_CFLAGS="-fPIE"
347                         PIE_LDFLAGS="-pie"
348                 fi
349                 rm -f conftest*])
351 if test "x$PIE_CFLAGS" = x
352 then
353         libc_cv_fpie=no
356 m4_include(lib/socket_wrapper/config.m4)
358 #################################################
359 # set prefix for 'make test'
360 selftest_prefix="./"
361 AC_SUBST(selftest_prefix)
362 AC_ARG_WITH(selftest-prefix,
363 [  --with-selftest-prefix=DIR    The prefix where make test will be runned ($selftest_prefix)],
364 [ case "$withval" in
365   yes|no)
366     AC_MSG_WARN([--with-selftest-prefix called without argument - will use default])
367   ;;
368   * )
369     selftest_prefix="$withval"
370     ;;
371   esac
374 #################################################
375 # set path of samba4's smbtorture
376 smbtorture4_path=""
377 AC_SUBST(smbtorture4_path)
378 AC_ARG_WITH(smbtorture4_path,
379 [  --with-smbtorture4-path=PATH    The path to a samba4 smbtorture for make test (none)],
380 [ case "$withval" in
381   yes|no)
382     AC_MSG_ERROR([--with-smbtorture4-path should take a path])
383   ;;
384   * )
385     smbtorture4_path="$withval"
386     if test -z "$smbtorture4_path" -a ! -f $smbtorture4_path; then
387         AC_MSG_ERROR(['$smbtorture_path' does not  exist!]) 
388     fi
389   ;;
390  esac
393 AC_ARG_ENABLE(developer, [  --enable-developer      Turn on developer warnings and debugging (default=no)],
394     [if eval "test x$enable_developer = xyes"; then
395         developer=yes
396         CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
397         # Add -Wdeclaration-after-statement if compiler supports it
398         AC_CACHE_CHECK(
399           [that the C compiler understands -Wdeclaration-after-statement],
400           samba_cv_HAVE_Wdeclaration_after_statement, [
401           AC_TRY_RUN_STRICT([
402             int main(void)
403             {
404                 return 0;
405             }],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
406             samba_cv_HAVE_Wdeclaration_after_statement=yes,
407             samba_cv_HAVE_Wdeclaration_after_statement=no,
408             samba_cv_HAVE_Wdeclaration_after_statement=cross)
409        ])
410        if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
411             CFLAGS="${CFLAGS} -Wdeclaration-after-statement"
412        fi
413     fi])
415 AC_ARG_ENABLE(krb5developer, [  --enable-krb5developer  Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
416     [if eval "test x$enable_krb5developer = xyes"; then
417         developer=yes
418         CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
419     fi])
421 AC_ARG_ENABLE(dmalloc, [  --enable-dmalloc        Enable heap debugging [default=no]])
423 if test "x$enable_dmalloc" = xyes
424 then
425         AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
426         AC_DEFINE(DMALLOC_FUNC_CHECK, 1, 
427                   [Define to check invariants around some common functions])
428         LIBS="$LIBS -ldmalloc"  
431 #################################################
432 # check for a shared memory profiling support
433 AC_MSG_CHECKING(whether to use profiling)
434 AC_ARG_WITH(profiling-data,
435 [  --with-profiling-data   Include gathering source code profile information (default=no)],
436 [ case "$withval" in
437   yes)
438     AC_MSG_RESULT(yes)
439     AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
440     samba_cv_WITH_PROFILE=yes
441     ;;
442   *)
443     AC_MSG_RESULT(no)
444     samba_cv_WITH_PROFILE=no
445     ;;
446   esac ],
447   AC_MSG_RESULT(no)
450 dnl Checks for programs.
452 AC_PROG_INSTALL
453 AC_PROG_AWK
454 AC_PATH_PROG(PERL, perl)
456 AC_CHECK_TOOL(AR, ar)
458 dnl Check if we use GNU ld
459 LD=ld
460 AC_PROG_LD_GNU
462 dnl Certain versions of GNU ld the default is not to have the 
463 dnl --allow-shlib-undefined flag defined.  This causes a stackload of
464 dnl warnings when building modules.
465 if test "$ac_cv_prog_gnu_ld" = "yes"; then
466         ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
467         AC_MSG_CHECKING(GNU ld release date)
468         changequote(,)dnl
469         ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
470         changequote([,])dnl
471         AC_MSG_RESULT(${ac_cv_gnu_ld_date})
472         if test -n "$ac_cv_gnu_ld_date"; then
473         if test "$ac_cv_gnu_ld_date" -lt 20030217; then
474                 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
475         fi
476         else
477            AC_MSG_CHECKING(GNU ld release version)
478            changequote(,)dnl
479            ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
480            ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
481            ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
482            changequote([,])dnl
483            AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
484            AC_MSG_CHECKING(GNU ld release version major)
485            AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
486            AC_MSG_CHECKING(GNU ld release version minor)
487            AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
488            if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
489              ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
490            fi
491         fi
494 dnl look for executable suffix
495 AC_EXEEXT
497 dnl Check if C compiler understands -c and -o at the same time
498 AC_PROG_CC_C_O
499 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
500       BROKEN_CC=
501 else
502       BROKEN_CC=#
504 AC_SUBST(BROKEN_CC)
506 dnl Check if the C compiler understands -Werror
507 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
508  AC_TRY_RUN_STRICT([
509   int main(void)
510   {
511         return 0;
512   }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
513   samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
514 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
515    Werror_FLAGS="-Werror"
516 else 
517 dnl Check if the C compiler understands -w2
518 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
519  AC_TRY_RUN_STRICT([
520   int main(void)
521   {
522         return 0;
523   }],[-w2],[$CPPFLAGS],[$LDFLAGS],
524   samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
525 if test x"$samba_cv_HAVE_w2" = x"yes"; then
526    Werror_FLAGS="-w2"
530 dnl Check if the C compiler understands volatile (it should, being ANSI).
531 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
532     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
533         samba_cv_volatile=yes,samba_cv_volatile=no)])
534 if test x"$samba_cv_volatile" = x"yes"; then
535    AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
538 dnl Figure out the flags to support named structure initializers
540 LIBREPLACE_C99_STRUCT_INIT([],[AC_MSG_ERROR([c99 structure initializer are not supported])])
542 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
543 AC_MSG_CHECKING(uname -s)
544 AC_MSG_RESULT(${UNAME_S})
546 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
547 AC_MSG_CHECKING(uname -r)
548 AC_MSG_RESULT(${UNAME_R})
550 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
551 AC_MSG_CHECKING(uname -m)
552 AC_MSG_RESULT(${UNAME_M})
554 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
555 AC_MSG_CHECKING(uname -p)
556 AC_MSG_RESULT(${UNAME_P})
558 dnl Add #include for broken IRIX header files
559   case "$host_os" in
560         *irix6*)
561                 #TODO add to libreplace
562                 if test x"$ac_cv_prog_gcc" != x"yes" ; then
563                         dnl Fix sensible defaults for MIPSPro compilers. The
564                         dnl error numbers are valid for the 7.3 compilers,
565                         dnl hopefully also valid for the 7.4 series.
566                         dnl
567                         dnl Bugzilla 3801. Force an error on warning 1035
568                         dnl so we don't incorrectly detect stdint.h. This
569                         dnl warning is emitted for #error directives.
570                         CFLAGS="$CFLAGS -diag_error 1035"
571                         dnl 1209: Controlling expression is constant
572                         dnl 1174: Function foo declared but never referenced
573                         dnl 3201: Parameter foo was never referenced
574                         CFLAGS="$CFLAGS -woff 1209,1174,3201"
575                 fi
576         ;;
577 esac
579 DYNEXP=
581 dnl Add modules that have to be built by default here
582 dnl These have to be built static:
583 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsa rpc_samr rpc_winreg rpc_initshutdown rpc_lsa_ds rpc_wkssvc rpc_svcctl rpc_ntsvcs rpc_net rpc_netdfs rpc_srvsvc rpc_spoolss rpc_eventlog rpc_unixinfo auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_default"
585 dnl These are preferably build shared, and static if dlopen() is not available
586 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy charset_CP850 charset_CP437 auth_script"
588 if test "x$developer" = xyes; then
589    default_static_modules="$default_static_modules rpc_rpcecho"
590    default_shared_modules="$default_shared_modules charset_weird"
594 # Config CPPFLAG settings for strange OS's that must be set
595 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
596 # case statement; its first reference must be unconditional.
598 case "$host_os" in
599 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
600     *hpux*)
602 # Defines needed for HPUX support.
603 # HPUX has bigcrypt but (sometimes?) doesn't use it for
604 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
606       case `uname -r` in
607                         *9*|*10*)
608                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
609                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
610                                 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
611                                 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
612                                 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
613                                 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
614                                 ;;
615                         *11*)
616                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
617                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
618                                 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
619                                 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
620                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
621                                 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
622                                 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
623                                 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Unix 98 sources -- needed for socklen_t in getsockopt on HP/UX 11])
624                                 ;;
625       esac
626       ;;
629 # CRAY Unicos has broken const handling
630        *unicos*)
631           AC_MSG_RESULT([disabling const])
632           CPPFLAGS="$CPPFLAGS -Dconst="
633           ;;
634         
636 # AIX4.x doesn't even admit to having large
637 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
639     *aix4*)
640           AC_MSG_RESULT([enabling large file support])
641       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
642           AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
643       ;;    
645 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
646 # to the existance of large files..
647 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
648 # recommendations on large file support, however it makes the
649 # compile work using gcc 2.7 and 2.8, whereas using the Sun
650 # recommendation makes the compile fail on gcc2.7. JRA.
652 # Solaris uses SYSV printing.  Make sure to set that here.  --jerry
654         *solaris*)
655                 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
656                 case `uname -r` in
657                         5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
658                                 AC_MSG_RESULT([no large file support])
659                                 ;;
660                         5.*)
661                         AC_MSG_RESULT([enabling large file support])
662                         if test "$ac_cv_prog_gcc" = yes; then
663                                 ${CC-cc} -v >conftest.c 2>&1
664                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
665                                 rm -fr conftest.c
666                                 case "$ac_cv_gcc_compiler_version_number" in
667                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
668                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
669                                                 LDFLAGS="$LDFLAGS -lthread"
670                                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
671                                                 ;;
672                                         *)
673                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
674                                                 LDFLAGS="$LDFLAGS -lthread"
675                                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
676                                                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
677                                                 ;;
678                                 esac
679                         else
680                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
681                                 LDFLAGS="$LDFLAGS -lthread"
682                                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
683                                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
684                         fi
685                         ;;
686                 esac
687                 ;;
689 # IRIX uses SYSV printing.  Make sure to set that here
691         *irix*)
692                 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
693                 ;;
694         *freebsd*|*dragonfly*)
695                 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
696                 ;;
698 # VOS may need to have POSIX support and System V compatibility enabled.
700     *vos*)
701     case "$CPPFLAGS" in
702           *-D_POSIX_C_SOURCE*)
703                 ;;
704           *)
705                 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
706                 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
707                 ;;
708     esac
709     case "$CPPFLAGS" in
710           *-D_SYSV*|*-D_SVID_SOURCE*)
711                 ;;
712           *)
713                 CPPFLAGS="$CPPFLAGS -D_SYSV"
714                 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
715     esac
716     ;;
718 # Tests needed for SINIX large file support.
720     *sysv4*)
721       if test $host = mips-sni-sysv4 ; then
722         AC_MSG_CHECKING([for LFS support])
723         old_CPPFLAGS="$CPPFLAGS"
724         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
725         AC_TRY_RUN([
726 #include <unistd.h>
727 main () {
728 #if _LFS64_LARGEFILE == 1
729 exit(0);
730 #else
731 exit(1);
732 #endif
733 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
734         CPPFLAGS="$old_CPPFLAGS"
735         if test x$SINIX_LFS_SUPPORT = xyes ; then
736           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
737                   AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
738           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
739           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
740           LIBS="`getconf LFS64_LIBS` $LIBS"
741         fi
742       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
743       fi
744     ;;
746 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
748     *linux*)
749         AC_MSG_CHECKING([for LFS support])
750         old_CPPFLAGS="$CPPFLAGS"
751         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
752        AC_TRY_RUN([
753 #include <unistd.h>
754 #include <sys/utsname.h>
755 #include <string.h>
756 #include <stdlib.h>
757 main() {
758 #if _LFS64_LARGEFILE == 1
759        struct utsname uts;
760        char *release;
761        int major, minor;
763        /* Ensure this is glibc 2.2 or higher */
764 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
765        int libc_major = __GLIBC__;
766        int libc_minor = __GLIBC_MINOR__;
768        if (libc_major < 2)
769               exit(1);
770        if (libc_minor < 2)
771               exit(1);
772 #endif
774        /* Ensure this is kernel 2.4 or higher */
776        uname(&uts);
777        release = strdup(uts.release);
778        major = atoi(strsep(&release, "."));
779        minor = atoi(strsep(&release, "."));
781        if (major > 2 || (major == 2 && minor > 3))
782                exit(0);
783        exit(1);
784 #else
785        exit(1);
786 #endif
788 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
789         CPPFLAGS="$old_CPPFLAGS"
790         if test x$LINUX_LFS_SUPPORT = xyes ; then
791                 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
792                 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
793                 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
794                 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
795         fi
796         AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
797         ;;
800 # MacOS X is the *only* system that uses compose character in utf8. This
801 # is so horribly broken....
803     *darwin*)
804         AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
805 # Add Fink directories for various packages, like dlcompat.
806 # Note: iconv does that explicitly below, but other packages
807 # don't.
808         CPPFLAGS="$CPPFLAGS -I/sw/include"
809         LDFLAGS="$LDFLAGS -L/sw/lib"
811 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
812 # use that instead of plain dlsym.
814         AC_CHECK_LIB(dl,dlopen)
815         AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
817 # Add a system specific charset module.
819         default_shared_modules="$default_shared_modules charset_macosxfs"
820         ;;
821     *hurd*)
822         AC_MSG_CHECKING([for LFS support])
823         old_CPPFLAGS="$CPPFLAGS"
824         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
825         AC_TRY_RUN([
826 #include <unistd.h>
827 main () {
828 #if _LFS64_LARGEFILE == 1
829 exit(0);
830 #else
831 exit(1);
832 #endif
833 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
834         CPPFLAGS="$old_CPPFLAGS"
835         if test x$GLIBC_LFS_SUPPORT = xyes ; then
836           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
837                   AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
838           AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
839         fi
840       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
841     ;;
843 esac
845 AC_LIBREPLACE_BROKEN_CHECKS
847 LIBREPLACE_DIR=`echo ${libreplacedir} |sed -e 's/^\.\///g'`
849 LIBREPLACE_OBJS=""
850 for obj in ${LIBREPLACEOBJ}; do
851         LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}"
852 done
853 AC_SUBST(LIBREPLACE_OBJS)
855 AC_CHECK_HEADERS(aio.h arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
856 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h memory.h alloca.h)
857 AC_CHECK_HEADERS(limits.h float.h)
858 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
859 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h)
860 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
861 AC_CHECK_HEADERS(sys/un.h)
862 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
863 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
864 AC_CHECK_HEADERS(sys/sysmacros.h security/_pam_macros.h dlfcn.h)
865 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
866 AC_CHECK_HEADERS(langinfo.h locale.h)
867 AC_CHECK_HEADERS(xfs/libxfs.h)
868 AC_CHECK_HEADERS(security/pam_ext.h)
870 AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
871 #if HAVE_RPC_RPC_H
872 #include <rpc/rpc.h>
873 #endif
876 ## These fail to compile on IRIX so just check for their presence
877 AC_CHECK_HEADERS(sys/mode.h,,,)
879 # Look for Darwin headers
880 old_CPPFLAGS="$CPPFLAGS"
881 CPPFLAGS="-Iinclude $CPPFLAGS"
882 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
883 CPPFLAGS="$old_CPPFLAGS"
885 # In valgrind 1.0.x, it's just valgrind.h.  In 1.9.x+ there's a
886 # subdirectory of headers.
887 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
889 # check for linux on amd64 since valgrind is not quite there yet
890 case "$host_os" in
891         *linux*)
892                 case "$UNAME_P" in
893                         *x86_64*)
894                                 AC_DEFINE(HAVE_64BIT_LINUX,1,[Whether we are running on 64bit linux])
895                                 ;;
896                 esac
897                 ;;
898 esac
902 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
903 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
905 case "$host_os" in
906     *hpux*)
907                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
908                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
909                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
910                    AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
911                 fi
912         ;;
913 esac
914 AC_CHECK_HEADERS(shadow.h)
915 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h)
916 AC_CHECK_HEADERS(stropts.h poll.h)
917 AC_CHECK_HEADERS(syscall.h sys/syscall.h)
919 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h)
920 AC_CHECK_HEADERS(sys/ea.h sys/proplist.h)
922 AC_CHECK_HEADERS(sys/cdefs.h glob.h)
924 AC_CHECK_HEADERS(security/pam_modules.h,,,[[
925 #if HAVE_SECURITY_PAM_APPL_H
926 #include <security/pam_appl.h>
927 #endif
930 # For experimental utmp support (lastlog on some BSD-like systems)
931 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
933 AC_CHECK_SIZEOF(int,cross)
934 AC_CHECK_SIZEOF(long,cross)
935 AC_CHECK_SIZEOF(long long,cross)
936 AC_CHECK_SIZEOF(short,cross)
938 AC_C_CONST
939 AC_C_INLINE
940 AC_C_BIGENDIAN
941 AC_C_CHAR_UNSIGNED
943 AC_TYPE_SIGNAL
944 AC_TYPE_UID_T
945 AC_TYPE_MODE_T
946 AC_TYPE_OFF_T
947 AC_TYPE_SIZE_T
948 AC_TYPE_PID_T
949 AC_STRUCT_ST_RDEV
950 AC_DIRENT_D_OFF
951 AC_CHECK_TYPE(ino_t,unsigned)
952 AC_CHECK_TYPE(loff_t,off_t)
953 AC_CHECK_TYPE(offset_t,loff_t)
954 AC_CHECK_TYPE(ssize_t, int)
955 AC_CHECK_TYPE(wchar_t, unsigned short)
956 AC_CHECK_TYPE(comparison_fn_t, 
957 [AC_DEFINE(HAVE_COMPARISON_FN_T, 1,[Whether or not we have comparison_fn_t])])
959 ############################################
960 # for cups support we need libcups, and a handful of header files
962 AC_ARG_ENABLE(cups,
963 [  --enable-cups           Turn on CUPS support (default=auto)])
965 if test x$enable_cups != xno; then
966         AC_PATH_PROG(CUPS_CONFIG, cups-config)
968         if test "x$CUPS_CONFIG" != x; then
969                 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
970                 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
971                 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
972                 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
973         elif test x"$enable_cups" = x"yes"; then
974                 AC_MSG_ERROR(Cups support required but cups-config not located.  Make sure cups-devel related files are installed.)
975         fi
978 AC_ARG_ENABLE(iprint,
979 [  --enable-iprint         Turn on iPrint support (default=yes if cups is yes)])
981 if test x$enable_iprint != xno; then
982         if test "x$CUPS_CONFIG" != x; then
983                 AC_DEFINE(HAVE_IPRINT,1,[Whether we have iPrint])
984         elif test x"$enable_iprint" = x"yes"; then
985                 AC_MSG_ERROR(iPrint support required but cups not enabled.  Make sure cups-devel related files are installed and that cups is enabled.)
986         fi
989 ############################################
990 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
991 AC_SEARCH_LIBS(dlopen, [dl])
992 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
994 ############################################
995 # check if the compiler can do immediate structures
996 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
997     AC_TRY_LINK([
998 #include <stdio.h>],
1000                 if (0) {
1001                    this_function_does_not_exist();
1002                 } else {
1003                   return 1;
1004                 }
1007         samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
1008 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
1009    AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
1012 ############################################
1013 # check for unix domain sockets
1014 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
1015     AC_TRY_COMPILE([
1016 #include <sys/types.h>
1017 #include <stdlib.h>
1018 #include <stddef.h>
1019 #include <sys/socket.h>
1020 #include <sys/un.h>],
1022   struct sockaddr_un sunaddr; 
1023   sunaddr.sun_family = AF_UNIX;
1025         samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
1026 if test x"$samba_cv_unixsocket" = x"yes"; then
1027    AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
1031 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
1032     AC_TRY_COMPILE([
1033 #include <sys/types.h>
1034 #if STDC_HEADERS
1035 #include <stdlib.h>
1036 #include <stddef.h>
1037 #endif
1038 #include <sys/socket.h>],[socklen_t i = 0],
1039         samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
1040 if test x"$samba_cv_socklen_t" = x"yes"; then
1041    AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
1044 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
1045     AC_TRY_COMPILE([
1046 #include <sys/types.h>
1047 #if STDC_HEADERS
1048 #include <stdlib.h>
1049 #include <stddef.h>
1050 #endif
1051 #include <signal.h>],[sig_atomic_t i = 0],
1052         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
1053 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
1054    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
1057 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
1058     AC_TRY_COMPILE([
1059 #include <sys/types.h>
1060 #if STDC_HEADERS
1061 #include <stdlib.h>
1062 #include <stddef.h>
1063 #endif
1064 #if TIME_WITH_SYS_TIME
1065 # include <sys/time.h>
1066 # include <time.h>
1067 #else
1068 # if HAVE_SYS_TIME_H
1069 #  include <sys/time.h>
1070 # else
1071 #  include <time.h>
1072 # endif
1073 #endif
1074 ],[struct timespec ts;],
1075         samba_cv_struct_timespec=yes,samba_cv_struct_timespec=no)])
1076 if test x"$samba_cv_struct_timespec" = x"yes"; then
1077    AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
1080 # stupid headers have the functions but no declaration. grrrr.
1081 AC_HAVE_DECL(errno, [#include <errno.h>])
1082 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
1083 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
1084 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
1085 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
1086 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
1087 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
1089 # and glibc has setresuid under linux but the function does
1090 # nothing until kernel 2.1.44! very dumb.
1091 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
1092     AC_TRY_RUN([#include <errno.h>
1093 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
1094         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
1095 if test x"$samba_cv_have_setresuid" = x"yes"; then
1096     AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
1099 # Do the same check for setresguid...
1101 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
1102     AC_TRY_RUN([#include <unistd.h>
1103 #include <errno.h>
1104 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
1105         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
1106 if test x"$samba_cv_have_setresgid" = x"yes"; then
1107     AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
1110 AC_FUNC_MEMCMP
1112 ###############################################
1113 # Readline included by default unless explicitly asked not to
1114 test "${with_readline+set}" != "set" && with_readline=yes
1116 # test for where we get readline() from
1117 AC_MSG_CHECKING(whether to use readline)
1118 AC_ARG_WITH(readline,
1119 [  --with-readline[=DIR]     Look for readline include/libs in DIR (default=auto) ],
1120 [  case "$with_readline" in
1121   yes)
1122     AC_MSG_RESULT(yes)
1124     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
1125     AC_CHECK_HEADERS(readline/history.h)
1127     AC_CHECK_HEADERS(readline.h readline/readline.h,[
1128       for termlib in ncurses curses termcap terminfo termlib tinfo; do
1129        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
1130       done
1131       AC_CHECK_LIB(readline, rl_callback_handler_install,
1132        [TERMLIBS="-lreadline $TERMLIBS"
1133        AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
1134        break], [TERMLIBS=], $TERMLIBS)])
1135     ;;
1136   no)
1137     AC_MSG_RESULT(no)
1138     ;;
1139   *)
1140     AC_MSG_RESULT(yes)
1142     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
1143     # alternate readline path
1144     _ldflags=${LDFLAGS}
1145     _cppflags=${CPPFLAGS}
1147     # Add additional search path
1148     LDFLAGS="-L$with_readline/lib $LDFLAGS"
1149     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
1151     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
1152     AC_CHECK_HEADERS(readline/history.h)
1154     AC_CHECK_HEADERS(readline.h readline/readline.h,[
1155       for termlib in ncurses curses termcap terminfo termlib; do
1156        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
1157       done
1158       AC_CHECK_LIB(readline, rl_callback_handler_install,
1159        [TERMLDFLAGS="-L$with_readline/lib"
1160        TERMCPPFLAGS="-I$with_readline/include"
1161        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
1162        TERMLIBS="-lreadline $TERMLIBS"
1163        AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
1164        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
1166     LDFLAGS=$_ldflags
1167     ;;
1168   esac],
1169   AC_MSG_RESULT(no)
1171 AC_SUBST(TERMLIBS)
1172 AC_SUBST(TERMLDFLAGS)
1174 # The readline API changed slightly from readline3 to readline4, so
1175 # code will generate warnings on one of them unless we have a few
1176 # special cases.
1177 AC_CHECK_LIB(readline, rl_completion_matches,
1178              [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, 
1179                         [Do we have rl_completion_matches?])],
1180              [],
1181              [$TERMLIBS])
1183 # The following test taken from the cvs sources
1184 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
1185 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
1186 # libsocket.so which has a bad implementation of gethostbyname (it
1187 # only looks in /etc/hosts), so we only look for -lsocket if we need
1188 # it.
1189 AC_CHECK_FUNCS(connect)
1190 if test x"$ac_cv_func_connect" = x"no"; then
1191     case "$LIBS" in
1192     *-lnsl*) ;;
1193     *) AC_CHECK_LIB(nsl_s, connect) ;;
1194     esac
1195     case "$LIBS" in
1196     *-lnsl*) ;;
1197     *) AC_CHECK_LIB(nsl, connect) ;;
1198     esac
1199     case "$LIBS" in
1200     *-lsocket*) ;;
1201     *) AC_CHECK_LIB(socket, connect) ;;
1202     esac
1203     case "$LIBS" in
1204     *-linet*) ;;
1205     *) AC_CHECK_LIB(inet, connect) ;;
1206     esac
1207     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
1208     dnl has been cached.
1209     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
1210        test x"$ac_cv_lib_inet_connect" = x"yes"; then
1211         # ac_cv_func_connect=yes
1212         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
1213         AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1214     fi
1217 ###############################################
1218 # test for where we get yp_get_default_domain() from
1219 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
1220 AC_CHECK_FUNCS(yp_get_default_domain)
1222 # Check if we have execl, if not we need to compile smbrun.
1223 AC_CHECK_FUNCS(execl)
1224 if test x"$ac_cv_func_execl" = x"no"; then
1225     EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1228 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strerror chown fchown chmod fchmod chroot link mknod mknod64)
1229 AC_CHECK_FUNCS(strtol strtoll strtoul strtoull strtouq __strtoull)
1230 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync memset strlcpy strlcat setpgid)
1231 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
1232 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
1233 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
1234 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
1235 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
1236 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
1237 AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
1238 AC_CHECK_FUNCS(getdents getdents64)
1239 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
1240 AC_CHECK_FUNCS(syslog vsyslog timegm)
1241 AC_CHECK_FUNCS(setlocale nl_langinfo)
1242 AC_CHECK_FUNCS(nanosleep)
1243 AC_CHECK_FUNCS(mlock munlock mlockall munlockall)
1244 AC_CHECK_HEADERS(sys/mman.h)
1245 # setbuffer, shmget, shm_open are needed for smbtorture
1246 AC_CHECK_FUNCS(setbuffer shmget shm_open)
1248 # Find a method of generating a stack trace
1249 AC_CHECK_HEADERS(execinfo.h libexc.h libunwind.h)
1250 AC_CHECK_FUNCS(backtrace_symbols)
1251 AC_CHECK_LIB(exc, trace_back_stack)
1253 # Note that all the libunwind symbols in the API are defined to internal
1254 # platform-specific version, so we must include libunwind.h before checking
1255 # any of them.
1256 AC_MSG_CHECKING([for libunwind])
1257 save_LIBS=$LIBS
1258 if test x"$UNAME_P" = xunknown ; then
1259     # This probably won't link without the platform-specific libunwind.
1260     LIBS="$LIBS -lunwind"
1261 else
1262     # Add the platform-specific libunwind module. uname -p seems the most
1263     # plausible option and works for ia64, where libunwind is most useful.
1264     LIBS="$LIBS -lunwind -lunwind-$UNAME_P"
1267 AC_TRY_LINK(
1268     [
1269 #ifdef HAVE_LIBUNWIND_H
1270 #include <libunwind.h>
1271 #endif
1272     ],
1273     [
1274         unw_context_t ctx; unw_cursor_t cur;
1275         char buf[256]; unw_word_t off; 
1276         unw_getcontext(&ctx); unw_init_local(&cur, &ctx);
1277         unw_get_proc_name(&cur, buf, sizeof(buf), &off);
1278     ],
1279     [
1280         AC_MSG_RESULT(yes)
1281         AC_DEFINE(HAVE_LIBUNWIND, 1, [Whether libunwind is available])
1283         # If we have libunwind, test whether we also have libunwind-ptrace
1284         # which would let us unwind arbitrary processes.
1285         save_LIBS=$LIBS
1286         AC_CHECK_HEADERS(libunwind-ptrace.h)
1287         AC_CHECK_LIB(unwind-ptrace, _UPT_create,
1288             [
1289                 LIBUNWIND_PTRACE="-lunwind-ptrace";
1290                 AC_DEFINE(HAVE_LIBUNWIND_PTRACE, 1,
1291                     [Whether libunwind-ptrace.a is available.])
1292             ],
1293             [ LIBUNWIND_PTRACE="" ])
1295         LIBS=$save_LIBS
1296     ],
1297     [
1298         AC_MSG_RESULT(no)
1299         LIBS=$save_LIBS
1300     ])
1302 # To use libunwind-ptrace, we also need to make some ptrace system calls.
1303 if test x"$LIBUNWIND_PTRACE" != x"" ; then
1304     AC_CHECK_HEADERS(sys/ptrace.h)
1305     AC_MSG_CHECKING([for the Linux ptrace(2) interface])
1306     AC_TRY_LINK(
1307             [
1308 #if HAVE_SYS_TYPES_H
1309 #include <sys/types.h>
1310 #endif
1311 #if HAVE_SYS_PTRACE_H
1312 #include <sys/ptrace.h>
1313 #endif
1314             ],
1315             [
1316                 int main(int argc, const char ** argv)
1317                 {
1318                         pid_t me = (pid_t)-1;
1319                         ptrace(PTRACE_ATTACH, me, 0, 0);
1320                         ptrace(PTRACE_DETACH, me, 0, 0);
1321                         return 0;
1322                 }
1323             ],
1324             [
1325                 AC_MSG_RESULT(yes)
1326                 AC_DEFINE(HAVE_LINUX_PTRACE, 1,
1327                     [Whether the Linux ptrace(2) interface is available.])
1328             ],
1329             [
1330                 AC_MSG_RESULT(no)
1331                 LIBUNWIND_PTRACE=""
1332             ])
1335 AC_SUBST(LIBUNWIND_PTRACE)
1337 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
1338 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
1339 AC_CHECK_FUNCS(__getcwd _getcwd)
1340 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
1341 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1342 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
1343 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1344 AC_CHECK_FUNCS(getdents __getdents _lseek __lseek _read __read)
1345 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1346 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1347 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1348 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
1349 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1350 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1351 AC_CHECK_FUNCS(prctl)
1353 AC_TRY_COMPILE([
1354 #ifdef HAVE_SYS_PRCTL_H
1355 #include <sys/prctl.h>
1356 #endif
1358 [int i; i = prtcl(0); ],
1359 AC_DEFINE(HAVE_PRCTL, 1, [Whether prctl is available]),[])
1364 case "$host_os" in
1365     *linux*)
1366        # glibc <= 2.3.2 has a broken getgrouplist
1367        AC_TRY_RUN([
1368 #include <unistd.h>
1369 #include <sys/utsname.h>
1370 main() {
1371        /* glibc up to 2.3 has a broken getgrouplist */
1372 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1373        int libc_major = __GLIBC__;
1374        int libc_minor = __GLIBC_MINOR__;
1376        if (libc_major < 2)
1377               exit(1);
1378        if ((libc_major == 2) && (libc_minor <= 3))
1379               exit(1);
1380 #endif
1381        exit(0);
1383 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1384        if test x"$linux_getgrouplist_ok" = x"yes"; then
1385           AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1386        fi
1387        ;;
1388     *)
1389        AC_CHECK_FUNCS(getgrouplist)
1390        ;;
1391 esac
1394 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1397 if test x$ac_cv_func_stat64 = xno ; then
1398   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1399   AC_TRY_LINK([
1400 #if defined(HAVE_UNISTD_H)
1401 #include <unistd.h>
1402 #endif
1403 #include <sys/stat.h>
1404 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1405   AC_MSG_RESULT([$ac_cv_func_stat64])
1406   if test x$ac_cv_func_stat64 = xyes ; then
1407     AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1408   fi
1411 if test x$ac_cv_func_lstat64 = xno ; then
1412   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1413   AC_TRY_LINK([
1414 #if defined(HAVE_UNISTD_H)
1415 #include <unistd.h>
1416 #endif
1417 #include <sys/stat.h>
1418 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1419   AC_MSG_RESULT([$ac_cv_func_lstat64])
1420   if test x$ac_cv_func_lstat64 = xyes ; then
1421     AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1422   fi
1425 if test x$ac_cv_func_fstat64 = xno ; then
1426   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1427   AC_TRY_LINK([
1428 #if defined(HAVE_UNISTD_H)
1429 #include <unistd.h>
1430 #endif
1431 #include <sys/stat.h>
1432 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1433   AC_MSG_RESULT([$ac_cv_func_fstat64])
1434   if test x$ac_cv_func_fstat64 = xyes ; then
1435     AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1436   fi
1439 #################################################
1440 # Check whether struct stat has timestamps with sub-second resolution.
1441 # At least IRIX and Solaris have these.
1443 # We check that 
1444 #       all of st_mtim, st_atim and st_ctim exist
1445 #       all of the members are in fact of type struct timespec
1447 # There is some conflicting standards weirdness about whether we should use
1448 # "struct timespec" or "timespec_t". Linux doesn't have timespec_t, so we
1449 # prefer struct timespec.
1451 AC_CACHE_CHECK([whether struct stat has sub-second timestamps], samba_stat_hires,
1452     [
1453         AC_TRY_COMPILE(
1454             [
1455 #if TIME_WITH_SYS_TIME
1456 # include <sys/time.h>
1457 # include <time.h>
1458 #else
1459 # if HAVE_SYS_TIME_H
1460 #  include <sys/time.h>
1461 # else
1462 #  include <time.h>
1463 # endif
1464 #endif
1465 #ifdef HAVE_SYS_STAT_H
1466 #include <sys/stat.h>
1467 #endif
1468             ],
1469             [
1470                 struct timespec t;
1471                 struct stat s = {0};
1472                 t.tv_sec = s.st_mtim.tv_sec;
1473                 t.tv_nsec = s.st_mtim.tv_nsec;
1474                 t.tv_sec = s.st_ctim.tv_sec;
1475                 t.tv_nsec = s.st_ctim.tv_nsec;
1476                 t.tv_sec = s.st_atim.tv_sec;
1477                 t.tv_nsec = s.st_atim.tv_nsec;
1478             ],
1479             samba_stat_hires=yes, samba_stat_hires=no)
1480     ])
1482 if test x"$samba_stat_hires" = x"yes" ; then
1483     AC_DEFINE(HAVE_STAT_ST_MTIM, 1, [whether struct stat contains st_mtim])
1484     AC_DEFINE(HAVE_STAT_ST_ATIM, 1, [whether struct stat contains st_atim])
1485     AC_DEFINE(HAVE_STAT_ST_CTIM, 1, [whether struct stat contains st_ctim])
1486     AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1487             [whether struct stat has sub-second timestamps])
1490 AC_CACHE_CHECK([whether struct stat has sub-second timestamps without struct timespec], samba_stat_hires_notimespec,
1491     [
1492         AC_TRY_COMPILE(
1493             [
1494 #if TIME_WITH_SYS_TIME
1495 # include <sys/time.h>
1496 # include <time.h>
1497 #else
1498 # if HAVE_SYS_TIME_H
1499 #  include <sys/time.h>
1500 # else
1501 #  include <time.h>
1502 # endif
1503 #endif
1504 #ifdef HAVE_SYS_STAT_H
1505 #include <sys/stat.h>
1506 #endif
1507             ],
1508             [
1509                 struct timespec t;
1510                 struct stat s = {0};
1511                 t.tv_sec = s.st_mtime;
1512                 t.tv_nsec = s.st_mtimensec;
1513                 t.tv_sec = s.st_ctime;
1514                 t.tv_nsec = s.st_ctimensec;
1515                 t.tv_sec = s.st_atime;
1516                 t.tv_nsec = s.st_atimensec;
1517             ],
1518             samba_stat_hires=yes, samba_stat_hires=no)
1519     ])
1521 if test x"$samba_stat_hires_notimespec" = x"yes" ; then
1522     AC_DEFINE(HAVE_STAT_ST_MTIMENSEC, 1, [whether struct stat contains st_mtimensec])
1523     AC_DEFINE(HAVE_STAT_ST_ATIMENSEC, 1, [whether struct stat contains st_atimensec])
1524     AC_DEFINE(HAVE_STAT_ST_CTIMENSEC, 1, [whether struct stat contains st_ctimensec])
1525     AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1526             [whether struct stat has sub-second timestamps without struct timespec])
1529 #####################################
1530 # needed for SRV lookups
1531 AC_CHECK_LIB(resolv, dn_expand)
1532 AC_CHECK_LIB(resolv, _dn_expand)
1533 AC_CHECK_LIB(resolv, __dn_expand)
1536 # Check for the functions putprpwnam, set_auth_parameters,
1537 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1538 # Needed for OSF1 and HPUX.
1541 AC_LIBTESTFUNC(security, putprpwnam)
1542 AC_LIBTESTFUNC(sec, putprpwnam)
1544 AC_LIBTESTFUNC(security, set_auth_parameters)
1545 AC_LIBTESTFUNC(sec, set_auth_parameters)
1547 # UnixWare 7.x has its getspnam in -lgen
1548 AC_LIBTESTFUNC(gen, getspnam)
1550 AC_LIBTESTFUNC(security, getspnam)
1551 AC_LIBTESTFUNC(sec, getspnam)
1553 AC_LIBTESTFUNC(security, bigcrypt)
1554 AC_LIBTESTFUNC(sec, bigcrypt)
1556 AC_LIBTESTFUNC(security, getprpwnam)
1557 AC_LIBTESTFUNC(sec, getprpwnam)
1559 AC_CHECK_FUNCS(strsignal)
1561 ############################################
1562 # Check if we have libattr
1563 case "$host_os" in
1564   *osf*)
1565         AC_SEARCH_LIBS(getproplist, [proplist])
1566         AC_CHECK_FUNCS(getproplist fgetproplist setproplist fsetproplist)
1567         AC_CHECK_FUNCS(delproplist fdelproplist add_proplist_entry get_proplist_entry)
1568         AC_CHECK_FUNCS(sizeof_proplist_entry)
1569   ;;
1570   *)
1571         AC_SEARCH_LIBS(getxattr, [attr])
1572         AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1573         AC_CHECK_FUNCS(getea fgetea lgetea listea flistea llistea)
1574         AC_CHECK_FUNCS(removeea fremoveea lremoveea setea fsetea lsetea)
1575         AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1576         AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1577         AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1578         AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1579   ;;
1580 esac
1582 # Check if we have extattr
1583 case "$host_os" in
1584   *freebsd4* | *dragonfly* )
1585     AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1586     ;;
1587   *)
1588     AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
1589     AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
1590     AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
1591     AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
1592     ;;
1593 esac
1595 # Assume non-shared by default and override below
1596 BLDSHARED="false"
1598 # these are the defaults, good for lots of systems
1599 HOST_OS="$host_os"
1600 LDSHFLAGS="-shared"
1601 SONAMEFLAG="#"
1602 NSSSONAMEVERSIONSUFFIX=""
1603 SHLD="\${CC} \${CFLAGS}"
1604 PICFLAGS=""
1605 PICSUFFIX="po"
1606 SHLIBEXT="so"
1608 if test "$enable_shared" = "yes"; then
1609   # this bit needs to be modified for each OS that supports share libs
1610   # You need to specify how to create a shared library and
1611   # how to compile C code to produce PIC object files
1613   AC_MSG_CHECKING([ability to build shared libraries])
1615   # and these are for particular systems
1616   case "$host_os" in
1617                 *linux*)   AC_DEFINE(LINUX,1,[Whether the host os is linux])
1618                         BLDSHARED="true"
1619                         if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
1620                                 LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined" 
1621                         else
1622                                 LDSHFLAGS="-shared -Wl,-Bsymbolic" 
1623                         fi
1624                         DYNEXP="-Wl,--export-dynamic"
1625                         PICFLAGS="-fPIC"
1626                         SONAMEFLAG="-Wl,-soname="
1627                         NSSSONAMEVERSIONSUFFIX=".2"
1628                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1629                         ;;
1630                 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1631                         BLDSHARED="true"
1632                         LDSHFLAGS="-G"
1633                         SONAMEFLAG="-h "
1634                         if test "${GCC}" = "yes"; then
1635                                 PICFLAGS="-fPIC"
1636                                 SONAMEFLAG="-Wl,-soname="
1637                                 NSSSONAMEVERSIONSUFFIX=".1"
1638                                 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1639                                         DYNEXP="-Wl,-E"
1640                                 fi
1641                         else
1642                                 PICFLAGS="-KPIC"
1643                                 ## ${CFLAGS} added for building 64-bit shared 
1644                                 ## libs using Sun's Compiler
1645                                 LDSHFLAGS="-G \${CFLAGS}"
1646                                 PICSUFFIX="po.o"
1647                         fi
1648                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1649                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1650                         ;;
1651                 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1652                         BLDSHARED="true"
1653                         LDSHFLAGS="-G"
1654                         SONAMEFLAG="-Wl,-h,"
1655                         PICFLAGS="-KPIC"   # Is this correct for SunOS
1656                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1657                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1658                         ;;
1659                 *netbsd* | *freebsd* | *dragonfly* )  
1660                         BLDSHARED="true"
1661                         LDSHFLAGS="-shared"
1662                         DYNEXP="-Wl,--export-dynamic"
1663                         SONAMEFLAG="-Wl,-soname,"
1664                         PICFLAGS="-fPIC -DPIC"
1665                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1666                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1667                         ;;
1668                 *openbsd*)  BLDSHARED="true"
1669                         LDSHFLAGS="-shared"
1670                         DYNEXP="-Wl,-Bdynamic"
1671                         SONAMEFLAG="-Wl,-soname,"
1672                         PICFLAGS="-fPIC"
1673                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1674                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1675                         ;;
1676                 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1677                         case "$host_os" in
1678                         *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1679                         ;;
1680                         esac
1681                         BLDSHARED="true"
1682                         LDSHFLAGS="-set_version sgi1.0 -shared"
1683                         SONAMEFLAG="-soname "
1684                         SHLD="\${LD}"
1685                         if test "${GCC}" = "yes"; then
1686                                 PICFLAGS="-fPIC"
1687                         else 
1688                                 PICFLAGS="-KPIC"
1689                         fi
1690                         AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1691                         ;;
1692                 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1693                         BLDSHARED="true"
1694                         LDSHFLAGS="-Wl,-G,-bexpall"
1695                         DYNEXP="-Wl,-brtl,-bexpall,-bbigtoc"
1696                         PICFLAGS="-O2"
1697                         # as AIX code is always position independent...
1698                         # .po will just create compile warnings, use po.o:
1699                         PICSUFFIX="po.o"
1700                         if test "${GCC}" != "yes"; then
1701                                 ## for funky AIX compiler using strncpy()
1702                                 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1703                         fi
1705                         AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1706                         AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
1707                         AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
1708                         ;;
1709                 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1710                         # Use special PIC flags for the native HP-UX compiler.
1711                         if test $ac_cv_prog_cc_Ae = yes; then
1712                                 BLDSHARED="true"
1713                                 SHLD="cc"
1714                                 LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
1715                                 SONAMEFLAG="-Wl,+h "
1716                                 PICFLAGS="+z"
1717                         elif test "${GCC}" = "yes"; then
1718                                 PICFLAGS="-fPIC"
1719                         fi
1720                         if test "$host_cpu" = "ia64"; then
1721                                 SHLIBEXT="so"
1722                                 DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32"
1723                         else
1724                                 SHLIBEXT="sl"
1725                                 DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib"
1726                         fi
1727                         AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1728                         AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1729                         ;;
1730                 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1731                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1732                         ;;
1733                 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1734                         BLDSHARED="true"
1735                         LDSHFLAGS="-shared"
1736                         SONAMEFLAG="-Wl,-soname,"
1737                         PICFLAGS="-fPIC"
1738                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1739                         AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1740                         ;;
1741                 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1742                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1743                         ;;
1744                 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1745                         BLDSHARED="true"
1746                         LDSHFLAGS="-shared"
1747                         SONAMEFLAG="-Wl,-soname,"
1748                         PICFLAGS="-KPIC"
1749                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1750                         ;;
1751                 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1752                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1753                         ;;
1754                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1755                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1756                         ;;
1757                 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1758                         case "$host" in
1759                                 *-univel-*)     if [ test "$GCC" != yes ]; then
1760                                                 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1761                                         fi
1762                                         LDSHFLAGS="-G"
1763                                         DYNEXP="-Bexport"
1764                                 ;;
1765                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1766                         esac
1767                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1768                         ;;
1770                 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1771                         if [ test "$GCC" != yes ]; then
1772                                 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1773                         fi
1774                         LDSHFLAGS="-G"
1775                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1776                         ;;
1777                 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1778                         BLDSHARED="false"
1779                         LDSHFLAGS=""
1780                         ;;
1782                 *darwin*)   AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1783                         BLDSHARED="true"
1784                         LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1785                         SHLIBEXT="dylib"
1786                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1787                         ;;
1789                 *)
1790                         AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1791                         ;;
1792   esac
1793   AC_SUBST(DYNEXP)
1794   AC_MSG_RESULT($BLDSHARED)
1795   AC_MSG_CHECKING([linker flags for shared libraries])
1796   AC_MSG_RESULT([$LDSHFLAGS])
1797   AC_MSG_CHECKING([compiler flags for position-independent code])
1798   AC_MSG_RESULT([$PICFLAGS])
1801 #######################################################
1802 # test whether building a shared library actually works
1803 if test $BLDSHARED = true; then
1804 AC_CACHE_CHECK([whether building shared libraries actually works], 
1805                [ac_cv_shlib_works],[
1806    # try building a trivial shared library
1807    ac_cv_shlib_works=no
1808    # The $SHLD and $LDSHFLAGS variables may contain references to other
1809    # variables so they need to be eval'ed.
1810    $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1811         shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1812    `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1813         shlib.$PICSUFFIX && ac_cv_shlib_works=yes
1814    rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1816 if test $ac_cv_shlib_works = no; then
1817    BLDSHARED=false
1821 ################
1823 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1824 AC_TRY_RUN([#include <stdio.h>
1825 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1826 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1827 if test x"$samba_cv_have_longlong" = x"yes"; then
1828     AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1829     AC_CHECK_TYPE(intptr_t, unsigned long long)
1830 else
1831     AC_CHECK_TYPE(intptr_t, unsigned long)
1835 # Check if the compiler supports the LL prefix on long long integers.
1836 # AIX needs this.
1838 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1839     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1840         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1841 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1842    AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1845   
1846 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1847 AC_TRY_RUN([#include <stdio.h>
1848 #include <sys/stat.h>
1849 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1850 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1851 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1852     AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1855 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1856 AC_TRY_RUN([
1857 #if defined(HAVE_UNISTD_H)
1858 #include <unistd.h>
1859 #endif
1860 #include <stdio.h>
1861 #include <sys/stat.h>
1862 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1863 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1864 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1865     AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1868 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1869 AC_TRY_RUN([
1870 #if defined(HAVE_UNISTD_H)
1871 #include <unistd.h>
1872 #endif
1873 #include <stdio.h>
1874 #include <sys/stat.h>
1875 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1876 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1877 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1878     AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1881 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1882 AC_TRY_RUN([
1883 #if defined(HAVE_UNISTD_H)
1884 #include <unistd.h>
1885 #endif
1886 #include <stdio.h>
1887 #include <sys/stat.h>
1888 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1889 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1890 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1891     AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1894 AC_CACHE_CHECK([for 64 bit dev_t],samba_cv_SIZEOF_DEV_T,[
1895 AC_TRY_RUN([
1896 #if defined(HAVE_UNISTD_H)
1897 #include <unistd.h>
1898 #endif
1899 #include <stdio.h>
1900 #include <sys/stat.h>
1901 main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }],
1902 samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)])
1903 if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then
1904     AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type])
1907 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1908 AC_TRY_RUN([
1909 #if defined(HAVE_UNISTD_H)
1910 #include <unistd.h>
1911 #endif
1912 #include <stdio.h>
1913 #include <sys/stat.h>
1914 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1915 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1916 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1917     AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1920 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIR64,[
1921 AC_TRY_COMPILE([
1922 #if defined(HAVE_UNISTD_H)
1923 #include <unistd.h>
1924 #endif
1925 #include <sys/types.h>
1926 #include <dirent.h>],
1927 [DIR64 de;],
1928 samba_cv_HAVE_STRUCT_DIR64=yes,samba_cv_HAVE_STRUCT_DIR64=no)])
1929 if test x"$samba_cv_HAVE_STRUCT_DIR64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1930     AC_DEFINE(HAVE_STRUCT_DIR64,1,[Whether the 'DIR64' abstract data type is available])
1933 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1934 AC_TRY_COMPILE([
1935 #if defined(HAVE_UNISTD_H)
1936 #include <unistd.h>
1937 #endif
1938 #include <sys/types.h>
1939 #include <dirent.h>],
1940 [struct dirent64 de;],
1941 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1942 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1943     AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1946 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1947 AC_TRY_RUN([
1948 #if defined(HAVE_UNISTD_H)
1949 #include <unistd.h>
1950 #endif
1951 #include <sys/types.h>
1952 main() { dev_t dev; int i = major(dev); return 0; }],
1953 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1954 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1955     AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1958 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1959 AC_TRY_RUN([
1960 #if defined(HAVE_UNISTD_H)
1961 #include <unistd.h>
1962 #endif
1963 #include <sys/types.h>
1964 main() { dev_t dev; int i = minor(dev); return 0; }],
1965 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1966 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1967     AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1970 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
1971 AC_TRY_RUN([
1972 #if defined(HAVE_UNISTD_H)
1973 #include <unistd.h>
1974 #endif
1975 #include <sys/types.h>
1976 main() { dev_t dev = makedev(1,2); return 0; }],
1977 samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
1978 if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
1979     AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
1982 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1983 AC_TRY_RUN([#include <stdio.h>
1984 main() { char c; c=250; exit((c > 0)?0:1); }],
1985 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1986 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1987     AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1990 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1991 AC_TRY_COMPILE([#include <sys/types.h>
1992 #include <sys/socket.h>
1993 #include <netinet/in.h>],
1994 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1995 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1996 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1997     AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
2000 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
2001 AC_TRY_COMPILE([#include <sys/types.h>
2002 #include <dirent.h>
2003 void seekdir(DIR *d, long loc) { return; }],[return 0;],
2004 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
2005 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
2006     AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
2009 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
2010 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
2011 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
2012 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
2013     AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
2016 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
2017 AC_TRY_RUN([
2018 #include <sys/time.h>
2019 #include <unistd.h>
2020 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
2021            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
2022 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
2023     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
2026 if test x"$samba_cv_WITH_PROFILE" = x"yes"; then
2028     # On some systems (eg. Linux) librt can pull in libpthread. We
2029     # don't want this to happen because libpthreads changes signal delivery
2030     # semantics in ways we are not prepared for. This breaks Linux oplocks
2031     # which rely on signals.
2033     AC_LIBTESTFUNC(rt, clock_gettime,
2034             [
2035                 AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
2036                     [Whether clock_gettime is available])
2037                 SMB_CHECK_CLOCK_ID(CLOCK_MONOTONIC)
2038                 SMB_CHECK_CLOCK_ID(CLOCK_PROCESS_CPUTIME_ID)
2039                 SMB_CHECK_CLOCK_ID(CLOCK_REALTIME)
2040             ])
2044 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
2045 AC_TRY_LINK([#include <stdarg.h>
2046 va_list ap1,ap2;], [va_copy(ap1,ap2);],
2047 samba_cv_HAVE_VA_COPY=yes,
2048 samba_cv_HAVE_VA_COPY=no)])
2049 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
2050     AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
2051 else
2052     AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
2053     AC_TRY_LINK([#include <stdarg.h>
2054     va_list ap1,ap2;], [__va_copy(ap1,ap2);],
2055     samba_cv_HAVE___VA_COPY=yes,
2056     samba_cv_HAVE___VA_COPY=no)])
2057     if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
2058         AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
2059     fi
2062 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
2063 AC_TRY_RUN([
2064 #include <sys/types.h>
2065 #include <stdarg.h>
2066 void foo(const char *format, ...) { 
2067        va_list ap;
2068        int len;
2069        char buf[5];
2071        va_start(ap, format);
2072        len = vsnprintf(buf, 0, format, ap);
2073        va_end(ap);
2074        if (len != 5) exit(1);
2076        va_start(ap, format);
2077        len = vsnprintf(0, 0, format, ap);
2078        va_end(ap);
2079        if (len != 5) exit(1);
2081        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
2083        exit(0);
2085 main() { foo("hello"); }
2087 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
2088 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
2089     AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
2092 AC_CACHE_CHECK([for broken readdir name],samba_cv_HAVE_BROKEN_READDIR_NAME,[
2093 AC_TRY_RUN([#include <sys/types.h>
2094 #include <dirent.h>
2095 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
2096 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
2097 di->d_name[0] == 0) exit(0); exit(1);} ],
2098 samba_cv_HAVE_BROKEN_READDIR_NAME=yes,samba_cv_HAVE_BROKEN_READDIR_NAME=no,samba_cv_HAVE_BROKEN_READDIR_NAME=cross)])
2099 if test x"$samba_cv_HAVE_BROKEN_READDIR_NAME" = x"yes"; then
2100     AC_DEFINE(HAVE_BROKEN_READDIR_NAME,1,[Whether readdir() returns the wrong name offset])
2103 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
2104 AC_TRY_COMPILE([#include <sys/types.h>
2105 #include <utime.h>],
2106 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
2107 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
2108 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
2109     AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
2112 ##############
2113 # Check utmp details, but only if our OS offers utmp.h
2114 if test x"$ac_cv_header_utmp_h" = x"yes"; then
2115 dnl  utmp and utmpx come in many flavours
2116 dnl  We need to check for many of them
2117 dnl  But we don't need to do each and every one, because our code uses
2118 dnl  mostly just the utmp (not utmpx) fields.
2120 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
2122 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
2123 AC_TRY_COMPILE([#include <sys/types.h>
2124 #include <utmp.h>],
2125 [struct utmp ut;  ut.ut_name[0] = 'a';],
2126 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
2127 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
2128     AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
2129 fi 
2131 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
2132 AC_TRY_COMPILE([#include <sys/types.h>
2133 #include <utmp.h>],
2134 [struct utmp ut;  ut.ut_user[0] = 'a';],
2135 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
2136 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
2137     AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
2138 fi 
2140 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
2141 AC_TRY_COMPILE([#include <sys/types.h>
2142 #include <utmp.h>],
2143 [struct utmp ut;  ut.ut_id[0] = 'a';],
2144 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
2145 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
2146     AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
2147 fi 
2149 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
2150 AC_TRY_COMPILE([#include <sys/types.h>
2151 #include <utmp.h>],
2152 [struct utmp ut;  ut.ut_host[0] = 'a';],
2153 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
2154 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
2155     AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
2156 fi 
2158 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
2159 AC_TRY_COMPILE([#include <sys/types.h>
2160 #include <utmp.h>],
2161 [struct utmp ut;  time_t t; ut.ut_time = t;],
2162 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
2163 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
2164     AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
2165 fi 
2167 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
2168 AC_TRY_COMPILE([#include <sys/types.h>
2169 #include <utmp.h>],
2170 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
2171 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
2172 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
2173     AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
2174 fi 
2176 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
2177 AC_TRY_COMPILE([#include <sys/types.h>
2178 #include <utmp.h>],
2179 [struct utmp ut;  ut.ut_type = 0;],
2180 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
2181 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
2182     AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
2183 fi 
2185 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
2186 AC_TRY_COMPILE([#include <sys/types.h>
2187 #include <utmp.h>],
2188 [struct utmp ut;  ut.ut_pid = 0;],
2189 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
2190 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
2191     AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
2192 fi 
2194 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
2195 AC_TRY_COMPILE([#include <sys/types.h>
2196 #include <utmp.h>],
2197 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
2198 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
2199 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
2200     AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
2201 fi 
2203 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
2204 AC_TRY_COMPILE([#include <sys/types.h>
2205 #include <utmp.h>],
2206 [struct utmp ut;  ut.ut_addr = 0;],
2207 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
2208 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
2209     AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
2210 fi 
2212 if test x$ac_cv_func_pututline = xyes ; then
2213   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
2214   AC_TRY_COMPILE([#include <sys/types.h>
2215 #include <utmp.h>],
2216   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
2217   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
2218   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
2219       AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
2220   fi
2223 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
2224 AC_TRY_COMPILE([#include <sys/types.h>
2225 #include <utmpx.h>],
2226 [struct utmpx ux;  ux.ut_syslen = 0;],
2227 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
2228 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
2229     AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
2230 fi 
2233 # end utmp details
2236 ICONV_LOCATION=standard
2237 LOOK_DIRS="/usr /usr/local /sw /opt"
2238 AC_ARG_WITH(libiconv,
2239 [  --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
2241   if test "$withval" = "no" ; then
2242     AC_MSG_ERROR([argument to --with-libiconv must be a directory])
2243   else
2244      if test "$withval" != "yes" ; then
2245         ICONV_PATH_SPEC=yes
2246         LOOK_DIRS="$withval"
2247      fi
2248   fi
2251 for i in $LOOK_DIRS ; do
2252     save_LIBS=$LIBS
2253     save_LDFLAGS=$LDFLAGS
2254     save_CPPFLAGS=$CPPFLAGS
2255     ICONV_FOUND="no"
2256     unset libext
2257     CPPFLAGS="$CPPFLAGS -I$i/include"
2258 dnl This is here to handle -withval stuff for --with-libiconv
2259 dnl Perhaps we should always add a -L
2261 dnl Check lib and lib32 library variants to cater for IRIX ABI-specific
2262 dnl installation paths. This gets a little tricky since we might have iconv
2263 dnl in both libiconv and in libc. In this case the jm_ICONV test will always
2264 dnl succeed when the header is found. To counter this, make sure the 
2265 dnl library directory is there and check the ABI directory first (which
2266 dnl should be harmless on other systems.
2267 dnl For IA64 HPUX systems, the libs are located in lib/hpux32 instead of lib.
2268     for l in "lib32" "lib" "lib/hpux32"; do
2269         if test -d "$i/$l" ; then
2270                 LDFLAGS="$save_LDFLAGS -L$i/$l"
2271         LIBS=
2272         export LDFLAGS LIBS CPPFLAGS
2273 dnl Try to find iconv(3)
2274                 jm_ICONV($i/$l)
2275                 if test x"$ICONV_FOUND" = "xyes" ; then
2276             libext="$l"
2277             break;
2278         fi
2279         fi
2280     done
2282     if test x"$ICONV_FOUND" = "xyes" ; then
2283         LDFLAGS=$save_LDFLAGS
2284         LIB_ADD_DIR(LDFLAGS, "$i/$libext")
2285         CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
2286         LIBS="$save_LIBS"
2287         ICONV_LOCATION=$i
2288         export LDFLAGS LIBS CPPFLAGS
2289 dnl Now, check for a working iconv ... we want to do it here because
2290 dnl there might be a working iconv further down the list of LOOK_DIRS
2292         ############
2293         # check for iconv in libc
2294         ic_save_LIBS="$LIBS"
2295         if test x"$ICONV_PATH_SPEC" = "xyes" ; then
2296            LIBS="$LIBS -L$ICONV_LOCATION/$libext"
2297         fi
2298         if test x"$jm_cv_lib_iconv" != x; then
2299            LIBS="$LIBS -l$jm_cv_lib_iconv"
2300         fi
2301 dnl        AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
2302         default_dos_charset=no
2303         default_display_charset=no
2304         default_unix_charset=no
2306         # check for default dos charset name
2307         for j in CP850 IBM850 ; do
2308             rjs_CHARSET($j)
2309             if test x"$ICONV_CHARSET" = x"$j"; then
2310                 default_dos_charset="\"$j\""
2311                 break
2312             fi
2313         done
2314         # check for default display charset name
2315         for j in ASCII 646 ; do
2316             rjs_CHARSET($j)
2317             if test x"$ICONV_CHARSET" = x"$j"; then
2318                 default_display_charset="\"$j\""
2319                 break
2320             fi
2321         done
2322         # check for default unix charset name
2323         for j in UTF-8 UTF8 ; do
2324             rjs_CHARSET($j)
2325             if test x"$ICONV_CHARSET" = x"$j"; then
2326                 default_unix_charset="\"$j\""
2327                 break
2328             fi
2329         done
2330         
2331         if test "$default_dos_charset" != "no" -a \
2332                 "$default_dos_charset" != "cross" -a \
2333                 "$default_display_charset" != "no" -a \ 
2334                 "$default_display_charset" != "cross" -a \
2335                 "$default_unix_charset" != "no" -a \
2336                 "$default_unix_charset" != "cross"
2337         then
2338                 samba_cv_HAVE_NATIVE_ICONV=yes
2339         else if test "$default_dos_charset" = "cross" -o \
2340                      "$default_display_charset" = "cross" -o \
2341                      "$default_unix_charset" = "cross"
2342         then
2343                 samba_cv_HAVE_NATIVE_ICONV=cross
2344         else
2345                 samba_cv_HAVE_NATIVE_ICONV=no
2346         fi
2347         fi
2348 dnl ])
2350         LIBS="$ic_save_LIBS"
2351         if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
2352            CPPFLAGS=$save_CPPFLAGS
2353            LDFLAGS=$save_LDFLAGS
2354            LIBS=$save_LIBS
2355            if test x"$jm_cv_lib_iconv" != x; then
2356               LIBS="$LIBS -l$jm_cv_lib_iconv"
2357            fi
2358            dnl Add the flags we need to CPPFLAGS and LDFLAGS
2359            CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
2360            LIB_ADD_DIR(LDFLAGS, "$i/$libext")
2361            export CPPFLAGS
2362            AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
2363            AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
2364            AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
2365            AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
2366            break
2367         fi
2368 dnl We didn't find a working iconv, so keep going
2369     fi
2370 dnl We only need to clean these up here for the next pass through the loop
2371     CPPFLAGS=$save_CPPFLAGS
2372     LDFLAGS=$save_LDFLAGS
2373     LIBS=$save_LIBS
2374     export LDFLAGS LIBS CPPFLAGS
2375 done
2376 unset libext
2379 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
2380     AC_MSG_WARN([Sufficient support for iconv function was not found. 
2381     Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
2382    AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
2383    AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
2384    AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
2388 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
2389 AC_TRY_RUN([
2390 #include <sys/types.h>
2391 #include <fcntl.h>
2392 #ifndef F_GETLEASE
2393 #define F_GETLEASE      1025
2394 #endif
2395 main() {
2396        int fd = open("/dev/null", O_RDONLY);
2397        return fcntl(fd, F_GETLEASE, 0) == -1;
2400 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
2401 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
2402     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
2405 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
2406 AC_TRY_RUN([
2407 #include <sys/types.h>
2408 #include <fcntl.h>
2409 #include <signal.h>
2410 #ifndef F_NOTIFY
2411 #define F_NOTIFY 1026
2412 #endif
2413 main() {
2414         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
2417 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
2418 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
2419     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
2422 #################################################
2423 # Check if FAM notifications are available. For FAM info, see
2424 #       http://oss.sgi.com/projects/fam/
2425 #       http://savannah.nongnu.org/projects/fam/
2427 AC_CHECK_HEADERS(fam.h, [samba_cv_HAVE_FAM_H=yes], [samba_cv_HAVE_FAM_H=no])
2428 if test x"$samba_cv_HAVE_FAM_H" = x"yes"; then
2429     # On IRIX, libfam requires libC, but other FAM implementations might not
2430     # need it.
2431     AC_CHECK_LIB(fam, FAMOpen2,
2432             [samba_cv_HAVE_LIBFAM=yes; samba_fam_libs="-lfam"],
2433             [samba_cv_HAVE_LIBFAM=no])
2435     if test x"$samba_cv_HAVE_LIBFAM" = x"no" ; then
2436         samba_fam_xtra=-lC
2437         AC_CHECK_LIB_EXT(fam, samba_fam_xtra, FAMOpen2,
2438                 [samba_cv_HAVE_LIBFAM=yes; samba_fam_libs="-lfam -lC"],
2439                 [samba_cv_HAVE_LIBFAM=no])
2440         unset samba_fam_xtra
2441     fi
2444 if test x"$samba_cv_HAVE_LIBFAM" = x"yes" ; then
2445     AC_DEFINE(HAVE_FAM_CHANGE_NOTIFY, 1,
2446             [Whether FAM is file notifications are available])
2447     AC_TRY_COMPILE([#include <fam.h>],
2448                 [FAMCodes code = FAMChanged;],
2449                 AC_DEFINE(HAVE_FAM_H_FAMCODES_TYPEDEF, 1,
2450                     [Whether fam.h contains a typedef for enum FAMCodes]),
2451                 [])
2454 #################################################
2455 # Check for DMAPI interfaces in libdm/libjfsdm/libxsdm
2457 SMB_CHECK_DMAPI([], AC_MSG_NOTICE(DMAPI support not present) )
2459 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
2460 AC_TRY_RUN([
2461 #include <sys/types.h>
2462 #include <fcntl.h>
2463 #include <signal.h>
2464 #include <sys/file.h>
2465 #ifndef LOCK_MAND
2466 #define LOCK_MAND       32
2467 #define LOCK_READ       64
2468 #endif
2469 main() {
2470         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
2473 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
2474 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
2475     AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
2479 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
2480 AC_TRY_COMPILE([#include <sys/types.h>
2481 #include <fcntl.h>],
2482 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
2483 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
2484 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
2485     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
2488 #################################################
2489 # Check for POSIX capability support
2491 AC_CHECK_HEADER(sys/capability.h, [samba_cv_HAVE_SYS_CAPABILITY_H=yes;
2492     AC_DEFINE(HAVE_SYS_CAPABILITY_H, 1, Whether sys/capability.h is present)],
2493     [], [])
2495 if test x"$samba_cv_HAVE_SYS_CAPABILITY_H" = x"yes"; then
2497     ac_save_LIBS=$LIBS
2498     AC_LIBTESTFUNC(cap, cap_get_proc)
2500     AC_CACHE_CHECK([for POSIX capabilities],
2501             samba_cv_HAVE_POSIX_CAPABILITIES,
2502             [
2503                 AC_TRY_RUN([
2504 #include <sys/types.h>
2505 #include <sys/capability.h>
2506 main() {
2507  cap_t cap;
2508  cap_value_t vals[1];
2509  if (!(cap = cap_get_proc()))
2510    exit(1);
2511  vals[0] = CAP_CHOWN;
2512  cap_set_flag(cap, CAP_INHERITABLE, 1, vals, CAP_CLEAR);
2513  cap_set_proc(cap);
2514  exit(0);
2516                 samba_cv_HAVE_POSIX_CAPABILITIES=yes,
2517                 samba_cv_HAVE_POSIX_CAPABILITIES=no,
2518                 samba_cv_HAVE_POSIX_CAPABILITIES=cross)
2519             ])
2521 if test x"$samba_cv_HAVE_POSIX_CAPABILITIES" = x"yes"; then
2522     AC_DEFINE(HAVE_POSIX_CAPABILITIES, 1,
2523             [Whether POSIX capabilities are available])
2524 else
2525     LIBS=$ac_save_LIBS
2531 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
2532 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
2535 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
2536 AC_TRY_COMPILE([#include <sys/types.h>
2537 #if defined(HAVE_RPC_RPC_H)
2538 #include <rpc/rpc.h>
2539 #endif],
2540 [int16 testvar;],
2541 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
2542 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2543     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
2546 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
2547 AC_TRY_COMPILE([#include <sys/types.h>
2548 #if defined(HAVE_RPC_RPC_H)
2549 #include <rpc/rpc.h>
2550 #endif],
2551 [uint16 testvar;],
2552 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
2553 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2554     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
2557 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
2558 AC_TRY_COMPILE([#include <sys/types.h>
2559 #if defined(HAVE_RPC_RPC_H)
2560 #include <rpc/rpc.h>
2561 #endif],
2562 [int32 testvar;],
2563 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
2564 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2565     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
2568 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
2569 AC_TRY_COMPILE([#include <sys/types.h>
2570 #if defined(HAVE_RPC_RPC_H)
2571 #include <rpc/rpc.h>
2572 #endif],
2573 [uint32 testvar;],
2574 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
2575 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2576     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
2580 dnl Some systems (SCO) have a problem including
2581 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
2582 dnl as a #define in <prot.h> and as part of an enum
2583 dnl in <rpc/rpc.h>.
2586 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
2587 AC_TRY_COMPILE([#include <sys/types.h>
2588 #ifdef HAVE_SYS_SECURITY_H
2589 #include <sys/security.h>
2590 #include <prot.h>
2591 #endif  /* HAVE_SYS_SECURITY_H */
2592 #if defined(HAVE_RPC_RPC_H)
2593 #include <rpc/rpc.h>
2594 #endif],
2595 [int testvar;],
2596 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
2597 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2598     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
2601 AC_MSG_CHECKING([for test routines])
2602 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
2603            AC_MSG_RESULT(yes),
2604            AC_MSG_ERROR([cant find test code. Aborting config]),
2605            AC_MSG_WARN([cannot run when cross-compiling]))
2607 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
2608 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
2609            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
2610 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
2611     AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
2614 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
2615 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
2616            samba_cv_HAVE_WORKING_AF_LOCAL=yes,
2617            samba_cv_HAVE_WORKING_AF_LOCAL=no,
2618            samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
2619 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
2620 then
2621     AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
2624 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
2625 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
2626            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
2627 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
2628     AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
2631 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2632 AC_TRY_RUN([#include <stdlib.h>
2633 #include <sys/types.h>
2634 #include <sys/stat.h>
2635 #include <unistd.h>
2636 main() { 
2637   struct stat st;
2638   char tpl[20]="/tmp/test.XXXXXX"; 
2639   int fd = mkstemp(tpl); 
2640   if (fd == -1) exit(1);
2641   unlink(tpl);
2642   if (fstat(fd, &st) != 0) exit(1);
2643   if ((st.st_mode & 0777) != 0600) exit(1);
2644   exit(0);
2646 samba_cv_HAVE_SECURE_MKSTEMP=yes,
2647 samba_cv_HAVE_SECURE_MKSTEMP=no,
2648 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
2649 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2650     AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2653 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
2654         AC_TRY_RUN([#include "${srcdir-.}/tests/os2_delete.c"],
2655                 [samba_cv_HAVE_BROKEN_READDIR=no],
2656                         [samba_cv_HAVE_BROKEN_READDIR=yes],
2657                         [samba_cv_HAVE_BROKEN_READDIR="assuming not"])])
2659 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
2660 AC_CACHE_CHECK([for replacing readdir],samba_cv_REPLACE_READDIR,[
2661         AC_TRY_RUN([
2662 #include "${srcdir-.}/lib/repdir.c"
2663 #include "${srcdir-.}/tests/os2_delete.c"],
2664         samba_cv_REPLACE_READDIR=yes,samba_cv_REPLACE_READDIR=no)])
2667 if test x"$samba_cv_REPLACE_READDIR" = x"yes"; then
2668         AC_DEFINE(REPLACE_READDIR,1,[replace readdir])
2671 SMB_CHECK_SYSCONF(_SC_NGROUPS_MAX)
2672 SMB_CHECK_SYSCONF(_SC_NPROC_ONLN)
2673 SMB_CHECK_SYSCONF(_SC_NPROCESSORS_ONLN)
2674 SMB_CHECK_SYSCONF(_SC_PAGESIZE)
2675 AC_CHECK_FUNCS(getpagesize)
2677 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2678 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2679            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2680 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2681     AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2682 else
2683     AC_MSG_WARN(running as non-root will disable some tests)
2686 ##################
2687 # look for a method of finding the list of network interfaces
2688 iface=no;
2689 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2690 SAVE_CPPFLAGS="$CPPFLAGS"
2691 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
2692 AC_TRY_RUN([
2693 #define HAVE_IFACE_AIX 1
2694 #define AUTOCONF_TEST 1
2695 #undef _XOPEN_SOURCE_EXTENDED
2696 #include "${srcdir-.}/lib/interfaces.c"],
2697            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2698 CPPFLAGS="$SAVE_CPPFLAGS"
2699 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2700     iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2703 if test $iface = no; then
2704 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2705 SAVE_CPPFLAGS="$CPPFLAGS"
2706 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
2707 AC_TRY_RUN([
2708 #define HAVE_IFACE_IFCONF 1
2709 #define AUTOCONF_TEST 1
2710 #include "${srcdir-.}/lib/interfaces.c"],
2711            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2712 CPPFLAGS="$SAVE_CPPFLAGS"
2713 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2714     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2718 if test $iface = no; then
2719 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2720 SAVE_CPPFLAGS="$CPPFLAGS"
2721 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
2722 AC_TRY_RUN([
2723 #define HAVE_IFACE_IFREQ 1
2724 #define AUTOCONF_TEST 1
2725 #include "${srcdir-.}/lib/interfaces.c"],
2726            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2727 CPPFLAGS="$SAVE_CPPFLAGS"
2728 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2729     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2734 ################################################
2735 # look for a method of setting the effective uid
2736 seteuid=no;
2737 if test $seteuid = no; then
2738 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2739 AC_TRY_RUN([
2740 #define AUTOCONF_TEST 1
2741 #define USE_SETRESUID 1
2742 #include "confdefs.h"
2743 #include "${srcdir-.}/lib/util_sec.c"],
2744            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2745 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2746     seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2751 if test $seteuid = no; then
2752 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2753 AC_TRY_RUN([
2754 #define AUTOCONF_TEST 1
2755 #define USE_SETREUID 1
2756 #include "confdefs.h"
2757 #include "${srcdir-.}/lib/util_sec.c"],
2758            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2759 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2760     seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2764 if test $seteuid = no; then
2765 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2766 AC_TRY_RUN([
2767 #define AUTOCONF_TEST 1
2768 #define USE_SETEUID 1
2769 #include "confdefs.h"
2770 #include "${srcdir-.}/lib/util_sec.c"],
2771            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2772 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2773     seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2777 if test $seteuid = no; then
2778 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2779 AC_TRY_RUN([
2780 #define AUTOCONF_TEST 1
2781 #define USE_SETUIDX 1
2782 #include "confdefs.h"
2783 #include "${srcdir-.}/lib/util_sec.c"],
2784            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2785 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2786     seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2791 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2792 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2793            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2794 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2795     AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2798 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2799 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2800            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2801 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2802     AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2805 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2806 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2807            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2808 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2809     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2811 else
2814 dnl Don't check for 64 bit fcntl locking if we know that the
2815 dnl glibc2.1 broken check has succeeded.
2816 dnl 
2818   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2819   AC_TRY_RUN([
2820 #if defined(HAVE_UNISTD_H)
2821 #include <unistd.h>
2822 #endif
2823 #include <stdio.h>
2824 #include <stdlib.h>
2826 #ifdef HAVE_FCNTL_H
2827 #include <fcntl.h>
2828 #endif
2830 #ifdef HAVE_SYS_FCNTL_H
2831 #include <sys/fcntl.h>
2832 #endif
2833 main() { struct flock64 fl64;
2834 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2835 exit(0);
2836 #else
2837 exit(1);
2838 #endif
2840        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2842   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2843       AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2844   fi
2847 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2848 AC_TRY_COMPILE([#include <sys/types.h>
2849 #include <sys/stat.h>
2850 #include <unistd.h>],
2851 [struct stat st;  st.st_blocks = 0;],
2852 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2853 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2854     AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2855 fi 
2857 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2858 AC_TRY_COMPILE([#include <sys/types.h>
2859 #include <sys/stat.h>
2860 #include <unistd.h>],
2861 [struct stat st;  st.st_blksize = 0;],
2862 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2863 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2864     AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2867 case "$host_os" in
2868 *linux*)
2869 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2870 AC_TRY_COMPILE([
2871 #ifdef HAVE_SYS_VFS_H
2872 #include <sys/vfs.h>
2873 #endif
2874 #ifdef HAVE_SYS_CAPABILITY_H
2875 #include <sys/capability.h>
2876 #endif
2877 ],[int i;],
2878    samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2879 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2880    AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2883 esac
2885 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2886 AC_TRY_COMPILE([
2887 #include <sys/types.h>
2888 #include <sys/acl.h>
2889 #if defined(HAVE_RPCSVC_NIS_H)
2890 #include <rpcsvc/nis.h>
2891 #endif],
2892 [int i;],
2893 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2894 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2895         AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2898 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
2899 AC_TRY_RUN([
2900 #include <stdio.h>
2901 #include <limits.h>
2902 main() {
2903         char *newpath = realpath("/tmp", NULL);
2904         exit ((newpath != NULL) ? 0 : 1);
2907 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
2908 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
2909     AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
2912 #################################################
2913 # check for AFS clear-text auth support
2914 samba_cv_WITH_AFS=no
2915 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2916 AC_ARG_WITH(afs,
2917 [  --with-afs              Include AFS clear-text auth support (default=no) ],
2918 [ case "$withval" in
2919   yes|auto)
2920     AC_MSG_RESULT($withval)
2921     samba_cv_WITH_AFS=$withval
2922     ;;
2923   *)
2924     AC_MSG_RESULT(no)
2925     ;;
2926   esac ],
2927   AC_MSG_RESULT(no)
2930 ####################################################
2931 # check for Linux-specific AFS fake-kaserver support
2932 samba_cv_WITH_FAKE_KASERVER=no
2933 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2934 AC_ARG_WITH(fake-kaserver,
2935 [  --with-fake-kaserver    Include AFS fake-kaserver support (default=no) ],
2936 [ case "$withval" in
2937   yes|auto)
2938     AC_MSG_RESULT($withval)
2939     samba_cv_WITH_FAKE_KASERVER=$withval
2940     ;;
2941   *)
2942     AC_MSG_RESULT(no)
2943     ;;
2944   esac ],
2945   AC_MSG_RESULT(no)
2948 #################################################
2949 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2950 if test x"$samba_cv_WITH_AFS" != x"no" ||
2951    test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2953     # see if this box has the afs-headers in /usr/include/afs
2954     AC_MSG_CHECKING(for /usr/include/afs)
2955     if test -d /usr/include/afs; then
2956           CFLAGS="$CFLAGS -I/usr/include/afs"
2957           CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2958           AC_MSG_RESULT(yes)
2959     else
2960       AC_MSG_RESULT(no)
2961     fi
2962    
2963     # check for afs.h
2964     have_afs_headers=no
2965     AC_CHECK_HEADERS(afs.h afs/afs.h)
2966     if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2967         if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2968            test x"$samba_cv_WITH_AFS" = x"auto"; then
2969                 AC_MSG_WARN([AFS cannot be supported without afs.h])
2970         else
2971                 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2972         fi
2973     else
2974         have_afs_headers=yes
2975     fi
2978 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
2979     AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2982 #################################################
2983 # check whether to compile AFS/NT ACL mapping module
2984 samba_cv_WITH_VFS_AFSACL=no
2985 AC_MSG_CHECKING(whether to use AFS ACL mapping module)
2986 AC_ARG_WITH(vfs-afsacl,
2987 [  --with-vfs-afsacl       Include AFS to NT ACL mapping module (default=no) ],
2988 [ case "$withval" in
2989   yes|auto)
2990     AC_MSG_RESULT($withval)
2991     samba_cv_WITH_VFS_AFSACL=yes
2992     ;;
2993   *)
2994     AC_MSG_RESULT(no)
2995     ;;
2996   esac ],
2997   AC_MSG_RESULT(no)
3000 if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
3001    default_shared_modules="$default_shared_modules vfs_afsacl"
3003         
3004 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
3005     AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
3008 #################################################
3009 # check for the DFS clear-text auth system
3010 AC_MSG_CHECKING(whether to use DFS clear-text auth)
3011 AC_ARG_WITH(dfs,
3012 [  --with-dce-dfs          Include DCE/DFS clear-text auth support (default=no)],
3013 [ case "$withval" in
3014   yes)
3015     AC_MSG_RESULT(yes)
3016     AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
3017     ;;
3018   *)
3019     AC_MSG_RESULT(no)
3020     ;;
3021   esac ],
3022   AC_MSG_RESULT(no)
3025 ########################################################
3026 # Compile with LDAP support?
3028 with_ldap_support=auto
3029 AC_MSG_CHECKING([for LDAP support])
3031 AC_ARG_WITH(ldap,
3032 [  --with-ldap             LDAP support (default yes)],
3033 [ case "$withval" in
3034     yes|no)
3035         with_ldap_support=$withval
3036         ;;
3037   esac ])
3039 AC_MSG_RESULT($with_ldap_support)
3041 SMBLDAP=""
3042 AC_SUBST(SMBLDAP)
3043 SMBLDAPUTIL=""
3044 AC_SUBST(SMBLDAPUTIL)
3045 if test x"$with_ldap_support" != x"no"; then
3047   ##################################################################
3048   # first test for ldap.h and lber.h
3049   # (ldap.h is required for this test)
3050   AC_CHECK_HEADERS(ldap.h lber.h)
3051   
3052   if test x"$ac_cv_header_ldap_h" != x"yes"; then
3053         if test x"$with_ldap_support" = x"yes"; then
3054          AC_MSG_ERROR(ldap.h is needed for LDAP support)
3055         else
3056          AC_MSG_WARN(ldap.h is needed for LDAP support)
3057         fi
3058         
3059         with_ldap_support=no
3060   fi
3062   ##################################################################
3063   # HP/UX does not have ber_tag_t, disable LDAP there
3064   AC_CHECK_TYPE(ber_tag_t,,,[#include <lber.h>])
3065   if test x"$ac_cv_type_ber_tag_t" != x"yes"; then
3066         if test x"$with_ldap_support" = x"yes"; then
3067          AC_MSG_ERROR(ber_tag_t is needed for LDAP support)
3068         else
3069          AC_MSG_WARN(ber_tag_t is needed for LDAP support)
3070         fi
3071         with_ldap_support=no
3072   fi
3075 if test x"$with_ldap_support" != x"no"; then
3076   ac_save_LIBS=$LIBS
3078   ##################################################################
3079   # we might need the lber lib on some systems. To avoid link errors
3080   # this test must be before the libldap test
3081   AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
3083   ########################################################
3084   # now see if we can find the ldap libs in standard paths
3085   AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
3087   ########################################################
3088   # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
3089   # Check found in pam_ldap 145.
3090   AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
3092   LIBS="$LIBS $LDAP_LIBS"
3093   AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
3094     AC_TRY_COMPILE([
3095         #include <lber.h>
3096         #include <ldap.h>], 
3097         [ldap_set_rebind_proc(0, 0, 0);], 
3098         [smb_ldap_cv_ldap_set_rebind_proc=3], 
3099         [smb_ldap_cv_ldap_set_rebind_proc=2]
3100     ) 
3101   ])
3102   
3103   AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
3105   AC_CHECK_FUNC_EXT(ldap_dn2ad_canonical,$LDAP_LIBS)    
3106   
3107   if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes"; then
3108     AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
3109     CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED"
3110     default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
3111     default_shared_modules="$default_shared_modules";
3112     SMBLDAP="lib/smbldap.o"
3113     SMBLDAPUTIL="lib/smbldap_util.o"
3114     with_ldap_support=yes
3115     AC_MSG_CHECKING(whether LDAP support is used)
3116     AC_MSG_RESULT(yes)
3117   else
3118     if test x"$with_ldap_support" = x"yes"; then
3119         AC_MSG_ERROR(libldap is needed for LDAP support)
3120     else
3121         AC_MSG_WARN(libldap is needed for LDAP support)
3122     fi
3123     
3124     LDAP_LIBS=""
3125     with_ldap_support=no
3126   fi
3127   LIBS=$ac_save_LIBS
3131 #################################################
3132 # active directory support
3134 with_ads_support=auto
3135 AC_MSG_CHECKING([for Active Directory and krb5 support])
3137 AC_ARG_WITH(ads,
3138 [  --with-ads              Active Directory support (default auto)],
3139 [ case "$withval" in
3140     yes|no)
3141         with_ads_support="$withval"
3142         ;;
3143   esac ])
3145 AC_MSG_RESULT($with_ads_support)
3147 FOUND_KRB5=no
3148 KRB5_LIBS=""
3150 if test x"$with_ldap_support" != x"yes"; then
3152     if test x"$with_ads_support" = x"yes"; then
3153         AC_MSG_ERROR(Active Directory Support requires LDAP support)
3154     elif test x"$with_ads_support" = x"auto"; then
3155         AC_MSG_WARN(Disabling Active Directory support (requires LDAP support))
3156         with_ads_support=no
3157     fi
3159 else
3161     # Check to see whether there is enough LDAP functionality to be able
3162     # to build AD support.
3164     AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
3166     if test x"$ac_cv_func_ext_ldap_initialize" != x"yes"; then
3167         if test x"$with_ads_support" = x"yes"; then
3168             AC_MSG_ERROR(Active Directory support requires ldap_initialize)
3169         elif test x"$with_ads_support" = x"auto"; then
3170             AC_MSG_WARN(Disabling Active Directory support (requires ldap_initialize))
3171             with_ads_support=no
3172         fi
3173     fi
3175     AC_CHECK_FUNC_EXT(ldap_add_result_entry,$LDAP_LIBS)
3177     if test x"$ac_cv_func_ext_ldap_add_result_entry" != x"yes"; then
3178         if test x"$with_ads_support" = x"yes"; then
3179             AC_MSG_ERROR(Active Directory support requires ldap_add_result_entry)
3180         elif test x"$with_ads_support" = x"auto"; then
3181             AC_MSG_WARN(Disabling Active Directory support (requires ldap_add_result_entry))
3182             with_ads_support=no
3183         fi
3184     fi
3188 if test x"$with_ads_support" != x"no"; then
3190   # Do no harm to the values of CFLAGS and LIBS while testing for
3191   # Kerberos support.
3193   if test x$FOUND_KRB5 = x"no"; then
3194     #################################################
3195     # check for location of Kerberos 5 install
3196     AC_MSG_CHECKING(for kerberos 5 install path)
3197     AC_ARG_WITH(krb5,
3198     [  --with-krb5=base-dir    Locate Kerberos 5 support (default=/usr)],
3199     [ case "$withval" in
3200       no)
3201         AC_MSG_RESULT(no krb5-path given)
3202         ;;
3203       yes)
3204         AC_MSG_RESULT(/usr)
3205         FOUND_KRB5=yes
3206         ;;
3207       *)
3208         AC_MSG_RESULT($withval)
3209         KRB5_CFLAGS="-I$withval/include"
3210         KRB5_CPPFLAGS="-I$withval/include"
3211         KRB5_LDFLAGS="-L$withval/lib"
3212         FOUND_KRB5=yes
3213         if test -x "$withval/bin/krb5-config"; then
3214                 KRB5CONFIG=$withval/bin/krb5-config
3215         fi
3216         ;;
3217       esac ],
3218       AC_MSG_RESULT(no krb5-path given)
3219     )
3220   fi
3222   #################################################
3223   # check for krb5-config from recent MIT and Heimdal kerberos 5
3224   AC_PATH_PROG(KRB5CONFIG, krb5-config)
3225   AC_MSG_CHECKING(for working krb5-config)
3226   if test -x "$KRB5CONFIG"; then
3227     ac_save_CFLAGS=$CFLAGS
3228     CFLAGS="";export CFLAGS
3229     ac_save_LDFLAGS=$LDFLAGS
3230     LDFLAGS="";export LDFLAGS
3231     KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
3232     KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
3233     KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`" 
3234     KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
3235     CFLAGS=$ac_save_CFLAGS;export CFLAGS
3236     LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
3237     FOUND_KRB5=yes
3238     AC_MSG_RESULT(yes)
3239   else
3240     AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
3241   fi
3243   if test x$FOUND_KRB5 = x"no"; then
3244     #################################################
3245     # see if this box has the SuSE location for the heimdal krb implementation
3246     AC_MSG_CHECKING(for /usr/include/heimdal)
3247     if test -d /usr/include/heimdal; then
3248       if test -f /usr/lib/heimdal/lib/libkrb5.a; then
3249           KRB5_CFLAGS="-I/usr/include/heimdal"
3250           KRB5_CPPFLAGS="-I/usr/include/heimdal"
3251           KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
3252           AC_MSG_RESULT(yes)
3253       else
3254           KRB5_CFLAGS="-I/usr/include/heimdal"
3255           KRB5_CPPFLAGS="-I/usr/include/heimdal"
3256           AC_MSG_RESULT(yes)
3257       fi
3258     else
3259       AC_MSG_RESULT(no)
3260     fi
3261   fi
3263   if test x$FOUND_KRB5 = x"no"; then
3264     #################################################
3265     # see if this box has the RedHat location for kerberos
3266     AC_MSG_CHECKING(for /usr/kerberos)
3267     if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
3268       KRB5_LDFLAGS="-L/usr/kerberos/lib"
3269       KRB5_CFLAGS="-I/usr/kerberos/include"
3270       KRB5_CPPFLAGS="-I/usr/kerberos/include"
3271       AC_MSG_RESULT(yes)
3272     else
3273       AC_MSG_RESULT(no)
3274     fi
3275   fi
3277   ac_save_CFLAGS=$CFLAGS
3278   ac_save_CPPFLAGS=$CPPFLAGS
3279   ac_save_LDFLAGS=$LDFLAGS
3281   CFLAGS="$KRB5_CFLAGS $CFLAGS"
3282   CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
3283   LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
3285   KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
3287   # now check for krb5.h. Some systems have the libraries without the headers!
3288   # note that this check is done here to allow for different kerberos
3289   # include paths
3290   AC_CHECK_HEADERS(krb5.h)
3292   if test x"$ac_cv_header_krb5_h" = x"no"; then
3294     # Give a warning if AD support was not explicitly requested,
3295     # i.e with_ads_support = auto, otherwise die with an error.
3297     if test x"$with_ads_support" = x"yes"; then
3298       AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
3299     else
3300       AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
3301     fi
3303     # Turn off AD support and restore CFLAGS and LIBS variables
3305     with_ads_support="no"
3306     
3307     CFLAGS=$ac_save_CFLAGS
3308     CPPFLAGS=$ac_save_CPPFLAGS
3309     LDFLAGS=$ac_save_LDFLAGS
3310   fi
3313 # Now we have determined whether we really want ADS support
3315 if test x"$with_ads_support" != x"no"; then
3316   ac_save_LIBS=$LIBS
3318   # now check for gssapi headers.  This is also done here to allow for
3319   # different kerberos include paths
3320   AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
3322   ##################################################################
3323   # we might need the k5crypto and com_err libraries on some systems
3324   AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
3325   AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
3327   # Heimdal checks.
3328   AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
3329   AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
3330   AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
3332   # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
3333   AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
3334                                 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
3336   ########################################################
3337   # now see if we can find the krb5 libs in standard paths
3338   # or as specified above
3339   AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
3340   AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
3342   ########################################################
3343   # now see if we can find the gssapi libs in standard paths
3344   AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
3345             AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
3347   AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
3348   AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
3349   AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
3350   AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
3351   AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
3352   AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS) 
3353   AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
3354   AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS) 
3355   AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
3356   AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS) 
3357   AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
3358   AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS) 
3359   AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS) 
3360   AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
3361   AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
3362   AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
3363   AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
3364   AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
3365   AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
3366   AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
3367   AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
3368   AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
3369   AC_CHECK_FUNC_EXT(krb5_crypto_init, $KRB5_LIBS)
3370   AC_CHECK_FUNC_EXT(krb5_crypto_destroy, $KRB5_LIBS)
3371   AC_CHECK_FUNC_EXT(krb5_decode_ap_req, $KRB5_LIBS)
3372   AC_CHECK_FUNC_EXT(decode_krb5_ap_req, $KRB5_LIBS)
3373   AC_CHECK_FUNC_EXT(krb5_free_ap_req, $KRB5_LIBS)
3374   AC_CHECK_FUNC_EXT(free_AP_REQ, $KRB5_LIBS)
3375   AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
3376   AC_CHECK_FUNC_EXT(krb5_principal_compare_any_realm, $KRB5_LIBS)
3377   AC_CHECK_FUNC_EXT(krb5_parse_name_norealm, $KRB5_LIBS)
3378   AC_CHECK_FUNC_EXT(krb5_princ_size, $KRB5_LIBS)
3379   AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_set_pac_request, $KRB5_LIBS)
3380   AC_CHECK_FUNC_EXT(krb5_get_renewed_creds, $KRB5_LIBS)
3381   AC_CHECK_FUNC_EXT(krb5_get_kdc_cred, $KRB5_LIBS)
3382   AC_CHECK_FUNC_EXT(krb5_free_error_contents, $KRB5_LIBS)
3384   LIBS="$KRB5_LIBS $LIBS"
3386   AC_CACHE_CHECK(whether krb5_verify_checksum takes 7 arguments, smb_krb5_verify_checksum, [
3387     AC_TRY_COMPILE([
3388         #include <krb5.h>], 
3389         [krb5_verify_checksum(0, 0, 0, 0, 0, 0, 0);], 
3390         [smb_krb5_verify_checksum=7], 
3391         [smb_krb5_verify_checksum=6], 
3392     ) 
3393   ])
3394   AC_DEFINE_UNQUOTED(KRB5_VERIFY_CHECKSUM_ARGS, $smb_krb5_verify_checksum, [Number of arguments to krb5_verify_checksum])
3396   AC_CACHE_CHECK([for checksum in krb5_checksum],
3397                 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM,[
3398     AC_TRY_COMPILE([#include <krb5.h>],
3399       [krb5_checksum cksum; cksum.checksum.length = 0;],
3400       samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=yes,
3401       samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=no)])
3403   if test x"$samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM" = x"yes"; then
3404     AC_DEFINE(HAVE_CHECKSUM_IN_KRB5_CHECKSUM,1,
3405                [Whether the krb5_checksum struct has a checksum property])
3406   fi
3408   AC_CACHE_CHECK([for etype in EncryptedData],
3409                 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA,[
3410     AC_TRY_COMPILE([#include <krb5.h>],
3411       [EncryptedData edata; edata.etype = 0;],
3412       samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=yes,
3413       samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=no)])
3415   if test x"$samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA" = x"yes"; then
3416     AC_DEFINE(HAVE_ETYPE_IN_ENCRYPTEDDATA,1,
3417                [Whether the EncryptedData struct has a etype property])
3418   fi
3420   AC_CACHE_CHECK([for ticket pointer in krb5_ap_req],
3421                 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,[
3422     AC_TRY_COMPILE([#include <krb5.h>],
3423       [krb5_ap_req *ap_req; ap_req->ticket = NULL;],
3424       samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=yes,
3425       samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=no)])
3427   if test x"$samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ" = x"yes"; then
3428     AC_DEFINE(HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,1,
3429                [Whether the krb5_ap_req struct has a ticket pointer])
3430   fi
3432   AC_CACHE_CHECK([for e_data pointer in krb5_error],
3433                 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR,[
3434     AC_TRY_COMPILE([#include <krb5.h>],
3435       [krb5_error err; err.e_data = NULL;],
3436       samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=yes,
3437       samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=no)])
3439   if test x"$samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR" = x"yes"; then
3440     AC_DEFINE(HAVE_E_DATA_POINTER_IN_KRB5_ERROR,1,
3441                [Whether the krb5_error struct has a e_data pointer])
3442   fi
3444   AC_CACHE_CHECK([for krb5_crypto type],
3445                 samba_cv_HAVE_KRB5_CRYPTO,[
3446     AC_TRY_COMPILE([#include <krb5.h>],
3447       [krb5_crypto crypto;],
3448       samba_cv_HAVE_KRB5_CRYPTO=yes,
3449       samba_cv_HAVE_KRB5_CRYPTO=no)])
3451   if test x"$samba_cv_HAVE_KRB5_CRYPTO" = x"yes"; then
3452     AC_DEFINE(HAVE_KRB5_CRYPTO,1,
3453                [Whether the type krb5_crypto exists])
3454   fi
3456   AC_CACHE_CHECK([for krb5_encrypt_block type],
3457                 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
3458     AC_TRY_COMPILE([#include <krb5.h>],
3459       [krb5_encrypt_block block;],
3460       samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
3461       samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
3463   if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
3464     AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
3465                [Whether the type krb5_encrypt_block exists])
3466   fi
3468   AC_CACHE_CHECK([for addrtype in krb5_address],
3469                 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
3470     AC_TRY_COMPILE([#include <krb5.h>],
3471       [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
3472       samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
3473       samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
3475   if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
3476     AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
3477                [Whether the krb5_address struct has a addrtype property])
3478   fi
3480   AC_CACHE_CHECK([for addr_type in krb5_address],
3481                  samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
3482     AC_TRY_COMPILE([#include <krb5.h>],
3483       [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
3484       samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
3485       samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
3487   if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
3488     AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
3489               [Whether the krb5_address struct has a addr_type property])
3490   fi
3492   AC_CACHE_CHECK([for enc_part2 in krb5_ticket], 
3493                  samba_cv_HAVE_KRB5_TKT_ENC_PART2,
3494                  [AC_TRY_COMPILE([#include <krb5.h>],
3495     [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
3496     samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
3498   if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
3499     AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
3500               [Whether the krb5_ticket struct has a enc_part2 property])
3501   fi
3503   AC_CACHE_CHECK([for keyblock in krb5_creds],
3504                  samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
3505     AC_TRY_COMPILE([#include <krb5.h>],
3506       [krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
3507       samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
3508       samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
3510   if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
3511     AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
3512               [Whether the krb5_creds struct has a keyblock property])
3513   fi
3515   AC_CACHE_CHECK([for session in krb5_creds],
3516                  samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
3517     AC_TRY_COMPILE([#include <krb5.h>],
3518       [krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
3519       samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
3520       samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
3522   if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
3523     AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
3524               [Whether the krb5_creds struct has a session property])
3525   fi
3527   AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
3528                  samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
3529     AC_TRY_COMPILE([#include <krb5.h>],
3530       [krb5_keyblock key; key.keyvalue.data = NULL;],
3531       samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
3532       samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
3534   if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
3535     AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
3536               [Whether the krb5_keyblock struct has a keyvalue property])
3537   fi
3539   AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
3540                  samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
3541     AC_TRY_COMPILE([#include <krb5.h>],
3542       [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
3543       samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
3544       samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
3545   AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
3546                  samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
3547     AC_TRY_COMPILE([#include <krb5.h>],
3548       [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
3549       samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
3550       samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
3551 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
3552 # w.r.t. arcfour and windows, so we must not enable it here
3553   if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
3554           x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
3555     AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
3556               [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
3557   fi
3559   AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
3560                  samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
3561     AC_TRY_COMPILE([#include <krb5.h>],
3562       [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
3563       samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
3564       samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
3566   if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
3567     AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
3568               [Whether the AP_OPTS_USE_SUBKEY ap option is available])
3569   fi
3571   AC_CACHE_CHECK([for KV5M_KEYTAB],
3572                  samba_cv_HAVE_KV5M_KEYTAB,[
3573     AC_TRY_COMPILE([#include <krb5.h>],
3574       [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
3575       samba_cv_HAVE_KV5M_KEYTAB=yes,
3576       samba_cv_HAVE_KV5M_KEYTAB=no)])
3578   if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
3579       AC_DEFINE(HAVE_KV5M_KEYTAB,1,
3580              [Whether the KV5M_KEYTAB option is available])
3581   fi
3583   AC_CACHE_CHECK([for KRB5_KU_OTHER_CKSUM],
3584                  samba_cv_HAVE_KRB5_KU_OTHER_CKSUM,[
3585     AC_TRY_COMPILE([#include <krb5.h>],
3586       [krb5_keyusage usage = KRB5_KU_OTHER_CKSUM;],
3587       samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=yes,
3588       samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=no)])
3590   if test x"$samba_cv_HAVE_KRB5_KU_OTHER_CKSUM" = x"yes"; then
3591     AC_DEFINE(HAVE_KRB5_KU_OTHER_CKSUM,1,
3592               [Whether KRB5_KU_OTHER_CKSUM is available])
3593   fi
3594   
3595   AC_CACHE_CHECK([for KRB5_KEYUSAGE_APP_DATA_CKSUM],
3596                  samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,[
3597     AC_TRY_COMPILE([#include <krb5.h>],
3598       [krb5_keyusage usage = KRB5_KEYUSAGE_APP_DATA_CKSUM;],
3599       samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=yes,
3600       samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=no)])
3602   if test x"$samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM" = x"yes"; then
3603     AC_DEFINE(HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,1,
3604               [Whether KRB5_KEYUSAGE_APP_DATA_CKSUM is available])
3605   fi
3607   AC_CACHE_CHECK([for the krb5_princ_component macro],
3608                 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
3609     AC_TRY_LINK([#include <krb5.h>],
3610       [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
3611       samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
3612       samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
3614   if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
3615     AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
3616                [Whether krb5_princ_component is available])
3617   fi
3619   AC_CACHE_CHECK([for key in krb5_keytab_entry],
3620                  samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
3621     AC_TRY_COMPILE([#include <krb5.h>],
3622       [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
3623       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
3624       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
3626   if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
3627     AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
3628               [Whether krb5_keytab_entry has key member])
3629   fi
3631   AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
3632                  samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
3633     AC_TRY_COMPILE([#include <krb5.h>],
3634       [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
3635       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
3636       samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
3638   if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
3639     AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
3640               [Whether krb5_keytab_entry has keyblock member])
3641   fi
3643   AC_CACHE_CHECK([for magic in krb5_address],
3644                  samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS,[
3645     AC_TRY_COMPILE([#include <krb5.h>],
3646       [krb5_address addr; addr.magic = 0;],
3647       samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=yes,
3648       samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=no)])
3650   if test x"$samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS" = x"yes"; then
3651     AC_DEFINE(HAVE_MAGIC_IN_KRB5_ADDRESS,1,
3652               [Whether the krb5_address struct has a magic property])
3653   fi
3655   if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
3656     AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
3657     AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
3658     AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
3659     AC_MSG_RESULT(yes)
3660   else
3661     if test x"$with_ads_support" = x"yes"; then
3662         AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
3663     else
3664         AC_MSG_WARN(libkrb5 is needed for Active Directory support)
3665     fi
3666     KRB5_LIBS=""
3667     with_ads_support=no 
3668   fi
3670   AC_CACHE_CHECK([for WRFILE: keytab support],
3671                 samba_cv_HAVE_WRFILE_KEYTAB,[
3672     AC_TRY_RUN([
3673 #include<krb5.h>
3674   main()
3675   {
3676     krb5_context context;
3677     krb5_keytab keytab;
3679     krb5_init_context(&context);
3680     return krb5_kt_resolve(context, "WRFILE:api", &keytab);
3681   }],
3682   samba_cv_HAVE_WRFILE_KEYTAB=yes,
3683   samba_cv_HAVE_WRFILE_KEYTAB=no)])
3685   if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
3686       AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
3687                [Whether the WRFILE:-keytab is supported])
3688   fi
3690   AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
3691                samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
3692     AC_TRY_COMPILE([#include <krb5.h>],
3693     [
3694     krb5_context context;
3695     krb5_principal principal;
3696     krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
3697     samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
3698     samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
3700   if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
3701     AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
3702               [Whether krb5_princ_realm returns krb5_realm or krb5_data])
3703   fi
3705   AC_CACHE_CHECK([for krb5_addresses type],
3706                 samba_cv_HAVE_KRB5_ADDRESSES,[
3707     AC_TRY_COMPILE([#include <krb5.h>],
3708       [krb5_addresses addr;],
3709       samba_cv_HAVE_KRB5_ADDRESSES=yes,
3710       samba_cv_HAVE_KRB5_ADDRESSES=no)])
3712   if test x"$samba_cv_HAVE_KRB5_ADDRESSES" = x"yes"; then
3713     AC_DEFINE(HAVE_KRB5_ADDRESSES,1,
3714                [Whether the type krb5_addresses type exists])
3715   fi
3717 LIBS="$ac_save_LIBS"
3720 AC_CHECK_LIB_EXT(nscd, NSCD_LIBS, nscd_flush_cache)
3721 PASSDB_LIBS="$PASSDB_LIBS $NSCD_LIBS"
3724 ########################################################
3725 # Compile with DNS Updates support?
3727 with_dnsupdate_support=no
3728 AC_MSG_CHECKING([whether to enable DNS Updates support])
3730 AC_ARG_WITH(dnsupdate,
3731 [  --with-dnsupdate        Enable DNS Updates support (default no)],
3732 [ case "$withval" in
3733     yes|no)
3734         with_dnsupdate_support=$withval
3735         ;;
3736   esac ])
3738 AC_MSG_RESULT($with_dnsupdate_support)
3740 if test x"$with_dnsupdate_support" != x"no"; then
3742   ################################################################
3743   # first test for Active Directory support being enabled
3744   #if test x"$with_ads_support" = x"no"; then
3745   #             AC_MSG_ERROR(Active Directory support is required to enable DNS Update support)
3746   #             with_dnsupdate_support=no
3747   #fi           
3748   ##################################################################
3749   # then test for uuid.h (necessary to generate unique DNS keynames
3750   # (uuid.h is required for this test)
3751   AC_CHECK_HEADERS(uuid/uuid.h)
3752   
3753   if test x"$ac_cv_header_uuid_uuid_h" != x"yes"; then
3754         if test x"$with_dnsupdate_support" = x"yes"; then
3755          AC_MSG_ERROR(uuid.h is needed to enable DNS Updates support)
3756         else
3757          AC_MSG_WARN(uuid.h is needed to enable DNS Updates support)
3758         fi
3759         with_dnsupdate_support=no
3760   fi
3763 if test x"$with_dnsupdate_support" != x"no"; then
3764   ac_save_LIBS=$LIBS
3766   ########################################################
3767   # now see if we can find the uuid libs in standard paths
3768   AC_CHECK_LIB_EXT(uuid, UUID_LIBS, uuid_generate)
3770   LIBS="$LIBS $UUID_LIBS"
3771   
3772   if test x"$ac_cv_lib_ext_uuid_uuid_generate" = x"yes"; then
3773     with_dnsupdate_support=yes
3774     AC_DEFINE(WITH_DNS_UPDATES,1,[Whether to enable DNS Update support])
3775     AC_MSG_CHECKING(whether UUID support is used)
3776     AC_MSG_RESULT(yes)
3777   else
3778     if test x"$with_dnsupdate_support" = x"yes"; then
3779         AC_MSG_ERROR(libuuid is needed to enable DNS Updates support)
3780     else
3781         AC_MSG_WARN(libuuid is needed to enable DNS Updates support)
3782     fi
3783     UUID_LIBS=""
3784     with_dnsupdate_support=no
3785   fi
3786   LIBS=$ac_save_LIBS
3789 #################################################
3790 # check for automount support
3791 AC_MSG_CHECKING(whether to use automount)
3792 AC_ARG_WITH(automount,
3793 [  --with-automount        Include automount support (default=no)],
3794 [ case "$withval" in
3795   yes)
3796     AC_MSG_RESULT(yes)
3797     AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
3798     ;;
3799   *)
3800     AC_MSG_RESULT(no)
3801     ;;
3802   esac ],
3803   AC_MSG_RESULT(no)
3806 #################################################
3807 # check for smbmount support
3808 AC_MSG_CHECKING(whether to use smbmount)
3809 AC_ARG_WITH(smbmount,
3810 [  --with-smbmount         Include smbmount (Linux only) support (default=no)],
3811 [ case "$withval" in
3812   yes)
3813         case "$host_os" in
3814         *linux*)
3815                 AC_MSG_RESULT(yes)
3816                 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
3817                 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
3818                 ;;
3819         *)
3820                 AC_MSG_ERROR(not on a linux system!)
3821                 ;;
3822         esac
3823     ;;
3824   *)
3825     AC_MSG_RESULT(no)
3826     ;;
3827   esac ],
3828   AC_MSG_RESULT(no)
3831 #################################################
3832 # check for mount- and umount.cifs support
3833 CIFSMOUNT_PROGS=""
3834 INSTALL_CIFSMOUNT=""
3835 UNINSTALL_CIFSMOUNT=""
3836 AC_MSG_CHECKING(whether to build mount.cifs and umount.cifs)
3837 AC_ARG_WITH(cifsmount,
3838 [  --with-cifsmount        Include mount.cifs and umount.cifs (Linux only) support (default=yes)],
3839 [ case "$withval" in
3840   no)
3841         AC_MSG_RESULT(no)
3842         ;;
3843   *)
3844         case "$host_os" in
3845         *linux*)
3846                 AC_MSG_RESULT(yes)
3847                 AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
3848                 CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
3849                 INSTALL_CIFSMOUNT="installcifsmount"
3850                 UNINSTALL_CIFSMOUNT="uninstallcifsmount"
3851                 ;;
3852         *)
3853                 AC_MSG_ERROR(not on a linux system!)
3854                 ;;
3855         esac
3856     ;;
3857   esac ],
3858 [ case "$host_os" in
3859   *linux*)
3860         AC_MSG_RESULT(yes)
3861         AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
3862         CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
3863         INSTALL_CIFSMOUNT="installcifsmount"
3864         UNINSTALL_CIFSMOUNT="uninstallcifsmount"
3865         ;;
3866   *)
3867         AC_MSG_RESULT(no)
3868         ;;
3869   esac ]
3873 #################################################
3874 # check for a PAM clear-text auth, accounts, password and session support
3875 with_pam_for_crypt=no
3876 AC_MSG_CHECKING(whether to use PAM)
3877 AC_ARG_WITH(pam,
3878 [  --with-pam              Include PAM support (default=no)],
3879 [ case "$withval" in
3880   yes)
3881     AC_MSG_RESULT(yes)
3882     if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3883        if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
3884           if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
3885              AC_MSG_ERROR(--with-pam specified but no PAM headers found)
3886           fi
3887        fi
3888     fi
3889     AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
3890     AUTH_LIBS="$AUTH_LIBS -lpam"
3891     with_pam_for_crypt=yes
3892     ;;
3893   *)
3894     AC_MSG_RESULT(no)
3895     ;;
3896   esac ],
3897   AC_MSG_RESULT(no)
3900 # we can't build a pam module if we don't have pam.
3901 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
3902 AC_CHECK_LIB(pam, pam_vsyslog, [AC_DEFINE(HAVE_PAM_VSYSLOG,1,[Whether pam_vsyslog is available])])
3904 #################################################
3905 # check for pam_smbpass support
3906 PAM_MODULES=""
3907 INSTALL_PAM_MODULES=""
3908 UNINSTALL_PAM_MODULES=""
3909 AC_MSG_CHECKING(whether to use pam_smbpass)
3910 AC_ARG_WITH(pam_smbpass,
3911 [  --with-pam_smbpass      Build PAM module for authenticating against passdb backends (default=no)],
3912 [ case "$withval" in
3913   yes)
3914     AC_MSG_RESULT(yes)
3916        # Conditions under which pam_smbpass should not be built.
3918        if test x"$PICFLAGS" = x; then
3919           AC_MSG_ERROR([No support for PIC code])
3920        elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3921           AC_MSG_ERROR([No security/pam_appl.h found])
3922        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
3923           AC_MSG_ERROR([No libpam found])
3924        else
3925           AUTH_LIBS="$AUTH_LIBS -lpam"
3926           PAM_MODULES="pam_smbpass"
3927           INSTALL_PAM_MODULES="installpammodules"
3928           UNINSTALL_PAM_MODULES="uninstallpammodules"
3929        fi
3930     ;;
3931   *)
3932     AC_MSG_RESULT(no)
3933     ;;
3934   esac ],
3935   AC_MSG_RESULT(no)
3939 ###############################################
3940 # test for where we get crypt() from
3941 AC_SEARCH_LIBS(crypt, [crypt],
3942   [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
3943   AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
3946 ## moved after the check for -lcrypt in order to
3947 ## ensure that the necessary libraries are included
3948 ## check checking for truncated salt.  Wrapped by the
3949 ## $with_pam_for_crypt variable as above   --jerry
3951 if test $with_pam_for_crypt = no; then
3952 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
3953 crypt_LIBS="$LIBS"
3954 LIBS="$AUTH_LIBS $LIBS"
3955 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
3956         samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
3957 LIBS="$crypt_LIBS"])
3958 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
3959         AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
3963 #################################################
3964 # check for a NISPLUS_HOME support 
3965 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
3966 AC_ARG_WITH(nisplus-home,
3967 [  --with-nisplus-home     Include NISPLUS_HOME support (default=no)],
3968 [ case "$withval" in
3969   yes)
3970     AC_MSG_RESULT(yes)
3971     AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3972     ;;
3973   *)
3974     AC_MSG_RESULT(no)
3975     ;;
3976   esac ],
3977   AC_MSG_RESULT(no)
3980 #################################################
3981 # check for syslog logging
3982 AC_MSG_CHECKING(whether to use syslog logging)
3983 AC_ARG_WITH(syslog,
3984 [  --with-syslog           Include experimental SYSLOG support (default=no)],
3985 [ case "$withval" in
3986   yes)
3987     AC_MSG_RESULT(yes)
3988     AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3989     ;;
3990   *)
3991     AC_MSG_RESULT(no)
3992     ;;
3993   esac ],
3994   AC_MSG_RESULT(no)
3997 #################################################
3998 # check for experimental disk-quotas support
4000 samba_cv_WITH_QUOTAS=auto
4001 samba_cv_TRY_QUOTAS=no
4002 samba_cv_RUN_QUOTA_TESTS=auto
4003 samba_cv_WITH_SYS_QUOTAS=auto
4004 samba_cv_TRY_SYS_QUOTAS=auto
4005 samba_cv_SYSQUOTA_FOUND=no
4007 AC_MSG_CHECKING(whether to try disk-quotas support)
4008 AC_ARG_WITH(quotas,
4009 [  --with-quotas           Include disk-quota support (default=no)],
4010 [ case "$withval" in
4011   yes)
4012     AC_MSG_RESULT(yes)
4013     samba_cv_WITH_QUOTAS=yes
4014     samba_cv_TRY_QUOTAS=yes
4015     samba_cv_RUN_QUOTA_TESTS=yes
4016     #set sys quotas to auto in this case
4017     samba_cv_TRY_SYS_QUOTAS=auto
4018     ;;
4019   auto)
4020     AC_MSG_RESULT(auto)
4021     samba_cv_WITH_QUOTAS=auto
4022     samba_cv_TRY_QUOTAS=auto
4023     samba_cv_RUN_QUOTA_TESTS=auto
4024     #set sys quotas to auto in this case
4025     samba_cv_TRY_SYS_QUOTAS=auto
4026     ;;
4027   no)
4028     AC_MSG_RESULT(no)
4029     samba_cv_WITH_QUOTAS=no
4030     samba_cv_TRY_QUOTAS=no
4031     samba_cv_RUN_QUOTA_TESTS=no
4032     ;;
4033   *)
4034     AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4035     ;;
4036   esac ],
4037   AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4040 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
4041 AC_ARG_WITH(sys-quotas,
4042 [  --with-sys-quotas       Include lib/sysquotas.c support (default=auto)],
4043 [ case "$withval" in
4044   yes)
4045     AC_MSG_RESULT(yes)
4046     samba_cv_WITH_SYS_QUOTAS=yes
4047     samba_cv_TRY_SYS_QUOTAS=yes
4048     samba_cv_RUN_QUOTA_TESTS=yes
4049     ;;
4050   auto)
4051     AC_MSG_RESULT(auto)
4052     samba_cv_WITH_SYS_QUOTAS=auto
4053     samba_cv_TRY_SYS_QUOTAS=auto
4054     samba_cv_RUN_QUOTA_TESTS=auto
4055     ;;
4056   no)
4057     AC_MSG_RESULT(no)
4058     samba_cv_WITH_SYS_QUOTAS=no
4059     samba_cv_TRY_SYS_QUOTAS=no
4060     ;;
4061   *)
4062     AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4063     ;;
4064   esac ],
4065   AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4068 if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
4069 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
4070   case "$host_os" in
4071         *linux*)
4072             AC_MSG_RESULT(yes)
4073             samba_cv_TRY_SYS_QUOTAS=yes
4074             samba_cv_RUN_QUOTA_TESTS=yes
4075             ;;
4076         *)
4077             AC_MSG_RESULT(no)
4078             samba_cv_TRY_SYS_QUOTAS=no
4079             ;;
4080   esac
4083 #############################################
4084 # only check for quota stuff if --with-quotas
4085 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
4087 case "$host_os" in
4088         # on linux we didn't need to test we have builtin support
4089         *linux*)
4090             samba_cv_SYSQUOTA_FOUND=yes
4091             AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
4092             samba_cv_sysquotas_file="lib/sysquotas_linux.c"
4093             AC_MSG_CHECKING(whether to use the lib/sysquotas_linux.c builtin support)
4094             AC_MSG_RESULT(yes)
4096             AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
4097             samba_cv_found_xfs_header=yes
4098             AC_MSG_CHECKING(whether to use the lib/sysquotas_xfs.c builtin support)
4099             AC_MSG_RESULT(yes)
4100             ;;
4101         *solaris*)
4102             # need to set this define when using static linking (BUG 1473)
4103             CPPFLAGS="$CPPFLAGS -DSUNOS5"
4104             ;;
4105         *)
4106             ;;
4107 esac
4109 # some broken header files need this
4110 AC_CHECK_HEADER(asm/types.h,[
4111             AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
4112             AC_ADD_INCLUDE(<asm/types.h>)
4113             ])
4115 # For quotas on Veritas VxFS filesystems
4116 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
4118 # For sys/quota.h and linux/quota.h
4119 AC_CHECK_HEADERS(sys/quota.h)
4121 if test x"$samba_cv_found_xfs_header" != x"yes"; then
4122 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
4123 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
4124 AC_TRY_COMPILE([
4125 #include "confdefs.h"
4126 #ifdef HAVE_SYS_TYPES_H
4127 #include <sys/types.h>
4128 #endif
4129 #ifdef HAVE_ASM_TYPES_H
4130 #include <asm/types.h>
4131 #endif
4132 #include <sys/quota.h>
4133 ],[int i = Q_XGETQUOTA;],
4134 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
4135 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
4136         samba_cv_found_xfs_header=yes
4140 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX 
4141 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
4142 AC_TRY_COMPILE([
4143 #include "confdefs.h"
4144 #ifdef HAVE_SYS_QUOTA_H
4145 #include <sys/quota.h>
4146 #endif
4148 struct dqblk D;
4149 D.dqb_fsoftlimit = 0;],
4150 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
4151 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
4152         AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
4155 ##################
4156 # look for a working quota system
4158 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4159 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
4160 AC_TRY_RUN_STRICT([
4161 #define HAVE_QUOTACTL_4A 1
4162 #define AUTOCONF_TEST 1
4163 #include "confdefs.h"
4164 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4165            samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
4166 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
4167     samba_cv_SYSQUOTA_FOUND=yes;
4168     AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
4169     samba_cv_sysquotas_file="lib/sysquotas_4A.c"
4173 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4174 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
4175 AC_TRY_RUN_STRICT([
4176 #define HAVE_QUOTACTL_4B 1
4177 #define AUTOCONF_TEST 1
4178 #include "confdefs.h"
4179 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4180            samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
4181 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
4182     echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
4183     samba_cv_SYSQUOTA_FOUND=yes;
4184     AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
4185     samba_cv_sysquotas_file="lib/sysquotas_4B.c"
4189 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4190 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
4191 AC_TRY_RUN_STRICT([
4192 #define HAVE_QUOTACTL_3 1
4193 #define AUTOCONF_TEST 1
4194 #include "confdefs.h"
4195 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4196            samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
4197 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
4198     echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
4199     samba_cv_SYSQUOTA_FOUND=yes;
4200     AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
4201     samba_cv_sysquotas_file="lib/sysquotas_3.c"
4205 #################################################
4206 # check for mntent.h and struct mntent
4207 AC_CHECK_HEADERS(mntent.h)
4208 #################################################
4209 # check for setmntent,getmntent,endmntent
4210 AC_CHECK_FUNCS(setmntent getmntent endmntent)
4212 #################################################
4213 # check for devnm.h and struct mntent
4214 AC_CHECK_HEADERS(devnm.h)
4215 #################################################
4216 # check for devnm
4217 AC_CHECK_FUNCS(devnm)
4219 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
4220     if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4221         # if --with-sys-quotas=yes then build it 
4222         # you have can use the get/set quota command smb.conf
4223         # options then
4224         samba_cv_SYSQUOTA_FOUND=auto
4225     fi
4226     if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
4227         # if --with-sys-quotas=yes then build it 
4228         # you have can use the get/set quota command smb.conf
4229         # options then
4230         samba_cv_TRY_SYS_QUOTAS=auto
4231     fi
4234 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
4235 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
4236 SAVE_CPPFLAGS="$CPPFLAGS"
4237 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4238 AC_TRY_COMPILE([
4239 #include "confdefs.h"
4240 #define NO_PROTO_H 1
4241 #define NO_CONFIG_H 1
4242 #define HAVE_SYS_QUOTAS 1
4243 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
4244 #include "${srcdir-.}/lib/sysquotas.c"
4245 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
4246 CPPFLAGS="$SAVE_CPPFLAGS"
4248 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
4249 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
4250     if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then 
4251         AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
4252         AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
4253         samba_cv_WE_USE_SYS_QUOTAS=yes
4254         AC_MSG_RESULT(yes)
4255     else
4256         AC_MSG_RESULT(no)
4257     fi
4261 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
4262 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
4263 SAVE_CPPFLAGS="$CPPFLAGS"
4264 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4265 AC_TRY_COMPILE([
4266 #include "confdefs.h"
4267 #define NO_PROTO_H 1
4268 #define NO_CONFIG_H 1
4269 #define HAVE_SYS_QUOTAS 1
4270 #define HAVE_XFS_QUOTAS 1
4271 #include "${srcdir-.}/lib/sysquotas_xfs.c"
4272 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
4273 CPPFLAGS="$SAVE_CPPFLAGS"
4275 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
4276     if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
4277         AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
4278     fi
4282 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
4283 SAVE_CPPFLAGS="$CPPFLAGS"
4284 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4285 AC_TRY_COMPILE([
4286 #include "confdefs.h"
4287 #define NO_PROTO_H 1
4288 #define NO_CONFIG_H 1
4289 #include "${srcdir-.}/smbd/quotas.c"
4290 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
4291 CPPFLAGS="$SAVE_CPPFLAGS"
4293 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
4294 AC_MSG_CHECKING(whether to use the old quota support)
4295     if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
4296       if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
4297         AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
4298         AC_MSG_RESULT(yes)
4299       else
4300         AC_MSG_RESULT(no)
4301       fi
4302     else
4303       AC_MSG_RESULT(no)
4304     fi
4307 ####################
4308 # End of quota check samba_cv_RUN_QUOTA_TESTS
4311 #################################################
4312 # check for experimental utmp accounting
4314 AC_MSG_CHECKING(whether to support utmp accounting)
4315 WITH_UTMP=yes
4316 AC_ARG_WITH(utmp,
4317 [  --with-utmp             Include utmp accounting (default, if supported by OS)],
4318 [ case "$withval" in
4319   no)
4320                 WITH_UTMP=no
4321                 ;;
4322   *)
4323                 WITH_UTMP=yes
4324                 ;;
4325   esac ],
4328 # utmp requires utmp.h
4329 # Note similar check earlier, when checking utmp details.
4331 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
4332         utmp_no_reason=", no utmp.h on $host_os"
4333         WITH_UTMP=no
4336 # Display test results
4338 if test x"$WITH_UTMP" = x"yes"; then
4339         AC_MSG_RESULT(yes)
4340         AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
4341 else
4342         AC_MSG_RESULT(no$utmp_no_reason)
4345 INSTALLLIBCMD_SH=:
4346 INSTALLLIBCMD_A=:
4347 UNINSTALLLIBCMD_SH=:
4348 UNINSTALLLIBCMD_A=:
4350 if test $BLDSHARED = true; then
4351         INSTALLLIBCMD_SH="\$(INSTALLCMD)"
4352         UNINSTALLLIBCMD_SH="rm -f"
4354 if test $enable_static = yes; then
4355         INSTALLLIBCMD_A="\$(INSTALLCMD)"
4356         UNINSTALLLIBCMD_A="rm -f"
4359 #################################################
4360 # should we build libmsrpc?
4361 INSTALL_LIBMSRPC=
4362 UNINSTALL_LIBMSRPC=
4363 LIBMSRPC_SHARED=
4364 LIBMSRPC=
4365 AC_MSG_CHECKING(whether to build the libmsrpc shared library)
4366 AC_ARG_WITH(libmsrpc,
4367 [  --with-libmsrpc         Build the libmsrpc shared library (default=yes if shared libs supported)],
4368 [ case "$withval" in
4369   no) 
4370      AC_MSG_RESULT(no)
4371      ;;
4372   *)
4373      if test $BLDSHARED = true; then
4374         LIBMSRPC_SHARED=bin/libmsrpc.$SHLIBEXT
4375         LIBMSRPC=libmsrpc
4376         AC_MSG_RESULT(yes)
4377      else
4378         enable_static=yes
4379         AC_MSG_RESULT(no shared library support -- will supply static library)
4380      fi
4381      if test $enable_static = yes; then
4382         LIBMSRPC=libmsrpc
4383      fi
4384      INSTALL_LIBMSRPC=installlibmsrpc
4385      UNINSTALL_LIBMSRPC=uninstalllibmsrpc
4386      ;;
4387   esac ],
4389 # if unspecified, default is to built it if possible.
4390   if test $BLDSHARED = true; then
4391      LIBMSRPC_SHARED=bin/libmsrpc.$SHLIBEXT
4392      LIBMSRPC=libmsrpc
4393      AC_MSG_RESULT(yes)
4394    else
4395      enable_static=yes
4396      AC_MSG_RESULT(no shared library support -- will supply static library)
4397    fi
4398    if test $enable_static = yes; then
4399      LIBMSRPC=libmsrpc
4400   fi]
4401   INSTALL_LIBMSRPC=installlibmsrpc
4402   UNINSTALL_LIBMSRPC=uninstalllibmsrpc
4406 #################################################
4407 # should we build libaddns?
4408 INSTALL_LIBADDNS=
4409 UNINSTALL_LIBADDNS=
4410 LIBADDNS_SHARED=
4411 LIBADDNS=
4412 AC_MSG_CHECKING(whether to build the libaddns shared library)
4413 AC_ARG_WITH(libaddns,
4414 [  --with-libaddns         Build the libaddns shared library (default=yes if shared libs supported)],
4415 [ case "$withval" in
4416   no) 
4417      AC_MSG_RESULT(no)
4418      ;;
4419   *)
4420      if test $BLDSHARED = true; then
4421         LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
4422         LIBADDNS=libaddns
4423         AC_MSG_RESULT(yes)
4424      else
4425         enable_static=yes
4426         AC_MSG_RESULT(no shared library support -- will supply static library)
4427      fi
4428      if test $enable_static = yes; then
4429         LIBADDNS=libaddns
4430      fi
4431      INSTALL_LIBADDNS=installlibaddns
4432      UNINSTALL_LIBADDNS=uninstalllibaddns
4433      ;;
4434   esac ],
4436 # if unspecified, default is to built it if possible.
4437   if test $BLDSHARED = true; then
4438      LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
4439      LIBADDNS=libaddns
4440      AC_MSG_RESULT(yes)
4441    else
4442      enable_static=yes
4443      AC_MSG_RESULT(no shared library support -- will supply static library)
4444    fi
4445    if test $enable_static = yes; then
4446      LIBADDNS=libaddns
4447   fi]
4448   INSTALL_LIBADDNS=installlibaddns
4449   UNINSTALL_LIBADDNS=uninstalllibaddns
4452 #################################################
4453 # should we build libsmbclient?
4454 INSTALL_LIBSMBCLIENT=
4455 UNINSTALL_LIBSMBCLIENT=
4456 LIBSMBCLIENT_SHARED=
4457 LIBSMBCLIENT=
4458 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
4459 AC_ARG_WITH(libsmbclient,
4460 [  --with-libsmbclient     Build the libsmbclient shared library (default=yes if shared libs supported)],
4461 [ case "$withval" in
4462   no) 
4463      AC_MSG_RESULT(no)
4464      ;;
4465   *)
4466      if test $BLDSHARED = true; then
4467         LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
4468         LIBSMBCLIENT=libsmbclient
4469         AC_MSG_RESULT(yes)
4470      else
4471         enable_static=yes
4472         AC_MSG_RESULT(no shared library support -- will supply static library)
4473      fi
4474      if test $enable_static = yes; then
4475         LIBSMBCLIENT=libsmbclient
4476      fi
4477      INSTALL_LIBSMBCLIENT=installclientlib
4478      UNINSTALL_LIBSMBCLIENT=uninstallclientlib
4479      ;;
4480   esac ],
4482 # if unspecified, default is to built it if possible.
4483   if test $BLDSHARED = true; then
4484      LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
4485      LIBSMBCLIENT=libsmbclient
4486      AC_MSG_RESULT(yes)
4487    else
4488      enable_static=yes
4489      AC_MSG_RESULT(no shared library support -- will supply static library)
4490    fi
4491    if test $enable_static = yes; then
4492      LIBSMBCLIENT=libsmbclient
4493   fi]
4494   INSTALL_LIBSMBCLIENT=installclientlib
4495   UNINSTALL_LIBSMBCLIENT=uninstallclientlib
4498 INSTALL_LIBSMBSHAREMODES=
4499 LIBSMBSHAREMODES_SHARED=
4500 LIBSMBSHAREMODES=
4501 AC_MSG_CHECKING(whether to build the libsmbsharemodes shared library)
4502 AC_ARG_WITH(libsmbsharemodes,
4503 [  --with-libsmbsharemodes     Build the libsmbsharemodes shared library (default=yes if shared libs supported)],
4504 [ case "$withval" in
4505   no)
4506      AC_MSG_RESULT(no)
4507      ;;
4508   *)
4509      if test $BLDSHARED = true; then
4510         LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
4511         LIBSMBSHAREMODES=libsmbsharemodes
4512         AC_MSG_RESULT(yes)
4513      else
4514         enable_static=yes
4515         AC_MSG_RESULT(no shared library support -- will supply static library)
4516      fi
4517      if test $enable_static = yes; then
4518         LIBSMBSHAREMODES=libsmbsharemodes
4519      fi
4520      INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
4521      UNINSTALL_LIBSMBSHAREMODES=uninstalllibsmbsharemodes
4522      ;;
4523   esac ],
4525 # if unspecified, default is to built it if possible.
4526   if test $BLDSHARED = true; then
4527      LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
4528      LIBSMBSHAREMODES=libsmbsharemodes
4529      AC_MSG_RESULT(yes)
4530    else
4531      enable_static=yes
4532      AC_MSG_RESULT(no shared library support -- will supply static library)
4533    fi
4534    if test $enable_static = yes; then
4535      LIBSMBSHAREMODES=libsmbsharemodes
4536   fi]
4537   INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
4540 #################################################
4541 # these tests are taken from the GNU fileutils package
4542 AC_CHECKING(how to get filesystem space usage)
4543 space=no
4545 # Test for statvfs64.
4546 if test $space = no; then
4547   # SVR4
4548   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
4549   [AC_TRY_RUN([
4550 #if defined(HAVE_UNISTD_H)
4551 #include <unistd.h>
4552 #endif
4553 #include <sys/types.h>
4554 #include <sys/statvfs.h>
4555   main ()
4556   {
4557     struct statvfs64 fsd;
4558     exit (statvfs64 (".", &fsd));
4559   }],
4560   fu_cv_sys_stat_statvfs64=yes,
4561   fu_cv_sys_stat_statvfs64=no,
4562   fu_cv_sys_stat_statvfs64=cross)])
4563   if test $fu_cv_sys_stat_statvfs64 = yes; then
4564     space=yes
4565     AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
4566   fi
4569 # Perform only the link test since it seems there are no variants of the
4570 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
4571 # because that got a false positive on SCO OSR5.  Adding the declaration
4572 # of a `struct statvfs' causes this test to fail (as it should) on such
4573 # systems.  That system is reported to work fine with STAT_STATFS4 which
4574 # is what it gets when this test fails.
4575 if test $space = no; then
4576   # SVR4
4577   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
4578                  [AC_TRY_LINK([#include <sys/types.h>
4579 #include <sys/statvfs.h>],
4580                               [struct statvfs fsd; statvfs (0, &fsd);],
4581                               fu_cv_sys_stat_statvfs=yes,
4582                               fu_cv_sys_stat_statvfs=no)])
4583   if test $fu_cv_sys_stat_statvfs = yes; then
4584     space=yes
4585     AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
4586   fi
4589 # smbd/statvfs.c assumes that statvfs.f_fsid is an integer.
4590 # This is not the case on ancient Linux systems.
4592 AC_CACHE_CHECK([that statvfs.f_fsid is an integer],samba_cv_fsid_int, [
4593     AC_TRY_COMPILE([#include <sys/statvfs.h>],[struct statvfs buf; buf.f_fsid = 0],
4594         samba_cv_fsid_int=yes,samba_cv_fsid_int=no)])
4595 if test x"$samba_cv_fsid_int" = x"yes"; then
4596     AC_DEFINE(HAVE_FSID_INT, 1, [Whether statvfs.f_fsid is an integer])
4599 if test $space = no; then
4600   # DEC Alpha running OSF/1
4601   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
4602   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
4603   [AC_TRY_RUN([
4604 #include <sys/param.h>
4605 #include <sys/types.h>
4606 #include <sys/mount.h>
4607   main ()
4608   {
4609     struct statfs fsd;
4610     fsd.f_fsize = 0;
4611     exit (statfs (".", &fsd, sizeof (struct statfs)));
4612   }],
4613   fu_cv_sys_stat_statfs3_osf1=yes,
4614   fu_cv_sys_stat_statfs3_osf1=no,
4615   fu_cv_sys_stat_statfs3_osf1=no)])
4616   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
4617   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
4618     space=yes
4619     AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
4620   fi
4623 if test $space = no; then
4624 # AIX
4625   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
4626 member (AIX, 4.3BSD)])
4627   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
4628   [AC_TRY_RUN([
4629 #ifdef HAVE_SYS_PARAM_H
4630 #include <sys/param.h>
4631 #endif
4632 #ifdef HAVE_SYS_MOUNT_H
4633 #include <sys/mount.h>
4634 #endif
4635 #ifdef HAVE_SYS_VFS_H
4636 #include <sys/vfs.h>
4637 #endif
4638   main ()
4639   {
4640   struct statfs fsd;
4641   fsd.f_bsize = 0;
4642   exit (statfs (".", &fsd));
4643   }],
4644   fu_cv_sys_stat_statfs2_bsize=yes,
4645   fu_cv_sys_stat_statfs2_bsize=no,
4646   fu_cv_sys_stat_statfs2_bsize=no)])
4647   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
4648   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
4649     space=yes
4650     AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
4651   fi
4654 if test $space = no; then
4655 # SVR3
4656   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
4657   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
4658   [AC_TRY_RUN([#include <sys/types.h>
4659 #include <sys/statfs.h>
4660   main ()
4661   {
4662   struct statfs fsd;
4663   exit (statfs (".", &fsd, sizeof fsd, 0));
4664   }],
4665     fu_cv_sys_stat_statfs4=yes,
4666     fu_cv_sys_stat_statfs4=no,
4667     fu_cv_sys_stat_statfs4=no)])
4668   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
4669   if test $fu_cv_sys_stat_statfs4 = yes; then
4670     space=yes
4671     AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
4672   fi
4675 if test $space = no; then
4676 # 4.4BSD and NetBSD
4677   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
4678 member (4.4BSD and NetBSD)])
4679   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
4680   [AC_TRY_RUN([#include <sys/types.h>
4681 #ifdef HAVE_SYS_PARAM_H
4682 #include <sys/param.h>
4683 #endif
4684 #ifdef HAVE_SYS_MOUNT_H
4685 #include <sys/mount.h>
4686 #endif
4687   main ()
4688   {
4689   struct statfs fsd;
4690   fsd.f_fsize = 0;
4691   exit (statfs (".", &fsd));
4692   }],
4693   fu_cv_sys_stat_statfs2_fsize=yes,
4694   fu_cv_sys_stat_statfs2_fsize=no,
4695   fu_cv_sys_stat_statfs2_fsize=no)])
4696   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
4697   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
4698     space=yes
4699         AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
4700   fi
4703 if test $space = no; then
4704   # Ultrix
4705   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
4706   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
4707   [AC_TRY_RUN([#include <sys/types.h>
4708 #ifdef HAVE_SYS_PARAM_H
4709 #include <sys/param.h>
4710 #endif
4711 #ifdef HAVE_SYS_MOUNT_H
4712 #include <sys/mount.h>
4713 #endif
4714 #ifdef HAVE_SYS_FS_TYPES_H
4715 #include <sys/fs_types.h>
4716 #endif
4717   main ()
4718   {
4719   struct fs_data fsd;
4720   /* Ultrix's statfs returns 1 for success,
4721      0 for not mounted, -1 for failure.  */
4722   exit (statfs (".", &fsd) != 1);
4723   }],
4724   fu_cv_sys_stat_fs_data=yes,
4725   fu_cv_sys_stat_fs_data=no,
4726   fu_cv_sys_stat_fs_data=no)])
4727   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
4728   if test $fu_cv_sys_stat_fs_data = yes; then
4729     space=yes
4730     AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
4731   fi
4735 # As a gating factor for large file support, in order to
4736 # use <4GB files we must have the following minimal support
4737 # available.
4738 # long long, and a 64 bit off_t or off64_t.
4739 # If we don't have all of these then disable large
4740 # file support.
4742 AC_MSG_CHECKING([if large file support can be enabled])
4743 AC_TRY_COMPILE([
4744 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
4745 #include <sys/types.h>
4746 #else
4747 __COMPILE_ERROR_
4748 #endif
4750 [int i],
4751 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
4752 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
4753         AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
4755 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
4757 AC_ARG_WITH(spinlocks, 
4758 [  --with-spinlocks        Use spin locks instead of fcntl locks (default=no) ])
4759 if test "x$with_spinlocks" = "xyes"; then
4760     AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
4762     case "$host_cpu" in
4763         sparc)
4764             AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
4765             ;;
4767         i386|i486|i586|i686)
4768             AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
4769             ;;
4771         mips)
4772             AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
4773             ;;
4775         powerpc)
4776             AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
4777             ;;
4778     esac
4781 #################################################
4782 # check for cluster extensions
4784 AC_MSG_CHECKING(whether to include cluster support)
4785 AC_ARG_WITH(cluster-support, 
4786 [  --with-cluster-support  Enable cluster extensions (default=no)])
4787 if test "x$with_cluster_support" = "xyes"; then
4788     AC_DEFINE(CLUSTER_SUPPORT,1,[Whether to enable cluster extensions])
4789     AC_MSG_RESULT(yes)
4790 else
4791     AC_MSG_RESULT(no)
4795 #################################################
4796 # check for ACL support
4798 AC_MSG_CHECKING(whether to support ACLs)
4799 AC_ARG_WITH(acl-support,
4800 [  --with-acl-support      Include ACL support (default=no)],
4801 [ case "$withval" in
4802   yes)
4804         case "$host_os" in
4805         *sysv5*)
4806                 AC_MSG_RESULT(Using UnixWare ACLs)
4807                 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
4808                 default_static_modules="$default_static_modules vfs_solarisacl"
4809                 ;;
4810         *solaris*)
4811                 AC_MSG_RESULT(Using solaris ACLs)
4812                 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
4813                 ACL_LIBS="$ACL_LIBS -lsec"
4814                 default_static_modules="$default_static_modules vfs_solarisacl"
4815                 ;;
4816         *hpux*)
4817                 AC_MSG_RESULT(Using HPUX ACLs)
4818                 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
4819                 default_static_modules="$default_static_modules vfs_hpuxacl"
4820                 ;;
4821         *irix*)
4822                 AC_MSG_RESULT(Using IRIX ACLs)
4823                 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
4824                 default_static_modules="$default_static_modules vfs_irixacl"
4825                 ;;
4826         *aix*)
4827                 AC_MSG_RESULT(Using AIX ACLs)
4828                 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
4829                 default_static_modules="$default_static_modules vfs_aixacl"
4830                 ;;
4831         *osf*)
4832                 AC_MSG_RESULT(Using Tru64 ACLs)
4833                 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
4834                 ACL_LIBS="$ACL_LIBS -lpacl"
4835                 default_static_modules="$default_static_modules vfs_tru64acl"
4836                 ;;
4837         *freebsd[[5-9]]*)
4838                 AC_MSG_RESULT(Using FreeBSD posix ACLs)
4839                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
4840                 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4841                 ;;
4842         *linux*)
4843                 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
4844                 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
4845                 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
4846                 acl_LIBS=$LIBS
4847                 LIBS="$LIBS -lacl"
4848                 AC_TRY_LINK([#include <sys/types.h>
4849 #include <sys/acl.h>],
4850 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
4851 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
4852                 LIBS=$acl_LIBS])
4853                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4854                                 AC_MSG_RESULT(Using posix ACLs)
4855                                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
4856                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4857                                 acl_LIBS=$LIBS
4858                                 LIBS="$LIBS -lacl"
4859                                 AC_TRY_LINK([#include <sys/types.h>
4860 #include <sys/acl.h>],
4861 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4862 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4863                                 LIBS=$acl_LIBS])
4864                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4865                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4866                                 fi
4867                         fi
4868             ;;
4869          *)
4870                 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
4871                 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
4872                 acl_LIBS=$LIBS
4873                 LIBS="$LIBS -lacl"
4874                 AC_TRY_LINK([#include <sys/types.h>
4875 #include <sys/acl.h>],
4876 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
4877 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
4878                 LIBS=$acl_LIBS])
4879                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4880                                 AC_MSG_RESULT(Using posix ACLs)
4881                                 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
4882                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4883                                 acl_LIBS=$LIBS
4884                                 LIBS="$LIBS -lacl"
4885                                 AC_TRY_LINK([#include <sys/types.h>
4886 #include <sys/acl.h>],
4887 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4888 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4889                                 LIBS=$acl_LIBS])
4890                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4891                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4892                                 fi
4893                         fi
4894             ;;
4895         esac
4896         ;;
4897   *)
4898     AC_MSG_RESULT(no)
4899     AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
4900     ;;
4901   esac ],
4902   AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
4903   AC_MSG_RESULT(no)
4906 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4907    default_static_modules="$default_static_modules vfs_posixacl"
4910 #################################################
4911 # check for AIO support
4913 AC_MSG_CHECKING(whether to support asynchronous io)
4914 AC_ARG_WITH(aio-support,
4915 [  --with-aio-support      Include asynchronous io support (default=no)],
4916 [ case "$withval" in
4917   yes)
4919         AC_MSG_RESULT(yes)
4920         case "$host_os" in
4921         *)
4922                 AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$LIBS -lrt"])
4923                 AC_CHECK_LIB(aio,aio_read,[AIO_LIBS="$LIBS -laio"])
4924                 AC_CACHE_CHECK([for asynchronous io support],samba_cv_HAVE_AIO,[
4925                 aio_LIBS=$LIBS
4926                 LIBS=$AIO_LIBS
4927                 AC_TRY_LINK([#include <sys/types.h>
4928 #include <aio.h>],
4929 [ struct aiocb a; return aio_read(&a);],
4930 samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
4931                 LIBS=$aio_LIBS])
4932                 AC_CACHE_CHECK([for 64-bit asynchronous io support],samba_cv_HAVE_AIO64,[
4933                 aio_LIBS=$LIBS
4934                 LIBS=$AIO_LIBS
4935                 AC_TRY_LINK([#include <sys/types.h>
4936 #include <aio.h>],
4937 [ struct aiocb64 a; return aio_read64(&a);],
4938 samba_cv_HAVE_AIO64=yes,samba_cv_HAVE_AIO64=no)
4939                 LIBS=$aio_LIBS])
4940                 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
4941                         AC_DEFINE(HAVE_AIOCB64,1,[Whether 64 bit aio is available])
4942                         AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
4943                         LIBS=$AIO_LIBS
4944                 elif test x"$samba_cv_HAVE_AIO" = x"yes"; then
4945                         AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
4946                         LIBS=$AIO_LIBS
4947                 fi
4949                 if test x"$samba_cv_HAVE_AIO" = x"yes"; then
4950                         AC_MSG_CHECKING(for aio_read)
4951                         AC_LINK_IFELSE([#include <aio.h>
4952 int main() { struct aiocb a; return aio_read(&a); }],
4953 [AC_DEFINE(HAVE_AIO_READ, 1, [Have aio_read]) AC_MSG_RESULT(yes)],
4954 [AC_MSG_RESULT(no)])
4956                         AC_MSG_CHECKING(for aio_write)
4957                         AC_LINK_IFELSE([#include <aio.h>
4958 int main() { struct aiocb a; return aio_write(&a); }],
4959 [AC_DEFINE(HAVE_AIO_WRITE, 1, [Have aio_write]) AC_MSG_RESULT(yes)],
4960 [AC_MSG_RESULT(no)])
4962                         AC_MSG_CHECKING(for aio_fsync)
4963                         AC_LINK_IFELSE([#include <aio.h>
4964 int main() { struct aiocb a; return aio_fsync(1, &a); }],
4965 [AC_DEFINE(HAVE_AIO_FSYNC, 1, [Have aio_fsync]) AC_MSG_RESULT(yes)],
4966 [AC_MSG_RESULT(no)])
4968                         AC_MSG_CHECKING(for aio_return)
4969                         AC_LINK_IFELSE([#include <aio.h>
4970 int main() { struct aiocb a; return aio_return(&a); }],
4971 [AC_DEFINE(HAVE_AIO_RETURN, 1, [Have aio_return]) AC_MSG_RESULT(yes)],
4972 [AC_MSG_RESULT(no)])
4974                         AC_MSG_CHECKING(for aio_error)
4975                         AC_LINK_IFELSE([#include <aio.h>
4976 int main() { struct aiocb a; return aio_error(&a); }],
4977 [AC_DEFINE(HAVE_AIO_ERROR, 1, [Have aio_error]) AC_MSG_RESULT(yes)],
4978 [AC_MSG_RESULT(no)])
4980                         AC_MSG_CHECKING(for aio_cancel)
4981                         AC_LINK_IFELSE([#include <aio.h>
4982 int main() { struct aiocb a; return aio_cancel(1, &a); }],
4983 [AC_DEFINE(HAVE_AIO_CANCEL, 1, [Have aio_cancel]) AC_MSG_RESULT(yes)],
4984 [AC_MSG_RESULT(no)])
4986                         AC_MSG_CHECKING(for aio_suspend)
4987                         AC_LINK_IFELSE([#include <aio.h>
4988 int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }],
4989 [AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
4990 [AC_MSG_RESULT(no)])
4991                 fi
4993                 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
4994                         AC_MSG_CHECKING(for aio_read64)
4995                         AC_LINK_IFELSE([#include <aio.h>
4996 int main() { struct aiocb a; return aio_read64(&a); }],
4997 [AC_DEFINE(HAVE_AIO_READ64, 1, [Have aio_read64]) AC_MSG_RESULT(yes)],
4998 [AC_MSG_RESULT(no)])
5000                         AC_MSG_CHECKING(for aio_write64)
5001                         AC_LINK_IFELSE([#include <aio.h>
5002 int main() { struct aiocb a; return aio_write64(&a); }],
5003 [AC_DEFINE(HAVE_AIO_WRITE64, 1, [Have aio_write64]) AC_MSG_RESULT(yes)],
5004 [AC_MSG_RESULT(no)])
5006                         AC_MSG_CHECKING(for aio_fsync64)
5007                         AC_LINK_IFELSE([#include <aio.h>
5008 int main() { struct aiocb a; return aio_fsync64(1, &a); }],
5009 [AC_DEFINE(HAVE_AIO_FSYNC64, 1, [Have aio_fsync64]) AC_MSG_RESULT(yes)],
5010 [AC_MSG_RESULT(no)])
5012                         AC_MSG_CHECKING(for aio_return64)
5013                         AC_LINK_IFELSE([#include <aio.h>
5014 int main() { struct aiocb a; return aio_return64(&a); }],
5015 [AC_DEFINE(HAVE_AIO_RETURN64, 1, [Have aio_return64]) AC_MSG_RESULT(yes)],
5016 [AC_MSG_RESULT(no)])
5018                         AC_MSG_CHECKING(for aio_error64)
5019                         AC_LINK_IFELSE([#include <aio.h>
5020 int main() { struct aiocb a; return aio_error64(&a); }],
5021 [AC_DEFINE(HAVE_AIO_ERROR64, 1, [Have aio_error64]) AC_MSG_RESULT(yes)],
5022 [AC_MSG_RESULT(no)])
5024                         AC_MSG_CHECKING(for aio_cancel64)
5025                         AC_LINK_IFELSE([#include <aio.h>
5026 int main() { struct aiocb a; return aio_cancel64(1, &a); }],
5027 [AC_DEFINE(HAVE_AIO_CANCEL64, 1, [Have aio_cancel64]) AC_MSG_RESULT(yes)],
5028 [AC_MSG_RESULT(no)])
5030                         AC_MSG_CHECKING(for aio_suspend64)
5031                         AC_LINK_IFELSE([#include <aio.h>
5032 int main() { struct aiocb a; return aio_suspend64(&a, 1, NULL); }],
5033 [AC_DEFINE(HAVE_AIO_SUSPEND64, 1, [Have aio_suspend64]) AC_MSG_RESULT(yes)],
5034 [AC_MSG_RESULT(no)])
5035                 fi
5036             ;;
5037         esac
5038         ;;
5039   *)
5040     AC_MSG_RESULT(no)
5041     AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
5042     ;;
5043   esac ],
5044   AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
5045   AC_MSG_RESULT(no)
5048 #################################################
5049 # check for sendfile support
5051 with_sendfile_support=yes
5052 AC_MSG_CHECKING(whether to check to support sendfile)
5053 AC_ARG_WITH(sendfile-support,
5054 [  --with-sendfile-support Check for sendfile support (default=yes)],
5055 [ case "$withval" in
5056   yes)
5058         AC_MSG_RESULT(yes);
5060         case "$host_os" in
5061         *linux*)
5062                 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
5063                 AC_TRY_LINK([#include <sys/sendfile.h>],
5065 int tofd, fromfd;
5066 off64_t offset;
5067 size_t total;
5068 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
5070 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
5072                 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
5073                 AC_TRY_LINK([#include <sys/sendfile.h>],
5075 int tofd, fromfd;
5076 off_t offset;
5077 size_t total;
5078 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5080 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5082 # Try and cope with broken Linux sendfile....
5083                 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
5084                 AC_TRY_LINK([\
5085 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
5086 #undef _FILE_OFFSET_BITS
5087 #endif
5088 #include <sys/sendfile.h>],
5090 int tofd, fromfd;
5091 off_t offset;
5092 size_t total;
5093 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5095 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
5097         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
5098                 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
5099                 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5100                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5101         elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5102                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5103                 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5104                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5105         elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
5106                 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
5107                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
5108         else
5109                 AC_MSG_RESULT(no);
5110         fi
5112         ;;
5113         *freebsd* | *dragonfly* )
5114                 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
5115                 AC_TRY_LINK([\
5116 #include <sys/types.h>
5117 #include <unistd.h>
5118 #include <sys/socket.h>
5119 #include <sys/uio.h>],
5121         int fromfd, tofd, ret, total=0;
5122         off_t offset, nwritten;
5123         struct sf_hdtr hdr;
5124         struct iovec hdtrl;
5125         hdr.headers = &hdtrl;
5126         hdr.hdr_cnt = 1;
5127         hdr.trailers = NULL;
5128         hdr.trl_cnt = 0;
5129         hdtrl.iov_base = NULL;
5130         hdtrl.iov_len = 0;
5131         ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
5133 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5135         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5136                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
5137                 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
5138                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5139         else
5140                 AC_MSG_RESULT(no);
5141         fi
5142         ;;
5144         *hpux*)
5145                 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
5146                 AC_TRY_LINK([\
5147 #include <sys/socket.h>
5148 #include <sys/uio.h>],
5150         int fromfd, tofd;
5151         size_t total=0;
5152         struct iovec hdtrl[2];
5153         ssize_t nwritten;
5154         off64_t offset;
5156         hdtrl[0].iov_base = 0;
5157         hdtrl[0].iov_len = 0;
5159         nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
5161 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
5162         if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
5163                 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
5164                 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
5165                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5166         else
5167                 AC_MSG_RESULT(no);
5168         fi
5170                 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
5171                 AC_TRY_LINK([\
5172 #include <sys/socket.h>
5173 #include <sys/uio.h>],
5175         int fromfd, tofd;
5176         size_t total=0;
5177         struct iovec hdtrl[2];
5178         ssize_t nwritten;
5179         off_t offset;
5181         hdtrl[0].iov_base = 0;
5182         hdtrl[0].iov_len = 0;
5184         nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
5186 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5187         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5188                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5189                 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
5190                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5191         else
5192                 AC_MSG_RESULT(no);
5193         fi
5194         ;;
5196         *solaris*)
5197                 AC_CHECK_LIB(sendfile,sendfilev)
5198                 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
5199                 AC_TRY_LINK([\
5200 #include <sys/sendfile.h>],
5202         int sfvcnt;
5203         size_t xferred;
5204         struct sendfilevec vec[2];
5205         ssize_t nwritten;
5206         int tofd;
5208         sfvcnt = 2;
5210         vec[0].sfv_fd = SFV_FD_SELF;
5211         vec[0].sfv_flag = 0;
5212         vec[0].sfv_off = 0;
5213         vec[0].sfv_len = 0;
5215         vec[1].sfv_fd = 0;
5216         vec[1].sfv_flag = 0;
5217         vec[1].sfv_off = 0;
5218         vec[1].sfv_len = 0;
5219         nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
5221 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
5223         if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
5224                 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
5225                 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
5226                 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5227         else
5228                 AC_MSG_RESULT(no);
5229         fi
5231                 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
5232                 AC_TRY_LINK([\
5233 #include <sys/sendfile.h>],
5235         int sfvcnt;
5236         size_t xferred;
5237         struct sendfilevec vec[2];
5238         ssize_t nwritten;
5239         int tofd;
5241         sfvcnt = 2;
5243         vec[0].sfv_fd = SFV_FD_SELF;
5244         vec[0].sfv_flag = 0;
5245         vec[0].sfv_off = 0;
5246         vec[0].sfv_len = 0;
5248         vec[1].sfv_fd = 0;
5249         vec[1].sfv_flag = 0;
5250         vec[1].sfv_off = 0;
5251         vec[1].sfv_len = 0;
5252         nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
5254 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
5256         if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
5257                 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
5258                 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
5259                 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
5260         else
5261                 AC_MSG_RESULT(no);
5262         fi
5263         ;;
5264         *aix*)
5265                 AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
5266                 AC_TRY_LINK([\
5267 #include <sys/socket.h>],
5269         int fromfd, tofd;
5270         size_t total=0;
5271         struct sf_parms hdtrl;
5272         ssize_t nwritten;
5273         off64_t offset;
5275         hdtrl.header_data = 0;
5276         hdtrl.header_length = 0;
5277         hdtrl.file_descriptor = fromfd;
5278         hdtrl.file_offset = 0;
5279         hdtrl.file_bytes = 0;
5280         hdtrl.trailer_data = 0;
5281         hdtrl.trailer_length = 0;
5283         nwritten = send_file(&tofd, &hdtrl, 0);
5285 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5286         if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5287                 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5288                 AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
5289                 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
5290         else
5291                 AC_MSG_RESULT(no);
5292         fi
5293         ;;
5294         *)
5295         ;;
5296         esac
5297         ;;
5298   *)
5299     AC_MSG_RESULT(no)
5300     ;;
5301   esac ],
5302   AC_MSG_RESULT(yes)
5306 #################################################
5307 # Check whether winbind is supported on this platform.  If so we need to
5308 # build and install client programs, sbin programs and shared libraries
5310 AC_MSG_CHECKING(whether to build winbind)
5312 # Initially, the value of $host_os decides whether winbind is supported
5314 HAVE_WINBIND=yes
5316 # Define the winbind shared library name and any specific linker flags
5317 # it needs to be built with.
5319 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
5320 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
5321 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
5323 case "$host_os" in
5324         *linux*)
5325                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
5326                 ;;
5327         *freebsd[[5-9]]*)
5328                 # FreeBSD winbind client is implemented as a wrapper around
5329                 # the Linux version.
5330                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
5331                     nsswitch/winbind_nss_linux.o"
5332                 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
5333                 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
5334                 ;;
5335         *irix*)
5336                 # IRIX has differently named shared libraries
5337                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
5338                 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
5339                 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
5340                 ;;
5341         *solaris*)
5342                 # Solaris winbind client is implemented as a wrapper around
5343                 # the Linux version.
5344                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
5345                     nsswitch/winbind_nss_linux.o"
5346                 WINBIND_NSS_EXTRA_LIBS="-lsocket"
5347                 ;;
5348         *hpux11*)
5349                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
5350                 ;;
5351         *aix*)
5352                 # AIX has even differently named shared libraries.  No
5353                 # WINS support has been implemented yet.
5354                 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
5355                 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
5356                 WINBIND_NSS="nsswitch/WINBIND"
5357                 WINBIND_WINS_NSS=""
5358                 ;;
5359         *)
5360                 HAVE_WINBIND=no
5361                 winbind_no_reason=", unsupported on $host_os"
5362                 ;;
5363 esac
5365 AC_SUBST(WINBIND_NSS)
5366 AC_SUBST(WINBIND_WINS_NSS)
5367 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
5368 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
5369 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
5371 # Check the setting of --with-winbind
5373 AC_ARG_WITH(winbind,
5374 [  --with-winbind          Build winbind (default, if supported by OS)],
5376   case "$withval" in
5377         yes)
5378                 HAVE_WINBIND=yes
5379                 ;;
5380         no)
5381                 HAVE_WINBIND=no
5382                 winbind_reason=""
5383                 ;;
5384   esac ],
5387 # We need unix domain sockets for winbind
5389 if test x"$HAVE_WINBIND" = x"yes"; then
5390         if test x"$samba_cv_unixsocket" = x"no"; then
5391                 winbind_no_reason=", no unix domain socket support on $host_os"
5392                 HAVE_WINBIND=no
5393         fi
5396 # Display test results
5398 if test x"$HAVE_WINBIND" = x"yes"; then
5399         AC_MSG_RESULT(yes)
5400         AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
5402         EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
5403         EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
5404         if test $BLDSHARED = true; then
5405                 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
5407                 if test x"$with_pam" = x"yes"; then
5408                         PAM_MODULES="$PAM_MODULES pam_winbind"
5409                         INSTALL_PAM_MODULES="installpammodules"
5410                         UNINSTALL_PAM_MODULES="uninstallpammodules"
5411                 fi
5412         fi
5413 else
5414         AC_MSG_RESULT(no$winbind_no_reason)
5417 # Solaris 10 does have new member in nss_XbyY_key
5418 AC_CHECK_MEMBER(union nss_XbyY_key.ipnode.af_family,
5419                 AC_DEFINE(HAVE_NSS_XBYY_KEY_IPNODE, 1, [Defined if union nss_XbyY_key has ipnode field]),,
5420                 [#include <nss_dbdefs.h>])
5422 # Solaris has some extra fields in struct passwd that need to be
5423 # initialised otherwise nscd crashes.  
5425 AC_CHECK_MEMBER(struct passwd.pw_comment,
5426                 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
5427                 [#include <pwd.h>])
5429 AC_CHECK_MEMBER(struct passwd.pw_age,
5430                 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
5431                 [#include <pwd.h>])
5433 # AIX 4.3.x and 5.1 do not have as many members in
5434 # struct secmethod_table as AIX 5.2
5435 AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
5436        [#include <usersec.h>])
5437 AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
5438        [#include <usersec.h>])
5440 AC_CACHE_CHECK([for SO_PEERCRED],samba_cv_HAVE_PEERCRED,[
5441 AC_TRY_COMPILE([#include <sys/types.h>
5442 #include <sys/socket.h>],
5443 [struct ucred cred;
5444  socklen_t cred_len;
5445  int ret = getsockopt(0, SOL_SOCKET, SO_PEERCRED, &cred, &cred_len);
5447 samba_cv_HAVE_PEERCRED=yes,samba_cv_HAVE_PEERCRED=no,samba_cv_HAVE_PEERCRED=cross)])
5448 if test x"$samba_cv_HAVE_PEERCRED" = x"yes"; then
5449     AC_DEFINE(HAVE_PEERCRED,1,[Whether we can use SO_PEERCRED to get socket credentials])
5453 #################################################
5454 # Check to see if we should use the included popt 
5456 AC_ARG_WITH(included-popt,
5457 [  --with-included-popt    use bundled popt library, not from system],
5459   case "$withval" in
5460         yes)
5461                 INCLUDED_POPT=yes
5462                 ;;
5463         no)
5464                 INCLUDED_POPT=no
5465                 ;;
5466   esac ],
5468 if test x"$INCLUDED_POPT" != x"yes"; then
5469     AC_CHECK_LIB(popt, poptGetContext,
5470                  INCLUDED_POPT=no, INCLUDED_POPT=yes)
5473 AC_MSG_CHECKING(whether to use included popt)
5474 if test x"$INCLUDED_POPT" = x"yes"; then
5475     AC_MSG_RESULT(yes)
5476     BUILD_POPT='$(POPT_OBJS)'
5477         POPTLIBS='$(POPT_OBJS)'
5478     FLAGS1="-I\$(srcdir)/popt"
5479 else
5480     AC_MSG_RESULT(no)
5481         BUILD_POPT=""
5482     POPTLIBS="-lpopt"
5484 AC_SUBST(BUILD_POPT)
5485 AC_SUBST(POPTLIBS)
5486 AC_SUBST(FLAGS1)
5488 #################################################
5489 # Check to see if we should use the included iniparser 
5491 AC_ARG_WITH(included-iniparser,
5492 [  --with-included-iniparser    use bundled iniparser library, not from system],
5494   case "$withval" in
5495         yes)
5496                 INCLUDED_INIPARSER=yes
5497                 ;;
5498         no)
5499                 INCLUDED_INIPARSER=no
5500                 ;;
5501   esac ],
5503 if test x"$INCLUDED_INIPARSER" != x"yes"; then
5504     AC_CHECK_LIB(iniparser, iniparser_load,
5505                  INCLUDED_INIPARSER=no, INCLUDED_INIPARSER=yes)
5508 AC_MSG_CHECKING(whether to use included iniparser)
5509 if test x"$INCLUDED_INIPARSER" = x"yes"; then
5510     AC_MSG_RESULT(yes)
5511     BUILD_INIPARSER='$(INIPARSER_OBJ)'
5512         INIPARSERLIBS=""
5513     FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src"
5514 else
5515     AC_MSG_RESULT(no)
5516         BUILD_INIPARSER=""
5517     INIPARSERLIBS="-liniparser"
5519 AC_SUBST(BUILD_INIPARSER)
5520 AC_SUBST(INIPARSERLIBS)
5521 AC_SUBST(FLAGS1)
5525 #################################################
5526 # Check if the user wants Python
5528 # At the moment, you can use this to set which Python binary to link
5529 # against.  (Libraries built for Python2.2 can't be used by 2.1,
5530 # though they can coexist in different directories.)  In the future
5531 # this might make the Python stuff be built by default.
5533 # Defaulting python breaks the clean target if python isn't installed
5535 PYTHON=
5537 AC_ARG_WITH(python,
5538 [  --with-python=PYTHONNAME  build Python libraries],
5539 [ case "${withval-python}" in
5540   yes)
5541         PYTHON=python
5542         EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
5543         ;;
5544   no)
5545         PYTHON=
5546         ;;
5547   *)
5548         PYTHON=${withval-python}
5549         ;;
5550   esac ])
5551 AC_SUBST(PYTHON)
5553 for i in `echo $default_static_modules | sed -e 's/,/ /g'`
5555         eval MODULE_DEFAULT_$i=STATIC
5556 done
5558 for i in `echo $default_shared_modules | sed -e 's/,/ /g'`
5560         dnl Fall back to static if we cannot build shared libraries
5561         eval MODULE_DEFAULT_$i=STATIC
5563         if test $BLDSHARED = true; then
5564                 eval MODULE_DEFAULT_$i=SHARED
5565         fi
5566 done
5568 dnl Always built these modules static
5569 MODULE_rpc_spoolss=STATIC
5570 MODULE_rpc_srvsvc=STATIC
5571 MODULE_idmap_tdb=STATIC
5573 AC_ARG_WITH(static-modules,
5574 [  --with-static-modules=MODULES  Comma-seperated list of names of modules to statically link in],
5575 [ if test $withval; then
5576         for i in `echo $withval | sed -e 's/,/ /g'`
5577         do
5578                 eval MODULE_$i=STATIC
5579         done
5580 fi ])
5582 AC_ARG_WITH(shared-modules,
5583 [  --with-shared-modules=MODULES  Comma-seperated list of names of modules to build shared],
5584 [ if test $withval; then
5585         for i in `echo $withval | sed -e 's/,/ /g'`
5586         do
5587                         eval MODULE_$i=SHARED
5588         done
5589 fi ])
5591 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB, 
5592                    [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
5593 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
5594 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
5595 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
5598 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
5599 SMB_MODULE(rpc_winreg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
5600 SMB_MODULE(rpc_initshutdown, \$(RPC_INITSHUTDOWN_OBJ), "bin/librpc_initshutdown.$SHLIBEXT", RPC)
5601 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
5602 SMB_MODULE(rpc_wkssvc, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
5603 SMB_MODULE(rpc_svcctl, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl.$SHLIBEXT", RPC)
5604 SMB_MODULE(rpc_ntsvcs, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs.$SHLIBEXT", RPC)
5605 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
5606 SMB_MODULE(rpc_netdfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
5607 SMB_MODULE(rpc_srvsvc, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
5608 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
5609 SMB_MODULE(rpc_eventlog, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog.$SHLIBEXT", RPC)
5610 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
5611 SMB_MODULE(rpc_rpcecho, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
5612 SMB_MODULE(rpc_unixinfo, \$(RPC_UNIXINFO_OBJ), "bin/librpc_unixinfo.$SHLIBEXT", RPC)
5613 SMB_SUBSYSTEM(RPC,smbd/server.o)
5615 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
5616 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
5617 SMB_MODULE(idmap_rid, sam/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
5618 SMB_MODULE(idmap_ad, sam/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
5619 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
5621 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
5622 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
5623 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
5624 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
5625 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
5627 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
5628 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
5629 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
5630 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
5631 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
5632 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
5633 SMB_MODULE(auth_script, \$(AUTH_SCRIPT_OBJ), "bin/script.$SHLIBEXT", AUTH)
5634 SMB_SUBSYSTEM(AUTH,auth/auth.o)
5636 SMB_MODULE(vfs_default, \$(VFS_DEFAULT_OBJ), "bin/default.$SHLIBEXT", VFS)
5637 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
5638 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
5639 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
5640 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
5641 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
5642 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
5643 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
5644 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
5645 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
5646 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
5647 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
5648 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
5649 SMB_MODULE(vfs_posixacl, \$(VFS_POSIXACL_OBJ), "bin/posixacl.$SHLIBEXT", VFS)
5650 SMB_MODULE(vfs_aixacl, \$(VFS_AIXACL_OBJ), "bin/aixacl.$SHLIBEXT", VFS)
5651 SMB_MODULE(vfs_aixacl2, \$(VFS_AIXACL2_OBJ), "bin/aixacl2.$SHLIBEXT", VFS)
5652 SMB_MODULE(vfs_solarisacl, \$(VFS_SOLARISACL_OBJ), "bin/solarisacl.$SHLIBEXT", VFS)
5653 SMB_MODULE(vfs_irixacl, \$(VFS_IRIXACL_OBJ), "bin/irixacl.$SHLIBEXT", VFS)
5654 SMB_MODULE(vfs_hpuxacl, \$(VFS_HPUXACL_OBJ), "bin/hpuxacl.$SHLIBEXT", VFS)
5655 SMB_MODULE(vfs_tru64acl, \$(VFS_TRU64ACL_OBJ), "bin/tru64acl.$SHLIBEXT", VFS)
5656 SMB_MODULE(vfs_catia, \$(VFS_CATIA_OBJ), "bin/catia.$SHLIBEXT", VFS)
5657 SMB_MODULE(vfs_cacheprime, \$(VFS_CACHEPRIME_OBJ), "bin/cacheprime.$SHLIBEXT", VFS)
5658 SMB_MODULE(vfs_prealloc, \$(VFS_PREALLOC_OBJ), "bin/prealloc.$SHLIBEXT", VFS)
5659 SMB_MODULE(vfs_commit, \$(VFS_COMMIT_OBJ), "bin/commit.$SHLIBEXT", VFS)
5661 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
5663 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
5665 #################################################
5666 # do extra things if we are running insure
5668 if test "${ac_cv_prog_CC}" = "insure"; then
5669         CPPFLAGS="$CPPFLAGS -D__INSURE__"
5672 #################################################
5673 # If run from the build farm, enable NASTY hacks
5674 #################################################
5675 AC_MSG_CHECKING(whether to enable build farm hacks)
5676 if test x"$RUN_FROM_BUILD_FARM" = x"yes"; then
5677         AC_MSG_RESULT(yes)
5678         AC_DEFINE(ENABLE_BUILD_FARM_HACKS, 1, [Defined if running in the build farm])
5679 else
5680         AC_MSG_RESULT(no)
5683 #################################################
5684 # check for bad librt/libpthread interactions
5686 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes" -o \
5687     x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes" -o \
5688     x"$samba_cv_HAVE_AIO64" = x"yes" -o \
5689     x"$samba_cv_HAVE_AIO" = x"yes" ; then
5691 SMB_IF_RTSIGNAL_BUG(
5692         [
5693             # Have RT_SIGNAL bug, need to check whether the problem will
5694             # affect anything we have configured.
5696             rt_do_error=no
5697             if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
5698                 if test x"$rt_signal_lease_ok" = x"no" ; then
5699                     rt_do_error=yes
5700                 fi
5701             fi
5703             if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
5704                 if test x"$rt_signal_notify_ok" = x"no" ; then
5705                     rt_do_error=yes
5706                 fi
5707             fi
5709             if test x"$samba_cv_HAVE_AIO64" = x"yes" -o \
5710                     x"$samba_cv_HAVE_AIO" = x"yes" ; then
5711                 if test x"$rt_signal_aio_ok" = x"no" ; then
5712                     rt_do_error=yes
5713                 fi
5714             fi
5716             if test x"$rt_do_error" = x"yes" ; then
5717                 SMB_IS_LIBPTHREAD_LINKED(
5718                     [
5719                         cat<<MSG
5721 *** On this platforms, linking Samba against pthreads causes problems
5722 *** with the oplock and change notification mechanisms. You may be
5723 *** using pthreads as a side-effect of using the --with-aio-support
5724 *** or --with-profiling-data options. Please remove these and try again.
5727                     ],
5728                     [
5729                         cat<<MSG
5731 *** On this platform, the oplock and change notification mechanisms do not
5732 *** appear to work. Please report this problem to samba-technical@samba.org
5733 *** and attach the config.log file from this directory.
5736                     ])
5737                 AC_MSG_ERROR(unable to use realtime signals on this platform)
5738             fi
5739         ],
5740         [
5741             # no RT_SIGNAL bug, we are golden
5742             SMB_IS_LIBPTHREAD_LINKED(
5743                 [
5744                     AC_MSG_WARN(using libpthreads - this may degrade performance)
5745                 ])
5747         ],
5748         [
5749             # cross compiling, I hope you know what you are doing
5750             true
5751         ])
5755 #################################################
5756 # Display summary of libraries detected
5758 AC_MSG_RESULT([Using libraries:])
5759 AC_MSG_RESULT([    LIBS = $LIBS])
5760 if test x"$with_ads_support" != x"no"; then
5761    AC_MSG_RESULT([    KRB5_LIBS = $KRB5_LIBS])
5763 if test x"$with_ldap_support" != x"no"; then
5764    AC_MSG_RESULT([    LDAP_LIBS = $LDAP_LIBS])
5766 if test x"$with_dnsupdate_support" != x"no"; then
5767         AC_MSG_RESULT([   UUID_LIBS = $UUID_LIBS])
5769 AC_MSG_RESULT([    AUTH_LIBS = $AUTH_LIBS])
5771 #################################################
5772 # final configure stuff
5774 AC_MSG_CHECKING([configure summary])
5775 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
5776            AC_MSG_RESULT(yes),
5777            AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
5778            AC_MSG_WARN([cannot run when cross-compiling]))
5780 builddir=`pwd`
5781 AC_SUBST(builddir)
5783 # Stuff the smbd-only libraries at the end of the smbd link
5784 # path (if we have them).
5785 SMBD_LIBS="$samba_fam_libs $samba_dmapi_libs"
5786 AC_SUBST(SMBD_LIBS)
5788 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
5789 LIB_REMOVE_USR_LIB(LDFLAGS)
5790 LIB_REMOVE_USR_LIB(LIBS)
5792 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
5793 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
5794 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
5796 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh)
5798 #################################################
5799 # Print very concise instructions on building/use
5800 if test "x$enable_dmalloc" = xyes
5801 then
5802         AC_MSG_RESULT([Note: The dmalloc debug library will be included.  To turn it on use])
5803         AC_MSG_RESULT([      \$ eval \`dmalloc samba\`.])