From madore@news.ens.fr
References: <glouk_gourous_1241@clipper.ens.fr>
Path: eleves.ens.fr!not-for-mail
From: GroTeXdieck <madore@clipper.ens.fr>
Newsgroups: ens.forum.archeo-forum.gourous
Message-ID: <glouk_gourous_1242@clipper.ens.fr>
NNTP-Posting-Host: clipper.ens.fr
Xref: eleves.ens.fr ens.forum.archeo-forum.gourous:1242
Date: 3 Sep 1998 19:52:23 MET
Subject:  m4, autoconf et automake.

J'en profite pour rappeler brievement le principe.

A la base, pour creer son executable, on a besoin d'un Makefile.  Mais un
Makefile ca va contenir plein de variables dependant de la plate-forme.  On
utilise donc un script configure qui va lire le Makefile.in et ecrire un
Makefile en remplacant toutes les variables dependant de la plate-forme
par leur valeur.  Or un script configure, c'est penible a ecrire, donc on
utilise autoconf qui creera le script configure a partir d'un configure.in.
Pour creer le configure.in on a la possibilite d'utiliser autoscan qui va
farfouiller dans vos sources et ecrire un configure.in plausible.  Bon,
c'est pas tout, mais les options -D il finit par y en avoir beaucoup.  On
a donc recours a configure pour aussi transformer un fichier config.h.in
en fichier config.h qui contiendra toutes les definitions qui vont bien,
plutot que les passer a gcc avec -D dans le Makefile.  Ensuite, le fichier
config.h.in, on ne veut pas l'ecrire soi-meme, c'est moche, donc on va
utiliser autoheader qui va scanner le contenu du configure.in et mettre ce
qu'il faut dans le config.h.in.  Cela etant, ecrire les Makefile.in, c'est
assez penible, donc ils ont encore invente automake qui lit le configure.in
et un autre fichier appele Makefile.am pour creer un joli Makefile.in avec
tous les targets qui vont bien.  Cela dit, les Makefile.in crees par
automake, ils ont besoin de macros m4 supplementaires, qui seront contenues
dans un fichier aclocal.m4, pour bien faire leur boulot.  Et ce fichier
aclocal.m4, on n'a pas envie de l'ecrire soi-meme, alors heureusement il
y a aclocal qui fait ca pour vous.

``You are lost in a maze of computer-generated files, all alike.''

Et il ne reste plus qu'a ecrire un Makefile pour automatiser le tout :-)




