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