Autoconf: Use AC_CACHE_CHECK
[openafs.git] / acinclude.m4
index c607830..fbafce1 100644 (file)
@@ -492,63 +492,33 @@ else
                i386-*-dragonfly2.3*)
                        AFS_SYSNAME="i386_dfbsd_23"
                        ;;
-               i?86-*-netbsd*1.5*)
-                       AFS_SYSNAME="i386_nbsd15"
-                       ;;
-               alpha-*-netbsd*1.5*)
-                       AFS_SYSNAME="alpha_nbsd15"
-                       ;;
                i?86-*-netbsd*1.6[[M-Z]]*)
                        AFS_SYSNAME="i386_nbsd20"
                        ;;
                powerpc-*-netbsd*1.6[[M-Z]]*)
                        AFS_SYSNAME="ppc_nbsd20"
                        ;;
-               i?86-*-netbsd*2.0*)
-                       AFS_SYSNAME="i386_nbsd20"
-                       ;;
-               amd64-*-netbsd*2.0*)
-                       AFS_SYSNAME="amd64_nbsd20"
-                       ;;
-               x86_64-*-netbsd*3.[[0-8]]*)
-# XXX AFS_PARAM_COMMON handled separately, redundant?
-                       AFS_PARAM_COMMON=param.nbsd30.h
-                       AFS_SYSNAME="amd64_nbsd30"
-                       ;;
-               x86_64-*-netbsd*4.[[0-8]]*)
-# XXX AFS_PARAM_COMMON handled separately, redundant?
-                       AFS_PARAM_COMMON=param.nbsd40.h
-                       AFS_SYSNAME="amd64_nbsd40"
-                       ;;
-               powerpc-*-netbsd*2.0*)
-                       AFS_SYSNAME="ppc_nbsd20"
-                       ;;
-               i?86-*-netbsd*1.6*)
-                       AFS_SYSNAME="i386_nbsd16"
-                       ;;
-               alpha-*-netbsd*1.6*)
-                       AFS_SYSNAME="alpha_nbsd16"
-                       ;;
-               powerpc-*-netbsd*1.6*)
-                       AFS_SYSNAME="ppc_nbsd16"
-                       ;;
-               i?86-*-netbsd*2.1*)
-                       AFS_SYSNAME="i386_nbsd21"
-                       ;;
-               i?86-*-netbsd*2.99*)
-                       AFS_SYSNAME="i386_nbsd30"
-                       ;;
-               i?86-*-netbsd*3.[[0-8]]*)
-                       AFS_SYSNAME="i386_nbsd30"
-                       ;;
-               i?86-*-netbsd*3.99*)
-                       AFS_SYSNAME="i386_nbsd30"
-                       ;;
-               i?86-*-netbsd*4.[[0-8]]*)
-                       AFS_SYSNAME="i386_nbsd40"
-                       ;;
-               i?86-*-netbsd*4.99*)
-                       AFS_SYSNAME="i386_nbsd40"
+               *-*-netbsd*)
+                       arch=${host%%-unknown*}
+                       arch=$(echo $arch |sed -e 's/x86_64/amd64/g' \
+                                              -e 's/powerpc/ppc/g')
+                       v=${host#*netbsd}
+                       v=${v#*aout}
+                       v=${v#*ecoff}
+                       v=${v#*elf}
+                       vM=${v%%.*}
+                       vM=${vM%.*}
+                       v=${v#*.}
+                       vm=${v%%.*}
+                       vm=${vm%.*}
+                       vm=${vm%%[[_A-Z]]*}
+                       if test $vm -eq 99 ; then
+                               vM=$((vM+1))
+                       fi
+                       if test $vM -gt 1 ; then
+                               vm=0
+                       fi
+                       AFS_SYSNAME="${arch}_nbsd${vM}${vm}"
                        ;;
                hppa*-hp-hpux11.0*)
                        AFS_SYSNAME="hp_ux110"
@@ -744,6 +714,7 @@ case $AFS_SYSNAME in
     *_nbsd21)   AFS_PARAM_COMMON=param.nbsd21.h  ;;
     *_nbsd30)   AFS_PARAM_COMMON=param.nbsd30.h  ;;
     *_nbsd40)   AFS_PARAM_COMMON=param.nbsd40.h  ;;
+    *_nbsd50)   AFS_PARAM_COMMON=param.nbsd50.h  ;;
     *_obsd31)   AFS_PARAM_COMMON=param.obsd31.h  ;;
     *_obsd32)   AFS_PARAM_COMMON=param.obsd32.h  ;;
     *_obsd33)   AFS_PARAM_COMMON=param.obsd33.h  ;;
@@ -763,6 +734,10 @@ case $AFS_SYSNAME in
     *_linux22)  AFS_PARAM_COMMON=param.linux22.h ;;
     *_linux24)  AFS_PARAM_COMMON=param.linux24.h ;;
     *_linux26)  AFS_PARAM_COMMON=param.linux26.h ;;
+# Linux alpha adds an extra underscore for no good reason.
+    *_linux_22) AFS_PARAM_COMMON=param.linux22.h ;;
+    *_linux_24) AFS_PARAM_COMMON=param.linux24.h ;;
+    *_linux_26) AFS_PARAM_COMMON=param.linux26.h ;;
 esac
 
 case $AFS_SYSNAME in *_linux* | *_umlinux*)
@@ -905,6 +880,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 LINUX_EXPORTS_PROC_ROOT_FS
                  LINUX_KMEM_CACHE_INIT
                 LINUX_HAVE_KMEM_CACHE_T
+                 LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
                 LINUX_KMEM_CACHE_CREATE_CTOR_TAKES_VOID
                 LINUX_D_PATH_TAKES_STRUCT_PATH
                 LINUX_NEW_EXPORT_OPS
@@ -990,17 +966,18 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                fi
 esac
 
-AC_CACHE_VAL(ac_cv_sockaddr_len,
-[
-AC_MSG_CHECKING([if struct sockaddr has sa_len field])
-AC_TRY_COMPILE( [#include <sys/types.h>
+AC_CACHE_CHECK([if struct sockaddr has sa_len field],
+    [ac_cv_sockaddr_len],
+    [AC_TRY_COMPILE( [#include <sys/types.h>
 #include <sys/socket.h>],
-[struct sockaddr *a;
-a->sa_len=0;], ac_cv_sockaddr_len=yes, ac_cv_sockaddr_len=no)
-AC_MSG_RESULT($ac_cv_sockaddr_len)])
-if test "$ac_cv_sockaddr_len" = "yes"; then
-   AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1, [define if you struct sockaddr sa_len])
-fi
+                     [struct sockaddr *a; a->sa_len=0;],
+                    [ac_cv_sockaddr_len=yes],
+                    [ac_cv_sockaddr_len=no])
+])
+AS_IF([test "$ac_cv_sockaddr_len" = "yes"],
+      [AC_DEFINE(STRUCT_SOCKADDR_HAS_SA_LEN, 1,
+                [define if you struct sockaddr sa_len])])
+
 if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
         echo Skipping library tests because they confuse Irix.
 else
@@ -1054,18 +1031,20 @@ fi
 
 AC_CHECK_RESOLV_RETRANS
 
-AC_CACHE_VAL(ac_cv_setsockopt_iprecverr,
-[
-AC_MSG_CHECKING([for setsockopt(, SOL_IP, IP_RECVERR)])
-AC_TRY_COMPILE( [#include <sys/types.h>
+AC_CACHE_CHECK([for setsockopt(, SOL_IP, IP_RECVERR)],
+    [ac_cv_setsockopt_iprecverr],
+    [AC_TRY_COMPILE( [
+#include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>],
 [int on=1;
-setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));], ac_cv_setsockopt_iprecverr=yes, ac_cv_setsockopt_iprecverr=no)
-AC_MSG_RESULT($ac_cv_setsockopt_iprecverr)])
-if test "$ac_cv_setsockopt_iprecverr" = "yes"; then
-   AC_DEFINE(ADAPT_PMTU_RECVERR, 1, [define if asynchronous socket errors can be received])
-fi
+setsockopt(0, SOL_IP, IP_RECVERR, &on, sizeof(on));],
+       [ac_cv_setsockopt_iprecverr=yes],
+       [ac_cv_setsockopt_iprecverr=no])])
+
+AS_IF([test "$ac_cv_setsockopt_iprecverr" = "yes"],
+      [AC_DEFINE(ADAPT_PMTU_RECVERR, 1,
+                [define if asynchronous socket errors can be received])])
 
 PTHREAD_LIBS=error
 if test "x$MKAFS_OSTYPE" = OBSD; then
@@ -1111,9 +1090,6 @@ if test "x$with_bsd_kernel_build" != "x"; then
        BSD_KERNEL_BUILD="$with_bsd_kernel_build"
 else
        case $AFS_SYSNAME in
-               *_fbsd_4?)
-                       BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/compile/GENERIC"
-                       ;;
                *_fbsd_*)
                        BSD_KERNEL_BUILD="${BSD_KERNEL_PATH}/${HOST_CPU}/compile/GENERIC"
                        ;;
@@ -1295,7 +1271,6 @@ else
     AC_MSG_RESULT(no)
 fi
 
-AC_TYPE_SOCKLEN_T
 AC_TYPE_SIGNAL
 AC_CHECK_SIZEOF(void *)
 AC_CHECK_SIZEOF(unsigned long long)
@@ -1303,12 +1278,13 @@ AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned int)
 AC_TYPE_INTPTR_T
 AC_TYPE_UINTPTR_T
-AC_CHECK_TYPE(ssize_t, int)
-AC_CHECK_TYPE([sig_atomic_t], ,
-    [AC_DEFINE([sig_atomic_t], [int],
-        [Define to int if <signal.h> does not define.])],
+AC_CHECK_TYPES([ssize_t])
+AC_CHECK_TYPES([sig_atomic_t],[],[],
 [#include <sys/types.h>
 #include <signal.h>])
+AC_CHECK_TYPES([socklen_t],[],[],
+[#include <sys/types.h>
+#include <sys/socket.h>])
 AC_SIZEOF_TYPE(long)
 
 AC_HEADER_PAM_CONST