2016-05-24 4 views
0

Dans mon projet, j'ai le dossier m4. Dans ce dossier j'ai le fichier ax_cxx_version.m4 qui contient la macro AX_CHECK_CXXFLAGS.autotools: comment inclure ma propre macro m4 dans configure.ac

Je suis y compris le dossier m4 autoconf.ac:

AC_CONFIG_MACRO_DIR([m4]) 

et l'exécution autoconf.

Quand je suis en cours d'exécution script de configuration, il est à défaut avec l'erreur qui coule:

checking complex usability... yes 
checking complex presence... yes 
checking for complex... yes 
checking size of int64_t... 8 
checking for long long int... yes 
./configure: line 7235: syntax error near unexpected token `-std=c++0x' 
./configure: line 7235: `AX_CHECK_CXXFLAGS(-std=c++0x -pedantic -Wall)' 

Si j'ajouter ma macro à aclocal.m4 alors tout fonctionne parfaitement bien.

Quelle est la bonne façon d'inclure ma propre macro?

+0

Avez-vous essayé de placer les arguments entre crochets? 'AX_CHECK_CXXFLAGS ([- std = C++ 0x -pedantic -Wall])' – baf

+0

Le problème est que la fonction AX_CHECK_CXXFLAGS n'est pas incluse dans le script de configuration après l'exécution d'autoconf. Donc, peu importe comment j'appelle AX_CHECK_CXXFLAGS. – user1209304

Répondre

0

Le problème est que AC_CONFIG_MACRO_DIR ne configure pas réellement le chemin d'inclusion, mais il laisse aclocal générer le bon fichier. Mais aclocal fait partie d'automake, et si vous exécutez simplement autoconf, il ne sera pas appelé.

Vous pouvez commencer à appeler autoreconf au lieu de autoconf pour régénérer vos fichiers, et cela devrait faire l'affaire. Ou si vous ne voulez pas dépendre de l'automake, vous pouvez utiliser un certain nombre d'autres astuces avec m4_include.

Une documentation pertinente (écrite par mes soins) sur le sujet est disponible au Autotools Mythbuster.