J'essaye de construire ce projet tiers propriétaire qui utilise automake. J'utilise Ubuntu 14.04. Lors de l'exécution configure, je reçois cette erreur:config/config.guess étant symlinked à un mauvais fichier dans un paquet tiers
configure: erreur: ne peut pas exécuter/bin/bash ../config/config.sub
L'échec semble être dû aux fichiers dans config/étant un lien symbolique sur une version spécifique automake que je ne l'ai pas installé:
lrwxrwxrwx 1 stefan stefan 37 12 12:42 config.guess février -> /usr/share/automake-1.11/config.guess lrwxrwxrwx 1 stefan stefan 35 février 12 12:42 config.sub -> /usr/share/automake-1.11/config.sub
Suppression des fichiers dans config/et exécution de 'autoreconf -fvi 'ne résulte pas en eux être re-généré, donc je ne suis pas sûr de savoir comment résoudre ce problème correctement. Je ne veux pas installer automake-1.11 juste pour certains liens symboliques stupides, donc j'ai écrasé les fichiers avec les versions plus récentes dans /usr/share/automake-1.14/ et il a bien construit. Est-ce que cela devrait être OK, même si les gens pourraient peut-être construire le code avec une ancienne version d'automake (ou plus récente, d'ailleurs)? Ou y a-t-il une autre façon plus élégante de prendre soin de cela?
Edit: sortie autoreconf pour la bibliothèque tierce partie:
autoreconf: Entering directory `somelib'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: configure.ac: not using Automake
autoreconf: Leaving directory `somelib'
Edit2: J'ai ajouté:
AC_CONFIG_MACRO_DIR (config)
à configure.ac. Ce qui est déroutant, c'est qu'il n'y a pas Makefile.am - le paquet semble utiliser seulement autoconf, pas automake, puisqu'il y a seulement un Makefile.in. Quoi qu'il en soit, avec la modification ci-dessus, et après avoir supprimé les fichiers config. *, Je remarque qu'ils ne sont toujours pas régénérés après avoir exécuté autoreconf. Maintenant, le « autoreconf -fvi » est sortie:
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: copying file `config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `config'.
libtoolize: copying file `config/libtool.m4'
libtoolize: copying file `config/ltoptions.m4'
libtoolize: copying file `config/ltsugar.m4'
libtoolize: copying file `config/ltversion.m4'
libtoolize: copying file `config/lt~obsolete.m4'
libtoolize: Consider adding `-I config' to ACLOCAL_AMFLAGS in Makefile.am.
libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: configure.ac: not using Automake
Si 'autoreconf -fvi' ne le fait pas - et vous devriez avoir inclus * pourquoi * cela ne fonctionne pas, les erreurs, etc. - alors leurs outils de compilation sont trop vieux, ou ne sont pas écrits correctement. Des erreurs relatives à 'configure.ac', etc., auraient été utiles. –
J'ai ajouté la sortie de autoreconf. Je ne suis pas vraiment un expert en autotools, donc je ne peux pas trouver d'erreurs évidentes de la sortie ci-dessus - tout est principalement chinois pour moi :). – fencekicker
Assez juste. Les lignes «Considérons ...» sont révélatrices. Vous pouvez essayer d'ajouter 'ACLOCAL_AMFLAGS = -I m4 --install' au niveau supérieur' Makefile.am' s'il n'est pas déjà présent. –