~vcs-imports/samba/main

« back to all changes in this revision

Viewing changes to source/configure.in

  • Committer: jerry
  • Date: 2006-07-14 21:48:39 UTC
  • Revision ID: vcs-imports@canonical.com-20060714214839-586d8c489a8fcead
gutting trunk to move to svn:externals

Show diffs side-by-side

added added

removed removed

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