如何使用autoconf检查httpd.h typedef结构的成员是否存在

时间:2013-11-04 02:56:11

标签: apache cross-platform autoconf apache2-module pike

如何使用APXS作为编译器使GNU autoconf脚本测试typedef结构成员?

我已经定义了以下测试,但结果并不是我所期待的......

AC_CHECK_MEMBER(struct conn_rec.remote_ip, define 'USE_CON_REC_REMOTE_IP',,[#include "httpd.h"]);
AC_CHECK_MEMBER(struct conn_rec.client_ip, define 'USE_CON_REC_CLIENT_IP',,[#include "httpd.h"]);
AC_CHECK_MEMBER(struct conn_rec.remote_addr, define 'USE_CON_REC_REMOTE_ADDR',,[#include "httpd.h"]);

所有这些测试都返回“否”,即使我知道第一次测试和最后一次测试应该返回“是”。我怀疑这可能是因为这些是typedef而不是结构,和/或因为autoconf没有使用APXS来运行测试。

完整代码位于https://github.com/rritoch/PikeVM/blob/master/root/boot/system-1.1/apache/configure.ac

我希望有一个预先存在的解决方案,不需要制作自定义测试脚本。

1 个答案:

答案 0 :(得分:1)

AC_CHECK_MEMBER用于C / C ++编译器。有apxs macros来帮助设置apxs的编译。将AC_CHECK_MEMBER翻译成适合apxs的宏应该不会太难。