Et pour les autotools, [...] j'ai des fichiers générés dans les sources moi (des Makefile ou autre fichiers intermédiaires du configure)
Les auto-tools savent très bien générer des Makefiles pour la compilation out-of-tree. Il suffit de faire :
$ tar xjf package-1.2.3.tar.bz2
$ ls -F
package-1.2.3/
$ mkdir build-package
$ cd build-package
$ ../package-1.2.3/configure --blabla
$ make
Alors, tous les fichiers générés seront dans le répertoire build-package, et le répertoire des sources ne sera pas modifié.
Si le make disponible connait les VPATH (GNU make), alors les Makefiles générés utiliseront cette fonctionnalité ; sinon, les Makefiles utiliseront des contournements pour simuler les VPATH.
Cependant, les auto-tools génèrent effectivement des fichiers dans le répertoire sources, mais uniquement dans la phase pré-empaquetage. C'est à ce moment-là que les fichiers configure, Makefile.in (et autres) sont générés. Mais ces fichiers font partie de la livraison.
Enfin, je ne suis pas un très grand fan des auto-tools, car ils ne savent pas très bien gérer la compilation croisée la plupart du temps, sauf si le développeur a fait bien attention. La faute en incombe pour partie (~75%) aux auto-tools, et pour partie au développeur (25%).
[^] # Re: Avantages CMake
Posté par ymorin . En réponse à la dépêche Petit éventail des outils de construction (« builder ») libres. Évalué à 3.
Les
auto-toolssavent très bien générer desMakefilespour la compilationout-of-tree. Il suffit de faire :Alors, tous les fichiers générés seront dans le répertoire
build-package, et le répertoire des sources ne sera pas modifié.Si le
makedisponible connait lesVPATH(GNU make), alors lesMakefilesgénérés utiliseront cette fonctionnalité ; sinon, lesMakefilesutiliseront des contournements pour simuler lesVPATH.Cependant, les
auto-toolsgénèrent effectivement des fichiers dans le répertoire sources, mais uniquement dans la phase pré-empaquetage. C'est à ce moment-là que les fichiersconfigure,Makefile.in(et autres) sont générés. Mais ces fichiers font partie de la livraison.Enfin, je ne suis pas un très grand fan des
auto-tools, car ils ne savent pas très bien gérer la compilation croisée la plupart du temps, sauf si le développeur a fait bien attention. La faute en incombe pour partie (~75%) auxauto-tools, et pour partie au développeur (25%).Hop,
Moi.