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