我知道我可以使用AC_CHECK_DECL/AC_CHECK_DECLS来检查一组头是否提供了指定标识符的声明,但我怎样才能检查是否声明了宏,以及它是否扩展符合我的标准?具体来说,我想检查numa.h
是否包含宏定义等同于这个...使用autoconf检查C#define的值
#define LIBNUMA_API_VERSION 2
...包括特定值“2”。
UPDATE: <numa.h>
头包含的定义如#define LIBNUMA_API_VERSION 2
宣布它的版本。使用该标头的C代码典型地使用它像这样:
#if defined(LIBNUMA_API_VERSION) && LIBNUMA_API_VERSION >= 2
....
#endif
我想确定NUMA头版本与autoconf
,并定义简洁地传达NUMA版本2是否被提供的宏。即:
if test "$have_numa_v2" = "yes" ; then
AC_DEFINE(NUMA_VERSION_2, 1, [Determine whether NUMA v2 available)
fi
这可能像这样被使用:
#ifdef NUMA_VERSION_2
....
#endif
这可能吗?我无法确定如何在我的Autoconf文件中设置变量have_numa_v2
变量的值。
检查从哪里?从makefile? Shell脚本? C代码? – dbrank0
OP说numa.h – Fredrik
据我所知,这个定义是numa.h的一部分。但也许不是。 – dbrank0