18Fermer20
Kevin KoflerLe 06/03/2008 à 11:48
PpHd (./17) :
De quoi tu parles ?

Je parle:
* des fichiers comme missing, ltmain.sh etc. qui se retrouvent recopiés caractère pour caractère dans chaque programme,
* de l'horreur qu'est aclocal, qui a un fonctionnement absolument débile. roll Ça insère des morceaux de shell script dans configure, avec 2 processus possibles, créant chacun 2 (!) copies de ces morceaux par programme:
A. définitions "partagées":
1. aclocal recopie la définition présente sur le système sur lequel on le lance dans aclocal.m4 (une copie inutile),
2. autoconf recopie cette même définition dans configure (une deuxième);
B. acinclude.m4 (utilisé par KDE 3 par exemple):
1. le mainteneur recopie acinclude.m4 dans ses sources à la main sick (copie non seulement totalement inutile, mais en plus, ça marche bien si on n'en a qu'un seul, mais si chaque projet fait ça, il faut en plus concaténer tous ces fichiers acinclude.m4 sick),
2. autoconf recopie cette définition dans configure (deuxième copie).

Avec CMake, c'est l'utilisateur (ou le packageur) qui lance cmake (et ça marche bien parce qu'ils ne font pas sans cesse des changements incompatibles comme les autotools roll), donc le mainteneur ne doit pas recopier les snippets cmake déjà installés par les autres logiciels ou cmake lui-même (et une distribution peut facilement patcher ces fichiers parce qu'il n'y a qu'une copie). Et avant que tu te plaignes que ce n'est pas flexible, on peut aussi inclure ses propres snippets cmake (le fonctionnement prévu à la base pour acinclude.m4, mais ça a été souvent utilisé en pratique pour recopier des définitions dans chaque projet sad), et ces snippets ne sont pas recopiés ailleurs dans le tarball (à la autoconf) non plus.