2015-07-24 1 views
4

Nous développons un progiciel qui utilise autotools (autoconf 2.69 et automake 1.13.3 pour être précis). Ce paquet a besoin de wxwidgets et cette bibliothèque fournit son propre fichier m4 pour tester l'installation de wxwidgets dans le système d'installation final. wxwidgets a récemment changé la version de 2.8 à 3.0 et dans cette modification, ils ont également changé la macro utilisée pour déterminer la disponibilité (c'est-à-dire la macro modifiée de AM_PATH_WXCONFIG à WX_CONFIG_CHECK) ainsi que sa paramétrisation. Cela signifie également que si nous distribuons le code source de notre package et que les développeurs externes veulent reconstruire le configure, le fichier configure.ac doit savoir lequel des deux doit être utilisé. Donc, la question est: est-ce qu'il y a une chance pour notre paquet de vérifier si une macro m4 existe avant de l'exécuter? Si ce n'est pas possible, alors devrions-nous inclure les fichiers m4 de wxwidgets dans notre paquet?Comment détecter si une macro m4 existe/peut être appelée

+0

On dirait autoconf 2.63 inclus m4_ifdef qui peut être utile ici https://www.gnu.org/software/autoconf/manual/autoconf-2.63 /html_node/Redefined-M4-Macros.html – Harald

Répondre

3

Comme vous le suggérez dans votre commentaire, utilisez m4_ifdef:

m4_ifdef([AM_PATH_WXCONFIG], [ 
    AM_PATH_WXCONFIG(parameters) 
], [ 
    m4_ifdef([WX_CONFIG_CHECK], [ 
     WX_CONFIG_CHECK(parameters) 
    ], [ 
     AC_MSG_ERROR([You need to install the wxWidgets development package.]) 
    ]) 
])