2010-03-15 12 views
1

En utilisant la macro m4_ax_python_module.m4 dans configure.ac (AX_PYTHON_MODULE), on peut savoir au moment de la configuration si un module donné est installé. Il prend deux arguments, le nom du module, et le second argument qui, s'il n'est pas vide, conduira à une sortie, utile lorsque le module est un must-have.Vérification du résultat de AX_PYTHON_MODULE dans configure.ac

Dans le cas où vous ne voulez pas une sortie fatale, comment testez-vous dans configure.ac quels modules ont été trouvés ou non? Ils affichent "oui" ou "non" quand configure est lancé, mais c'est tout ce que j'ai trouvé jusqu'ici. En gros, si j'ai ces lignes configure.ac:

EDIT: supports carrés ajoutés autour de noms de modules

AX_PYTHON_MODULE([json],[]) 
AX_PYTHON_MODULE([simplejson],[]) 

Comment puis-je savoir lequel des deux modules ont été trouvés?

Voir http://www.gnu.org/software/autoconf-archive/ax_python_module.html#ax_python_module pour la documentation sur cette macro.

Répondre

1

Ok la meilleure solution, je l'ai trouvé à ce jour était:

EDIT: en utilisant AS_IF au lieu de simplement if test

AS_IF([test "x${HAVE_PYMOD_JSON}" = "xno"], 
    AS_IF([test "x${HAVE_PYMOD_SIMPLEJSON}" = "xno"], 
     [AC_MSG_ERROR([Requires one of json or simplejson])])) 

Ce qui en moi était hors de la macro, l'AS_TR_CPP transforme ses arguments en #define macros de style, c.-à-d. Toutes majuscules.

+0

+1, mais pensez à utiliser AS_IF au lieu de "if test" brut, et citez correctement votre invocation: AX_PYTHON_MODULE ([json], []). –

+0

merci @William Pursell, j'ai édité ma réponse initiale – tmatth