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