J'ai installé mingw et msys en utilisant mingw-get-setup.exe
. J'ai également installé Autotools (autoconf, automake, m4, libtool) dans C:\/opt/autotools
.
Lorsque j'exécute automake, l'erreur suivante se produit toujours:
configure.ac:11: error: required file './ltmain.sh' not found
Si je copie ltmain.sh
à partir de l'arborescence installée de libtool, l'exécution se terminera normalement.
Comment puis-je configurer automake pour trouver ltmain.sh
sans copier?
Dans un projet autoconf
/automake
/libtool
, vous devez appeler:
libtoolize
: ceci copie/relie quelques scripts de support, dont ltmain.sh
(qui est le composant principal de libtool).aclocal
: ceci recherche toutes les macros m4 dont votre script de configuration aura besoin, et fait une copie locale pour un accès plus facile.autoheader
: facultatif, si vous souhaitez utiliser config.h
/AC_CONFIG_HEADERS
, sinon toutes les macros de résultats de test seront alignées lorsque vous appelez le compilateur.autoconf
: pour développer toutes les macros utilisées par configure.ac
dans le script configure
.automake
: pour convertir tous les Makefile.am
en Makefile.in
modèles. Vous voulez probablement invoquer ceci avec --add-missing
pour que des scripts de support supplémentaires puissent être liés/copiés dans votre projet (tels que compile
, missing
, depcomp
, test-driver
, etc).Vous souhaiterez probablement ajouter un script bootstrap
à chacun de vos projets, qui invoque tous ces outils, dans cet ordre. Ou vous pourriez être paresseux et simplement invoquer autoreconf -i
et voyez si cela fonctionne pour votre projet.
Après (et pendant) que vous avez des Makefile
s générés par le script de configuration, les autotools prennent soin de lui-même; c'est-à-dire, si vous modifiez configure.ac
, ou tout Makefile.am
, les bons outils ci-dessus seront à nouveau invoqués pour tout garder à jour, en exécutant simplement make
. Faites juste attention à ne pas créer d'erreur de syntaxe dans le Makefile.am
fichiers, sinon vous pourriez vous retrouver avec des Makefile
s cassés, ce qui entraînerait le refus de make
- auquel cas vous devrez exécuter le script bootstrap
(ou autoreconf
) manuellement.
MODIFIER:
Le manuel d'automake dit ceci sur aclocal:
aclocal
devrait disparaître.
Et plus bas:
Du point de vue de l'utilisateur, la suppression de
aclocal
pourrait s'avérer pénible. Il existe une simple précaution que vous pouvez prendre pour rendre ce changement plus transparent: n'appelez jamais vous-même un local . Gardez ce type sous le contrôle exclusif deautoreconf
et des règles de reconstruction d'Automake.
Alors voilà: utilisez autoreconf -i
pour être évolutif, sauf si vous avez une très bonne raison d'utiliser directement les outils.