~ubuntu-branches/ubuntu/precise/openafs/precise-proposed

« back to all changes in this revision

Viewing changes to .pc/debian-changes/acinclude.m4

  • Committer: Package Import Robot
  • Author(s): Anders Kaseorg
  • Date: 2013-02-28 01:14:13 UTC
  • Revision ID: package-import@ubuntu.com-20130228011413-j8g8xrw1w3t9twl9
Tags: 1.6.1-1+ubuntu0.1
* Apply upstream deltas for Linux 3.5 (Closes: #685973)
  (LP: #1015925):
  - [2b33384] Linux 3.4: replace end_writeback with clear_inode
  - [5227148] Linux 3.5: encode_fh API change

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl This file contains the common configuration code which would
 
2
dnl otherwise be duplicated between configure and configure-libafs.
 
3
dnl
 
4
dnl NB: Because this code is a macro, references to positional shell
 
5
dnl parameters must be done like $[]1 instead of $1
 
6
 
 
7
AC_DEFUN([OPENAFS_CONFIGURE_COMMON],[
 
8
AH_BOTTOM([
 
9
#undef HAVE_RES_SEARCH
 
10
#undef STRUCT_SOCKADDR_HAS_SA_LEN
 
11
#if !defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
 
12
# if ENDIANESS_IN_SYS_PARAM_H
 
13
#  ifndef KERNEL
 
14
#   include <sys/types.h>
 
15
#   include <sys/param.h>
 
16
#   if BYTE_ORDER == BIG_ENDIAN
 
17
#   define WORDS_BIGENDIAN 1
 
18
#   endif
 
19
#  else
 
20
#   if defined(AUTOCONF_FOUND_BIGENDIAN)
 
21
#    define WORDS_BIGENDIAN 1
 
22
#   else
 
23
#    undef WORDS_BIGENDIAN
 
24
#   endif
 
25
#  endif
 
26
# else
 
27
#  if defined(AUTOCONF_FOUND_BIGENDIAN)
 
28
#   define WORDS_BIGENDIAN 1
 
29
#  else
 
30
#   undef WORDS_BIGENDIAN
 
31
#  endif
 
32
# endif
 
33
#else
 
34
# if defined(__BIG_ENDIAN__)
 
35
#  define WORDS_BIGENDIAN 1
 
36
# else
 
37
#  undef WORDS_BIGENDIAN
 
38
# endif
 
39
#endif
 
40
#ifdef UKERNEL
 
41
/*
 
42
 * Always use 64-bit file offsets for UKERNEL code. Needed for UKERNEL stuff to
 
43
 * play nice with some other interfaces like FUSE. We technically only would
 
44
 * need to define this when building for such interfaces, but set it always to
 
45
 * try and reduce potential confusion. 
 
46
 */
 
47
#define _FILE_OFFSET_BITS 64
 
48
#define AFS_CACHE_VNODE_PATH
 
49
#endif
 
50
 
 
51
#undef AFS_NAMEI_ENV
 
52
#undef BITMAP_LATER
 
53
#undef FAST_RESTART
 
54
#undef DEFINED_FOR_EACH_PROCESS
 
55
#undef DEFINED_PREV_TASK
 
56
#undef EXPORTED_SYS_CALL_TABLE
 
57
#undef EXPORTED_IA32_SYS_CALL_TABLE
 
58
#undef IRIX_HAS_MEM_FUNCS
 
59
#undef RECALC_SIGPENDING_TAKES_VOID
 
60
#undef STRUCT_FS_HAS_FS_ROLLED
 
61
#undef ssize_t
 
62
#undef HAVE_ARPA_NAMESER_COMPAT_H
 
63
/* glue for RedHat kernel bug */
 
64
#undef ENABLE_REDHAT_BUILDSYS
 
65
#if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && defined(REDHAT_FIX)
 
66
#include "redhat-fix.h"
 
67
#endif])
 
68
 
 
69
AC_CANONICAL_HOST
 
70
SRCDIR_PARENT=`pwd`
 
71
 
 
72
#BOZO_SAVE_CORES pam
 
73
 
 
74
dnl System identity.
 
75
AC_ARG_WITH([afs-sysname],
 
76
    [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
 
77
 
 
78
dnl General feature options.
 
79
AC_ARG_ENABLE([pam],
 
80
    [AS_HELP_STRING([--disable-pam], [disable PAM support])],
 
81
    ,
 
82
    [enable_pam="yes"])
 
83
AC_ARG_ENABLE([namei-fileserver],
 
84
    [AS_HELP_STRING([--enable-namei-fileserver],
 
85
        [force compilation of namei fileserver in preference to inode
 
86
         fileserver])],
 
87
    , 
 
88
    [enable_namei_fileserver="default"])
 
89
AC_ARG_ENABLE([supergroups],
 
90
    [AS_HELP_STRING([--enable-supergroups],
 
91
        [enable support for nested pts groups])],
 
92
    , 
 
93
    [enable_supergroups="no"])
 
94
AC_ARG_ENABLE([bitmap-later],
 
95
    [AS_HELP_STRING([--enable-bitmap-later],
 
96
        [enable fast startup of file server by not reading bitmap till
 
97
         needed])],
 
98
    , 
 
99
    [enable_bitmap_later="no"])
 
100
AC_ARG_ENABLE([unix-sockets],
 
101
    [AS_HELP_STRING([--disable-unix-sockets],
 
102
        [disable use of unix domain sockets for fssync (defaults to enabled)])],
 
103
    ,
 
104
    [enable_unix_sockets="yes"])
 
105
AC_ARG_ENABLE([tivoli-tsm],
 
106
    [AS_HELP_STRING([--enable-tivoli-tsm],
 
107
        [enable use of the Tivoli TSM API libraries for butc support])],
 
108
    , 
 
109
    [enable_tivoli_tsm="no"])
 
110
AC_ARG_ENABLE([pthreaded-ubik],
 
111
    [AS_HELP_STRING([--enable-pthreaded-ubik],
 
112
        [enable installation of pthreaded ubik applications (defaults to
 
113
         disabled)])],
 
114
    ,
 
115
    [enable_pthreaded_ubik="no"])
 
116
 
 
117
dnl Kernel module build options.
 
118
AC_ARG_WITH([linux-kernel-headers],
 
119
    [AS_HELP_STRING([--with-linux-kernel-headers=path],
 
120
        [use the kernel headers found at path (optional, defaults to
 
121
         /usr/src/linux-2.4, then /usr/src/linux)])])
 
122
AC_ARG_WITH([linux-kernel-build],
 
123
    [AS_HELP_STRING([--with-linux-kernel-build=path],
 
124
        [use the kernel build found at path(optional, defaults to 
 
125
        /usr/src/linux-2.4, then /usr/src/linux)])])
 
126
AC_ARG_WITH([bsd-kernel-headers],
 
127
    [AS_HELP_STRING([--with-bsd-kernel-headers=path],
 
128
        [use the kernel headers found at path (optional, defaults to
 
129
         /usr/src/sys)])])
 
130
AC_ARG_WITH([bsd-kernel-build],
 
131
    [AS_HELP_STRING([--with-bsd-kernel-build=path], 
 
132
        [use the kernel build found at path (optional, defaults to
 
133
         KSRC/i386/compile/GENERIC)])])
 
134
AC_ARG_WITH([linux-kernel-packaging],
 
135
    [AS_HELP_STRING([--with-linux-kernel-packaging],
 
136
        [use standard naming conventions to aid Linux kernel build packaging
 
137
         (disables MPS, sets the kernel module name to openafs.ko, and
 
138
         installs kernel modules into the standard Linux location)])],
 
139
    [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
 
140
     AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
 
141
    [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
 
142
AC_ARG_ENABLE([kernel-module],
 
143
    [AS_HELP_STRING([--disable-kernel-module],
 
144
        [disable compilation of the kernel module (defaults to enabled)])],
 
145
    , 
 
146
    [enable_kernel_module="yes"])
 
147
AC_ARG_ENABLE([redhat-buildsys],
 
148
    [AS_HELP_STRING([--enable-redhat-buildsys],
 
149
        [enable compilation of the redhat build system kernel (defaults to
 
150
         disabled)])],
 
151
    ,
 
152
    [enable_redhat_buildsys="no"])
 
153
 
 
154
dnl Installation locations.
 
155
AC_ARG_ENABLE([transarc-paths],
 
156
    [AS_HELP_STRING([--enable-transarc-paths],
 
157
        [use Transarc style paths like /usr/afs and /usr/vice])],
 
158
    , 
 
159
    [enable_transarc_paths="no"])
 
160
 
 
161
dnl Optimization and debugging flags.
 
162
AC_ARG_ENABLE([strip-binaries],
 
163
    [AS_HELP_STRING([--disable-strip-binaries],
 
164
        [disable stripping of symbol information from binaries (defaults to
 
165
         enabled)])],
 
166
    ,
 
167
    [enable_strip_binaries="maybe"])
 
168
AC_ARG_ENABLE([debug],
 
169
    [AS_HELP_STRING([--enable-debug],
 
170
        [enable compilation of the user space code with debugging information
 
171
         (defaults to disabled)])],
 
172
    , 
 
173
    [enable_debug="no"])
 
174
AC_ARG_ENABLE([optimize],
 
175
    [AS_HELP_STRING([--disable-optimize],
 
176
        [disable optimization for compilation of the user space code (defaults
 
177
         to enabled)])],
 
178
    , 
 
179
    [enable_optimize="yes"])
 
180
AC_ARG_ENABLE([warnings],
 
181
    [AS_HELP_STRING([--enable-warnings],
 
182
        [enable compilation warnings when building with gcc (defaults to
 
183
         disabled)])],
 
184
    ,
 
185
    [enable_warnings="no"])
 
186
AC_ARG_ENABLE([checking],
 
187
    [AS_HELP_STRING([--enable-checking],
 
188
        [turn compilation warnings into errors when building with gcc (defaults
 
189
         to disabled)])],
 
190
    [enable_checking="$enableval"],
 
191
    [enable_checking="no"])
 
192
AC_ARG_ENABLE([debug-kernel],
 
193
    [AS_HELP_STRING([--enable-debug-kernel],
 
194
        [enable compilation of the kernel module with debugging information
 
195
         (defaults to disabled)])],
 
196
    ,
 
197
    [enable_debug_kernel="no"])
 
198
AC_ARG_ENABLE([optimize-kernel],
 
199
    [AS_HELP_STRING([--disable-optimize-kernel],
 
200
        [disable compilation of the kernel module with optimization (defaults
 
201
         based on platform)])],
 
202
    , 
 
203
    [enable_optimize_kernel=""])
 
204
AC_ARG_ENABLE([debug-lwp],
 
205
    [AS_HELP_STRING([--enable-debug-lwp],
 
206
        [enable compilation of the LWP code with debugging information
 
207
         (defaults to disabled)])],
 
208
    ,
 
209
    [enable_debug_lwp="no"])
 
210
AC_ARG_ENABLE([optimize-lwp],
 
211
    [AS_HELP_STRING([--disable-optimize-lwp],
 
212
        [disable optimization for compilation of the LWP code (defaults to
 
213
         enabled)])],
 
214
    ,
 
215
    [enable_optimize_lwp="yes"])
 
216
AC_ARG_ENABLE([debug-pam],
 
217
    [AS_HELP_STRING([--enable-debug-pam],
 
218
        [enable compilation of the PAM code with debugging information
 
219
         (defaults to disabled)])],
 
220
    ,
 
221
    [enable_debug_pam="no"])
 
222
AC_ARG_ENABLE([optimize-pam],
 
223
    [AS_HELP_STRING([--disable-optimize-pam],
 
224
        [disable optimization for compilation of the PAM code (defaults to
 
225
         enabled)])],
 
226
    ,
 
227
    [enable_optimize_pam="yes"])
 
228
AC_ARG_ENABLE([linux-syscall-probing],
 
229
    [AS_HELP_STRING([--enable-linux-syscall-probing],
 
230
        [enable Linux syscall probing (defaults to autodetect)])],
 
231
    ,
 
232
    [enable_linux_syscall_probing="maybe"])
 
233
    
 
234
AC_ARG_WITH([xslt-processor],
 
235
        AS_HELP_STRING([--with-xslt-processor=ARG],
 
236
        [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j, xsltproc)]),
 
237
        XSLTPROC="$withval",
 
238
        AC_CHECK_PROGS([XSLTPROC], [libxslt saxon xalan-j xsltproc], [echo]))
 
239
 
 
240
AC_ARG_WITH([html-xsl], 
 
241
        AS_HELP_STRING([--with-html-xsl],
 
242
        [build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no; specify a path to chunk.xsl or docbook.xsl)]),
 
243
        HTML_XSL="$withval",
 
244
        HTML_XSL=no)
 
245
 
 
246
AC_ARG_WITH([docbook2pdf],
 
247
        AS_HELP_STRING([--with-docbook2pdf=ARG],
 
248
        [which Docbook to PDF utility to use (possible choices are: docbook2pdf, dblatex)]),
 
249
        DOCBOOK2PDF="$withval",
 
250
        AC_CHECK_PROGS([DOCBOOK2PDF], [docbook2pdf dblatex], [echo]))
 
251
 
 
252
enable_login="no"
 
253
 
 
254
dnl weird ass systems
 
255
dnl AC_AIX
 
256
AC_ISC_POSIX
 
257
dnl AC_MINIX
 
258
 
 
259
dnl Various compiler setup.
 
260
AC_TYPE_PID_T
 
261
AC_TYPE_SIZE_T
 
262
 
 
263
dnl Checks for programs.
 
264
AC_PROG_INSTALL
 
265
AC_PROG_LN_S
 
266
AC_PROG_RANLIB
 
267
AC_PROG_YACC
 
268
AM_PROG_LEX
 
269
dnl if we are flex, be lex-compatible
 
270
OPENAFS_LEX_IS_FLEX([AC_SUBST([LEX], ["$LEX -l"])])
 
271
 
 
272
OPENAFS_FORCE_ABS_INSTALL
 
273
OPENAFS_CHECK_BIGENDIAN
 
274
OPENAFS_PRINTF_TAKES_Z_LEN
 
275
 
 
276
AC_MSG_CHECKING(your OS)
 
277
system=$host
 
278
case $system in
 
279
        *-linux*)
 
280
 
 
281
                MKAFS_OSTYPE=LINUX
 
282
                if test "x$enable_redhat_buildsys" = "xyes"; then
 
283
                 AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
 
284
                fi
 
285
                if test "x$enable_kernel_module" = "xyes"; then
 
286
                 if test "x$with_linux_kernel_headers" != "x"; then
 
287
                   LINUX_KERNEL_PATH="$with_linux_kernel_headers"
 
288
                 else
 
289
                   LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
 
290
                   if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
 
291
                     LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
 
292
                   fi
 
293
                   if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
 
294
                     LINUX_KERNEL_PATH="/usr/src/linux-2.4"
 
295
                   fi
 
296
                   if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
 
297
                     LINUX_KERNEL_PATH="/usr/src/linux"
 
298
                   fi
 
299
                 fi
 
300
                 if test "x$with_linux_kernel_build" != "x"; then
 
301
                         LINUX_KERNEL_BUILD="$with_linux_kernel_build"
 
302
                 else
 
303
                   LINUX_KERNEL_BUILD=$LINUX_KERNEL_PATH
 
304
                 fi
 
305
                 if test -f "$LINUX_KERNEL_BUILD/include/generated/utsrelease.h"; then
 
306
                   linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/generated/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
 
307
                   LINUX_VERSION="$linux_kvers"
 
308
                 else
 
309
                   if test -f "$LINUX_KERNEL_BUILD/include/linux/utsrelease.h"; then
 
310
                     linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
 
311
                     LINUX_VERSION="$linux_kvers"
 
312
                   else
 
313
                     if test -f "$LINUX_KERNEL_BUILD/include/linux/version.h"; then
 
314
                       linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
 
315
                       if test "x$linux_kvers" = "x"; then
 
316
                         if test -f "$LINUX_KERNEL_BUILD/include/linux/version-up.h"; then
 
317
                           linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_BUILD/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
 
318
                           if test "x$linux_kvers" = "x"; then
 
319
                             AC_MSG_ERROR(Linux headers lack version definition [2])
 
320
                             exit 1
 
321
                           else
 
322
                             LINUX_VERSION="$linux_kvers"
 
323
                           fi
 
324
                         else
 
325
                           AC_MSG_ERROR(Linux headers lack version definition)
 
326
                           exit 1
 
327
                         fi
 
328
                       else
 
329
                         LINUX_VERSION="$linux_kvers"
 
330
                       fi
 
331
                     else
 
332
                       enable_kernel_module="no"
 
333
                     fi
 
334
                   fi
 
335
                 fi
 
336
                 if test ! -f "$LINUX_KERNEL_BUILD/include/generated/autoconf.h" &&
 
337
                    test ! -f "$LINUX_KERNEL_BUILD/include/linux/autoconf.h"; then
 
338
                     enable_kernel_module="no"
 
339
                 fi
 
340
                 if test "x$enable_kernel_module" = "xno"; then
 
341
                  if test "x$with_linux_kernel_headers" != "x"; then
 
342
                   AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
 
343
                   exit 1
 
344
                  else
 
345
                   AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
 
346
                  fi
 
347
                 fi
 
348
                 dnl do we need to determine SUBARCH from autoconf.h
 
349
                 SUBARCH=default
 
350
                fi
 
351
                AC_MSG_RESULT(linux)
 
352
                if test "x$enable_kernel_module" = "xyes"; then
 
353
                 case "$LINUX_VERSION" in
 
354
                  2.2.*) AFS_SYSKVERS=22 ;;
 
355
                  2.4.*) AFS_SYSKVERS=24 ;;
 
356
                  2.6.* | 3.*) AFS_SYSKVERS=26 ;;
 
357
                  *) AC_MSG_ERROR(Couldn't guess your Linux version [2]) ;;
 
358
                 esac
 
359
                fi
 
360
                ;;
 
361
        *-solaris*)
 
362
                MKAFS_OSTYPE=SOLARIS
 
363
                AC_MSG_RESULT(sun4)
 
364
                AC_PATH_PROG(SOLARISCC, [cc], ,
 
365
                    [/opt/SUNWspro/bin:/opt/SunStudioExpress/bin])
 
366
                SOLARIS_UFSVFS_HAS_DQRWLOCK
 
367
                SOLARIS_FS_HAS_FS_ROLLED
 
368
                SOLARIS_SOLOOKUP_TAKES_SOCKPARAMS
 
369
                ;;
 
370
        *-sunos*)
 
371
                MKAFS_OSTYPE=SUNOS
 
372
                enable_kernel_module=no
 
373
                AC_MSG_RESULT(sun4)
 
374
                ;;
 
375
        *-hpux*)
 
376
                MKAFS_OSTYPE=HPUX
 
377
                AC_MSG_RESULT(hp_ux)
 
378
                if test -f "/usr/old/usr/include/ndir.h"; then
 
379
                 AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
 
380
                fi
 
381
                ;;
 
382
        *-irix*)
 
383
                if test -d /usr/include/sys/SN/SN1; then
 
384
                 IRIX_BUILD_IP35="IP35"
 
385
                fi
 
386
                MKAFS_OSTYPE=IRIX
 
387
                AC_MSG_RESULT(sgi)
 
388
                ;;
 
389
        *-aix*)
 
390
                MKAFS_OSTYPE=AIX
 
391
                AC_MSG_RESULT(rs_aix)
 
392
                ;;
 
393
        arm-*-darwin*)
 
394
                MKAFS_OSTYPE=DARWIN
 
395
                AC_MSG_RESULT(arm_darwin)
 
396
                ;;
 
397
        powerpc-*-darwin*)
 
398
                MKAFS_OSTYPE=DARWIN
 
399
                AC_MSG_RESULT(ppc_darwin)
 
400
                ;;
 
401
        i386-*-darwin*)
 
402
                MKAFS_OSTYPE=DARWIN
 
403
                AC_MSG_RESULT(x86_darwin)
 
404
                ;;
 
405
        x86_64-*-darwin*)
 
406
                MKAFS_OSTYPE=DARWIN
 
407
                AC_MSG_RESULT(x86_darwin)
 
408
                ;;
 
409
        i386-*-freebsd*)
 
410
                MKAFS_OSTYPE=FBSD
 
411
                AC_MSG_RESULT(i386_fbsd)
 
412
                ;;
 
413
        x86_64-*-freebsd*)
 
414
                MKAFS_OSTYPE=FBSD
 
415
                AC_MSG_RESULT(amd64_fbsd)
 
416
                ;;
 
417
        *-netbsd*)
 
418
                MKAFS_OSTYPE=NBSD
 
419
                AC_MSG_RESULT(nbsd)
 
420
                ;;
 
421
        x86_64-*-openbsd*)
 
422
                MKAFS_OSTYPE=OBSD
 
423
                AC_MSG_RESULT(amd64_obsd)
 
424
                ;;
 
425
        i386-*-openbsd*)
 
426
                MKAFS_OSTYPE=OBSD
 
427
                AC_MSG_RESULT(i386_obsd)
 
428
                ;;
 
429
        *-dragonfly*)
 
430
                MKAFS_OSTYPE=DFBSD
 
431
                AC_MSG_RESULT(i386_dfbsd)
 
432
                ;;
 
433
        *)
 
434
                AC_MSG_RESULT($system)
 
435
                ;;
 
436
esac
 
437
 
 
438
if test "x$with_afs_sysname" != "x"; then
 
439
        AFS_SYSNAME="$with_afs_sysname"
 
440
else
 
441
        AC_MSG_CHECKING(your AFS sysname)
 
442
        case $host in
 
443
                i?86-*-openbsd?.?)
 
444
                        v=${host#*openbsd}
 
445
                        vM=${v%.*}
 
446
                        vm=${v#*.}
 
447
                        AFS_SYSNAME="i386_obsd${vM}${vm}"
 
448
                        ;;
 
449
                sparc64-*-openbsd?.?)
 
450
                        v=${host#*openbsd}
 
451
                        vM=${v%.*}
 
452
                        vm=${v#*.}
 
453
                        AFS_SYSNAME="sparc64_obsd${vM}${vm}"
 
454
                        ;;
 
455
                x86_64-*-openbsd?.?)
 
456
                        v=${host#*openbsd}
 
457
                        vM=${v%.*}
 
458
                        vm=${v#*.}
 
459
                        AFS_SYSNAME="amd64_obsd${vM}${vm}"
 
460
                        ;;
 
461
                i?86-*-freebsd?.*)
 
462
                        v=${host#*freebsd}
 
463
                        vM=${v%.*}
 
464
                        vm=${v#*.}
 
465
                        AFS_SYSNAME="i386_fbsd_${vM}${vm}"
 
466
                        ;;
 
467
                x86_64-*-freebsd?.*)
 
468
                        v=${host#*freebsd}
 
469
                        vM=${v%.*}
 
470
                        vm=${v#*.}
 
471
                        AFS_SYSNAME="amd64_fbsd_${vM}${vm}"
 
472
                        ;;
 
473
                i386-*-dragonfly?.*)
 
474
                        v=${host#*dragonfly}
 
475
                        vM=${v%.*}
 
476
                        vm=${v#*.}
 
477
                        AFS_SYSNAME="i386_dfbsd_${vM}${vm}"
 
478
                        ;;
 
479
                i?86-*-netbsd*1.6[[M-Z]]*)
 
480
                        AFS_SYSNAME="i386_nbsd20"
 
481
                        ;;
 
482
                powerpc-*-netbsd*1.6[[M-Z]]*)
 
483
                        AFS_SYSNAME="ppc_nbsd20"
 
484
                        ;;
 
485
                *-*-netbsd*)
 
486
                        arch=${host%%-unknown*}
 
487
                        arch=$(echo $arch |sed -e 's/x86_64/amd64/g' \
 
488
                                               -e 's/powerpc/ppc/g')
 
489
                        v=${host#*netbsd}
 
490
                        v=${v#*aout}
 
491
                        v=${v#*ecoff}
 
492
                        v=${v#*elf}
 
493
                        vM=${v%%.*}
 
494
                        vM=${vM%.*}
 
495
                        v=${v#*.}
 
496
                        vm=${v%%.*}
 
497
                        vm=${vm%.*}
 
498
                        vm=${vm%%[[_A-Z]]*}
 
499
                        if test $vm -eq 99 ; then
 
500
                                vM=$((vM+1))
 
501
                        fi
 
502
                        if test $vM -gt 1 ; then
 
503
                                vm=0
 
504
                        fi
 
505
                        AFS_SYSNAME="${arch}_nbsd${vM}${vm}"
 
506
                        ;;
 
507
                hppa*-hp-hpux11.0*)
 
508
                        AFS_SYSNAME="hp_ux110"
 
509
                        ;;
 
510
                hppa*-hp-hpux11.11)
 
511
                        AFS_SYSNAME="hp_ux11i"
 
512
                        ;;
 
513
                hppa*-hp-hpux11.23)
 
514
                        AFS_SYSNAME="hp_ux1123"
 
515
                        ;;
 
516
                ia64-hp-hpux11.22)
 
517
                        AFS_SYSNAME="ia64_hpux1122"
 
518
                        ;;
 
519
                ia64-hp-hpux*)
 
520
                        AFS_SYSNAME="ia64_hpux1123"
 
521
                        ;;
 
522
                hppa*-hp-hpux10*)
 
523
                        AFS_SYSNAME="hp_ux102"
 
524
                        ;;
 
525
                powerpc-apple-darwin7*)
 
526
                        AFS_SYSNAME="ppc_darwin_70"
 
527
                        OSXSDK="macosx10.3"
 
528
                        ;;
 
529
                powerpc-apple-darwin8.*)
 
530
                        AFS_SYSNAME="ppc_darwin_80"
 
531
                        OSXSDK="macosx10.4"
 
532
                        ;;
 
533
                i386-apple-darwin8.*)
 
534
                        AFS_SYSNAME="x86_darwin_80"
 
535
                        OSXSDK="macosx10.4"
 
536
                        ;;
 
537
                powerpc-apple-darwin9.*)
 
538
                        AFS_SYSNAME="ppc_darwin_90"
 
539
                        OSXSDK="macosx10.5"
 
540
                        ;;
 
541
                i386-apple-darwin9.*)
 
542
                        AFS_SYSNAME="x86_darwin_90"
 
543
                        OSXSDK="macosx10.5"
 
544
                        ;;
 
545
                i?86-apple-darwin10.*)
 
546
                        AFS_SYSNAME="x86_darwin_100"
 
547
                        OSXSDK="macosx10.6"
 
548
                        ;;
 
549
                x86_64-apple-darwin10.*)
 
550
                        AFS_SYSNAME="x86_darwin_100"
 
551
                        OSXSDK="macosx10.6"
 
552
                        ;;
 
553
                arm-apple-darwin10.*)
 
554
                        AFS_SYSNAME="arm_darwin_100"
 
555
                        OSXSDK="iphoneos4.0"
 
556
                        ;;
 
557
                x86_64-apple-darwin11.*)
 
558
                        AFS_SYSNAME="x86_darwin_110"
 
559
                        OSXSDK="macosx10.7"
 
560
                        ;;
 
561
                i?86-apple-darwin11.*)
 
562
                        AFS_SYSNAME="x86_darwin_110"
 
563
                        OSXSDK="macosx10.7"
 
564
                        ;;
 
565
                sparc-sun-solaris2.5*)
 
566
                        AFS_SYSNAME="sun4x_55"
 
567
                        enable_login="yes"
 
568
                        ;;
 
569
                sparc-sun-solaris2.6)
 
570
                        AFS_SYSNAME="sun4x_56"
 
571
                        ;;
 
572
                sparc-sun-solaris2.7)
 
573
                        AFS_SYSNAME="sun4x_57"
 
574
                        ;;
 
575
                sparc-sun-solaris2.8)
 
576
                        AFS_SYSNAME="sun4x_58"
 
577
                        ;;
 
578
                sparc-sun-solaris2.9)
 
579
                        AFS_SYSNAME="sun4x_59"
 
580
                        ;;
 
581
                sparc-sun-solaris2.10)
 
582
                        AFS_SYSNAME="sun4x_510"
 
583
                        ;;
 
584
                sparc-sun-solaris2.11)
 
585
                        AFS_SYSNAME="sun4x_511"
 
586
                        ;;
 
587
                sparc-sun-sunos4*)
 
588
                        AFS_SYSNAME="sun4_413"
 
589
                        enable_login="yes"
 
590
                        ;;
 
591
                i386-pc-solaris2.7)
 
592
                        AFS_SYSNAME="sunx86_57"
 
593
                        ;;
 
594
                i386-pc-solaris2.8)
 
595
                        AFS_SYSNAME="sunx86_58"
 
596
                        ;;
 
597
                i386-pc-solaris2.9)
 
598
                        AFS_SYSNAME="sunx86_59"
 
599
                        ;;
 
600
                i386-pc-solaris2.10)
 
601
                        AFS_SYSNAME="sunx86_510"
 
602
                        ;;
 
603
                i386-pc-solaris2.11)
 
604
                        AFS_SYSNAME="sunx86_511"
 
605
                        ;;
 
606
                alpha*-dec-osf4.0*)
 
607
                        AFS_SYSNAME="alpha_dux40"
 
608
                        ;;
 
609
                alpha*-dec-osf5.0*)
 
610
                        AFS_SYSNAME="alpha_dux50"
 
611
                        ;;
 
612
                alpha*-dec-osf5.1*)
 
613
                        AFS_SYSNAME="alpha_dux51"
 
614
                        ;;
 
615
                mips-sgi-irix6.5)
 
616
                        AFS_SYSNAME="sgi_65"
 
617
                        ;;
 
618
                ia64-*-linux*)
 
619
                        AFS_SYSNAME="ia64_linuxXX"
 
620
                        ;;
 
621
                powerpc-*-linux*)
 
622
                        AFS_SYSNAME="`/bin/arch`_linuxXX"
 
623
                        ;;
 
624
                powerpc64-*-linux*)
 
625
                        AFS_SYSNAME="ppc64_linuxXX"
 
626
                        ;;
 
627
                alpha*-linux*)
 
628
                        AFS_SYSNAME="alpha_linux_XX"
 
629
                        ;;
 
630
                s390-*-linux*)
 
631
                        AFS_SYSNAME="s390_linuxXX"
 
632
                        ;;
 
633
                s390x-*-linux*)
 
634
                        AFS_SYSNAME="s390x_linuxXX"
 
635
                        ;;
 
636
                sparc-*-linux*)
 
637
                        AFS_SYSNAME="`/bin/arch`_linuxXX"
 
638
                        ;;
 
639
                sparc64-*-linux*)
 
640
                        AFS_SYSNAME="sparc64_linuxXX"
 
641
                        ;;
 
642
                i?86-*-linux*)
 
643
                        AFS_SYSNAME="i386_linuxXX"
 
644
                        ;;
 
645
                arm*-linux*)
 
646
                        AFS_SYSNAME="arm_linuxXX"
 
647
                        ;;
 
648
                parisc-*-linux-gnu|hppa-*-linux-gnu)
 
649
                        AFS_SYSNAME="parisc_linuxXX"
 
650
                        enable_pam="no"
 
651
                        ;;
 
652
                power*-ibm-aix4.2*)
 
653
                        AFS_SYSNAME="rs_aix42"
 
654
                        enable_pam="no"
 
655
                        ;;
 
656
                power*-ibm-aix4.3*)
 
657
                        AFS_SYSNAME="rs_aix42"
 
658
                        enable_pam="no"
 
659
                        ;;
 
660
                power*-ibm-aix5.1*)
 
661
                        AFS_SYSNAME="rs_aix51"
 
662
                        enable_pam="no"
 
663
                        ;;
 
664
                power*-ibm-aix5.2*)
 
665
                        AFS_SYSNAME="rs_aix52"
 
666
                        enable_pam="no"
 
667
                        ;;
 
668
                power*-ibm-aix5.3*)
 
669
                        AFS_SYSNAME="rs_aix53"
 
670
                        enable_pam="no"
 
671
                        ;;
 
672
                power*-ibm-aix6.1*)
 
673
                        AFS_SYSNAME="rs_aix61"
 
674
                        enable_pam="no"
 
675
                        ;;
 
676
                x86_64-*-linux-gnu)
 
677
                        AFS_SYSNAME="amd64_linuxXX"
 
678
                        enable_pam="yes"
 
679
                        ;;
 
680
                *)
 
681
                        AC_MSG_ERROR(An AFS sysname is required)
 
682
                        exit 1
 
683
                        ;;
 
684
        esac
 
685
        case $AFS_SYSNAME in
 
686
                *_linux* | *_umlinux*)
 
687
                        if test "x${AFS_SYSKVERS}" = "x"; then
 
688
                         AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
 
689
                        fi
 
690
                        _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
 
691
                        AFS_SYSNAME="$_AFS_SYSNAME"
 
692
                        AC_TRY_KBUILD(
 
693
                         [],
 
694
                         [#ifndef CONFIG_USERMODE
 
695
                          #error not UML
 
696
                          #endif],
 
697
                         ac_cv_linux_is_uml=yes,)
 
698
                        if test "${ac_cv_linux_is_uml}" = yes; then
 
699
                         _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
 
700
                        fi
 
701
                        AFS_SYSNAME="$_AFS_SYSNAME"
 
702
                        ;;
 
703
        esac
 
704
        AC_MSG_RESULT($AFS_SYSNAME)
 
705
fi
 
706
 
 
707
case $AFS_SYSNAME in
 
708
        *_darwin*)
 
709
                AC_CHECK_HEADERS(crt_externs.h)
 
710
                DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
 
711
                DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
 
712
                AC_SUBST(OSXSDK)
 
713
                ;;
 
714
esac
 
715
 
 
716
dnl Some hosts have a separate common param file they should include.  Figure
 
717
dnl out if we're on one of them now that we know the sysname.
 
718
case $AFS_SYSNAME in
 
719
    *_nbsd15)   AFS_PARAM_COMMON=param.nbsd15.h  ;;
 
720
    *_nbsd16)   AFS_PARAM_COMMON=param.nbsd16.h  ;;
 
721
    *_nbsd20)   AFS_PARAM_COMMON=param.nbsd20.h  ;;
 
722
    *_nbsd21)   AFS_PARAM_COMMON=param.nbsd21.h  ;;
 
723
    *_nbsd30)   AFS_PARAM_COMMON=param.nbsd30.h  ;;
 
724
    *_nbsd40)   AFS_PARAM_COMMON=param.nbsd40.h  ;;
 
725
    *_nbsd50)   AFS_PARAM_COMMON=param.nbsd50.h  ;;
 
726
    *_nbsd60)   AFS_PARAM_COMMON=param.nbsd60.h  ;;
 
727
    *_obsd31)   AFS_PARAM_COMMON=param.obsd31.h  ;;
 
728
    *_obsd32)   AFS_PARAM_COMMON=param.obsd32.h  ;;
 
729
    *_obsd33)   AFS_PARAM_COMMON=param.obsd33.h  ;;
 
730
    *_obsd34)   AFS_PARAM_COMMON=param.obsd34.h  ;;
 
731
    *_obsd35)   AFS_PARAM_COMMON=param.obsd35.h  ;;
 
732
    *_obsd36)   AFS_PARAM_COMMON=param.obsd36.h  ;;
 
733
    *_obsd37)   AFS_PARAM_COMMON=param.obsd37.h  ;;
 
734
    *_obsd38)   AFS_PARAM_COMMON=param.obsd38.h  ;;
 
735
    *_obsd39)   AFS_PARAM_COMMON=param.obsd39.h  ;;
 
736
    *_obsd40)   AFS_PARAM_COMMON=param.obsd40.h  ;;
 
737
    *_obsd41)   AFS_PARAM_COMMON=param.obsd41.h  ;;
 
738
    *_obsd42)   AFS_PARAM_COMMON=param.obsd42.h  ;;
 
739
    *_obsd43)   AFS_PARAM_COMMON=param.obsd43.h  ;;
 
740
    *_obsd44)   AFS_PARAM_COMMON=param.obsd44.h  ;;
 
741
    *_obsd45)   AFS_PARAM_COMMON=param.obsd45.h  ;;
 
742
    *_obsd46)   AFS_PARAM_COMMON=param.obsd46.h  ;;
 
743
    *_obsd47)   AFS_PARAM_COMMON=param.obsd47.h  ;;
 
744
    *_obsd48)   AFS_PARAM_COMMON=param.obsd48.h  ;;
 
745
    *_linux22)  AFS_PARAM_COMMON=param.linux22.h ;;
 
746
    *_linux24)  AFS_PARAM_COMMON=param.linux24.h ;;
 
747
    *_linux26)  AFS_PARAM_COMMON=param.linux26.h ;;
 
748
# Linux alpha adds an extra underscore for no good reason.
 
749
    *_linux_22) AFS_PARAM_COMMON=param.linux22.h ;;
 
750
    *_linux_24) AFS_PARAM_COMMON=param.linux24.h ;;
 
751
    *_linux_26) AFS_PARAM_COMMON=param.linux26.h ;;
 
752
esac
 
753
 
 
754
case $AFS_SYSNAME in *_linux* | *_umlinux*)
 
755
 
 
756
                # Add (sub-) architecture-specific paths needed by conftests
 
757
                case $AFS_SYSNAME  in
 
758
                        *_umlinux26)
 
759
                                UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
 
760
                                UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
 
761
                                UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
 
762
                                CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
 
763
                esac
 
764
 
 
765
                if test "x$enable_kernel_module" = "xyes"; then
 
766
                 if test "x$enable_debug_kernel" = "xno"; then
 
767
                        LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
 
768
                 fi
 
769
                 OPENAFS_GCC_SUPPORTS_MARCH
 
770
                 AC_SUBST(P5PLUS_KOPTS)
 
771
                 OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
 
772
                 OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
 
773
                 OPENAFS_GCC_SUPPORTS_NO_COMMON
 
774
                 OPENAFS_GCC_SUPPORTS_PIPE
 
775
                 AC_SUBST(LINUX_GCC_KOPTS)
 
776
 
 
777
                 dnl Setup the kernel build environment
 
778
                 LINUX_KBUILD_USES_EXTRA_CFLAGS
 
779
                 LINUX_KERNEL_COMPILE_WORKS
 
780
 
 
781
                 dnl Check for header files
 
782
                 AC_CHECK_LINUX_HEADER([config.h])
 
783
                 AC_CHECK_LINUX_HEADER([completion.h])
 
784
                 AC_CHECK_LINUX_HEADER([exportfs.h])
 
785
                 AC_CHECK_LINUX_HEADER([freezer.h])
 
786
                 AC_CHECK_LINUX_HEADER([key-type.h])
 
787
                 AC_CHECK_LINUX_HEADER([semaphore.h])
 
788
                 AC_CHECK_LINUX_HEADER([seq_file.h])
 
789
 
 
790
                 dnl Check for structure elements
 
791
                 AC_CHECK_LINUX_STRUCT([address_space_operations],
 
792
                                       [write_begin], [fs.h])
 
793
                 AC_CHECK_LINUX_STRUCT([backing_dev_info], [name],
 
794
                                       [backing-dev.h])
 
795
                 AC_CHECK_LINUX_STRUCT([ctl_table], [ctl_name], [sysctl.h])
 
796
                 AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h])
 
797
                 AC_CHECK_LINUX_STRUCT([inode], [i_blkbits], [fs.h])
 
798
                 AC_CHECK_LINUX_STRUCT([inode], [i_blksize], [fs.h])
 
799
                 AC_CHECK_LINUX_STRUCT([inode], [i_mutex], [fs.h])
 
800
                 AC_CHECK_LINUX_STRUCT([inode], [i_security], [fs.h])
 
801
                 AC_CHECK_LINUX_STRUCT([file_operations], [flock], [fs.h])
 
802
                 AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
 
803
                 AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h])
 
804
                 AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h])
 
805
                 AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h])
 
806
                 AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h])
 
807
                 AC_CHECK_LINUX_STRUCT([super_block], [s_d_op], [fs.h])
 
808
                 AC_CHECK_LINUX_STRUCT([super_operations], [alloc_inode],
 
809
                                       [fs.h])
 
810
                 AC_CHECK_LINUX_STRUCT([super_operations], [evict_inode],
 
811
                                       [fs.h])
 
812
                 AC_CHECK_LINUX_STRUCT([task_struct], [cred], [sched.h])
 
813
                 AC_CHECK_LINUX_STRUCT([task_struct], [exit_state], [sched.h])
 
814
                 AC_CHECK_LINUX_STRUCT([task_struct], [parent], [sched.h])
 
815
                 AC_CHECK_LINUX_STRUCT([task_struct], [real_parent], [sched.h])
 
816
                 AC_CHECK_LINUX_STRUCT([task_struct], [rlim], [sched.h])
 
817
                 AC_CHECK_LINUX_STRUCT([task_struct], [sig], [sched.h])
 
818
                 AC_CHECK_LINUX_STRUCT([task_struct], [sighand], [sched.h])
 
819
                 AC_CHECK_LINUX_STRUCT([task_struct], [sigmask_lock], [sched.h])
 
820
                 AC_CHECK_LINUX_STRUCT([task_struct], [tgid], [sched.h])
 
821
                 AC_CHECK_LINUX_STRUCT([task_struct], [thread_info], [sched.h])
 
822
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
 
823
 
 
824
                 dnl Check for typed structure elements
 
825
                 AC_CHECK_LINUX_TYPED_STRUCT([read_descriptor_t],
 
826
                                             [buf], [fs.h])
 
827
 
 
828
                 dnl Function existence checks
 
829
 
 
830
                 AC_CHECK_LINUX_FUNC([bdi_init],
 
831
                                     [#include <linux/backing-dev.h>],
 
832
                                     [bdi_init(NULL);])
 
833
                 AC_CHECK_LINUX_FUNC([PageChecked],
 
834
                                     [#include <linux/mm.h>
 
835
#include <linux/page-flags.h>],
 
836
                                     [struct page *_page;
 
837
                                      int bchecked = PageChecked(_page);])
 
838
                 AC_CHECK_LINUX_FUNC([PageFsMisc],
 
839
                                     [#include <linux/mm.h>
 
840
#include <linux/page-flags.h>],
 
841
                                     [struct page *_page;
 
842
                                      int bchecked = PageFsMisc(_page);])
 
843
                 AC_CHECK_LINUX_FUNC([current_kernel_time],
 
844
                                     [#include <linux/time.h>],
 
845
                                     [struct timespec s;
 
846
                                      s = current_kernel_time();])
 
847
                 AC_CHECK_LINUX_FUNC([d_alloc_anon],
 
848
                                     [#include <linux/fs.h>],
 
849
                                     [d_alloc_anon(NULL);])
 
850
                 AC_CHECK_LINUX_FUNC([d_make_root],
 
851
                                     [#include <linux/fs.h>],
 
852
                                     [d_make_root(NULL);])
 
853
                 AC_CHECK_LINUX_FUNC([do_sync_read],
 
854
                                     [#include <linux/fs.h>],
 
855
                                     [do_sync_read(NULL, NULL, 0, NULL);])
 
856
                 AC_CHECK_LINUX_FUNC([find_task_by_pid],
 
857
                                     [#include <linux/sched.h>],
 
858
                                     [pid_t p; find_task_by_pid(p);])
 
859
                 AC_CHECK_LINUX_FUNC([generic_file_aio_read],
 
860
                                     [#include <linux/fs.h>],
 
861
                                     [generic_file_aio_read(NULL,NULL,0,0);])
 
862
                 AC_CHECK_LINUX_FUNC([grab_cache_page_write_begin],
 
863
                                     [#include <linux/pagemap.h>],
 
864
                                     [grab_cache_page_write_begin(NULL, 0, 0);])
 
865
                 AC_CHECK_LINUX_FUNC([hlist_unhashed],
 
866
                                     [#include <linux/list.h>],
 
867
                                     [hlist_unhashed(0);])
 
868
                 AC_CHECK_LINUX_FUNC([i_size_read],
 
869
                                     [#include <linux/fs.h>],
 
870
                                     [i_size_read(NULL);])
 
871
                 AC_CHECK_LINUX_FUNC([inode_setattr],
 
872
                                     [#include <linux/fs.h>],
 
873
                                     [inode_setattr(NULL, NULL);])
 
874
                 AC_CHECK_LINUX_FUNC([kernel_setsockopt],
 
875
                                     [#include <linux/net.h>],
 
876
                                     [kernel_setsockopt(NULL, 0, 0, NULL, 0);])
 
877
                 AC_CHECK_LINUX_FUNC([page_follow_link],
 
878
                                     [#include <linux/fs.h>],
 
879
                                     [page_follow_link(0,0);])
 
880
                 AC_CHECK_LINUX_FUNC([page_offset],
 
881
                                     [#include <linux/pagemap.h>],
 
882
                                     [page_offset(NULL);])
 
883
                 AC_CHECK_LINUX_FUNC([pagevec_lru_add_file],
 
884
                                     [#include <linux/pagevec.h>],
 
885
                                     [__pagevec_lru_add_file(NULL);])
 
886
                 AC_CHECK_LINUX_FUNC([path_lookup],
 
887
                                     [#include <linux/fs.h>
 
888
                                      #include <linux/namei.h>],
 
889
                                     [path_lookup(NULL, 0, NULL);])
 
890
                 AC_CHECK_LINUX_FUNC([rcu_read_lock],
 
891
                                     [#include <linux/rcupdate.h>],
 
892
                                     [rcu_read_lock();])
 
893
                 AC_CHECK_LINUX_FUNC([set_nlink],
 
894
                                     [#include <linux/fs.h>],
 
895
                                     [set_nlink(NULL, 1);])
 
896
                 AC_CHECK_LINUX_FUNC([splice_direct_to_actor],
 
897
                                     [#include <linux/splice.h>],
 
898
                                     [splice_direct_to_actor(NULL,NULL,NULL);])
 
899
                 AC_CHECK_LINUX_FUNC([svc_addr_in],
 
900
                                     [#include <linux/sunrpc/svc.h>],
 
901
                                     [svc_addr_in(NULL);])
 
902
                 AC_CHECK_LINUX_FUNC([zero_user_segments],
 
903
                                     [#include <linux/highmem.h>],
 
904
                                     [zero_user_segments(NULL, 0, 0, 0, 0);])
 
905
                 AC_CHECK_LINUX_FUNC([noop_fsync],
 
906
                                     [#include <linux/fs.h>],
 
907
                                     [void *address = &noop_fsync; printk("%p\n", address)];)
 
908
 
 
909
                 dnl Consequences - things which get set as a result of the
 
910
                 dnl                above tests
 
911
                 AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
 
912
                       [AC_DEFINE([AFS_NONFSTRANS], 1,
 
913
                                  [define to disable the nfs translator])])
 
914
 
 
915
                 dnl Assorted more complex tests
 
916
                 LINUX_EXPORTS_PROC_ROOT_FS
 
917
                 LINUX_KMEM_CACHE_INIT
 
918
                 LINUX_HAVE_KMEM_CACHE_T
 
919
                 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
 
920
                 LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID
 
921
                 LINUX_D_PATH_TAKES_STRUCT_PATH
 
922
                 LINUX_NEW_EXPORT_OPS
 
923
                 LINUX_INODE_SETATTR_RETURN_TYPE
 
924
                 LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
 
925
                 LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
 
926
                 LINUX_IOP_I_PERMISSION_TAKES_FLAGS
 
927
                 LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
 
928
                 LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
 
929
                 LINUX_DOP_D_DELETE_TAKES_CONST
 
930
                 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
 
931
                 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
 
932
                 LINUX_FOP_F_FSYNC_TAKES_DENTRY
 
933
                 LINUX_FOP_F_FSYNC_TAKES_RANGE
 
934
                 LINUX_AOP_WRITEBACK_CONTROL
 
935
                 LINUX_FS_STRUCT_FOP_HAS_SPLICE
 
936
                 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
 
937
                 LINUX_POSIX_TEST_LOCK_RETURNS_CONFLICT
 
938
                 LINUX_POSIX_TEST_LOCK_CONFLICT_ARG
 
939
                 LINUX_KERNEL_SOCK_CREATE
 
940
                 LINUX_EXPORTS_KEY_TYPE_KEYRING
 
941
                 LINUX_KEYS_HAVE_SESSION_TO_PARENT
 
942
                 LINUX_NEED_RHCONFIG
 
943
                 LINUX_RECALC_SIGPENDING_ARG_TYPE
 
944
                 LINUX_EXPORTS_TASKLIST_LOCK
 
945
                 LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
 
946
                 LINUX_STATFS_TAKES_DENTRY
 
947
                 LINUX_REFRIGERATOR
 
948
                 LINUX_HAVE_TRY_TO_FREEZE
 
949
                 LINUX_LINUX_KEYRING_SUPPORT
 
950
                 LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
 
951
                 LINUX_KEY_ALLOC_NEEDS_CRED
 
952
                 LINUX_INIT_WORK_HAS_DATA
 
953
                 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
 
954
                 LINUX_HAVE_DCACHE_LOCK
 
955
                 LINUX_D_COUNT_IS_INT
 
956
                 LINUX_IOP_MKDIR_TAKES_UMODE_T
 
957
                 LINUX_IOP_CREATE_TAKES_UMODE_T
 
958
 
 
959
                 dnl If we are guaranteed that keyrings will work - that is
 
960
                 dnl  a) The kernel has keyrings enabled
 
961
                 dnl  b) The code is new enough to give us a key_type_keyring
 
962
                 dnl then we just disable syscall probing unless we've been
 
963
                 dnl told otherwise
 
964
 
 
965
                 AS_IF([test "$enable_linux_syscall_probing" = "maybe"],
 
966
                   [AS_IF([test "$ac_cv_linux_keyring_support" = "yes" -a "$ac_cv_linux_exports_key_type_keyring" = "yes"],
 
967
                          [enable_linux_syscall_probing="no"],
 
968
                          [enable_linux_syscall_probing="yes"])
 
969
                 ])
 
970
 
 
971
                 dnl Syscall probing needs a few tests of its own, and just
 
972
                 dnl won't work if the kernel doesn't export init_mm
 
973
                 AS_IF([test "$enable_linux_syscall_probing" = "yes"], [
 
974
                   LINUX_EXPORTS_INIT_MM
 
975
                   AS_IF([test "$ac_cv_linux_exports_init_mm" = "no"], [
 
976
                     AC_MSG_ERROR(
 
977
                       [Can't do syscall probing without exported init_mm])
 
978
                   ])
 
979
                   LINUX_EXPORTS_SYS_CHDIR
 
980
                   LINUX_EXPORTS_SYS_OPEN
 
981
                   AC_DEFINE(ENABLE_LINUX_SYSCALL_PROBING, 1,
 
982
                             [define to enable syscall table probes])
 
983
                 ])
 
984
 
 
985
                 dnl Packaging and SMP build
 
986
                 if test "x$with_linux_kernel_packaging" != "xyes" ; then
 
987
                   LINUX_WHICH_MODULES
 
988
                 else
 
989
                   AC_SUBST(MPS,'SP')
 
990
                 fi
 
991
 
 
992
                 dnl Syscall probing
 
993
                 if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
 
994
                   AS_IF([test "$enable_linux_syscall_probing" = "yes"], [
 
995
                     AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
 
996
                   ])
 
997
                   ac_cv_linux_exports_sys_call_table=no
 
998
                   if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
 
999
                     ac_cv_linux_exports_ia32_sys_call_table=yes
 
1000
                   fi
 
1001
                 else
 
1002
                   LINUX_EXPORTS_KALLSYMS_ADDRESS
 
1003
                   LINUX_EXPORTS_KALLSYMS_SYMBOL
 
1004
                   LINUX_EXPORTS_SYS_CALL_TABLE
 
1005
                   LINUX_EXPORTS_IA32_SYS_CALL_TABLE
 
1006
                   if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
 
1007
                         linux_syscall_method=none
 
1008
                         if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
 
1009
                            linux_syscall_method=scan
 
1010
                            if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
 
1011
                               linux_syscall_method=scan_with_kallsyms_address
 
1012
                            fi
 
1013
                         fi
 
1014
                         if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
 
1015
                            linux_syscall_method=kallsyms_symbol
 
1016
                         fi
 
1017
                         if test "x$linux_syscall_method" = "xnone"; then
 
1018
                            AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
 
1019
                            linux_syscall_method=scan
 
1020
                         fi
 
1021
                   fi
 
1022
                 fi
 
1023
                 if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
 
1024
                  AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
 
1025
                 fi
 
1026
                 if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
 
1027
                  AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
 
1028
                 fi
 
1029
                 if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
 
1030
                  AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
 
1031
                 else
 
1032
                  AC_MSG_WARN([your kernel does not have a usable symlink cache API])
 
1033
                 fi
 
1034
                :
 
1035
                fi
 
1036
dnl Linux-only, but just enable always.
 
1037
                AC_DEFINE(AFS_CACHE_BYPASS, 1, [define to activate cache bypassing Unix client])
 
1038
esac
 
1039
 
 
1040
AC_CACHE_CHECK([if struct sockaddr has sa_len field],
 
1041
    [ac_cv_sockaddr_len],
 
1042
    [AC_TRY_COMPILE( [#include <sys/types.h>
 
1043
#include <sys/socket.h>],
 
1044
                     [struct sockaddr *a; a->sa_len=0;],
 
1045
                     [ac_cv_sockaddr_len=yes],
 
1046
                     [ac_cv_sockaddr_len=no])
 
1047
])
 
1048
AS_IF([test "$ac_cv_sockaddr_len" = "yes"],
 
1049
      [AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1,
 
1050
                 [define if you struct sockaddr sa_len])])
 
1051
 
 
1052
if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
 
1053
        echo Skipping library tests because they confuse Irix.
 
1054
else
 
1055
  AC_SEARCH_LIBS([socket], [socket inet])
 
1056
  AC_SEARCH_LIBS([connect], [nsl])
 
1057
  AC_SEARCH_LIBS([gethostbyname], [dns nsl resolv])
 
1058
 
 
1059
  dnl darwin wants it, aix hates it
 
1060
  AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
 
1061
  AC_TRY_COMPILE([
 
1062
  #include <stdlib.h>
 
1063
  #include <stdio.h>
 
1064
  #include <sys/types.h>
 
1065
  #include <sys/socket.h>
 
1066
  #include <netinet/in.h>
 
1067
  #include <arpa/inet.h>
 
1068
  #include <arpa/nameser.h>
 
1069
  #include <arpa/nameser_compat.h>
 
1070
  #include <resolv.h>
 
1071
  ], [static int i; i = 0;],
 
1072
  [AC_MSG_RESULT(yes)
 
1073
   AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H, 1, [define if arpa/nameser_compat.h exists])],
 
1074
  [AC_MSG_RESULT(no)
 
1075
   ])
 
1076
 
 
1077
  openafs_save_libs="$LIBS"
 
1078
  AC_MSG_CHECKING([for res_search])
 
1079
  AC_FUNC_RES_SEARCH
 
1080
 
 
1081
  if test "$ac_cv_func_res_search" = no; then
 
1082
      for lib in dns nsl resolv; do
 
1083
        if test "$ac_cv_func_res_search" != yes; then
 
1084
          LIBS="-l$lib $LIBS"
 
1085
          AC_FUNC_RES_SEARCH
 
1086
          LIBS="$openafs_save_libs"
 
1087
        fi
 
1088
      done    
 
1089
      if test "$ac_cv_func_res_search" = yes; then
 
1090
        LIB_AFSDB="-l$lib"
 
1091
        AC_DEFINE(HAVE_RES_SEARCH, 1, [])
 
1092
        AC_MSG_RESULT([yes, in lib$lib])
 
1093
      else
 
1094
        AC_MSG_RESULT(no)
 
1095
      fi
 
1096
  else
 
1097
    AC_DEFINE(HAVE_RES_SEARCH, 1, [])
 
1098
    AC_MSG_RESULT(yes)
 
1099
  fi
 
1100
  
 
1101
fi
 
1102
 
 
1103
AC_CHECK_RESOLV_RETRANS
 
1104
 
 
1105
AC_CACHE_CHECK([for setsockopt(, SOL_IP, IP_RECVERR)],
 
1106
    [ac_cv_setsockopt_iprecverr],
 
1107
    [AC_TRY_COMPILE( [
 
1108
#include <sys/types.h>
 
1109
#include <sys/socket.h>
 
1110
#include <netinet/in.h>],
 
1111
[int on=1;
 
1112
setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));],
 
1113
        [ac_cv_setsockopt_iprecverr=yes],
 
1114
        [ac_cv_setsockopt_iprecverr=no])])
 
1115
 
 
1116
AS_IF([test "$ac_cv_setsockopt_iprecverr" = "yes"],
 
1117
      [AC_DEFINE(ADAPT_PMTU_RECVERR, 1,
 
1118
                 [define if asynchronous socket errors can be received])])
 
1119
 
 
1120
PTHREAD_LIBS=error
 
1121
if test "x$MKAFS_OSTYPE" = OBSD; then
 
1122
        PTHREAD_LIBS="-pthread"
 
1123
fi
 
1124
if test "x$MKAFS_OSTYPE" = xDFBSD; then
 
1125
        PTHREAD_LIBS="-pthread"
 
1126
fi
 
1127
if test "x$PTHREAD_LIBS" = xerror; then
 
1128
        AC_CHECK_LIB(pthread, pthread_attr_init,
 
1129
                PTHREAD_LIBS="-lpthread")
 
1130
fi
 
1131
if test "x$PTHREAD_LIBS" = xerror; then
 
1132
        AC_CHECK_LIB(pthreads, pthread_attr_init,
 
1133
                PTHREAD_LIBS="-lpthreads")
 
1134
fi
 
1135
if test "x$PTHREAD_LIBS" = xerror; then
 
1136
        AC_CHECK_LIB(c_r, pthread_attr_init,
 
1137
                PTHREAD_LIBS="-lc_r")
 
1138
fi
 
1139
if test "x$PTHREAD_LIBS" = xerror; then
 
1140
        AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
 
1141
fi
 
1142
if test "x$PTHREAD_LIBS" = xerror; then
 
1143
        # pthread_attr_init is a macro under HPUX 11.0 and 11.11
 
1144
        AC_CHECK_LIB(pthread, pthread_attr_destroy,
 
1145
                PTHREAD_LIBS="-lpthread")
 
1146
fi
 
1147
if test "x$PTHREAD_LIBS" = xerror; then
 
1148
        AC_MSG_WARN(*** Unable to locate working posix thread library ***)
 
1149
fi
 
1150
AC_SUBST(PTHREAD_LIBS)
 
1151
 
 
1152
HOST_CPU="$host_cpu"
 
1153
 
 
1154
if test "x$with_bsd_kernel_headers" != "x"; then
 
1155
        BSD_KERNEL_PATH="$with_bsd_kernel_headers"
 
1156
else
 
1157
        BSD_KERNEL_PATH="/usr/src/sys"
 
1158
fi
 
1159
 
 
1160
if test "x$with_bsd_kernel_build" != "x"; then
 
1161
        BSD_KERNEL_BUILD="$with_bsd_kernel_build"
 
1162
else
 
1163
        case $AFS_SYSNAME in
 
1164
                *_fbsd_*)
 
1165
                        BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
 
1166
                        ;;
 
1167
                *_nbsd*)
 
1168
                        BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/arch/${HOST_CPU}/compile/GENERIC"
 
1169
        esac
 
1170
fi
 
1171
 
 
1172
# Fast restart
 
1173
if test "$enable_supergroups" = "yes"; then
 
1174
        AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
 
1175
fi
 
1176
 
 
1177
if test "$enable_bitmap_later" = "yes"; then
 
1178
        AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
 
1179
fi
 
1180
 
 
1181
if test "$enable_unix_sockets" = "yes"; then
 
1182
        AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
 
1183
        USE_UNIX_SOCKETS="yes"
 
1184
else
 
1185
        USE_UNIX_SOCKETS="no"
 
1186
fi
 
1187
AC_SUBST(USE_UNIX_SOCKETS)
 
1188
 
 
1189
dnl if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
 
1190
dnl     AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
 
1191
dnl fi
 
1192
 
 
1193
if test "$enable_namei_fileserver" = "yes"; then
 
1194
        AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
 
1195
        VFSCK=""
 
1196
else
 
1197
        if test "$enable_namei_fileserver" = "default"; then
 
1198
                case $host in
 
1199
                        *-solaris2.10*)
 
1200
                                AC_MSG_WARN(Some Solaris 10 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
 
1201
                                AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
 
1202
                                VFSCK=""
 
1203
                                ;;
 
1204
                        *-solaris2.11*)
 
1205
                                AC_MSG_WARN(Solaris 11 versions are not safe with the inode fileserver. Forcing namei. Override with --disable-namei-fileserver)
 
1206
                                AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
 
1207
                                VFSCK=""
 
1208
                                ;;
 
1209
                        *)
 
1210
                                VFSCK="vfsck"
 
1211
                                ;;
 
1212
                esac
 
1213
        else
 
1214
                VFSCK="vfsck"
 
1215
        fi
 
1216
fi
 
1217
 
 
1218
dnl check for tivoli
 
1219
AC_MSG_CHECKING(for tivoli tsm butc support)
 
1220
XBSA_CFLAGS=""
 
1221
if test "$enable_tivoli_tsm" = "yes"; then
 
1222
        XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
 
1223
        XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
 
1224
        XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
 
1225
        XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
 
1226
 
 
1227
        if test -r "$XBSADIR3/dsmapifp.h"; then
 
1228
                XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
 
1229
                XBSA_XLIBS="-ldl"
 
1230
                AC_MSG_RESULT([yes, $XBSA_CFLAGS])
 
1231
        elif test -r "$XBSADIR4/dsmapifp.h"; then
 
1232
                XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
 
1233
                XBSA_XLIBS="-ldl"
 
1234
                AC_MSG_RESULT([yes, $XBSA_CFLAGS])
 
1235
        elif test -r "$XBSADIR1/xbsa.h"; then
 
1236
                XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
 
1237
                XBSA_XLIBS=""
 
1238
                AC_MSG_RESULT([yes, $XBSA_CFLAGS])
 
1239
        elif test -r "$XBSADIR2/xbsa.h"; then
 
1240
                XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
 
1241
                XBSA_XLIBS=""
 
1242
                AC_MSG_RESULT([yes, $XBSA_CFLAGS])
 
1243
        else
 
1244
                AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
 
1245
        fi
 
1246
else
 
1247
        AC_MSG_RESULT([no])
 
1248
fi
 
1249
AC_SUBST(XBSA_CFLAGS)
 
1250
AC_SUBST(XBSA_XLIBS) 
 
1251
 
 
1252
dnl checks for header files.
 
1253
AC_HEADER_STDC
 
1254
AC_HEADER_SYS_WAIT
 
1255
AC_HEADER_DIRENT
 
1256
AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h grp.h)
 
1257
AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
 
1258
AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
 
1259
AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h sys/pag.h)
 
1260
AC_CHECK_HEADERS(windows.h direct.h sys/ipc.h sys/resource.h)
 
1261
AC_CHECK_HEADERS(security/pam_modules.h ucontext.h regex.h sys/statvfs.h sys/statfs.h sys/bitypes.h)
 
1262
AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
 
1263
AC_CHECK_HEADERS(et/com_err.h)
 
1264
AC_CHECK_HEADERS(ncurses.h curses.h)
 
1265
AC_CHECK_HEADERS(search.h)
 
1266
 
 
1267
AC_CHECK_TYPES([fsblkcnt_t],,,[
 
1268
#include <sys/types.h>
 
1269
#ifdef HAVE_SYS_BITYPES_H
 
1270
#include <sys/bitypes.h>
 
1271
#endif
 
1272
#ifdef HAVE_SYS_STATFS_H
 
1273
#include <sys/statfs.h>
 
1274
#endif
 
1275
#ifdef HAVE_SYS_STATVFS_H
 
1276
#include <sys/statvfs.h>
 
1277
#endif
 
1278
])
 
1279
 
 
1280
dnl see what struct stat has for timestamps
 
1281
AC_CHECK_MEMBERS([struct stat.st_ctimespec, struct stat.st_ctimensec])
 
1282
 
 
1283
dnl check for curses-lib
 
1284
save_LIBS=$LIBS
 
1285
AC_CHECK_LIB( [ncurses], [setupterm],
 
1286
[LIB_curses=-lncurses],
 
1287
    [AC_CHECK_LIB([Hcurses], [setupterm], [LIB_curses=-lHcurses],
 
1288
        [AC_CHECK_LIB([curses], [setupterm], [LIB_curses=-lcurses])
 
1289
    ])
 
1290
])
 
1291
LIBS=$save_LIBS
 
1292
AC_SUBST(LIB_curses)
 
1293
 
 
1294
OPENAFS_TEST_PACKAGE(libintl,[#include <libintl.h>],[-lintl],,,INTL)
 
1295
 
 
1296
dnl Don't build PAM on IRIX; the interface doesn't work for us.
 
1297
if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
 
1298
        case $AFS_SYSNAME in
 
1299
        sgi_*)
 
1300
                HAVE_PAM="no"
 
1301
                ;;
 
1302
        *)
 
1303
                HAVE_PAM="yes"
 
1304
                ;;
 
1305
        esac
 
1306
else
 
1307
        HAVE_PAM="no"
 
1308
fi
 
1309
AC_SUBST(HAVE_PAM)
 
1310
 
 
1311
if test "$enable_login" = yes; then
 
1312
        BUILD_LOGIN="yes"
 
1313
else
 
1314
        BUILD_LOGIN="no"
 
1315
fi
 
1316
AC_SUBST(BUILD_LOGIN)
 
1317
 
 
1318
AC_CHECK_FUNCS(snprintf strlcat strlcpy flock getrlimit strnlen tsearch)
 
1319
AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
 
1320
AC_CHECK_FUNCS(setvbuf vsyslog getcwd)
 
1321
AC_CHECK_FUNCS(regcomp regexec regerror)
 
1322
AC_CHECK_FUNCS(fseeko64 ftello64 pread preadv pwrite pwritev preadv64 pwritev64)
 
1323
AC_CHECK_FUNCS([setenv unsetenv])
 
1324
 
 
1325
case $AFS_SYSNAME in
 
1326
*hp_ux* | *hpux*)
 
1327
   AC_MSG_WARN([Some versions of HP-UX have a buggy positional I/O implementation. Forcing no positional I/O.])
 
1328
   ;;
 
1329
*)
 
1330
   AC_MSG_CHECKING([for positional I/O])
 
1331
   if test "$ac_cv_func_pread" = "yes" && \
 
1332
           test "$ac_cv_func_pwrite" = "yes"; then
 
1333
      AC_DEFINE(HAVE_PIO, 1, [define if you have pread() and pwrite()])
 
1334
      AC_MSG_RESULT(yes)
 
1335
   else
 
1336
     AC_MSG_RESULT(no)
 
1337
   fi
 
1338
   AC_MSG_CHECKING([for vectored positional I/O])
 
1339
   AS_IF([test "$ac_cv_func_preadv" = "yes" -a \
 
1340
               "$ac_cv_func_pwritev" = "yes" -a \
 
1341
               "$ac_cv_func_preadv64" = "yes" -a \
 
1342
               "$ac_cv_func_pwritev64" = "yes"],
 
1343
         [AC_DEFINE(HAVE_PIOV, 1, [define if you have preadv() and pwritev()])
 
1344
          AC_MSG_RESULT(yes)],
 
1345
         [AC_MSG_RESULT(no)])
 
1346
   ;;
 
1347
esac
 
1348
 
 
1349
AC_MSG_CHECKING([for POSIX regex library])
 
1350
if test "$ac_cv_header_regex_h" = "yes" && \
 
1351
        test "$ac_cv_func_regcomp" = "yes" && \
 
1352
        test "$ac_cv_func_regexec" = "yes" && \
 
1353
        test "$ac_cv_func_regerror" = "yes"; then
 
1354
    AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
 
1355
    AC_MSG_RESULT(yes)
 
1356
else
 
1357
    AC_MSG_RESULT(no)
 
1358
fi
 
1359
 
 
1360
AC_TYPE_SIGNAL
 
1361
AC_CHECK_SIZEOF(void *)
 
1362
AC_CHECK_SIZEOF(unsigned long long)
 
1363
AC_CHECK_SIZEOF(unsigned long)
 
1364
AC_CHECK_SIZEOF(unsigned int)
 
1365
AC_TYPE_INTPTR_T
 
1366
AC_TYPE_UINTPTR_T
 
1367
AC_TYPE_SSIZE_T
 
1368
AC_CHECK_TYPE([sig_atomic_t],[],
 
1369
    [AC_DEFINE([sig_atomic_t], [int],
 
1370
        [Define to int if <signal.h> does not define.])],
 
1371
[#include <sys/types.h>
 
1372
#include <signal.h>])
 
1373
AC_CHECK_TYPE([socklen_t],[],
 
1374
    [AC_DEFINE([socklen_t], [int],
 
1375
        [Define to int if <sys/socket.h> does not define.])],
 
1376
[#include <sys/types.h>
 
1377
#include <sys/socket.h>])
 
1378
AC_CHECK_TYPES(off64_t)
 
1379
AC_SIZEOF_TYPE(long)
 
1380
 
 
1381
AC_HEADER_PAM_CONST
 
1382
 
 
1383
AC_CHECK_FUNCS(timegm)
 
1384
AC_CHECK_FUNCS(daemon)
 
1385
 
 
1386
dnl Directory PATH handling
 
1387
if test "x$enable_transarc_paths" = "xyes"  ; then 
 
1388
    afsconfdir=${afsconfdir=/usr/afs/etc}
 
1389
    viceetcdir=${viceetcdir=/usr/vice/etc}
 
1390
    afskerneldir=${afskerneldir=${viceetcdir}}
 
1391
    afssrvbindir=${afssrvbindir=/usr/afs/bin}
 
1392
    afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
 
1393
    afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
 
1394
    afsdbdir=${afsdbdir=/usr/afs/db}
 
1395
    afslogsdir=${afslogsdir=/usr/afs/logs}
 
1396
    afslocaldir=${afslocaldir=/usr/afs/local}
 
1397
    afsbackupdir=${afsbackupdir=/usr/afs/backup}
 
1398
    afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
 
1399
    afsdatadir=${afsdatadir=/usr/vice/etc}
 
1400
else 
 
1401
    afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
 
1402
    viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
 
1403
    afskerneldir=${afskerneldir='${libdir}/openafs'}
 
1404
    afssrvbindir=${afssrvbindir='${bindir}'}
 
1405
    afssrvsbindir=${afssrvsbindir='${sbindir}'}
 
1406
    afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
 
1407
    afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
 
1408
    afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
 
1409
    afslocaldir=${afslocaldir='${localstatedir}/openafs'}
 
1410
    afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
 
1411
    afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
 
1412
    afsdatadir=${afsdatadir='${datadir}/openafs'}
 
1413
fi
 
1414
AC_SUBST(afsconfdir)
 
1415
AC_SUBST(viceetcdir)
 
1416
AC_SUBST(afskerneldir)
 
1417
AC_SUBST(afssrvbindir)
 
1418
AC_SUBST(afssrvsbindir)
 
1419
AC_SUBST(afssrvlibexecdir)
 
1420
AC_SUBST(afsdbdir)
 
1421
AC_SUBST(afslogsdir)
 
1422
AC_SUBST(afslocaldir)
 
1423
AC_SUBST(afsbackupdir)
 
1424
AC_SUBST(afsbosconfigdir)
 
1425
AC_SUBST(afsdatadir)
 
1426
 
 
1427
if test "x$enable_kernel_module" = "xyes"; then
 
1428
ENABLE_KERNEL_MODULE=libafs
 
1429
fi
 
1430
 
 
1431
if test "x$enable_pthreaded_ubik" = "xyes"; then
 
1432
ENABLE_PTHREADED_UBIK=yes
 
1433
fi
 
1434
 
 
1435
AC_SUBST(VFSCK)
 
1436
AC_SUBST(AFS_SYSNAME)
 
1437
AC_SUBST(AFS_PARAM_COMMON)
 
1438
AC_SUBST(ENABLE_KERNEL_MODULE)
 
1439
AC_SUBST(ENABLE_PTHREADED_UBIK)
 
1440
AC_SUBST(LIB_AFSDB)
 
1441
AC_SUBST(LINUX_KERNEL_PATH)
 
1442
AC_SUBST(LINUX_KERNEL_BUILD)
 
1443
AC_SUBST(HOST_CPU)
 
1444
AC_SUBST(BSD_KERNEL_PATH)
 
1445
AC_SUBST(BSD_KERNEL_BUILD)
 
1446
AC_SUBST(LINUX_VERSION)
 
1447
AC_SUBST(MKAFS_OSTYPE)
 
1448
AC_SUBST(TOP_OBJDIR)
 
1449
AC_SUBST(TOP_SRCDIR)
 
1450
AC_SUBST(TOP_INCDIR)
 
1451
AC_SUBST(TOP_LIBDIR)
 
1452
AC_SUBST(DEST)
 
1453
AC_SUBST(DARWIN_INFOFILE)
 
1454
AC_SUBST(IRIX_BUILD_IP35)
 
1455
AC_SUBST(HTML_XSL)
 
1456
AC_SUBST(XSLTPROC)
 
1457
AC_SUBST(DOCBOOK2PDF)
 
1458
 
 
1459
OPENAFS_OSCONF
 
1460
OPENAFS_FUSE
 
1461
 
 
1462
TOP_SRCDIR="${srcdir}/src"
 
1463
dnl
 
1464
dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
 
1465
dnl
 
1466
case $TOP_SRCDIR in
 
1467
        /*)
 
1468
                ;;
 
1469
        *)
 
1470
                TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
 
1471
                ;;
 
1472
esac
 
1473
 
 
1474
TOP_OBJDIR="${SRCDIR_PARENT}"
 
1475
TOP_INCDIR="${SRCDIR_PARENT}/include"
 
1476
TOP_LIBDIR="${SRCDIR_PARENT}/lib"
 
1477
if test "${DEST}x" = "x"; then
 
1478
        DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
 
1479
fi
 
1480
 
 
1481
HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
 
1482
HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
 
1483
AC_SUBST(HELPER_SPLINT)
 
1484
AC_SUBST(HELPER_SPLINTCFG)
 
1485
 
 
1486
mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs
 
1487
 
 
1488
 
 
1489
dnl Check to see if crypt lives in a different library
 
1490
AC_CHECK_LIB(crypt, crypt, LIB_crypt="-lcrypt")
 
1491
AC_SUBST(LIB_crypt)
 
1492
 
 
1493
dnl Check to see if the compiler support labels in structs
 
1494
AC_MSG_CHECKING(for label support in structs)
 
1495
AC_TRY_COMPILE([], [
 
1496
extern void osi_UFSOpen(void);
 
1497
struct labeltest {
 
1498
   void (*open) (void);
 
1499
};
 
1500
struct labeltest struct_labeltest = {
 
1501
   .open       = osi_UFSOpen,
 
1502
}
 
1503
],
 
1504
[AC_MSG_RESULT(yes)
 
1505
 AC_DEFINE(HAVE_STRUCT_LABEL_SUPPORT, 1, [Define to 1 if your compiler supports labels in structs.])
 
1506
],
 
1507
[AC_MSG_RESULT(no)
 
1508
])
 
1509
 
 
1510
])
 
1511
 
 
1512
AC_DEFUN([SUMMARY], [
 
1513
    # Print a configuration summary
 
1514
echo 
 
1515
echo "**************************************"
 
1516
echo configure summary
 
1517
echo
 
1518
AS_IF([test $LIB_curses],[
 
1519
echo "LIB_curses :                $LIB_curses" ],[
 
1520
echo "XXX LIB_curses  not found! not building scout and afsmonitor!"
 
1521
])
 
1522
echo 
 
1523
echo "**************************************"
 
1524
])