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