lundi 8 février 2010

C'est l'histoire d'un make

Il n'y a pas d'alternative viable aux autotools.

Tel est le point de vue sur les moteurs de production (heu... c'est quoi ce terme ? ils ont fumé quoi chez Wikipédia ?) que j'ai défendu ces dix dernières années, depuis le début du développement de Yabause. Cela n'a pas été facile tous les jours, il a fallu que réfute les arguments contraires de toutes les manières possibles : soit en argumentant, soit en jouant de mauvaise foi, soit en éliminant mes adversaires (heu...) ; bref, il a fallu que je bataille durement... mais voila, toutes les bonnes choses ont une fin et aujourd'hui Yabause est en train de quitter les autotools pour CMake.

Les opposants aux autotools ont donc remporté la bataille et leur victoire s'appuie sur quelques points :
  • les autotools sont prévus pour un environnement Unix, leurs dépendances ne sont raisonnables que dans ce cadre ; demander à un utilisateur Windows d'installer une couche d'émulation de l'environnement Unix pour compiler un logiciel n'a aucun sens ;
  • de plus, Yabause nécessitait des autotools récents ; par exemple les versions par défaut de MinGW ou celles installées sur Mac OS X n'étaient pas suffisantes, il fallait donc les installer à la main (avec leur dépendances aussi, pendant qu'on y est) ;
  • les scripts autotools sont difficilement maintenables et ceci pour plusieurs raisons, notamment la séparation entre configuration (autoconf) et construction (automake) ou encore le fait qu'autoconf ne soit qu'un système de macros, etc. ;
  • les autotools ne sont pas réellement des outils, mais plutôt une quête mystique : il faut être initié, lire de vieux grimoires et admettre qu'au final, on ne peut pas tout comprendre ; par exemple dans le manuel d'automake : « The reason for this is a bit hard to explain, but suffice to say that it simply won't work. »
  • Sûrement plein d'autres raisons... il faudrait demander aux purs anti-autotools :)
Au final, le point qui m'a permis de tenir aussi longtemps sans changer de système était que, d'accord, on change de système... mais qui s'occupe de réécrire le biniou ?

Et la, je dois avouer que mes adversaires ont été forts, très fort ; parce que c'est moi qui ai lancé le mouvement ! Bon, par contre, j'ai rapidement été rejoint par le reste de l'équipe et c'est à ce moment que j'ai compris que j'avais fait le bon choix : je n'allais plus être seul à maintenir ces saletés de scripts de construction !

À l'heure actuelle, nous sommes toujours en train de travailler sur les nouveaux scripts (on ne rattrape pas une dizaine d'années en deux semaines...), mais dans l'ensemble les choses se passent bien : les principaux ports (cross-) compilent et CMake a clairement une syntaxe et une utilisation plus agréable que les autotools. J'ai d'ailleurs un peu peur d'avoir été converti... je ne suis pas sur que je réutiliserais les autotools pour un projet un jour ; il va falloir que je trouve un nouveau titre à mon blog :)

Aucun commentaire:

Enregistrer un commentaire