有些操作是以几种可能的方式完成的,它依赖于UNIX的变种。检查它们通常需要一个”case 语句”。Autoconf不能直接提供该语句; 然而,通过用一个shell变量来记录是否采用了操作的某种已知的方式,可以容易地模拟该语句。
下面是用shell变量fstype记录是否还有需要检查的情况的例子。
AC_MSG_CHECKING(how to get filesystem type)
fstype=no
The order of these tests is important.
AC_TRY_CPP([#include <sys/statvfs.h>
#include <sys/fstyp.h>], AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4)
if test $fstype = no; then
AC_TRY_CPP([#include <sys/statfs.h>
#include <sys/fstyp.h>], AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3)
fi
if test $fstype = no; then
AC_TRY_CPP([#include <sys/statfs.h>
#include <sys/vmount.h>], AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX)
fi
(more cases omitted here)
AC_MSG_RESULT($fstype)