rpc_client/cli_netlogon.c: Fixed incorrect printf.
[samba.git] / source3 / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(include/includes.h)
3 AC_CONFIG_HEADER(include/config.h)
4 # we want to be compatibe with older versions of Samba
5 AC_PREFIX_DEFAULT(/usr/local/samba)
6
7 dnl Unique-to-Samba variables we'll be playing with.
8 AC_SUBST(SHELL)
9 AC_SUBST(RUNPROG)
10 AC_SUBST(MPROGS)
11 AC_SUBST(LDSHFLAGS)
12 AC_SUBST(HOST_OS)
13 AC_SUBST(WRAP)
14 AC_SUBST(WRAP32)
15 AC_SUBST(PICFLAG)
16 AC_SUBST(SHLIBEXT)
17
18 # compile with optimisation and without debugging by default
19 CFLAGS=${CFLAGS-"-O"}
20
21 dnl Checks for programs.
22 AC_PROG_CC
23 AC_PROG_INSTALL
24 AC_PROG_AWK
25 AC_PROG_LIBTOOL
26 AC_SUBST(LIBTOOL_DEPS)
27
28 dnl Check if C compiler understands -c and -o at the same time
29 AC_PROG_CC_C_O
30 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
31       BROKEN_CC=
32 else
33       BROKEN_CC=#
34 fi
35 AC_SUBST(BROKEN_CC)
36
37 dnl Check if the C compiler understands volatile (it should, being ANSI).
38 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
39     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
40         samba_cv_volatile=yes,samba_cv_volatile=no)])
41 if test x"$samba_cv_volatile" = x"yes"; then
42    AC_DEFINE(HAVE_VOLATILE)
43 fi
44
45
46
47 AC_CANONICAL_SYSTEM
48
49 dnl Add #include for broken IRIX header files
50   case "$host_os" in
51         *irix*) AC_ADD_INCLUDE(<standards.h>)
52         ;;
53 esac
54
55 AC_VALIDATE_CACHE_SYSTEM_TYPE
56
57 #
58 # Config CPPFLAG settings for strange OS's that must be set
59 # before other tests.
60 #
61 case "$host_os" in
62 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
63     *hpux*)
64       AC_PROG_CC_FLAG(Ae)
65       if test $ac_cv_prog_cc_Ae = yes; then
66         CPPFLAGS="$CPPFLAGS -Ae"
67       fi
68 #
69 # Defines needed for HPUX support.
70 # HPUX has bigcrypt but (sometimes?) doesn't use it for
71 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
72 #
73       case `uname -r` in
74                         *9*|*10*)
75                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
76                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
77                                 ;;
78                         *11*)
79                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
80                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
81                                 ;;
82       esac
83       ;;
84 #
85 # AIX4.x doesn't even admit to having large
86 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
87 #
88     *aix4*)
89           AC_MSG_RESULT([enabling large file support])
90       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
91       ;;    
92 #
93 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
94 # to the existance of large files..
95 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
96 # recommendations on large file support, however it makes the
97 # compile work using gcc 2.7 and 2.8, whereas using the Sun
98 # recommendation makes the compile fail on gcc2.7. JRA.
99 #
100         *solaris*)
101                 case `uname -r` in
102                         5.6*|5.7*)
103                         AC_MSG_RESULT([enabling large file support])
104                         if test "$ac_cv_prog_gcc" = yes; then
105                                 ${CC-cc} -v >conftest.c 2>&1
106                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
107                                 rm -fr conftest.c
108                                 case "$ac_cv_gcc_compiler_version_number" in
109                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
110                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
111                                                 ;;
112                                         *)
113                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
114                                                 ;;
115                                 esac
116                         else
117                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
118                         fi
119                         ;;
120                 esac
121                 ;;
122 #
123 # Tests needed for SINIX large file support.
124 #
125     *sysv4*)
126       if test $host = mips-sni-sysv4 ; then
127         AC_MSG_CHECKING([for LFS support])
128         old_CPPFLAGS="$CPPFLAGS"
129         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
130         AC_TRY_RUN([
131 #include <unistd.h>
132 main () {
133 #if _LFS64_LARGEFILE == 1
134 exit(0);
135 #else
136 exit(1);
137 #endif
138 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
139         CPPFLAGS="$old_CPPFLAGS"
140         if test x$SINIX_LFS_SUPPORT = xyes ; then
141           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
142           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
143           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
144           LIBS="`getconf LFS64_LIBS` $LIBS"
145         fi
146       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
147       fi
148     ;;
149
150 #
151 # Tests needed for glibc 2.1 large file support.
152
153         *linux*)
154                 AC_MSG_RESULT([disabling large file support for glibc2.1 on Linux])     
155                 ;;
156     *hurd*)
157         AC_MSG_CHECKING([for LFS support])
158         old_CPPFLAGS="$CPPFLAGS"
159         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
160         AC_TRY_RUN([
161 #include <unistd.h>
162 main () {
163 #if _LFS64_LARGEFILE == 1
164 exit(0);
165 #else
166 exit(1);
167 #endif
168 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
169         CPPFLAGS="$old_CPPFLAGS"
170         if test x$GLIBC_LFS_SUPPORT = xyes ; then
171           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
172         fi
173       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
174     ;;
175
176 esac
177
178 AC_INLINE
179 AC_HEADER_STDC
180 AC_HEADER_DIRENT
181 AC_HEADER_TIME
182 AC_HEADER_SYS_WAIT
183 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
184 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
185 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
186 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/mode.h)
187 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h string.h strings.h stdlib.h sys/socket.h)
188 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
189 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
190 #
191 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
192 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
193 #
194 case "$host_os" in
195     *hpux*)
196                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
197                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
198                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
199                    AC_DEFINE(HAVE_SHADOW_H)
200                 fi
201         ;;
202 esac
203 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
204 AC_CHECK_HEADERS(nss.h sys/security.h security/pam_appl.h)
205 AC_CHECK_HEADERS(stropts.h poll.h readline.h history.h readline/readline.h)
206 AC_CHECK_HEADERS(readline/history.h sys/capability.h syscall.h sys/syscall.h)
207 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
208
209 # For experimental utmp support (lastlog on some BSD-like systems)
210 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
211  
212 # For quotas on Veritas VxFS filesystems
213 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
214
215 AC_CHECK_SIZEOF(int,cross)
216 AC_CHECK_SIZEOF(long,cross)
217 AC_CHECK_SIZEOF(short,cross)
218
219 AC_C_CONST
220 AC_C_INLINE
221 AC_C_BIGENDIAN
222 AC_C_CHAR_UNSIGNED
223
224 AC_TYPE_SIGNAL
225 AC_TYPE_UID_T
226 AC_TYPE_MODE_T
227 AC_TYPE_OFF_T
228 AC_TYPE_SIZE_T
229 AC_TYPE_PID_T
230 AC_STRUCT_ST_RDEV
231 AC_DIRENT_D_OFF
232 AC_CHECK_TYPE(ino_t,unsigned)
233 AC_CHECK_TYPE(loff_t,off_t)
234 AC_CHECK_TYPE(offset_t,loff_t)
235 AC_CHECK_TYPE(ssize_t, int)
236 AC_CHECK_TYPE(wchar_t, unsigned short)
237
238 # we need libcups for CUPS support...
239 AC_CHECK_LIB(cups,httpConnect)
240
241 # we need libdl for PAM and the new VFS code
242 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
243         AC_DEFINE(HAVE_LIBDL)])
244
245 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
246     AC_TRY_COMPILE([
247 #include <sys/types.h>
248 #if STDC_HEADERS
249 #include <stdlib.h>
250 #include <stddef.h>
251 #endif
252 #include <signal.h>],[sig_atomic_t i = 0],
253         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
254 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
255    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
256 fi
257
258 AC_CACHE_CHECK([for errno in errno.h],samba_cv_errno, [
259     AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
260         samba_cv_errno=yes,samba_cv_have_errno=no)])
261 if test x"$samba_cv_errno" = x"yes"; then
262    AC_DEFINE(HAVE_ERRNO_DECL)
263 fi
264
265 # stupid glibc has the functions but no declaration. grrrr.
266 AC_CACHE_CHECK([for setresuid declaration],samba_cv_have_setresuid_decl,[
267     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresuid],
268         samba_cv_have_setresuid_decl=yes,samba_cv_have_setresuid_decl=no)])
269 if test x"$samba_cv_have_setresuid_decl" = x"yes"; then
270     AC_DEFINE(HAVE_SETRESUID_DECL)
271 fi
272
273 # stupid glibc has the functions but no declaration. grrrr.
274 AC_CACHE_CHECK([for setresgid declaration],samba_cv_have_setresgid_decl,[
275     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresgid],
276         samba_cv_have_setresgid_decl=yes,samba_cv_have_setresgid_decl=no)])
277 if test x"$samba_cv_have_setresgid_decl" = x"yes"; then
278     AC_DEFINE(HAVE_SETRESGID_DECL)
279 fi
280
281 # and glibc has setresuid under linux but the function does
282 # nothing until kernel 2.1.44! very dumb.
283 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
284     AC_TRY_RUN([#include <errno.h>
285 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
286         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
287 if test x"$samba_cv_have_setresuid" = x"yes"; then
288     AC_DEFINE(HAVE_SETRESUID)
289 fi
290
291 # Do the same check for setresguid...
292 #
293 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
294     AC_TRY_RUN([#include <unistd.h>
295 #include <errno.h>
296 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
297         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
298 if test x"$samba_cv_have_setresgid" = x"yes"; then
299     AC_DEFINE(HAVE_SETRESGID)
300 fi
301
302 AC_FUNC_MEMCMP
303
304 ###############################################
305 # test for where we get crypt() from
306 AC_CHECK_FUNCS(crypt)
307 if test x"$ac_cv_func_crypt" = x"no"; then
308     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
309         AC_DEFINE(HAVE_CRYPT)])
310 fi
311
312
313 ###############################################
314 # test for where we get readline() from
315 if test "$ac_cv_header_readline_h" = "yes" ||
316    test "$ac_cv_header_readline_readline_h" = "yes"; then
317   AC_CHECK_LIB(readline,readline)
318 fi
319
320
321 # The following test taken from the cvs sources
322 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
323 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
324 # libsocket.so which has a bad implementation of gethostbyname (it
325 # only looks in /etc/hosts), so we only look for -lsocket if we need
326 # it.
327 AC_CHECK_FUNCS(connect)
328 if test x"$ac_cv_func_connect" = x"no"; then
329     case "$LIBS" in
330     *-lnsl*) ;;
331     *) AC_CHECK_LIB(nsl_s, printf) ;;
332     esac
333     case "$LIBS" in
334     *-lnsl*) ;;
335     *) AC_CHECK_LIB(nsl, printf) ;;
336     esac
337     case "$LIBS" in
338     *-lsocket*) ;;
339     *) AC_CHECK_LIB(socket, connect) ;;
340     esac
341     case "$LIBS" in
342     *-linet*) ;;
343     *) AC_CHECK_LIB(inet, connect) ;;
344     esac
345     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
346     dnl has been cached.
347     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
348        test x"$ac_cv_lib_inet_connect" = x"yes"; then
349         # ac_cv_func_connect=yes
350         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
351         AC_DEFINE(HAVE_CONNECT)
352     fi
353 fi
354
355 ###############################################
356 # test for where we get get_yp_default_domain() from
357 AC_CHECK_FUNCS(yp_get_default_domain)
358 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
359         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
360         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
361 fi
362
363 # Check if we have execl, if not we need to compile smbrun.
364 AC_CHECK_FUNCS(execl)
365 if test x"$ac_cv_func_execl" = x"no"; then
366     RUNPROG="bin/smbrun"
367 else
368     RUNPROG=""
369 fi
370
371 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown chmod chroot)
372 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
373 AC_CHECK_FUNCS(memmove vsnprintf snprintf setsid glob strpbrk pipe crypt16 getauthuid)
374 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
375 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
376 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
377 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
378 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam)
379 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl)
380
381 # syscall() is needed for smbwrapper.
382 AC_CHECK_FUNCS(syscall)
383
384 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
385 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
386 AC_CHECK_FUNCS(__getcwd _getcwd)
387 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
388 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
389 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
390 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
391 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
392 AC_CHECK_FUNCS(_write __write _fork __fork)
393 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
394 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
395 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
396 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
397 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
398
399 #
400 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
401 #
402
403 if test x$ac_cv_func_stat64 = xno ; then
404   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
405   AC_TRY_LINK([
406 #if defined(HAVE_UNISTD_H)
407 #include <unistd.h>
408 #endif
409 #include <sys/stat.h>
410 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
411   AC_MSG_RESULT([$ac_cv_func_stat64])
412   if test x$ac_cv_func_stat64 = xyes ; then
413     AC_DEFINE(HAVE_STAT64)
414   fi
415 fi
416
417 if test x$ac_cv_func_lstat64 = xno ; then
418   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
419   AC_TRY_LINK([
420 #if defined(HAVE_UNISTD_H)
421 #include <unistd.h>
422 #endif
423 #include <sys/stat.h>
424 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
425   AC_MSG_RESULT([$ac_cv_func_lstat64])
426   if test x$ac_cv_func_lstat64 = xyes ; then
427     AC_DEFINE(HAVE_LSTAT64)
428   fi
429 fi
430
431 if test x$ac_cv_func_fstat64 = xno ; then
432   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
433   AC_TRY_LINK([
434 #if defined(HAVE_UNISTD_H)
435 #include <unistd.h>
436 #endif
437 #include <sys/stat.h>
438 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
439   AC_MSG_RESULT([$ac_cv_func_fstat64])
440   if test x$ac_cv_func_fstat64 = xyes ; then
441     AC_DEFINE(HAVE_FSTAT64)
442   fi
443 fi
444
445 #
446 # If no strcasecmp, check for it in some known places
447 # It is in -lresolv on ReliantUNIX and UnixWare
448 #   -lresolve *must* follow -lnsl for name resolution to work properly
449 #
450
451 if test x$ac_cv_func_strcasecmp = xno ; then
452         AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
453                 AC_DEFINE(HAVE_STRCASECMP))
454 fi
455
456 #
457 # Check for the functions putprpwnam, set_auth_parameters,
458 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
459 # Needed for OSF1 and HPUX.
460 #
461
462 AC_LIBTESTFUNC(security, putprpwnam)
463 AC_LIBTESTFUNC(sec, putprpwnam)
464
465 AC_LIBTESTFUNC(security, set_auth_parameters)
466 AC_LIBTESTFUNC(sec, set_auth_parameters)
467
468 # UnixWare 7.x has its getspnam in -lgen
469 AC_LIBTESTFUNC(gen, getspnam)
470
471 AC_LIBTESTFUNC(security, getspnam)
472 AC_LIBTESTFUNC(sec, getspnam)
473
474 AC_LIBTESTFUNC(security, bigcrypt)
475 AC_LIBTESTFUNC(sec, bigcrypt)
476
477 AC_LIBTESTFUNC(security, getprpwnam)
478 AC_LIBTESTFUNC(sec, getprpwnam)
479
480 # this bit needs to be modified for each OS that is suported by
481 # smbwrapper. You need to specify how to created a shared library and
482 # how to compile C code to produce PIC object files
483
484 # these are the defaults, good for lots of systems
485 HOST_OS="$host_os"
486 LDSHFLAGS="-shared"
487 PICFLAG=""
488 SHLIBEXT="so"
489
490 # and these are for particular systems
491 case "$host_os" in
492                 *linux*)   AC_DEFINE(LINUX);;
493                 *solaris*) AC_DEFINE(SUNOS5)
494                                         LDSHFLAGS="-G"
495                 ;;
496                 *sunos*) AC_DEFINE(SUNOS4)
497                                         LDSHFLAGS=""
498                 ;;
499                 *bsd*) LDSHFLAGS="-shared -Bshareable"
500                 ;;
501                 *irix*) AC_DEFINE(IRIX)
502                         case "$host_os" in
503                         *irix6*) AC_DEFINE(IRIX6)
504                         ;;
505                         esac
506                         ATTEMPT_WRAP32_BUILD=yes
507                 ;;
508                 *aix*) AC_DEFINE(AIX);;
509                 *hpux*) AC_DEFINE(HPUX)
510                         SHLIBEXT="sl"
511                         # Use special PIC flags for the native HP-UX compiler.
512                         if test $ac_cv_prog_cc_Ae = yes; then
513                                 LDSHFLAGS="-b"
514                                 PICFLAG="+z"
515                         fi
516                 ;;
517                 *qnx*) AC_DEFINE(QNX);;
518                 *osf*) AC_DEFINE(OSF1);;
519                 *sco*) AC_DEFINE(SCO);;
520                 *next2*) AC_DEFINE(NEXT2);;
521                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
522                 *sysv4*)
523                         case "$host" in
524                                 *-univel-*)     if [ test "$GCC" != yes ]; then
525                                                                         AC_DEFINE(HAVE_MEMSET)
526                                                                 fi
527                                                                 LDSHFLAGS="-G"
528                                 ;;
529                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
530                         esac
531                         ;;
532                 *sysv5*)
533                         if [ test "$GCC" != yes ]; then
534                                 AC_DEFINE(HAVE_MEMSET)
535                         fi
536                         LDSHFLAGS="-G"
537                         ;;
538 esac
539
540 # try to work out how to produce pic code with this compiler
541 AC_PROG_CC_FLAG(fpic)
542 if test $ac_cv_prog_cc_fpic = yes; then
543     PICFLAG="-fpic";
544 fi
545 if test x$PICFLAG = x; then
546   AC_PROG_CC_FLAG(Kpic)
547   if test $ac_cv_prog_cc_Kpic = yes; then
548     PICFLAG="-Kpic";
549   fi
550 fi
551 if test x$PICFLAG = x; then
552   AC_PROG_CC_FLAG(KPIC)
553   if test $ac_cv_prog_cc_KPIC = yes; then
554     PICFLAG="-KPIC";
555   fi
556 fi
557
558 ################
559
560 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
561 AC_TRY_RUN([#include <stdio.h>
562 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
563 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
564 if test x"$samba_cv_have_longlong" = x"yes"; then
565     AC_DEFINE(HAVE_LONGLONG)
566 fi
567
568 #
569 # Check if the compiler supports the LL prefix on long long integers.
570 # AIX needs this.
571
572 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
573     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
574         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
575 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
576    AC_DEFINE(COMPILER_SUPPORTS_LL)
577 fi
578
579   
580 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
581 AC_TRY_RUN([#include <stdio.h>
582 #include <sys/stat.h>
583 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
584 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
585 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
586     AC_DEFINE(SIZEOF_OFF_T,8)
587 fi
588
589 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
590 AC_TRY_RUN([
591 #if defined(HAVE_UNISTD_H)
592 #include <unistd.h>
593 #endif
594 #include <stdio.h>
595 #include <sys/stat.h>
596 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
597 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
598 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
599     AC_DEFINE(HAVE_OFF64_T)
600 fi
601
602 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
603 AC_TRY_RUN([#include <stdio.h>
604 #include <sys/stat.h>
605 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
606 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
607 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
608     AC_DEFINE(SIZEOF_INO_T,8)
609 fi
610
611 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
612 AC_TRY_RUN([
613 #if defined(HAVE_UNISTD_H)
614 #include <unistd.h>
615 #endif
616 #include <stdio.h>
617 #include <sys/stat.h>
618 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
619 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
620 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
621     AC_DEFINE(HAVE_INO64_T)
622 fi
623
624 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
625 AC_TRY_COMPILE([
626 #if defined(HAVE_UNISTD_H)
627 #include <unistd.h>
628 #endif
629 #include <sys/types.h>
630 #include <dirent.h>],
631 [struct dirent64 de;],
632 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
633 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
634     AC_DEFINE(HAVE_STRUCT_DIRENT64)
635 fi
636
637 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
638 AC_TRY_RUN([#include <stdio.h>
639 main() { char c; c=250; exit((c > 0)?0:1); }],
640 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
641 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
642     AC_DEFINE(HAVE_UNSIGNED_CHAR)
643 fi
644
645 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
646 AC_TRY_COMPILE([#include <sys/types.h>
647 #include <sys/socket.h>
648 #include <netinet/in.h>],
649 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
650 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
651 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
652     AC_DEFINE(HAVE_SOCK_SIN_LEN)
653 fi
654
655 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
656 AC_TRY_COMPILE([#include <sys/types.h>
657 #include <dirent.h>
658 void seekdir(DIR *d, long loc) { return; }],[return 0;],
659 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
660 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
661     AC_DEFINE(SEEKDIR_RETURNS_VOID)
662 fi
663
664 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
665 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
666 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
667 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
668     AC_DEFINE(HAVE_FILE_MACRO)
669 fi
670
671 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
672 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
673 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
674 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
675     AC_DEFINE(HAVE_FUNCTION_MACRO)
676 fi
677
678 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
679 AC_TRY_RUN([
680 #include <sys/time.h>
681 #include <unistd.h>
682 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
683            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
684 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
685     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
686 fi
687
688
689 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
690 AC_TRY_RUN([#include <sys/types.h>
691 #include <dirent.h>
692 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
693 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
694 di->d_name[0] == 0) exit(0); exit(1);} ],
695 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
696 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
697     AC_DEFINE(HAVE_BROKEN_READDIR)
698 fi
699
700 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
701 AC_TRY_COMPILE([#include <sys/types.h>
702 #include <utime.h>],
703 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
704 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
705 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
706     AC_DEFINE(HAVE_UTIMBUF)
707 fi
708
709 dnl  utmp and utmpx come in many flavours
710 dnl  We need to check for many of them
711 dnl  But we don't need to do each and every one, because our code uses
712 dnl  mostly just the utmp (not utmpx) fields.
713
714 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
715
716 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
717 AC_TRY_COMPILE([#include <sys/types.h>
718 #include <utmp.h>],
719 [struct utmp ut;  ut.ut_name[0] = 'a';],
720 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
721 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
722     AC_DEFINE(HAVE_UT_UT_NAME)
723 fi 
724
725 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
726 AC_TRY_COMPILE([#include <sys/types.h>
727 #include <utmp.h>],
728 [struct utmp ut;  ut.ut_user[0] = 'a';],
729 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
730 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
731     AC_DEFINE(HAVE_UT_UT_USER)
732 fi 
733
734 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
735 AC_TRY_COMPILE([#include <sys/types.h>
736 #include <utmp.h>],
737 [struct utmp ut;  ut.ut_id[0] = 'a';],
738 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
739 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
740     AC_DEFINE(HAVE_UT_UT_ID)
741 fi 
742
743 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
744 AC_TRY_COMPILE([#include <sys/types.h>
745 #include <utmp.h>],
746 [struct utmp ut;  ut.ut_host[0] = 'a';],
747 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
748 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
749     AC_DEFINE(HAVE_UT_UT_HOST)
750 fi 
751
752 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
753 AC_TRY_COMPILE([#include <sys/types.h>
754 #include <utmp.h>],
755 [struct utmp ut;  time_t t; ut.ut_time = t;],
756 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
757 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
758     AC_DEFINE(HAVE_UT_UT_TIME)
759 fi 
760
761 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
762 AC_TRY_COMPILE([#include <sys/types.h>
763 #include <utmp.h>],
764 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
765 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
766 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
767     AC_DEFINE(HAVE_UT_UT_TV)
768 fi 
769
770 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
771 AC_TRY_COMPILE([#include <sys/types.h>
772 #include <utmp.h>],
773 [struct utmp ut;  ut.ut_type = 0;],
774 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
775 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
776     AC_DEFINE(HAVE_UT_UT_TYPE)
777 fi 
778
779 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
780 AC_TRY_COMPILE([#include <sys/types.h>
781 #include <utmp.h>],
782 [struct utmp ut;  ut.ut_pid = 0;],
783 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
784 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
785     AC_DEFINE(HAVE_UT_UT_PID)
786 fi 
787
788 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
789 AC_TRY_COMPILE([#include <sys/types.h>
790 #include <utmp.h>],
791 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
792 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
793 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
794     AC_DEFINE(HAVE_UT_UT_EXIT)
795 fi 
796
797 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
798 AC_TRY_COMPILE([#include <sys/types.h>
799 #include <utmp.h>],
800 [struct utmp ut;  ut.ut_addr = 0;],
801 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
802 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
803     AC_DEFINE(HAVE_UT_UT_ADDR)
804 fi 
805
806 if test x$ac_cv_func_pututline = xyes ; then
807   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
808   AC_TRY_COMPILE([#include <sys/types.h>
809 #include <utmp.h>],
810   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
811   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
812   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
813       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
814   fi
815 fi
816
817 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
818 AC_TRY_COMPILE([#include <sys/types.h>
819 #include <utmpx.h>],
820 [struct utmpx ux;  ux.ut_syslen = 0;],
821 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
822 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
823     AC_DEFINE(HAVE_UX_UT_SYSLEN)
824 fi 
825
826 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
827 AC_TRY_RUN([
828 #include <sys/types.h>
829 #include <fcntl.h>
830 #ifndef F_GETLEASE
831 #define F_GETLEASE      1025
832 #endif
833 main() {
834        int fd = open("/dev/null", O_RDONLY);
835        return fcntl(fd, F_GETLEASE, 0) == -1;
836 }
837 ],
838 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
839 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
840     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
841 fi
842
843 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
844 AC_TRY_RUN([
845 #include <sys/types.h>
846 #include <fcntl.h>
847 #include <signal.h>
848 #ifndef F_NOTIFY
849 #define F_NOTIFY 1026
850 #endif
851 main() {
852         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
853 }
854 ],
855 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
856 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
857     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
858 fi
859
860 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
861 AC_TRY_RUN([
862 #include <sys/types.h>
863 #include <fcntl.h>
864 #include <signal.h>
865 #include <sys/file.h>
866 #ifndef LOCK_MAND
867 #define LOCK_MAND       32
868 #define LOCK_READ       64
869 #endif
870 main() {
871         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
872 }
873 ],
874 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
875 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
876     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
877 fi
878
879
880
881
882 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
883 AC_TRY_COMPILE([#include <sys/types.h>
884 #include <fcntl.h>],
885 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
886 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
887 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
888     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
889 fi
890
891 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
892 AC_TRY_RUN([#include <sys/types.h>
893 #include <sys/capability.h>
894 main() {
895  cap_t cap;
896  if ((cap = cap_get_proc()) == NULL)
897    exit(1);
898  cap->cap_effective |= CAP_NETWORK_MGT;
899  cap->cap_inheritable |= CAP_NETWORK_MGT;
900  cap_set_proc(cap);
901  exit(0);
902 }
903 ],
904 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
905 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
906     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
907 fi
908
909 #
910 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
911 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
912 #
913
914 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
915 AC_TRY_COMPILE([#include <sys/types.h>
916 #if defined(HAVE_RPC_RPC_H)
917 #include <rpc/rpc.h>
918 #endif],
919 [int16 testvar;],
920 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
921 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
922     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
923 fi
924
925 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
926 AC_TRY_COMPILE([#include <sys/types.h>
927 #if defined(HAVE_RPC_RPC_H)
928 #include <rpc/rpc.h>
929 #endif],
930 [uint16 testvar;],
931 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
932 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
933     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
934 fi
935
936 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
937 AC_TRY_COMPILE([#include <sys/types.h>
938 #if defined(HAVE_RPC_RPC_H)
939 #include <rpc/rpc.h>
940 #endif],
941 [int32 testvar;],
942 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
943 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
944     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
945 fi
946
947 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
948 AC_TRY_COMPILE([#include <sys/types.h>
949 #if defined(HAVE_RPC_RPC_H)
950 #include <rpc/rpc.h>
951 #endif],
952 [uint32 testvar;],
953 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
954 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
955     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
956 fi
957
958 dnl
959 dnl Some systems (SCO) have a problem including
960 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
961 dnl as a #define in <prot.h> and as part of an enum
962 dnl in <rpc/rpc.h>.
963 dnl
964
965 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
966 AC_TRY_COMPILE([#include <sys/types.h>
967 #ifdef HAVE_SYS_SECURITY_H
968 #include <sys/security.h>
969 #include <prot.h>
970 #endif  /* HAVE_SYS_SECURITY_H */
971 #if defined(HAVE_RPC_RPC_H)
972 #include <rpc/rpc.h>
973 #endif],
974 [int testvar;],
975 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
976 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
977     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
978 fi
979
980 AC_MSG_CHECKING([for test routines])
981 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
982            AC_MSG_RESULT(yes),
983            AC_MSG_ERROR([cant find test code. Aborting config]),
984            AC_MSG_WARN([cannot run when cross-compiling]))
985
986 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
987 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
988            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
989 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
990     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
991 fi
992
993 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
994 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
995            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
996 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
997     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
998 fi
999
1000 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1001 SAVE_CPPFLAGS="$CPPFLAGS"
1002 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1003 AC_TRY_COMPILE([
1004 #define REPLACE_GETPASS 1
1005 #define NO_CONFIG_H 1
1006 #define main dont_declare_main
1007 #include "${srcdir-.}/lib/getsmbpass.c"
1008 #undef main
1009 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1010 CPPFLAGS="$SAVE_CPPFLAGS"
1011 ])
1012 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1013         AC_DEFINE(REPLACE_GETPASS)
1014 fi
1015
1016 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1017 AC_TRY_RUN([
1018 #include <stdio.h>
1019 #include <sys/types.h>
1020 #include <netinet/in.h>
1021 #ifdef HAVE_ARPA_INET_H
1022 #include <arpa/inet.h>
1023 #endif
1024 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1025 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1026     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1027 exit(1);}],
1028            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1029 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1030     AC_DEFINE(REPLACE_INET_NTOA)
1031 fi
1032
1033 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1034 AC_TRY_RUN([#include <unistd.h>
1035 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1036 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1037 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1038     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1039 fi
1040
1041 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1042 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1043            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1044 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1045     AC_DEFINE(HAVE_ROOT)
1046 else
1047     AC_MSG_WARN(running as non-root will disable some tests)
1048 fi
1049
1050 ##################
1051 # look for a method of finding the list of network interfaces
1052 iface=no;
1053 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1054 AC_TRY_RUN([
1055 #define HAVE_IFACE_AIX 1
1056 #define AUTOCONF_TEST 1
1057 #include "confdefs.h"
1058 #include "${srcdir-.}/lib/interfaces.c"],
1059            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1060 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1061     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1062 fi
1063
1064 if test $iface = no; then
1065 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1066 AC_TRY_RUN([
1067 #define HAVE_IFACE_IFCONF 1
1068 #define AUTOCONF_TEST 1
1069 #include "confdefs.h"
1070 #include "${srcdir-.}/lib/interfaces.c"],
1071            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1072 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1073     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1074 fi
1075 fi
1076
1077 if test $iface = no; then
1078 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1079 AC_TRY_RUN([
1080 #define HAVE_IFACE_IFREQ 1
1081 #define AUTOCONF_TEST 1
1082 #include "confdefs.h"
1083 #include "${srcdir-.}/lib/interfaces.c"],
1084            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1085 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1086     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1087 fi
1088 fi
1089
1090
1091 ################################################
1092 # look for a method of setting the effective uid
1093 seteuid=no;
1094 if test $seteuid = no; then
1095 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1096 AC_TRY_RUN([
1097 #define AUTOCONF_TEST 1
1098 #define USE_SETRESUID 1
1099 #include "confdefs.h"
1100 #include "${srcdir-.}/lib/util_sec.c"],
1101            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1102 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1103     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1104 fi
1105 fi
1106
1107
1108 if test $seteuid = no; then
1109 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1110 AC_TRY_RUN([
1111 #define AUTOCONF_TEST 1
1112 #define USE_SETREUID 1
1113 #include "confdefs.h"
1114 #include "${srcdir-.}/lib/util_sec.c"],
1115            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1116 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1117     seteuid=yes;AC_DEFINE(USE_SETREUID)
1118 fi
1119 fi
1120
1121 if test $seteuid = no; then
1122 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1123 AC_TRY_RUN([
1124 #define AUTOCONF_TEST 1
1125 #define USE_SETEUID 1
1126 #include "confdefs.h"
1127 #include "${srcdir-.}/lib/util_sec.c"],
1128            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1129 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1130     seteuid=yes;AC_DEFINE(USE_SETEUID)
1131 fi
1132 fi
1133
1134 if test $seteuid = no; then
1135 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1136 AC_TRY_RUN([
1137 #define AUTOCONF_TEST 1
1138 #define USE_SETUIDX 1
1139 #include "confdefs.h"
1140 #include "${srcdir-.}/lib/util_sec.c"],
1141            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1142 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1143     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1144 fi
1145 fi
1146
1147
1148 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1149 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1150            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1151 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1152     AC_DEFINE(HAVE_MMAP)
1153 fi
1154
1155 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1156 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1157            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1158 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1159     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1160 fi
1161
1162 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1163 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1164            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1165 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1166     AC_DEFINE(HAVE_FCNTL_LOCK)
1167 fi
1168
1169 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1170 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1171            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1172 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1173     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1174
1175 else
1176
1177 dnl
1178 dnl Don't check for 64 bit fcntl locking if we know that the
1179 dnl glibc2.1 broken check has succeeded.
1180 dnl 
1181
1182   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1183   AC_TRY_RUN([
1184 #if defined(HAVE_UNISTD_H)
1185 #include <unistd.h>
1186 #endif
1187 #include <stdio.h>
1188 #include <stdlib.h>
1189
1190 #ifdef HAVE_FCNTL_H
1191 #include <fcntl.h>
1192 #endif
1193
1194 #ifdef HAVE_SYS_FCNTL_H
1195 #include <sys/fcntl.h>
1196 #endif
1197 main() { struct flock64 fl64;
1198 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1199 exit(0);
1200 #else
1201 exit(1);
1202 #endif
1203 }],
1204        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1205
1206   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1207       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1208   fi
1209 fi
1210
1211 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1212 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1213            samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1214 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1215     AC_DEFINE(HAVE_TRUNCATED_SALT)
1216 fi
1217
1218 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1219 AC_TRY_COMPILE([#include <sys/acl.h>
1220 #if defined(HAVE_RPCSVC_NIS_H)
1221 #include <rpcsvc/nis.h>
1222 #endif],
1223 [return 0;],
1224 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1225 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1226     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1227 fi
1228
1229
1230 #################################################
1231 # check for smbwrapper support
1232 AC_MSG_CHECKING(whether to use smbwrapper)
1233 AC_ARG_WITH(smbwrapper,
1234 [  --with-smbwrapper     Include SMB wrapper support
1235   --without-smbwrapper  Don't include SMB wrapper support (default)],
1236 [ case "$withval" in
1237   yes)
1238     AC_MSG_RESULT(yes)
1239     AC_DEFINE(WITH_SMBWRAPPER)
1240         WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1241
1242         if test x$ATTEMPT_WRAP32_BUILD = x; then
1243                 WRAP32=""
1244         else
1245                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1246         fi
1247
1248 # Conditions under which smbwrapper should not be built.
1249
1250         if test x$PICFLAG = x; then
1251            echo No support for PIC code - disabling smbwrapper and smbsh
1252            WRAP=""
1253            WRAP32=""
1254         elif test x$ac_cv_func_syscall = xno; then
1255            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1256            WRAP=""
1257            WRAP32=""
1258         fi
1259     ;;
1260   *)
1261     AC_MSG_RESULT(no)
1262     ;;
1263   esac ],
1264   AC_MSG_RESULT(no)
1265 )
1266
1267 #################################################
1268 # check for the AFS filesystem
1269 AC_MSG_CHECKING(whether to use AFS)
1270 AC_ARG_WITH(afs,
1271 [  --with-afs     Include AFS support
1272   --without-afs  Don't include AFS support (default)],
1273 [ case "$withval" in
1274   yes)
1275     AC_MSG_RESULT(yes)
1276     AC_DEFINE(WITH_AFS)
1277     ;;
1278   *)
1279     AC_MSG_RESULT(no)
1280     ;;
1281   esac ],
1282   AC_MSG_RESULT(no)
1283 )
1284
1285
1286 #################################################
1287 # check for the DFS auth system
1288 AC_MSG_CHECKING(whether to use DFS auth)
1289 AC_ARG_WITH(dfs,
1290 [  --with-dfs     Include DFS support
1291   --without-dfs  Don't include DFS support (default)],
1292 [ case "$withval" in
1293   yes)
1294     AC_MSG_RESULT(yes)
1295     AC_DEFINE(WITH_DFS)
1296     ;;
1297   *)
1298     AC_MSG_RESULT(no)
1299     ;;
1300   esac ],
1301   AC_MSG_RESULT(no)
1302 )
1303
1304 #################################################
1305 # check for Kerberos IV auth system
1306 AC_MSG_CHECKING(whether to use Kerberos IV)
1307 AC_ARG_WITH(krb4,
1308 [  --with-krb4=base-dir     Include Kerberos IV support
1309   --without-krb4          Don't include Kerberos IV support (default)],
1310 [   AC_MSG_RESULT(yes)
1311     AC_DEFINE(KRB4_AUTH)
1312     AC_CHECK_LIB(resolv, dn_expand)
1313     LIBS="$LIBS -lkrb -ldes"
1314     CFLAGS="$CFLAGS -I$withval/include"
1315     LDFLAGS="$LDFLAGS -L$withval/lib"],
1316   AC_MSG_RESULT(no)
1317 )
1318
1319 #################################################
1320 # check for Kerberos 5 auth system
1321 AC_MSG_CHECKING(whether to use Kerberos 5)
1322 AC_ARG_WITH(krb5,
1323 [  --with-krb5=base-dir     Include Kerberos 5 support
1324   --without-krb5          Don't include Kerberos 5 support (default)],
1325 [   AC_MSG_RESULT(yes)
1326     AC_DEFINE(KRB5_AUTH)
1327     LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1328     CFLAGS="$CFLAGS -I$withval/include"
1329     LDFLAGS="$LDFLAGS -L$withval/lib"],
1330   AC_MSG_RESULT(no)
1331 )
1332
1333 #################################################
1334 # check for automount support
1335 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1336 AC_ARG_WITH(automount,
1337 [  --with-automount     Include AUTOMOUNT support
1338   --without-automount  Don't include AUTOMOUNT support (default)],
1339 [ case "$withval" in
1340   yes)
1341     AC_MSG_RESULT(yes)
1342     AC_DEFINE(WITH_AUTOMOUNT)
1343     ;;
1344   *)
1345     AC_MSG_RESULT(no)
1346     ;;
1347   esac ],
1348   AC_MSG_RESULT(no)
1349 )
1350
1351 #################################################
1352 # check for smbmount support
1353 AC_MSG_CHECKING(whether to use SMBMOUNT)
1354 AC_ARG_WITH(smbmount,
1355 [  --with-smbmount     Include SMBMOUNT (Linux only) support
1356   --without-smbmount  Don't include SMBMOUNT support (default)],
1357 [ case "$withval" in
1358   yes)
1359     AC_MSG_RESULT(yes)
1360     AC_DEFINE(WITH_SMBMOUNT)
1361     MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1362     ;;
1363   *)
1364     AC_MSG_RESULT(no)
1365     MPROGS=
1366     ;;
1367   esac ],
1368   AC_MSG_RESULT(no)
1369   MPROGS=
1370 )
1371
1372
1373 #################################################
1374 # check for a PAM password database
1375 AC_MSG_CHECKING(whether to use PAM password database)
1376 AC_ARG_WITH(pam,
1377 [  --with-pam     Include PAM password database support
1378   --without-pam  Don't include PAM password database support (default)],
1379 [ case "$withval" in
1380   yes)
1381     AC_MSG_RESULT(yes)
1382     AC_DEFINE(WITH_PAM)
1383     LIBS="$LIBS -lpam"
1384     ;;
1385   *)
1386     AC_MSG_RESULT(no)
1387     ;;
1388   esac ],
1389   AC_MSG_RESULT(no)
1390 )
1391
1392 #################################################
1393 # check for a TDB password database
1394 AC_MSG_CHECKING(whether to use TDB password database)
1395 AC_ARG_WITH(tdbsam,
1396 [  --with-tdbsam   Include experimental TDB password database
1397   --without-tdbsam  Don't include experimental TDB password database (default)],
1398 [ case "$withval" in
1399   yes)
1400     AC_MSG_RESULT(yes)
1401     AC_DEFINE(WITH_TDBPWD)
1402 #    AC_MSG_ERROR([TDB password database not supported in this version.])
1403     ;;
1404   *)
1405     AC_MSG_RESULT(no)
1406     ;;
1407   esac ],
1408   AC_MSG_RESULT(no)
1409 )
1410
1411 #################################################
1412 # check for a LDAP password database
1413 AC_MSG_CHECKING(whether to use LDAP password database)
1414 AC_ARG_WITH(ldap,
1415 [  --with-ldap     Include LDAP support
1416   --without-ldap  Don't include LDAP support (default)],
1417 [ case "$withval" in
1418   yes)
1419     AC_MSG_RESULT(yes)
1420     AC_DEFINE(WITH_LDAP)
1421     AC_MSG_ERROR([LDAP password database not supported in this version.])
1422     ;;
1423   *)
1424     AC_MSG_RESULT(no)
1425     ;;
1426   esac ],
1427   AC_MSG_RESULT(no)
1428 )
1429
1430 #################################################
1431 # check for a NISPLUS password database
1432 AC_MSG_CHECKING(whether to use NISPLUS password database)
1433 AC_ARG_WITH(nisplus,
1434 [  --with-nisplus     Include NISPLUS password database support
1435   --without-nisplus  Don't include NISPLUS password database support (default)],
1436 [ case "$withval" in
1437   yes)
1438     AC_MSG_RESULT(yes)
1439     AC_DEFINE(WITH_NISPLUS)
1440     ;;
1441   *)
1442     AC_MSG_RESULT(no)
1443     ;;
1444   esac ],
1445   AC_MSG_RESULT(no)
1446 )
1447
1448 #################################################
1449 # check for a NISPLUS_HOME support 
1450 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1451 AC_ARG_WITH(nisplus-home,
1452 [  --with-nisplus-home     Include NISPLUS_HOME support
1453   --without-nisplus-home  Don't include NISPLUS_HOME support (default)],
1454 [ case "$withval" in
1455   yes)
1456     AC_MSG_RESULT(yes)
1457     AC_DEFINE(WITH_NISPLUS_HOME)
1458     ;;
1459   *)
1460     AC_MSG_RESULT(no)
1461     ;;
1462   esac ],
1463   AC_MSG_RESULT(no)
1464 )
1465
1466 #################################################
1467 # check for the secure socket layer
1468 AC_MSG_CHECKING(whether to use SSL)
1469 AC_ARG_WITH(ssl,
1470 [  --with-ssl     Include SSL support
1471   --without-ssl  Don't include SSL support (default)
1472   --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1473 [ case "$withval" in
1474   yes)
1475     AC_MSG_RESULT(yes)
1476     AC_DEFINE(WITH_SSL)
1477     withval="/usr/local/ssl"     # default
1478
1479     if test "${with_sslinc+set}" = set; then
1480
1481         withval="$with_sslinc"
1482         case "$withval" in
1483         yes|no)
1484           echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1485           CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1486           LIBS="-lssl -lcrypto $LIBS"
1487           LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1488         ;;
1489         * )
1490           CFLAGS="-I${withval}/include $CFLAGS"
1491           LIBS="-lssl -lcrypto $LIBS"
1492           LDFLAGS="-L${withval}/lib $LDFLAGS"
1493         ;;
1494         esac
1495
1496     else
1497
1498         CFLAGS="-I/usr/local/ssl/include $CFLAGS"   
1499         LIBS="-lssl -lcrypto $LIBS"
1500         LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1501
1502     fi
1503
1504     if test ! -d ${withval}; then
1505       echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1506       exit 1
1507     fi 
1508
1509     CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS"  # Damn, SSLeay defines its own
1510
1511     ;;
1512   *)
1513     AC_MSG_RESULT(no)
1514     ;;
1515   esac ],
1516   AC_MSG_RESULT(no)
1517 )
1518
1519 #################################################
1520 # check for syslog logging
1521 AC_MSG_CHECKING(whether to use syslog logging)
1522 AC_ARG_WITH(syslog,
1523 [  --with-syslog     Include experimental SYSLOG support
1524   --without-syslog  Don't include SYSLOG support (default)],
1525 [ case "$withval" in
1526   yes)
1527     AC_MSG_RESULT(yes)
1528     AC_DEFINE(WITH_SYSLOG)
1529     ;;
1530   *)
1531     AC_MSG_RESULT(no)
1532     ;;
1533   esac ],
1534   AC_MSG_RESULT(no)
1535 )
1536
1537 #################################################
1538 # check for a shared memory profiling support
1539 AC_MSG_CHECKING(whether to use profiling)
1540 AC_ARG_WITH(profile,
1541 [  --with-profile     Include profile support
1542   --without-profile  Don't include profile support (default)],
1543 [ case "$withval" in
1544   yes)
1545     AC_MSG_RESULT(yes)
1546     AC_DEFINE(WITH_PROFILE)
1547     ;;
1548   *)
1549     AC_MSG_RESULT(no)
1550     ;;
1551   esac ],
1552   AC_MSG_RESULT(no)
1553 )
1554
1555
1556 #################################################
1557 # check for experimental netatalk resource fork support
1558 AC_MSG_CHECKING(whether to support netatalk)
1559 AC_ARG_WITH(netatalk,
1560 [  --with-netatalk     Include experimental Netatalk support
1561   --without-netatalk  Don't include experimental Netatalk support (default)],
1562 [ case "$withval" in
1563   yes)
1564     AC_MSG_RESULT(yes)
1565     AC_DEFINE(WITH_NETATALK)
1566     ;;
1567   *)
1568     AC_MSG_RESULT(no)
1569     ;;
1570   esac ],
1571   AC_MSG_RESULT(no)
1572 )
1573
1574 #################################################
1575 # check for experimental disk-quotas support
1576 QUOTAOBJS=smbd/noquotas.o
1577
1578 AC_MSG_CHECKING(whether to support disk-quotas)
1579 AC_ARG_WITH(quotas,
1580 [  --with-quotas     Include experimental disk-quota support
1581   --without-quotas  Don't include experimental disk-quota support (default)],
1582 [ case "$withval" in
1583   yes)
1584     AC_MSG_RESULT(yes)
1585     QUOTAOBJS=smbd/quotas.o
1586     ;;
1587   *)
1588     AC_MSG_RESULT(no)
1589     ;;
1590   esac ],
1591   AC_MSG_RESULT(no)
1592 )
1593 AC_SUBST(QUOTAOBJS)
1594
1595 #################################################
1596 # check for experimental utmp accounting
1597
1598 AC_MSG_CHECKING(whether to support utmp accounting)
1599 AC_ARG_WITH(utmp,
1600 [  --with-utmp     Include experimental utmp accounting
1601   --without-utmp  Don't include experimental utmp accounting (default)],
1602 [ case "$withval" in
1603   yes)
1604     AC_MSG_RESULT(yes)
1605     AC_DEFINE(WITH_UTMP)
1606     ;;
1607   *)
1608     AC_MSG_RESULT(no)
1609     ;;
1610   esac ],
1611   AC_MSG_RESULT(no)
1612 )
1613
1614 #################################################
1615 # check for MS Dfs support
1616
1617 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1618 AC_ARG_WITH(msdfs,
1619 [  --with-msdfs         Include MS Dfs support
1620   --without-msdfs       Don't include MS Dfs support (default)],
1621 [ case "$withval" in
1622   yes)
1623      AC_MSG_RESULT(yes)
1624      AC_DEFINE(WITH_MSDFS)
1625      ;;
1626   *)
1627     AC_MSG_RESULT(no)
1628     ;;
1629   esac ],
1630   AC_MSG_RESULT(no)
1631 )
1632
1633 #################################################
1634 # set private directory location
1635 AC_ARG_WITH(privatedir,
1636 [  --with-privatedir=DIR     Where to put smbpasswd ($ac_default_prefix/private)],
1637 [ case "$withval" in
1638   yes|no)
1639   #
1640   # Just in case anybody calls it without argument
1641   #
1642     AC_MSG_WARN([--with-privatedir called without argument - will use default])
1643     privatedir='${prefix}/private'
1644   ;;
1645   * )
1646     privatedir="$withval"
1647     ;;
1648   esac
1649   AC_SUBST(privatedir)],
1650   [privatedir='${prefix}/private'
1651    AC_SUBST(privatedir)]
1652 )
1653
1654 #################################################
1655 # set lock directory location
1656 AC_ARG_WITH(lockdir,
1657 [  --with-lockdir=DIR     Where to put lock files ($ac_default_prefix/var/locks)],
1658 [ case "$withval" in
1659   yes|no)
1660   #
1661   # Just in case anybody calls it without argument
1662   #
1663     AC_MSG_WARN([--with-lockdir called without argument - will use default])
1664     lockdir='$(VARDIR)/locks'
1665   ;;
1666   * )
1667     lockdir="$withval"
1668     ;;
1669   esac
1670   AC_SUBST(lockdir)],
1671   [lockdir='$(VARDIR)/locks'
1672    AC_SUBST(lockdir)]
1673 )
1674
1675 #################################################
1676 # set SWAT directory location
1677 AC_ARG_WITH(swatdir,
1678 [  --with-swatdir=DIR     Where to put SWAT files ($ac_default_prefix/swat)],
1679 [ case "$withval" in
1680   yes|no)
1681   #
1682   # Just in case anybody does it
1683   #
1684     AC_MSG_WARN([--with-swatdir called without argument - will use default])
1685     swatdir='${prefix}/swat'
1686   ;;
1687   * )
1688     swatdir="$withval"
1689     ;;
1690   esac
1691   AC_SUBST(swatdir)],
1692   [swatdir='${prefix}/swat'
1693    AC_SUBST(swatdir)]
1694 )
1695
1696 #################################################
1697 # these tests are taken from the GNU fileutils package
1698 AC_CHECKING(how to get filesystem space usage)
1699 space=no
1700
1701 # Test for statvfs64.
1702 if test $space = no; then
1703   # SVR4
1704   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1705   [AC_TRY_RUN([
1706 #if defined(HAVE_UNISTD_H)
1707 #include <unistd.h>
1708 #endif
1709 #include <sys/types.h>
1710 #include <sys/statvfs.h>
1711   main ()
1712   {
1713     struct statvfs64 fsd;
1714     exit (statvfs64 (".", &fsd));
1715   }],
1716   fu_cv_sys_stat_statvfs64=yes,
1717   fu_cv_sys_stat_statvfs64=no,
1718   fu_cv_sys_stat_statvfs64=cross)])
1719   if test $fu_cv_sys_stat_statvfs64 = yes; then
1720     space=yes
1721     AC_DEFINE(STAT_STATVFS64)
1722   fi
1723 fi
1724
1725 # Perform only the link test since it seems there are no variants of the
1726 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
1727 # because that got a false positive on SCO OSR5.  Adding the declaration
1728 # of a `struct statvfs' causes this test to fail (as it should) on such
1729 # systems.  That system is reported to work fine with STAT_STATFS4 which
1730 # is what it gets when this test fails.
1731 if test $space = no; then
1732   # SVR4
1733   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
1734                  [AC_TRY_LINK([#include <sys/types.h>
1735 #include <sys/statvfs.h>],
1736                               [struct statvfs fsd; statvfs (0, &fsd);],
1737                               fu_cv_sys_stat_statvfs=yes,
1738                               fu_cv_sys_stat_statvfs=no)])
1739   if test $fu_cv_sys_stat_statvfs = yes; then
1740     space=yes
1741     AC_DEFINE(STAT_STATVFS)
1742   fi
1743 fi
1744
1745 if test $space = no; then
1746   # DEC Alpha running OSF/1
1747   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
1748   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
1749   [AC_TRY_RUN([
1750 #include <sys/param.h>
1751 #include <sys/types.h>
1752 #include <sys/mount.h>
1753   main ()
1754   {
1755     struct statfs fsd;
1756     fsd.f_fsize = 0;
1757     exit (statfs (".", &fsd, sizeof (struct statfs)));
1758   }],
1759   fu_cv_sys_stat_statfs3_osf1=yes,
1760   fu_cv_sys_stat_statfs3_osf1=no,
1761   fu_cv_sys_stat_statfs3_osf1=no)])
1762   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
1763   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
1764     space=yes
1765     AC_DEFINE(STAT_STATFS3_OSF1)
1766   fi
1767 fi
1768
1769 if test $space = no; then
1770 # AIX
1771   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
1772 member (AIX, 4.3BSD)])
1773   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
1774   [AC_TRY_RUN([
1775 #ifdef HAVE_SYS_PARAM_H
1776 #include <sys/param.h>
1777 #endif
1778 #ifdef HAVE_SYS_MOUNT_H
1779 #include <sys/mount.h>
1780 #endif
1781 #ifdef HAVE_SYS_VFS_H
1782 #include <sys/vfs.h>
1783 #endif
1784   main ()
1785   {
1786   struct statfs fsd;
1787   fsd.f_bsize = 0;
1788   exit (statfs (".", &fsd));
1789   }],
1790   fu_cv_sys_stat_statfs2_bsize=yes,
1791   fu_cv_sys_stat_statfs2_bsize=no,
1792   fu_cv_sys_stat_statfs2_bsize=no)])
1793   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
1794   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
1795     space=yes
1796     AC_DEFINE(STAT_STATFS2_BSIZE)
1797   fi
1798 fi
1799
1800 if test $space = no; then
1801 # SVR3
1802   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
1803   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
1804   [AC_TRY_RUN([#include <sys/types.h>
1805 #include <sys/statfs.h>
1806   main ()
1807   {
1808   struct statfs fsd;
1809   exit (statfs (".", &fsd, sizeof fsd, 0));
1810   }],
1811     fu_cv_sys_stat_statfs4=yes,
1812     fu_cv_sys_stat_statfs4=no,
1813     fu_cv_sys_stat_statfs4=no)])
1814   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
1815   if test $fu_cv_sys_stat_statfs4 = yes; then
1816     space=yes
1817     AC_DEFINE(STAT_STATFS4)
1818   fi
1819 fi
1820
1821 if test $space = no; then
1822 # 4.4BSD and NetBSD
1823   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
1824 member (4.4BSD and NetBSD)])
1825   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
1826   [AC_TRY_RUN([#include <sys/types.h>
1827 #ifdef HAVE_SYS_PARAM_H
1828 #include <sys/param.h>
1829 #endif
1830 #ifdef HAVE_SYS_MOUNT_H
1831 #include <sys/mount.h>
1832 #endif
1833   main ()
1834   {
1835   struct statfs fsd;
1836   fsd.f_fsize = 0;
1837   exit (statfs (".", &fsd));
1838   }],
1839   fu_cv_sys_stat_statfs2_fsize=yes,
1840   fu_cv_sys_stat_statfs2_fsize=no,
1841   fu_cv_sys_stat_statfs2_fsize=no)])
1842   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
1843   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
1844     space=yes
1845     AC_DEFINE(STAT_STATFS2_FSIZE)
1846   fi
1847 fi
1848
1849 if test $space = no; then
1850   # Ultrix
1851   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
1852   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
1853   [AC_TRY_RUN([#include <sys/types.h>
1854 #ifdef HAVE_SYS_PARAM_H
1855 #include <sys/param.h>
1856 #endif
1857 #ifdef HAVE_SYS_MOUNT_H
1858 #include <sys/mount.h>
1859 #endif
1860 #ifdef HAVE_SYS_FS_TYPES_H
1861 #include <sys/fs_types.h>
1862 #endif
1863   main ()
1864   {
1865   struct fs_data fsd;
1866   /* Ultrix's statfs returns 1 for success,
1867      0 for not mounted, -1 for failure.  */
1868   exit (statfs (".", &fsd) != 1);
1869   }],
1870   fu_cv_sys_stat_fs_data=yes,
1871   fu_cv_sys_stat_fs_data=no,
1872   fu_cv_sys_stat_fs_data=no)])
1873   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
1874   if test $fu_cv_sys_stat_fs_data = yes; then
1875     space=yes
1876     AC_DEFINE(STAT_STATFS2_FS_DATA)
1877   fi
1878 fi
1879
1880 #
1881 # As a gating factor for large file support, in order to
1882 # use <4GB files we must have the following minimal support
1883 # available.
1884 # long long, and a 64 bit off_t or off64_t.
1885 # If we don't have all of these then disable large
1886 # file support.
1887 #
1888 AC_MSG_CHECKING([if large file support can be enabled])
1889 AC_TRY_COMPILE([
1890 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
1891 #include <sys/types.h>
1892 #else
1893 __COMPILE_ERROR_
1894 #endif
1895 ],
1896 [int i],
1897 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
1898 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
1899     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
1900 fi
1901 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
1902
1903 AC_ARG_WITH(spinlocks, [  --with-spinlocks        use spin locks instead of fcntl locks ])
1904 if test "x$with_spinlocks" = "xyes"; then
1905     AC_DEFINE(USE_SPINLOCKS)
1906
1907     case "$host_cpu" in
1908         sparc)
1909             AC_DEFINE(SPARC_SPINLOCKS)
1910             ;;
1911
1912         i386|i486|i586|i686)
1913             AC_DEFINE(INTEL_SPINLOCKS)
1914             ;;
1915
1916         mips)
1917             AC_DEFINE(MIPS_SPINLOCKS)
1918             ;;
1919
1920         powerpc)
1921             AC_DEFINE(POWERPC_SPINLOCKS)
1922             ;;
1923     esac
1924 fi
1925
1926 #################################################
1927 # check for ACL support
1928
1929 AC_MSG_CHECKING(whether to support ACLs)
1930 AC_ARG_WITH(acl-support,
1931 [  --with-acl-support        Include ACL support
1932   --without-acl-support  Don't include ACL support (default)],
1933 [ case "$withval" in
1934   yes)
1935
1936         case "$host_os" in
1937         *unixware*)
1938             AC_MSG_RESULT(Using SVR4 ACLs)
1939             AC_DEFINE(HAVE_UNIXWARE_ACLS)
1940             ;;
1941         *solaris*)
1942             AC_MSG_RESULT(Using solaris ACLs)
1943             AC_DEFINE(HAVE_SOLARIS_ACLS)
1944             ;;
1945         *)
1946             AC_CHECK_LIB(acl,acl_get_file)
1947             AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
1948             AC_TRY_COMPILE([#include <sys/types.h>
1949 #include <sys/acl.h>],
1950 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
1951 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
1952             if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
1953                 AC_MSG_RESULT(Using posix ACLs)
1954                 AC_DEFINE(HAVE_POSIX_ACLS)
1955             fi
1956             ;;
1957         esac
1958         ;;
1959   *)
1960     AC_MSG_RESULT(no)
1961     AC_DEFINE(HAVE_NO_ACLS)
1962     ;;
1963   esac ],
1964   AC_DEFINE(HAVE_NO_ACLS)
1965   AC_MSG_RESULT(no)
1966 )
1967 echo "checking configure summary"
1968 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
1969            echo "configure OK";,
1970            AC_MSG_ERROR([summary failure. Aborting config]),:)
1971
1972 builddir=`pwd`
1973 AC_SUBST(builddir)
1974
1975 AC_OUTPUT(include/stamp-h Makefile)