2016-02-12 6 views
0

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 
+0

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. –

+0

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

+0

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. –

Répondre

0

Cela se sent comme le tarball du paquet que vous essayez de construire n'a pas été construite avec make dist, soupir. La solution est, comme on l'a déjà noté, autoreconf -fi ou similaire. Puisque vous obtenez des erreurs, vous devriez voir s'il existe un script autogen.sh ou bootstrap.sh qui devrait lui passer le bon ensemble de paramètres -I.

Bien que "ne pas utiliser Automake" sonne comme il pourrait être un peu plus particulier que votre projet moyen.