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