Je sais que je peux utiliser AC_CHECK_DECL/AC_CHECK_DECLS pour vérifier si un ensemble d'en-têtes fournit une déclaration pour un identificateur spécifié, mais comment puis-je vérifier non seulement si une macro est déclarée, mais aussi si son expansion répond à mes critères? Plus précisément, je voudrais vérifier si numa.h
contient une définition de macro équivalent à cette ...Vérifier la valeur de C#define avec autoconf
#define LIBNUMA_API_VERSION 2
... y compris la valeur spécifique « 2 ».
MISE À JOUR: tête <numa.h>
contient une définition telle que #define LIBNUMA_API_VERSION 2
de déclarer sa version. code C qui utilise cet en-tête utilise généralement comme ceci:
#if defined(LIBNUMA_API_VERSION) && LIBNUMA_API_VERSION >= 2
....
#endif
Je veux déterminer la version d'en-tête NUMA avec autoconf
et définir une macro qui transmet de façon succincte si la version NUMA 2 est fourni. i.e. .:
if test "$have_numa_v2" = "yes" ; then
AC_DEFINE(NUMA_VERSION_2, 1, [Determine whether NUMA v2 available)
fi
qui pourrait être utilisé comme ceci:
#ifdef NUMA_VERSION_2
....
#endif
Est-il possible? Je n'arrive pas à déterminer comment je pourrais définir la valeur de la variable have_numa_v2
dans mon fichier Autoconf.
Vérifier d'où? De makefile? Script Shell Code C? – dbrank0
L'OP dit de numa.h – Fredrik
Si je comprends bien, cette définition fait partie de numa.h. Mais peut-être pas. – dbrank0