Previous: Systemology, Up: Writing Tests


6.8 複数のケース文

処理によっては,それぞれ異なる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])