AC_CHECK_DEFINE

久々にソースを VC でコンパイルするとエラーががが。

PATH_MAX は POSIX 準拠なんだけれども、UNIXサブシステムを有効にしないと VC ではコンパイルすら通らないことに。まあ、PATH_MAX を使うことの是非はおいておいてorz。

autotools の考え方は機能ベースで環境に依存しない状態を作ることなので _MSC_VER ってのもなあ、ってことで、AC_CHECK 系の関数を調べることに。

Google先生に AC_CHECK_DEFINE と訪ねるとたくさん出てくるのになんでか share ディレクトリには無いんだよなあ。ってことで AC_CHECK_DECL をベースに書いてみた。書いてみたといっても、結局は AC_CHECK_DECL してるだけですね。

# -*- Autoconf -*-
# check define

# AC_CHECK_DEFINE(SYMBOL,[INCLUDES = DEFAULT-INCLUDES])
# -------------------------------------------------------
# Check whether SYMBOL (a function, variable, or constant) is declared.
AC_DEFUN([AC_CHECK_DEFINE],
[AC_CHECK_DECL($1, [AC_DEFINE([HAVE_]$1, 1, [Defined $1])], , $2)]
)# AC_CHECK_DEFINE

こんな感じ?