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