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