DEVEL15-linux-2-6-27-20080816
[openafs.git] / acinclude.m4
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
9 AC_CANONICAL_HOST
10 SRCDIR_PARENT=`pwd`
11
12 #BOZO_SAVE_CORES pam sia
13
14 dnl System identity.
15 AC_ARG_WITH([afs-sysname],
16     [AS_HELP_STRING([--with-afs-sysname=sys], [use sys for the afs sysname])])
17
18 dnl General feature options.
19 AC_ARG_ENABLE([afsdb],
20     [AS_HELP_STRING([--disable-afsdb], [disable AFSDB DNS RR support])],
21     ,
22     [enable_afsdb="yes"])
23 AC_ARG_ENABLE([obsolete],
24     [AC_HELP_STRING([--enable-obsolete],
25         [enable obsolete portions of AFS (mpp and package)])],
26     ,
27     [enable_obsolete="no"])
28 AC_ARG_ENABLE([pam],
29     [AS_HELP_STRING([--disable-pam], [disable PAM support])],
30     ,
31     [enable_pam="yes"])
32 AC_ARG_ENABLE([bos-restricted-mode],
33     [AS_HELP_STRING([--enable-bos-restricted-mode],
34         [enable bosserver restricted mode which disables certain bosserver
35          functionality])],
36     , 
37     [enable_bos_restricted_mode="no"])
38 AC_ARG_ENABLE([bos-new-config],
39     [AS_HELP_STRING([--enable-bos-new-config],
40         [enable bosserver pickup of BosConfig.new on restarts])],
41     ,
42     [enable_bos_new_config="no"])
43 AC_ARG_ENABLE([largefile-fileserver],
44     [AS_HELP_STRING([--disable-largefile-fileserver],
45         [disable large file support in fileserver])],
46     ,
47     [enable_largefile_fileserver="yes"])
48 AC_ARG_ENABLE([namei-fileserver],
49     [AS_HELP_STRING([--enable-namei-fileserver],
50         [force compilation of namei fileserver in preference to inode
51          fileserver])],
52     , 
53     [enable_namei_fileserver="no"])
54 AC_ARG_ENABLE([supergroups],
55     [AS_HELP_STRING([--enable-supergroups],
56         [enable support for nested pts groups])],
57     , 
58     [enable_supergroups="no"])
59 AC_ARG_ENABLE([fast-restart],
60     [AS_HELP_STRING([--enable-fast-restart],
61         [enable fast startup of file server without salvaging])],
62     , 
63     [enable_fast_restart="no"])
64 AC_ARG_ENABLE([bitmap-later],
65     [AS_HELP_STRING([--enable-bitmap-later],
66         [enable fast startup of file server by not reading bitmap till
67          needed])],
68     , 
69     [enable_bitmap_later="no"])
70 AC_ARG_ENABLE([demand-attach-fs],
71     [AS_HELP_STRING([--enable-demand-attach-fs],
72         [enable Demand Attach Fileserver (please see documentation)])],
73     , 
74     [enable_demand_attach_fs="no"])
75 AC_ARG_ENABLE([disconnected],
76     [AS_HELP_STRING([--enable-disconnected],
77         [enable disconnected support in cache manager (experimental)])],
78     , 
79     [enable_disconnected="no"])
80 AC_ARG_ENABLE([unix-sockets],
81     [AS_HELP_STRING([--enable-unix-sockets],
82         [enable use of unix domain sockets for fssync])],
83     ,
84     [enable_unix_sockets="yes"])
85 AC_ARG_ENABLE([full-vos-listvol-switch],
86     [AS_HELP_STRING([--disable-full-vos-listvol-switch],
87         [disable vos full listvol switch for formatted output])],
88     , 
89     [enable_full_vos_listvol_switch="yes"])
90 AC_ARG_ENABLE([icmp-pmtu-discovery],
91     [AS_HELP_STRING([--enable-icmp-pmtu-discovery],
92         [enable path MTU discovery by decoding ICMP unreachable replies])],
93     , 
94     [enable_icmp_pmtu_discovery="no"])
95 AC_ARG_ENABLE([tivoli-tsm],
96     [AS_HELP_STRING([--enable-tivoli-tsm],
97         [enable use of the Tivoli TSM API libraries for butc support])],
98     , 
99     [enable_tivoli_tsm="no"])
100 AC_ARG_ENABLE([pthreaded-ubik],
101     [AS_HELP_STRING([--enable-pthreaded-ubik],
102         [enable installation of pthreaded ubik applications (defaults to
103          disabled)])],
104     ,
105     [enable_pthreaded_ubik="no"])
106
107 dnl Kernel module build options.
108 AC_ARG_WITH([dux-kernel-headers],
109     [AS_HELP_STRING([--with-dux-kernel-headers=path],
110         [use the kernel headers found at path (optional, defaults to first
111          match in /usr/sys)])])
112 AC_ARG_WITH([linux-kernel-headers],
113     [AS_HELP_STRING([--with-linux-kernel-headers=path],
114         [use the kernel headers found at path (optional, defaults to
115          /usr/src/linux-2.4, then /usr/src/linux)])])
116 AC_ARG_WITH([bsd-kernel-headers],
117     [AS_HELP_STRING([--with-bsd-kernel-headers=path],
118         [use the kernel headers found at path (optional, defaults to
119          /usr/src/sys)])])
120 AC_ARG_WITH([bsd-kernel-build],
121     [AS_HELP_STRING([--with-bsd-kernel-build=path], 
122         [use the kernel build found at path (optional, defaults to
123          KSRC/i386/compile/GENERIC)])])
124 AC_ARG_WITH([linux-kernel-packaging],
125     [AS_HELP_STRING([--with-linux-kernel-packaging],
126         [use standard naming conventions to aid Linux kernel build packaging
127          (disables MPS, sets the kernel module name to openafs.ko, and
128          installs kernel modules into the standard Linux location)])],
129     [AC_SUBST(LINUX_KERNEL_PACKAGING, "yes")
130      AC_SUBST(LINUX_LIBAFS_NAME, "openafs")],
131     [AC_SUBST(LINUX_LIBAFS_NAME, "libafs")])
132 AC_ARG_ENABLE([kernel-module],
133     [AS_HELP_STRING([--disable-kernel-module],
134         [disable compilation of the kernel module (defaults to enabled)])],
135     , 
136     [enable_kernel_module="yes"])
137 AC_ARG_ENABLE([redhat-buildsys],
138     [AS_HELP_STRING([--enable-redhat-buildsys],
139         [enable compilation of the redhat build system kernel (defaults to
140          disabled)])],
141     ,
142     [enable_redhat_buildsys="no"])
143
144 dnl Installation locations.
145 AC_ARG_ENABLE([transarc-paths],
146     [AS_HELP_STRING([--enable-transarc-paths],
147         [use Transarc style paths like /usr/afs and /usr/vice])],
148     , 
149     [enable_transarc_paths="no"])
150
151 dnl Optimization and debugging flags.
152 AC_ARG_ENABLE([strip-binaries],
153     [AS_HELP_STRING([--disable-strip-binaries],
154         [disable stripping of symbol information from binaries (defaults to
155          enabled)])],
156     ,
157     [enable_strip_binaries="maybe"])
158 AC_ARG_ENABLE([debug],
159     [AS_HELP_STRING([--enable-debug],
160         [enable compilation of the user space code with debugging information
161          (defaults to disabled)])],
162     , 
163     [enable_debug="no"])
164 AC_ARG_ENABLE([optimize],
165     [AS_HELP_STRING([--disable-optimize],
166         [disable optimization for compilation of the user space code (defaults
167          to enabled)])],
168     , 
169     [enable_optimize="yes"])
170 AC_ARG_ENABLE([warnings],
171     [AS_HELP_STRING([--enable-warnings],
172         [enable compilation warnings when building with gcc (defaults to
173          disabled)])],
174     ,
175     [enable_warnings="no"])
176 AC_ARG_ENABLE([debug-kernel],
177     [AS_HELP_STRING([--enable-debug-kernel],
178         [enable compilation of the kernel module with debugging information
179          (defaults to disabled)])],
180     ,
181     [enable_debug_kernel="no"])
182 AC_ARG_ENABLE([optimize-kernel],
183     [AS_HELP_STRING([--disable-optimize-kernel],
184         [disable compilation of the kernel module with optimization (defaults
185          based on platform)])],
186     , 
187     [enable_optimize_kernel="yes"])
188 AC_ARG_ENABLE([debug-lwp],
189     [AS_HELP_STRING([--enable-debug-lwp],
190         [enable compilation of the LWP code with debugging information
191          (defaults to disabled)])],
192     ,
193     [enable_debug_lwp="no"])
194 AC_ARG_ENABLE([optimize-lwp],
195     [AS_HELP_STRING([--disable-optimize-lwp],
196         [disable optimization for compilation of the LWP code (defaults to
197          enabled)])],
198     ,
199     [enable_optimize_lwp="yes"])
200 AC_ARG_ENABLE([debug-pam],
201     [AS_HELP_STRING([--enable-debug-pam],
202         [enable compilation of the PAM code with debugging information
203          (defaults to disabled)])],
204     ,
205     [enable_debug_pam="no"])
206 AC_ARG_ENABLE([optimize-pam],
207     [AS_HELP_STRING([--disable-optimize-pam],
208         [disable optimization for compilation of the PAM code (defaults to
209          enabled)])],
210     ,
211     [enable_optimize_pam="yes"])
212
213
214 enable_login="no"
215
216 dnl weird ass systems
217 AC_AIX
218 AC_ISC_POSIX
219 AC_MINIX
220
221 dnl Various compiler setup.
222 AC_TYPE_PID_T
223 AC_TYPE_SIZE_T
224 AC_TYPE_SIGNAL
225 COMPILER_HAS_FUNCTION_MACRO
226
227 dnl Checks for programs.
228 AC_PROG_INSTALL
229 AC_PROG_LN_S
230 AC_PROG_RANLIB
231 AC_PROG_YACC
232 AM_PROG_LEX
233
234 OPENAFS_CHECK_BIGENDIAN
235
236 AC_MSG_CHECKING(your OS)
237 system=$host
238 case $system in
239         *-linux*)
240
241                 MKAFS_OSTYPE=LINUX
242                 if test "x$enable_redhat_buildsys" = "xyes"; then
243                  AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem])
244                 fi
245                 if test "x$enable_kernel_module" = "xyes"; then
246                  if test "x$with_linux_kernel_headers" != "x"; then
247                    LINUX_KERNEL_PATH="$with_linux_kernel_headers"
248                  else
249                    LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
250                    if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
251                      LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
252                    fi
253                    if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
254                      LINUX_KERNEL_PATH="/usr/src/linux-2.4"
255                    fi
256                    if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
257                      LINUX_KERNEL_PATH="/usr/src/linux"
258                    fi
259                  fi
260                if test -f "$LINUX_KERNEL_PATH/include/linux/utsrelease.h"; then
261                  linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/utsrelease.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
262                  LINUX_VERSION="$linux_kvers"
263                else
264                  if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
265                   linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
266                   if test "x$linux_kvers" = "x"; then
267                     if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
268                       linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $[]2 }'|tail -n 1`
269                       if test "x$linux_kvers" = "x"; then
270
271                         AC_MSG_ERROR(Linux headers lack version definition [2])
272                         exit 1
273                       else
274                         LINUX_VERSION="$linux_kvers"
275                       fi
276                     else
277                       AC_MSG_ERROR(Linux headers lack version definition)
278                       exit 1
279                     fi
280                   else
281                     LINUX_VERSION="$linux_kvers"
282                   fi
283                  else
284                     enable_kernel_module="no"
285                  fi
286                fi
287                  if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
288                      enable_kernel_module="no"
289                  fi
290                  if test "x$enable_kernel_module" = "xno"; then
291                   if test "x$with_linux_kernel_headers" != "x"; then
292                    AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
293                    exit 1
294                   else
295                    AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
296                   fi
297                  fi
298                  dnl do we need to determine SUBARCH from autoconf.h
299                  SUBARCH=default
300                 fi
301                 AC_MSG_RESULT(linux)
302                 if test "x$enable_kernel_module" = "xyes"; then
303                  AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'`
304                  if test "x${AFS_SYSKVERS}" = "x"; then
305                   AC_MSG_ERROR(Couldn't guess your Linux version [2])
306                  fi
307                 fi
308                 ;;
309         *-solaris*)
310                 MKAFS_OSTYPE=SOLARIS
311                 AC_MSG_RESULT(sun4)
312                 SOLARIS_UFSVFS_HAS_DQRWLOCK
313                 SOLARIS_PROC_HAS_P_COREFILE
314                 SOLARIS_FS_HAS_FS_ROLLED
315                 ;;
316         *-sunos*)
317                 MKAFS_OSTYPE=SUNOS
318                 enable_kernel_module=no
319                 AC_MSG_RESULT(sun4)
320                 ;;
321         *-hpux*)
322                 MKAFS_OSTYPE=HPUX
323                 AC_MSG_RESULT(hp_ux)
324                 if test -f "/usr/old/usr/include/ndir.h"; then
325                  AC_DEFINE(HAVE_USR_OLD_USR_INCLUDE_NDIR_H, 1, [define if you have old ndir.h])
326                 fi
327                 ;;
328         *-irix*)
329                 if test -d /usr/include/sys/SN/SN1; then
330                  IRIX_BUILD_IP35="IP35"
331                 fi
332                 MKAFS_OSTYPE=IRIX
333                 AC_MSG_RESULT(sgi)
334                 ;;
335         *-aix*)
336                 MKAFS_OSTYPE=AIX
337                 AC_MSG_RESULT(rs_aix)
338                 ;;
339         *-osf*)
340                 MKAFS_OSTYPE=DUX
341                 AC_MSG_RESULT(alpha_dux)
342                 if test "x$enable_kernel_module" = "xyes"; then
343                  if test "x$with_dux_kernel_headers" != "x"; then
344                    HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
345                  else
346                    HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
347                  fi
348                 fi
349                 if test "$HEADER_RT" = "*" ; then
350                         AC_MSG_ERROR([Need a configured kernel directory])
351                 fi
352                 AC_SUBST([HEADER_RT])
353                 ;;
354         powerpc-*-darwin*)
355                 MKAFS_OSTYPE=DARWIN
356                 AC_MSG_RESULT(ppc_darwin)
357                 ;;
358         i386-*-darwin*)
359                 MKAFS_OSTYPE=DARWIN
360                 AC_MSG_RESULT(x86_darwin)
361                 ;;
362         *-freebsd*)
363                 MKAFS_OSTYPE=FBSD
364                 AC_MSG_RESULT(i386_fbsd)
365                 ;;
366         *-netbsd*)
367                 MKAFS_OSTYPE=NBSD
368                 AC_MSG_RESULT(nbsd)
369                 ;;
370         *-openbsd*)
371                 MKAFS_OSTYPE=OBSD
372                 AC_MSG_RESULT(i386_obsd)
373                 ;;
374         *)
375                 AC_MSG_RESULT($system)
376                 ;;
377 esac
378
379 if test "x$with_afs_sysname" != "x"; then
380         AFS_SYSNAME="$with_afs_sysname"
381 else
382         AC_MSG_CHECKING(your AFS sysname)
383         case $host in
384                 i?86-*-openbsd?.?)
385                         v=${host#*openbsd}
386                         vM=${v%.*}
387                         vm=${v#*.}
388                         AFS_SYSNAME="i386_obsd${vM}${vm}"
389                         ;;
390                 sparc64-*-openbsd?.?)
391                         v=${host#*openbsd}
392                         vM=${v%.*}
393                         vm=${v#*.}
394                         AFS_SYSNAME="sparc64_obsd${vM}${vm}"
395                         ;;
396                 i?86-*-freebsd?.*)
397                         v=${host#*freebsd}
398                         vM=${v%.*}
399                         vm=${v#*.}
400                         AFS_SYSNAME="i386_fbsd_${vM}${vm}"
401                         ;;
402                 i?86-*-netbsd*1.5*)
403                         AFS_PARAM_COMMON=param.nbsd15.h
404                         AFS_SYSNAME="i386_nbsd15"
405                         ;;
406                 alpha-*-netbsd*1.5*)
407                         AFS_PARAM_COMMON=param.nbsd15.h
408                         AFS_SYSNAME="alpha_nbsd15"
409                         ;;
410                 i?86-*-netbsd*1.6[[M-Z]]*)
411                         AFS_PARAM_COMMON=param.nbsd20.h
412                         AFS_SYSNAME="i386_nbsd20"
413                         ;;
414                 powerpc-*-netbsd*1.6[[M-Z]]*)
415                         AFS_PARAM_COMMON=param.nbsd20.h
416                         AFS_SYSNAME="ppc_nbsd20"
417                         ;;
418                 i?86-*-netbsd*2.0*)
419                         AFS_PARAM_COMMON=param.nbsd20.h
420                         AFS_SYSNAME="i386_nbsd20"
421                         ;;
422                 amd64-*-netbsd*2.0*)
423                         AFS_PARAM_COMMON=param.nbsd20.h
424                         AFS_SYSNAME="amd64_nbsd20"
425                         ;;
426                 x86_64-*-netbsd*3.[0-8]*)
427                         AFS_PARAM_COMMON=param.nbsd30.h
428                         AFS_SYSNAME="amd64_nbsd30"
429                         ;;
430                 x86_64-*-netbsd*4.[0-8]*)
431                         AFS_PARAM_COMMON=param.nbsd40.h
432                         AFS_SYSNAME="amd64_nbsd40"
433                         ;;
434                 powerpc-*-netbsd*2.0*)
435                         AFS_PARAM_COMMON=param.nbsd20.h
436                         AFS_SYSNAME="ppc_nbsd20"
437                         ;;
438                 i?86-*-netbsd*1.6*)
439                         AFS_PARAM_COMMON=param.nbsd16.h
440                         AFS_SYSNAME="i386_nbsd16"
441                         ;;
442                 alpha-*-netbsd*1.6*)
443                         AFS_PARAM_COMMON=param.nbsd16.h
444                         AFS_SYSNAME="alpha_nbsd16"
445                         ;;
446                 powerpc-*-netbsd*1.6*)
447                         AFS_PARAM_COMMON=param.nbsd16.h
448                         AFS_SYSNAME="ppc_nbsd16"
449                         ;;
450                 i?86-*-netbsd*2.1*)
451                         AFS_PARAM_COMMON=param.nbsd21.h
452                         AFS_SYSNAME="i386_nbsd21"
453                         ;;
454                 i?86-*-netbsd*2.99*)
455                         AFS_PARAM_COMMON=param.nbsd30.h
456                         AFS_SYSNAME="i386_nbsd30"
457                         ;;
458                 i?86-*-netbsd*3.[[0-8]]*)
459                         AFS_PARAM_COMMON=param.nbsd30.h
460                         AFS_SYSNAME="i386_nbsd30"
461                         ;;
462                 i?86-*-netbsd*3.99*)
463                         AFS_PARAM_COMMON=param.nbsd30.h
464                         AFS_SYSNAME="i386_nbsd30"
465                         ;;
466                 i?86-*-netbsd*4.[[0-8]]*)
467                         AFS_PARAM_COMMON=param.nbsd40.h
468                         AFS_SYSNAME="i386_nbsd40"
469                         ;;
470                 i?86-*-netbsd*4.99*)
471                         AFS_PARAM_COMMON=param.nbsd40.h
472                         AFS_SYSNAME="i386_nbsd40"
473                         ;;
474                 hppa*-hp-hpux11.0*)
475                         AFS_SYSNAME="hp_ux110"
476                         ;;
477                 hppa*-hp-hpux11.11)
478                         AFS_SYSNAME="hp_ux11i"
479                         ;;
480                 hppa*-hp-hpux11.23)
481                         AFS_SYSNAME="hp_ux1123"
482                         ;;
483                 ia64-hp-hpux11.22)
484                         AFS_SYSNAME="ia64_hpux1122"
485                         ;;
486                 ia64-hp-hpux*)
487                         AFS_SYSNAME="ia64_hpux1123"
488                         ;;
489                 hppa*-hp-hpux10*)
490                         AFS_SYSNAME="hp_ux102"
491                         ;;
492                 powerpc-apple-darwin1.2*)
493                         AFS_SYSNAME="ppc_darwin_12"
494                         ;;
495                 powerpc-apple-darwin1.3*)
496                         AFS_SYSNAME="ppc_darwin_13"
497                         ;;
498                 powerpc-apple-darwin1.4*)
499                         AFS_SYSNAME="ppc_darwin_14"
500                         ;;
501                 powerpc-apple-darwin5.1*)
502                         AFS_SYSNAME="ppc_darwin_14"
503                         ;;
504                 powerpc-apple-darwin5.2*)
505                         AFS_SYSNAME="ppc_darwin_14"
506                         ;;
507                 powerpc-apple-darwin5.3*)
508                         AFS_SYSNAME="ppc_darwin_14"
509                         ;;
510                 powerpc-apple-darwin5.4*)
511                         AFS_SYSNAME="ppc_darwin_14"
512                         ;;
513                 powerpc-apple-darwin5.5*)
514                         AFS_SYSNAME="ppc_darwin_14"
515                         ;;
516                 powerpc-apple-darwin6.0*)
517                         AFS_SYSNAME="ppc_darwin_60"
518                         ;;
519                 powerpc-apple-darwin6.1*)
520                         AFS_SYSNAME="ppc_darwin_60"
521                         ;;
522                 powerpc-apple-darwin6.2*)
523                         AFS_SYSNAME="ppc_darwin_60"
524                         ;;
525                 powerpc-apple-darwin6.3*)
526                         AFS_SYSNAME="ppc_darwin_60"
527                         ;;
528                 powerpc-apple-darwin6.4*)
529                         AFS_SYSNAME="ppc_darwin_60"
530                         ;;
531                 powerpc-apple-darwin6.5*)
532                         AFS_SYSNAME="ppc_darwin_60"
533                         ;;
534                 powerpc-apple-darwin7.0*)
535                         AFS_SYSNAME="ppc_darwin_70"
536                         ;;
537                 powerpc-apple-darwin7.1*)
538                         AFS_SYSNAME="ppc_darwin_70"
539                         ;;
540                 powerpc-apple-darwin7.2*)
541                         AFS_SYSNAME="ppc_darwin_70"
542                         ;;
543                 powerpc-apple-darwin7.3*)
544                         AFS_SYSNAME="ppc_darwin_70"
545                         ;;
546                 powerpc-apple-darwin7.4*)
547                         AFS_SYSNAME="ppc_darwin_70"
548                         ;;
549                 powerpc-apple-darwin7.5*)
550                         AFS_SYSNAME="ppc_darwin_70"
551                         ;;
552                 powerpc-apple-darwin8.0*)
553                         AFS_SYSNAME="ppc_darwin_80"
554                         ;;
555                 powerpc-apple-darwin8.*)
556                         AFS_SYSNAME="ppc_darwin_80"
557                         ;;
558                 i386-apple-darwin8.*)
559                         AFS_SYSNAME="x86_darwin_80"
560                         ;;
561                 powerpc-apple-darwin9.*)
562                         AFS_SYSNAME="ppc_darwin_90"
563                         ;;
564                 i386-apple-darwin9.*)
565                         AFS_SYSNAME="x86_darwin_90"
566                         ;;
567                 sparc-sun-solaris2.5*)
568                         AFS_SYSNAME="sun4x_55"
569                         enable_login="yes"
570                         ;;
571                 sparc-sun-solaris2.6)
572                         AFS_SYSNAME="sun4x_56"
573                         ;;
574                 sparc-sun-solaris2.7)
575                         AFS_SYSNAME="sun4x_57"
576                         ;;
577                 sparc-sun-solaris2.8)
578                         AFS_SYSNAME="sun4x_58"
579                         ;;
580                 sparc-sun-solaris2.9)
581                         AFS_SYSNAME="sun4x_59"
582                         ;;
583                 sparc-sun-solaris2.10)
584                         AFS_SYSNAME="sun4x_510"
585                         ;;
586                 sparc-sun-solaris2.11)
587                         AFS_SYSNAME="sun4x_511"
588                         ;;
589                 sparc-sun-sunos4*)
590                         AFS_SYSNAME="sun4_413"
591                         enable_login="yes"
592                         ;;
593                 i386-pc-solaris2.7)
594                         AFS_SYSNAME="sunx86_57"
595                         ;;
596                 i386-pc-solaris2.8)
597                         AFS_SYSNAME="sunx86_58"
598                         ;;
599                 i386-pc-solaris2.9)
600                         AFS_SYSNAME="sunx86_59"
601                         ;;
602                 i386-pc-solaris2.10)
603                         AFS_SYSNAME="sunx86_510"
604                         ;;
605                 i386-pc-solaris2.11)
606                         AFS_SYSNAME="sunx86_511"
607                         ;;
608                 alpha*-dec-osf4.0*)
609                         AFS_SYSNAME="alpha_dux40"
610                         ;;
611                 alpha*-dec-osf5.0*)
612                         AFS_SYSNAME="alpha_dux50"
613                         ;;
614                 alpha*-dec-osf5.1*)
615                         AFS_SYSNAME="alpha_dux51"
616                         ;;
617                 mips-sgi-irix6.5)
618                         AFS_SYSNAME="sgi_65"
619                         ;;
620                 ia64-*-linux*)
621                         AFS_SYSNAME="ia64_linuxXX"
622                         ;;
623                 powerpc-*-linux*)
624                         AFS_SYSNAME="`/bin/arch`_linuxXX"
625                         ;;
626                 powerpc64-*-linux*)
627                         AFS_SYSNAME="ppc64_linuxXX"
628                         ;;
629                 alpha*-linux*)
630                         AFS_SYSNAME="alpha_linux_XX"
631                         ;;
632                 s390-*-linux*)
633                         AFS_SYSNAME="s390_linuxXX"
634                         ;;
635                 s390x-*-linux*)
636                         AFS_SYSNAME="s390x_linuxXX"
637                         ;;
638                 sparc-*-linux*)
639                         AFS_SYSNAME="`/bin/arch`_linuxXX"
640                         ;;
641                 sparc64-*-linux*)
642                         AFS_SYSNAME="sparc64_linuxXX"
643                         ;;
644                 i?86-*-linux*)
645                         AFS_SYSNAME="i386_linuxXX"
646                         ;;
647                 parisc-*-linux-gnu|hppa-*-linux-gnu)
648                         AFS_SYSNAME="parisc_linuxXX"
649                         enable_pam="no"
650                         ;;
651                 power*-ibm-aix4.2*)
652                         AFS_SYSNAME="rs_aix42"
653                         enable_pam="no"
654                         ;;
655                 power*-ibm-aix4.3*)
656                         AFS_SYSNAME="rs_aix42"
657                         enable_pam="no"
658                         ;;
659                 power*-ibm-aix5.1*)
660                         AFS_SYSNAME="rs_aix51"
661                         enable_pam="no"
662                         ;;
663                 power*-ibm-aix5.2*)
664                         AFS_SYSNAME="rs_aix52"
665                         enable_pam="no"
666                         ;;
667                 power*-ibm-aix5.3*)
668                         AFS_SYSNAME="rs_aix53"
669                         enable_pam="no"
670                         ;;
671                 x86_64-*-linux-gnu)
672                         AFS_SYSNAME="amd64_linuxXX"
673                         enable_pam="no"
674                         ;;
675                 *)
676                         AC_MSG_ERROR(An AFS sysname is required)
677                         exit 1
678                         ;;
679         esac
680         case $AFS_SYSNAME in
681                 *_linux* | *_umlinux*)
682                         if test "x${AFS_SYSKVERS}" = "x"; then
683                          AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
684                         fi
685                         _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
686                         AFS_SYSNAME="$_AFS_SYSNAME"
687                         save_CPPFLAGS="$CPPFLAGS"
688                         CPPFLAGS="-I${LINUX_KERNEL_PATH}/include $CPPFLAGS"
689                         AC_TRY_COMPILE(
690                          [#include <linux/autoconf.h>],
691                          [#ifndef CONFIG_USERMODE
692                           #error not UML
693                           #endif],
694                          ac_cv_linux_is_uml=yes,)
695                         if test "${ac_cv_linux_is_uml}" = yes; then
696                          _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/linux/umlinux/`
697                         fi
698                         CPPFLAGS="$save_CPPFLAGS"
699                         AFS_SYSNAME="$_AFS_SYSNAME"
700                         ;;
701         esac
702         AC_MSG_RESULT($AFS_SYSNAME)
703 fi
704
705 case $AFS_SYSNAME in *_linux* | *_umlinux*)
706
707                 # Add (sub-) architecture-specific paths needed by conftests
708                 case $AFS_SYSNAME  in
709                         *_umlinux26)
710                                 UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include"
711                                 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include"
712                                 UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include"
713                                 CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS"
714                 esac
715
716                 if test "x$enable_kernel_module" = "xyes"; then
717                  if test "x$enable_debug_kernel" = "xno"; then
718                         LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer"
719                  fi
720                  OPENAFS_GCC_SUPPORTS_MARCH
721                  AC_SUBST(P5PLUS_KOPTS)
722                  OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE
723                  OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING
724                  OPENAFS_GCC_SUPPORTS_NO_COMMON
725                  OPENAFS_GCC_SUPPORTS_PIPE
726                  AC_SUBST(LINUX_GCC_KOPTS)
727                  ifdef([OPENAFS_CONFIGURE_LIBAFS],
728                    [LINUX_BUILD_VNODE_FROM_INODE(src/config,src/afs)],
729                    [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)]
730                  )
731
732                  LINUX_KBUILD_USES_EXTRA_CFLAGS
733                  LINUX_KERNEL_COMPILE_WORKS
734                  LINUX_EXPORTS_FIND_TASK_BY_PID
735                  LINUX_EXPORTS_PROC_ROOT_FS
736                  LINUX_HAVE_CURRENT_KERNEL_TIME
737                  LINUX_KMEM_CACHE_INIT
738                  LINUX_HAVE_KMEM_CACHE_T
739                  LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
740                  LINUX_D_PATH_TAKES_STRUCT_PATH
741                  LINUX_NEW_EXPORT_OPS
742                  LINUX_CONFIG_H_EXISTS
743                  LINUX_COMPLETION_H_EXISTS
744                  LINUX_SEMAPHORE_H_EXISTS
745                  LINUX_EXPORTFS_H_EXISTS
746                  LINUX_DEFINES_FOR_EACH_PROCESS
747                  LINUX_DEFINES_PREV_TASK
748                  LINUX_FS_STRUCT_SUPER_HAS_ALLOC_INODE
749                  LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
750                  LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
751                  LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM
752                  LINUX_FS_STRUCT_INODE_HAS_I_BLKBITS
753                  LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE
754                  LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
755                  LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
756                  LINUX_FS_STRUCT_INODE_HAS_I_DEVICES
757                  LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
758                  LINUX_FS_STRUCT_INODE_HAS_I_MUTEX
759                  LINUX_FS_STRUCT_INODE_HAS_I_SB_LIST
760                  LINUX_FS_STRUCT_INODE_HAS_I_SECURITY
761                  LINUX_FS_STRUCT_INODE_HAS_INOTIFY_LOCK
762                  LINUX_FS_STRUCT_INODE_HAS_INOTIFY_SEM
763                  LINUX_INODE_SETATTR_RETURN_TYPE
764                  LINUX_WRITE_INODE_RETURN_TYPE
765                  LINUX_IOP_I_CREATE_TAKES_NAMEIDATA
766                  LINUX_IOP_I_LOOKUP_TAKES_NAMEIDATA
767                  LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
768                  LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
769                  LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
770                  LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
771                  LINUX_AOP_WRITEBACK_CONTROL
772                  LINUX_FS_STRUCT_FOP_HAS_FLOCK
773                  LINUX_FS_STRUCT_FOP_HAS_SENDFILE
774                  LINUX_FS_STRUCT_FOP_HAS_SPLICE
775                  LINUX_KERNEL_LINUX_SYSCALL_H
776                  LINUX_KERNEL_LINUX_SEQ_FILE_H
777                  LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
778                  LINUX_KERNEL_SELINUX
779                  LINUX_KERNEL_SOCK_CREATE
780                  LINUX_KERNEL_PAGE_FOLLOW_LINK
781                  LINUX_KERNEL_HLIST_UNHASHED
782                  LINUX_KEY_TYPE_H_EXISTS
783                  LINUX_NEED_RHCONFIG
784                  LINUX_RECALC_SIGPENDING_ARG_TYPE
785                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
786                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
787                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG
788                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
789                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
790                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_RLIM
791                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM
792                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_EXIT_STATE
793                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID
794                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TODO
795                  LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_THREAD_INFO
796                  LINUX_EXPORTS_TASKLIST_LOCK
797                  LINUX_GET_SB_HAS_STRUCT_VFSMOUNT
798                  LINUX_STATFS_TAKES_DENTRY
799                  LINUX_FREEZER_H_EXISTS
800                  LINUX_HAVE_SVC_ADDR_IN
801                  if test "x$ac_cv_linux_freezer_h_exists" = "xyes" ; then
802                   AC_DEFINE(FREEZER_H_EXISTS, 1, [define if you have linux/freezer.h])
803                  fi
804                  LINUX_REFRIGERATOR
805                  LINUX_LINUX_KEYRING_SUPPORT
806                  LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK
807                  LINUX_DO_SYNC_READ
808                  LINUX_GENERIC_FILE_AIO_READ
809                  LINUX_INIT_WORK_HAS_DATA
810                  LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
811                  LINUX_SYSCTL_TABLE_CHECKING
812                  LINUX_HAVE_IGET
813                  LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
814                  LINUX_EXPORTS_INIT_MM
815                  LINUX_EXPORTS_SYS_CHDIR
816                  LINUX_EXPORTS_SYS_CLOSE
817                  LINUX_EXPORTS_SYS_OPEN
818                  LINUX_EXPORTS_SYS_WAIT4
819                  LINUX_EXPORTS_RCU_READ_LOCK
820                  if test "x$with_linux_kernel_packaging" = "xno" ; then
821                    LINUX_WHICH_MODULES
822                  else
823                    AC_SUBST(MPS,'SP')
824                  fi
825                  if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then
826                    AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported])
827                    ac_cv_linux_exports_sys_call_table=no
828                    if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then
829                      ac_cv_linux_exports_ia32_sys_call_table=yes
830                    fi
831                  else
832                    LINUX_EXPORTS_KALLSYMS_ADDRESS
833                    LINUX_EXPORTS_KALLSYMS_SYMBOL
834                    LINUX_EXPORTS_SYS_CALL_TABLE
835                    LINUX_EXPORTS_IA32_SYS_CALL_TABLE
836                    if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then
837                          linux_syscall_method=none
838                          if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then
839                             linux_syscall_method=scan
840                             if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
841                                linux_syscall_method=scan_with_kallsyms_address
842                             fi
843                          fi
844                          if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
845                             linux_syscall_method=kallsyms_symbol
846                          fi
847                          if test "x$linux_syscall_method" = "xnone"; then
848                             AC_MSG_WARN([no available sys_call_table access method -- guessing scan])
849                             linux_syscall_method=scan
850                          fi
851                    fi
852                  fi
853                  if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
854                   AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
855                  fi
856                  if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
857                   AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
858                  fi
859                  if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
860                   AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
861                  fi
862                  if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
863                   AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
864                  fi
865                  if test "x$ac_cv_linux_exports_sys_open" = "xyes" ; then
866                   AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open])
867                  fi
868                  if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then
869                   AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close])
870                  fi
871                  if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then
872                   AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4])
873                  fi
874                  if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then
875                   AC_DEFINE(EXPORTED_SYS_CALL_TABLE)
876                  fi
877                  if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then
878                   AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE)
879                  fi
880                  if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then
881                   AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL)
882                  fi
883                  if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then
884                   AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS)
885                  fi
886                  if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then
887                   AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists])
888                  fi
889                  if test "x$ac_cv_linux_config_h_exists" = "xyes" ; then
890                   AC_DEFINE(CONFIG_H_EXISTS, 1, [define if config.h exists])
891                  fi
892                  if test "x$ac_cv_linux_exportfs_h_exists" = "xyes"; then
893                   AC_DEFINE(EXPORTFS_H_EXISTS, 1, [define if linux/exportfs.h exists])
894                  fi
895                  if test "x$ac_cv_linux_key_type_h_exists" = "xyes" ; then
896                   AC_DEFINE(KEY_TYPE_H_EXISTS, 1, [define if key-type.h exists])
897                  fi
898                  if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then
899                   AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined])
900                  fi
901                  if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then
902                   AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined])
903                  fi
904                  if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
905                   AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void])
906                  fi
907                  if test "x$ac_cv_linux_func_write_inode_returns_int" = "xyes" ; then
908                   AC_DEFINE(WRITE_INODE_NOT_VOID, 1, [define if your sops.write_inode returns non-void])
909                  fi
910                  if test "x$ac_cv_linux_fs_struct_super_has_alloc_inode" = "xyes" ; then
911                   AC_DEFINE(STRUCT_SUPER_HAS_ALLOC_INODE, 1, [define if your struct super_operations has alloc_inode])
912                  fi
913                  if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then 
914                   AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock])
915                  fi
916                  if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then 
917                   AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask])
918                  fi
919                  if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then 
920                   AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem])
921                  fi
922                  if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then 
923                   AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem])
924                  fi
925                  if test "x$ac_cv_linux_fs_struct_inode_has_i_blksize" = "xyes"; then 
926                   AC_DEFINE(STRUCT_INODE_HAS_I_BLKSIZE, 1, [define if your struct inode has i_blksize])
927                  fi
928                  if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then 
929                   AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices])
930                  fi
931                  if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then 
932                   AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security])
933                  fi
934                  if test "x$ac_cv_linux_fs_struct_inode_has_i_mutex" = "xyes"; then 
935                   AC_DEFINE(STRUCT_INODE_HAS_I_MUTEX, 1, [define if you struct inode has i_mutex])
936                  fi
937                  if test "x$ac_cv_linux_fs_struct_inode_has_i_sb_list" = "xyes"; then 
938                   AC_DEFINE(STRUCT_INODE_HAS_I_SB_LIST, 1, [define if you struct inode has i_sb_list])
939                  fi
940                  if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then 
941                   AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers])
942                  fi
943                  if test "x$ac_cv_linux_fs_struct_inode_has_inotify_lock" = "xyes"; then 
944                   AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_LOCK, 1, [define if your struct inode has inotify_lock])
945                  fi
946                  if test "x$ac_cv_linux_fs_struct_inode_has_inotify_sem" = "xyes"; then 
947                   AC_DEFINE(STRUCT_INODE_HAS_INOTIFY_SEM, 1, [define if your struct inode has inotify_sem])
948                  fi
949                  if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then 
950                   AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void])
951                  fi
952                  if test "x$ac_cv_linux_kernel_posix_lock_file_wait_arg" = "xyes" ; then
953                   AC_DEFINE(POSIX_LOCK_FILE_WAIT_ARG, 1, [define if your linux kernel uses 3 arguments for posix_lock_file])
954                  fi
955                  if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then
956                   AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features])
957                  fi
958                  if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then
959                   AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create])
960                  fi
961                  if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" ; then
962                   AC_DEFINE(HAVE_KERNEL_PAGE_FOLLOW_LINK, 1, [define if your linux kernel provides page_follow_link])
963                  fi
964                  if test "x$ac_cv_linux_kernel_hlist_unhashed" = "xyes" ; then
965                   AC_DEFINE(HAVE_KERNEL_HLIST_UNHASHED, 1, [define if your linux kernel provides hlist_unhashed])
966                  fi
967                  if test "x$ac_linux_syscall" = "xyes" ; then
968                   AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h])
969                  fi
970                  if test "x$ac_linux_seq_file" = "xyes" ; then
971                   AC_DEFINE(HAVE_KERNEL_LINUX_SEQ_FILE_H, 1, [define if your linux kernel has linux/seq_file.h])
972                  fi
973                  if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then 
974                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent])
975                  fi
976                  if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then 
977                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent])
978                  fi
979                  if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then 
980                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
981                  fi
982                  if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then 
983                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
984                  fi
985                  if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then 
986                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig])
987                  fi
988                  if test "x$ac_cv_linux_sched_struct_task_struct_has_rlim" = "xyes"; then 
989                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_RLIM, 1, [define if your struct task_struct has rlim])
990                  fi
991                  if test "x$ac_cv_linux_sched_struct_task_struct_has_signal_rlim" = "xyes"; then 
992                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM, 1, [define if your struct task_struct has signal->rlim])
993                  fi
994                  if test "x$ac_cv_linux_sched_struct_task_struct_has_exit_state" = "xyes"; then 
995                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_EXIT_STATE, 1, [define if your struct task_struct has exit_state])
996                  fi
997                  if test "x$ac_cv_linux_sched_struct_task_struct_has_tgid" = "xyes"; then 
998                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TGID, 1, [define if your struct task_struct has tgid])
999                  fi
1000                  if test "x$ac_cv_linux_sched_struct_task_struct_has_todo" = "xyes"; then 
1001                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_TODO, 1, [define if your struct task_struct has todo])
1002                  fi
1003                  if test "x$ac_cv_linux_sched_struct_task_struct_has_thread_info" = "xyes"; then 
1004                   AC_DEFINE(STRUCT_TASK_STRUCT_HAS_THREAD_INFO, 1, [define if your struct task_struct has thread_info])
1005                  fi
1006                  if test "x$ac_cv_linux_get_sb_has_struct_vfsmount" = "xyes"; then
1007                   AC_DEFINE(GET_SB_HAS_STRUCT_VFSMOUNT, 1, [define if your get_sb_nodev needs a struct vfsmount argument])
1008                  fi
1009                  if test "x$ac_cv_linux_statfs_takes_dentry" = "xyes"; then
1010                   AC_DEFINE(STATFS_TAKES_DENTRY, 1, [define if your statfs takes a dentry argument])
1011                  fi
1012                  if test "x$ac_cv_linux_func_a_writepage_takes_writeback_control" = "xyes" ; then
1013                   AC_DEFINE(AOP_WRITEPAGE_TAKES_WRITEBACK_CONTROL, 1, [define if your aops.writepage takes a struct writeback_control argument])
1014                  fi
1015                  if test "x$ac_cv_linux_func_refrigerator_takes_pf_freeze" = "xyes" ; then
1016                   AC_DEFINE(LINUX_REFRIGERATOR_TAKES_PF_FREEZE, 1, [define if your refrigerator takes PF_FREEZE])
1017                  fi
1018                  if test "x$ac_cv_linux_func_i_create_takes_nameidata" = "xyes" ; then
1019                   AC_DEFINE(IOP_CREATE_TAKES_NAMEIDATA, 1, [define if your iops.create takes a nameidata argument])
1020                  fi
1021                  if test "x$ac_cv_linux_func_f_flush_takes_fl_owner_t" = "xyes" ; then
1022                   AC_DEFINE(FOP_FLUSH_TAKES_FL_OWNER_T, 1, [define if your fops.flush takes an fl_owner_t argument])
1023                  fi
1024                  if test "x$ac_cv_linux_func_i_lookup_takes_nameidata" = "xyes" ; then
1025                   AC_DEFINE(IOP_LOOKUP_TAKES_NAMEIDATA, 1, [define if your iops.lookup takes a nameidata argument])
1026                  fi
1027                  if test "x$ac_cv_linux_func_i_permission_takes_nameidata" = "xyes" ; then
1028                   AC_DEFINE(IOP_PERMISSION_TAKES_NAMEIDATA, 1, [define if your iops.permission takes a nameidata argument])
1029                  fi
1030                  if test "x$ac_cv_linux_func_d_revalidate_takes_nameidata" = "xyes" ; then
1031                   AC_DEFINE(DOP_REVALIDATE_TAKES_NAMEIDATA, 1, [define if your dops.d_revalidate takes a nameidata argument])
1032                  fi
1033                  if test "x$ac_cv_linux_init_work_has_data" = "xyes" ; then
1034                   AC_DEFINE(INIT_WORK_HAS_DATA, 1, [define if INIT_WORK takes a data (3rd) argument])
1035                  fi
1036                  if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
1037                   AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
1038                  fi
1039                  if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
1040                   AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
1041                  fi
1042                  if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
1043                   AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
1044                  fi
1045                  if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
1046                   AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
1047                  fi
1048                  if test "x$ac_cv_linux_sysctl_table_checking" = "xyes" ; then
1049                   AC_DEFINE(SYSCTL_TABLE_CHECKING, 1, [define if your kernel has sysctl table checking])
1050                  fi
1051                  if test "x$ac_cv_linux_have_iget" = "xyes" ; then
1052                   AC_DEFINE(HAVE_IGET, 1, [define if your kernel has iget])
1053                  fi
1054                  if test "x$ac_cv_linux_struct_nameidata_has_path" = "xyes" ; then
1055                   AC_DEFINE(STRUCT_NAMEIDATA_HAS_PATH, 1, [define if your struct nameidata has path])
1056                  fi
1057                  if test "x$ac_cv_linux_exports_init_mm" = "xyes" ; then
1058                   AC_DEFINE(EXPORTED_INIT_MM, 1, [define if your kernel exports init_mm])
1059                  fi
1060                  if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
1061                   AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
1062                  fi
1063                  if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1064                   AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
1065                  fi
1066                  if test "x$ac_cv_linux_kmem_cache_init" = "xyes" ; then
1067                   AC_DEFINE(KMEM_CACHE_INIT, 1, [define for new kmem_cache init function parameters])
1068                  fi
1069                  if test "x$ac_cv_linux_have_current_kernel_time" = "xyes" ; then
1070                   AC_DEFINE(HAVE_CURRENT_KERNEL_TIME, 1, [define if current_kernel_time() exists])
1071                  fi
1072                  if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
1073                   AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
1074                  fi
1075                  if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
1076                   AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
1077                  else
1078                   AC_MSG_WARN([your kernel does not have a usable symlink cache API])
1079                  fi
1080                  if test "x$ac_cv_linux_have_svc_addr_in" = "xyes"; then
1081                   AC_DEFINE(HAVE_SVC_ADDR_IN, 1, [define if svc_add_in exists])
1082                  fi
1083                 :
1084                 fi
1085 esac
1086
1087 case $AFS_SYSNAME in
1088         *_darwin*)
1089                 DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
1090                 DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
1091                 dnl the test below fails on darwin, even if the CPPFLAGS below
1092                 dnl are added. the headers from Kernel.framework must be used
1093                 dnl when KERNEL is defined.
1094
1095                 dnl really, such a thing isn't guaranteed to work on any 
1096                 dnl platform until the kernel cflags from MakefileProto are
1097                 dnl known to configure
1098                 AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1099                 ;;
1100         *)
1101 AC_MSG_CHECKING(for definition of struct buf)
1102 dnl save_CPPFLAGS="$CPPFLAGS"
1103 dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
1104 AC_CACHE_VAL(ac_cv_have_struct_buf, [
1105         ac_cv_have_struct_buf=no
1106         AC_TRY_COMPILE(
1107                 [#include <sys/buf.h>],
1108                 [struct buf x;
1109                 printf("%d\n", sizeof(x));],
1110                 ac_cv_have_struct_buf=yes,)
1111         ]
1112 )
1113 dnl CPPFLAGS="$save_CPPFLAGS"
1114 AC_MSG_RESULT($ac_cv_have_struct_buf)
1115 if test "$ac_cv_have_struct_buf" = yes; then
1116         AC_DEFINE(HAVE_STRUCT_BUF, 1, [define if you have a struct buf])
1117 fi
1118 ;;
1119 esac
1120
1121
1122 AC_CACHE_VAL(ac_cv_sockaddr_len,
1123 [
1124 AC_MSG_CHECKING([if struct sockaddr has sa_len field])
1125 AC_TRY_COMPILE( [#include <sys/types.h>
1126 #include <sys/socket.h>],
1127 [struct sockaddr *a;
1128 a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
1129 AC_MSG_RESULT($ac_cv_sockaddr_len)])
1130 if test "$ac_cv_sockaddr_len" = "yes"; then
1131    AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
1132 fi
1133 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
1134         echo Skipping library tests because they confuse Irix.
1135 else
1136   AC_CHECK_FUNCS(socket)
1137
1138   if test "$ac_cv_func_socket" = no; then
1139     for lib in socket inet; do
1140         if test "$HAVE_SOCKET" != 1; then
1141                 AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET, 1, [define if you have socket]))
1142         fi
1143     done
1144   fi
1145   
1146   AC_CHECK_FUNCS(connect)       
1147
1148   if test "$ac_cv_func_connect" = no; then
1149     for lib in nsl; do
1150         if test "$HAVE_CONNECT" != 1; then
1151                 AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT, 1, [define if you have connect]))
1152         fi
1153     done
1154   fi
1155
1156   AC_CHECK_FUNCS(gethostbyname)
1157   if test "$ac_cv_func_gethostbyname" = no; then
1158         for lib in dns nsl resolv; do
1159           if test "$HAVE_GETHOSTBYNAME" != 1; then
1160             AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [define if you have gethostbyname]))
1161           fi
1162         done    
1163   fi    
1164
1165   dnl darwin wants it, aix hates it
1166   AC_MSG_CHECKING(for the useability of arpa/nameser_compat.h)
1167   AC_TRY_COMPILE([
1168   #include <stdlib.h>
1169   #include <stdio.h>
1170   #include <sys/types.h>
1171   #include <sys/socket.h>
1172   #include <netinet/in.h>
1173   #include <arpa/inet.h>
1174   #include <arpa/nameser.h>
1175   #include <arpa/nameser_compat.h>
1176   #include <resolv.h>
1177   ], [static int i; i = 0;],
1178   [AC_MSG_RESULT(yes)
1179    AC_DEFINE(HAVE_ARPA_NAMESER_COMPAT_H)],
1180   [AC_MSG_RESULT(no)
1181    ])
1182
1183   openafs_save_libs="$LIBS"
1184   AC_MSG_CHECKING([for res_search])
1185   AC_FUNC_RES_SEARCH
1186
1187   if test "$ac_cv_func_res_search" = no; then
1188       for lib in dns nsl resolv; do
1189         if test "$ac_cv_func_res_search" != yes; then
1190           LIBS="-l$lib $LIBS"
1191           AC_FUNC_RES_SEARCH
1192           LIBS="$openafs_save_libs"
1193         fi
1194       done    
1195       if test "$ac_cv_func_res_search" = yes; then
1196         LIB_res_search="-l$lib"       
1197         AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1198         AC_MSG_RESULT([yes, in lib$lib])
1199       else
1200         AC_MSG_RESULT(no)
1201       fi
1202   else
1203     AC_DEFINE(HAVE_RES_SEARCH, 1, [])
1204     AC_MSG_RESULT(yes)
1205   fi
1206   
1207 fi
1208
1209 AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
1210 [
1211 AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
1212 AC_TRY_COMPILE( [#include <sys/types.h>
1213 #include <sys/socket.h>
1214 #include <netinet/in.h>],
1215 [int on=1;
1216 setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
1217 AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
1218 if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1219    AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
1220 fi
1221
1222 PTHREAD_LIBS=error
1223 if test "x$MKAFS_OSTYPE" = OBSD; then
1224         PTHREAD_LIBS="-pthread"
1225 fi
1226 if test "x$PTHREAD_LIBS" = xerror; then
1227         AC_CHECK_LIB(pthread, pthread_attr_init,
1228                 PTHREAD_LIBS="-lpthread")
1229 fi
1230 if test "x$PTHREAD_LIBS" = xerror; then
1231         AC_CHECK_LIB(pthreads, pthread_attr_init,
1232                 PTHREAD_LIBS="-lpthreads")
1233 fi
1234 if test "x$PTHREAD_LIBS" = xerror; then
1235         AC_CHECK_LIB(c_r, pthread_attr_init,
1236                 PTHREAD_LIBS="-lc_r")
1237 fi
1238 if test "x$PTHREAD_LIBS" = xerror; then
1239         AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
1240 fi
1241 if test "x$PTHREAD_LIBS" = xerror; then
1242         # pthread_attr_init is a macro under HPUX 11.0 and 11.11
1243         AC_CHECK_LIB(pthread, pthread_attr_destroy,
1244                 PTHREAD_LIBS="-lpthread")
1245 fi
1246 if test "x$PTHREAD_LIBS" = xerror; then
1247         AC_MSG_WARN(*** Unable to locate working posix thread library ***)
1248 fi
1249 AC_SUBST(PTHREAD_LIBS)
1250
1251 WITH_OBSOLETE=NO
1252 if test "$enable_obsolete" = "yes"; then
1253         WITH_OBSOLETE=YES
1254 fi
1255
1256 HOST_CPU="$host_cpu"
1257
1258 if test "x$with_bsd_kernel_headers" != "x"; then
1259         BSD_KERNEL_PATH="$with_bsd_kernel_headers"
1260 else
1261         BSD_KERNEL_PATH="/usr/src/sys"
1262 fi
1263
1264 if test "x$with_bsd_kernel_build" != "x"; then
1265         BSD_KERNEL_BUILD="$with_bsd_kernel_build"
1266 else
1267         case $AFS_SYSNAME in
1268                 *_fbsd_4?)
1269                         BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
1270                         ;;
1271                 *_fbsd_*)
1272                         BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
1273                         ;;
1274         esac
1275 fi
1276
1277 # Fast restart
1278 if test "$enable_supergroups" = "yes"; then
1279         AC_DEFINE(SUPERGROUPS, 1, [define if you want to have support for nested pts groups])
1280 fi
1281
1282 if test "$enable_fast_restart" = "yes"; then
1283         AC_DEFINE(FAST_RESTART, 1, [define if you want to have fast restart])
1284 fi
1285
1286 if test "$enable_bitmap_later" = "yes"; then
1287         AC_DEFINE(BITMAP_LATER, 1, [define if you want to salvager to check bitmasks later])
1288 fi
1289
1290 if test "$enable_demand_attach_fs" = "yes"; then
1291         AC_DEFINE(DEMAND_ATTACH_ENABLE, 1, [define if you want the demand attach fileserver])
1292         DEMAND_ATTACH="yes"
1293 else
1294         DEMAND_ATTACH="no"
1295 fi
1296 AC_SUBST(DEMAND_ATTACH)
1297
1298 if test "$enable_disconnected" = "yes"; then
1299         AC_DEFINE(AFS_DISCON_ENV, 1, [define if you want support for disconnected operation])
1300 fi
1301
1302 if test "$enable_unix_sockets" = "yes"; then
1303         AC_DEFINE(USE_UNIX_SOCKETS, 1, [define if you want to use UNIX sockets for fssync.])
1304         USE_UNIX_SOCKETS="yes"
1305 else
1306         USE_UNIX_SOCKETS="no"
1307 fi
1308 AC_SUBST(USE_UNIX_SOCKETS)
1309
1310 if test "$enable_fast_restart" = "yes" &&
1311    test "$enable_demand_attach_fs" = "yes" ; then
1312         AC_MSG_ERROR([The Demand Attach and Fast Restart extensions are mutually exclusive.  Demand Attach fileservers automatically salvage volumes in the background, thereby making Fast Restart pointless.])
1313         exit 1
1314 fi
1315
1316 if test "$enable_full_vos_listvol_switch" = "yes"; then
1317         AC_DEFINE(FULL_LISTVOL_SWITCH, 1, [define if you want to want listvol switch])
1318 fi
1319
1320 if test "$enable_icmp_pmtu_discovery" = "yes"; then
1321    if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
1322         AC_DEFINE(ADAPT_PMTU, 1, [define if you want to decode icmp unreachable packets to discover path mtu])
1323    fi
1324 fi
1325
1326 if test "$enable_bos_restricted_mode" = "yes"; then
1327         AC_DEFINE(BOS_RESTRICTED_MODE, 1, [define if you want to want bos restricted mode])
1328 fi
1329
1330 if test "$enable_bos_new_config" = "yes"; then
1331         AC_DEFINE(BOS_NEW_CONFIG, 1, [define if you want to enable automatic renaming of BosConfig.new to BosConfig at startup])
1332 fi
1333
1334 if test "$enable_largefile_fileserver" = "yes"; then
1335         AC_DEFINE(AFS_LARGEFILE_ENV, 1, [define if you want large file fileserver])
1336 fi
1337
1338 if test "$enable_namei_fileserver" = "yes"; then
1339         AC_DEFINE(AFS_NAMEI_ENV, 1, [define if you want to want namei fileserver])
1340 fi
1341
1342 if test "$enable_afsdb" = "yes"; then
1343         LIB_AFSDB="$LIB_res_search"
1344         AC_DEFINE(AFS_AFSDB_ENV, 1, [define if you want to want search afsdb rr])
1345 fi
1346
1347 dnl check for tivoli
1348 AC_MSG_CHECKING(for tivoli tsm butc support)
1349 XBSA_CFLAGS=""
1350 if test "$enable_tivoli_tsm" = "yes"; then
1351         XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen
1352         XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen
1353         XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample
1354         XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample
1355
1356         if test -r "$XBSADIR1/xbsa.h"; then
1357                 XBSA_CFLAGS="-Dxbsa -I$XBSADIR1"
1358                 XBSA_XLIBS=""
1359                 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1360         elif test -r "$XBSADIR2/xbsa.h"; then
1361                 XBSA_CFLAGS="-Dxbsa -I$XBSADIR2"
1362                 XBSA_XLIBS=""
1363                 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1364         elif test -r "$XBSADIR3/dsmapifp.h"; then
1365                 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3"
1366                 XBSA_XLIBS="-ldl"
1367                 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1368         elif test -r "$XBSADIR4/dsmapifp.h"; then
1369                 XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4"
1370                 XBSA_XLIBS="-ldl"
1371                 AC_MSG_RESULT([yes, $XBSA_CFLAGS])
1372         else
1373                 AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files])
1374         fi
1375 else
1376         AC_MSG_RESULT([no])
1377 fi
1378 AC_SUBST(XBSA_CFLAGS)
1379 AC_SUBST(XBSA_XLIBS) 
1380
1381 dnl checks for header files.
1382 AC_HEADER_STDC
1383 AC_HEADER_SYS_WAIT
1384 AC_HEADER_DIRENT
1385 AC_CHECK_HEADERS(stdlib.h string.h unistd.h poll.h fcntl.h sys/time.h sys/file.h)
1386 AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
1387 AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h sys/fstyp.h)
1388 AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h poll.h)
1389 AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h sys/user.h)
1390 AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h ucontext.h regex.h values.h)
1391 AC_CHECK_HEADERS(linux/errqueue.h,,,[#include <linux/types.h>])
1392
1393 if test "$ac_cv_header_security_pam_modules_h" = yes -a "$enable_pam" = yes; then
1394         HAVE_PAM="yes"
1395 else
1396         HAVE_PAM="no"
1397 fi
1398 AC_SUBST(HAVE_PAM)
1399
1400 if test "$enable_login" = yes; then
1401         BUILD_LOGIN="yes"
1402 else
1403         BUILD_LOGIN="no"
1404 fi
1405 AC_SUBST(BUILD_LOGIN)
1406
1407 AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf strlcat strlcpy re_comp re_exec flock)
1408 AC_CHECK_FUNCS(setprogname getprogname sigaction mkstemp vsnprintf strerror strcasestr)
1409 AC_CHECK_FUNCS(setvbuf vsyslog)
1410 AC_FUNC_SETVBUF_REVERSED
1411 AC_CHECK_FUNCS(regcomp regexec regerror)
1412 AC_MSG_CHECKING([for POSIX regex library])
1413 if test "$ac_cv_header_regex_h" = "yes" && \
1414         test "$ac_cv_func_regcomp" = "yes" && \
1415         test "$ac_cv_func_regexec" = "yes" && \
1416         test "$ac_cv_func_regerror" = "yes"; then
1417     AC_DEFINE(HAVE_POSIX_REGEX, 1, [define if you have POSIX regex library])
1418     AC_MSG_RESULT(yes)
1419 else
1420     AC_MSG_RESULT(no)
1421 fi
1422         
1423 AC_CHECK_TYPE(ssize_t, int)
1424 AC_SIZEOF_TYPE(long)
1425
1426 AC_CHECK_FUNCS(timegm)
1427 AC_CHECK_FUNCS(daemon)
1428
1429 dnl Directory PATH handling
1430 if test "x$enable_transarc_paths" = "xyes"  ; then 
1431     afsconfdir=${afsconfdir=/usr/afs/etc}
1432     viceetcdir=${viceetcdir=/usr/vice/etc}
1433     afskerneldir=${afskerneldir=${viceetcdir}}
1434     afssrvbindir=${afssrvbindir=/usr/afs/bin}
1435     afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
1436     afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
1437     afsdbdir=${afsdbdir=/usr/afs/db}
1438     afslogsdir=${afslogsdir=/usr/afs/logs}
1439     afslocaldir=${afslocaldir=/usr/afs/local}
1440     afsbackupdir=${afsbackupdir=/usr/afs/backup}
1441     afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
1442 else 
1443     afsconfdir=${afsconfdir='${sysconfdir}/openafs/server'}
1444     viceetcdir=${viceetcdir='${sysconfdir}/openafs'}
1445     afskerneldir=${afskerneldir='${libdir}/openafs'}
1446     afssrvbindir=${afssrvbindir='${bindir}'}
1447     afssrvsbindir=${afssrvsbindir='${sbindir}'}
1448     afssrvlibexecdir=${afssrvlibexecdir='${libexecdir}/openafs'}
1449     afsdbdir=${afsdbdir='${localstatedir}/openafs/db'}
1450     afslogsdir=${afslogsdir='${localstatedir}/openafs/logs'}
1451     afslocaldir=${afslocaldir='${localstatedir}/openafs'}
1452     afsbackupdir=${afsbackupdir='${localstatedir}/openafs/backup'}
1453     afsbosconfigdir=${afsbosconfigdir='${sysconfdir}/openafs'}
1454 fi
1455 AC_SUBST(afsconfdir)
1456 AC_SUBST(viceetcdir)
1457 AC_SUBST(afskerneldir)
1458 AC_SUBST(afssrvbindir)
1459 AC_SUBST(afssrvsbindir)
1460 AC_SUBST(afssrvlibexecdir)
1461 AC_SUBST(afsdbdir)
1462 AC_SUBST(afslogsdir)
1463 AC_SUBST(afslocaldir)
1464 AC_SUBST(afsbackupdir)
1465 AC_SUBST(afsbosconfigdir)
1466
1467 if test "x$enable_kernel_module" = "xyes"; then
1468 ENABLE_KERNEL_MODULE=libafs
1469 fi
1470
1471 if test "x$enable_pthreaded_ubik" = "xyes"; then
1472 ENABLE_PTHREADED_UBIK=yes
1473 fi
1474
1475 AC_SUBST(AFS_SYSNAME)
1476 AC_SUBST(AFS_PARAM_COMMON)
1477 AC_SUBST(ENABLE_KERNEL_MODULE)
1478 AC_SUBST(ENABLE_PTHREADED_UBIK)
1479 AC_SUBST(LIB_AFSDB)
1480 AC_SUBST(LINUX_KERNEL_PATH)
1481 AC_SUBST(HOST_CPU)
1482 AC_SUBST(BSD_KERNEL_PATH)
1483 AC_SUBST(BSD_KERNEL_BUILD)
1484 AC_SUBST(LINUX_VERSION)
1485 AC_SUBST(MKAFS_OSTYPE)
1486 AC_SUBST(TOP_OBJDIR)
1487 AC_SUBST(TOP_SRCDIR)
1488 AC_SUBST(TOP_INCDIR)
1489 AC_SUBST(TOP_LIBDIR)
1490 AC_SUBST(DEST)
1491 AC_SUBST(WITH_OBSOLETE)
1492 AC_SUBST(DARWIN_INFOFILE)
1493 AC_SUBST(IRIX_BUILD_IP35)
1494
1495 OPENAFS_OSCONF
1496 OPENAFS_KRB5CONF
1497
1498 TOP_SRCDIR="${srcdir}/src"
1499 dnl
1500 dnl If we're using ./configure, need a more reasonable TOP_SRCDIR, since relative links don't work everywhere
1501 dnl
1502 case $TOP_SRCDIR in
1503         /*)
1504                 ;;
1505         *)
1506                 TOP_SRCDIR=`cd $TOP_SRCDIR; pwd`
1507                 ;;
1508 esac
1509
1510 TOP_OBJDIR="${SRCDIR_PARENT}"
1511 TOP_INCDIR="${SRCDIR_PARENT}/include"
1512 TOP_LIBDIR="${SRCDIR_PARENT}/lib"
1513 if test "${DEST}x" = "x"; then
1514         DEST="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest"
1515 fi
1516
1517 HELPER_SPLINT="${TOP_SRCDIR}/helper-splint.sh"
1518 HELPER_SPLINTCFG="${TOP_SRCDIR}/splint.cfg"
1519 AC_SUBST(HELPER_SPLINT)
1520 AC_SUBST(HELPER_SPLINTCFG)
1521
1522 mkdir -p ${TOP_OBJDIR}/src/JAVA/libjafs
1523
1524 ])