Autoconf宏从头文件中读取定义并写入config.h

时间:2014-07-02 18:26:24

标签: macros autoconf

我正在从旧版构建环境转换为使用Autotools的环境。我有一个遗留头文件,其中包含大量配置值,并包含许多其他标头。我正在尝试编写一个宏,可以从遗留配置头中挑选特定的定义值并将其写入config.h。我已经能够编写下面的宏来检查定义是否等于某个值并执行某些操作。我想添加一个自动将定义值写入config.h的步骤。

AC_DEFUN([ZENO_CHECK_CONFIG],
    [
        AC_CHECK_HEADERS([legacy_config.h])
        AS_IF([test "x$ac_cv_header_legacy_config_h" = "xyes"],
            [
            AC_MSG_CHECKING([for definition of $1])
            AC_EGREP_CPP([test_true],
                [
#include <legacy_config.h>
#if defined($1) && $1 == $2
test_true
#endif
                ],
                [AC_MSG_RESULT([enabled])
                $3],
                [AC_MSG_RESULT([disabled])
                $4]
            )
            ]
        )
    ]
)

1 个答案:

答案 0 :(得分:0)

只需使用AC_DEFINE或可能使用AC_DEFINE_UNQUOTED:

...
            [AC_MSG_RESULT([enabled])
             AC_DEFINE($1, $2)
            $3],
            [AC_MSG_RESULT([disabled])
             AC_DEFINE($1, something)
            $4]
...