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