前: Systemology, 上: Writing Tests
処理によっては,それぞれ異なるunixに依存して,考えられるいくつかの 方法で達成されるものもあります.それを本質的に調査するためには,“case 文”が必要です.Autoconfは直接それを提供していません.しかし,実行する処 理が見つかったかどうかの追跡を続けるため,シェル変数を使用することで簡単 にシミュレート可能です.
残っているcaseを調査する必要があるかどうかに関係なく追跡を続けるために,
シェル変数fstypeを使用する例は,以下のようになります.
AC_MSG_CHECKING([how to get file system type])
fstype=no
# The order of these tests is important.
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statvfs.h>
#include <sys/fstyp.h>]])],
[AC_DEFINE(FSTYPE_STATVFS) fstype=SVR4])
if test $fstype = no; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statfs.h>
#include <sys/fstyp.h>]])],
[AC_DEFINE(FSTYPE_USG_STATFS) fstype=SVR3])
fi
if test $fstype = no; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/statfs.h>
#include <sys/vmount.h>]])]),
[AC_DEFINE(FSTYPE_AIX_STATFS) fstype=AIX])
fi
# (more cases omitted here)
AC_MSG_RESULT([$fstype])