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