2016-10-19 3 views
0

J'ai un fichier configure.ac minimal:autoreconf ne tient pas compte AC_CONFIG_MACRO_DIR

AC_INIT([phmf], [0.1]) 
AM_INIT_AUTOMAKE 
AC_OUTPUT([Makefile]) 

En utilisant la plus récente autoconf la version 2.69 (ce qui est 2012 BTW) Je reçois l'avertissement suivant:

$ autoreconf -iv 
autoreconf: running: aclocal -I m4 
aclocal-1.15: warning: couldn't open directory 'm4': No such file or directory 

Cela m'a conduit à l'hypothèse que le répertoire 'm4' est recherché, car c'est le comportement par défaut de autoreconf. J'ai donc essayé d'écraser la valeur par défaut en ajoutant la macro suivante:

AC_CONFIG_MACRO_DIR([.]) 

Mais ce fut inutile - je reçois toujours le même avertissement. Est-ce un bug ou dois-je faire autre chose pour éviter d'inclure le répertoire 'm4' pour aclocal?

éditer: Je n'ai pas de scripts m4 dans mon projet en effet. Et je suis également d'accord que je ne veux pas vraiment mettre le répertoire de la macro dans le répertoire racine de mon projet. Par conséquent, la configuration plus appropriée serait:

AC_CONFIG_MACRO_DIR() 

parce que je ne veux pas comprendre quoi que ce soit, à savoir la commande devrait être appelé juste

aclocal 

sans aucun paramètre.

Répondre

1

Si vos aclocal drapeaux comprennent -I m4 alors votre AC_CONFIG_MACRO_DIR devrait lire la plupart du temps probablement

AC_CONFIG_MACRO_DIR([m4]) 

en la plaçant dans le répertoire courant, je vous attends vous faire empirer les choses au lieu de mieux. Vous avez un répertoire {root}/m4? (où {root} est la racine de votre dépôt)? Si non, alors cela pourrait être le problème.

Essayez de créer un répertoire "m4". Il devrait aller dans la "racine" de votre projet (le même répertoire que le fichier configure.ac (ou configure.in)).

+0

En effet, si vous n'envoyez pas de macros m4 avec votre projet et que vous les placez uniquement dans le répertoire m4 , alors il est préférable de coller un 'mkdir -p m4' dans votre' autogen.sh'. – ptomato

+0

Eh bien, si j'écrivais mon autogen.sh, je pourrais abandonner 'autoreconf' et utiliser ma propre chaîne de commandes, par exemple' aclocal && autoheader && autoconf && automake --add-missing', qui n'a pas besoin d'un vide et "m4" répertoire inutile. –

1

C'est un avertissement, vous ne devriez pas avoir besoin de faire quoi que ce soit à ce sujet, à moins que vous prévu sur l'utilisation -Werror pour automake (et c'est probablement une mauvaise idée.)

Le problème est que vous ne pouvez pas remplacer la