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