De ma toute petite expérience des systèmes de construction côté développeur, autotools est aussi celui qui se met le moins en travers de ton chemin quand tu as le malheur de ne pas être cool aux yeux des développeurs de l’outils. Dans mon cas, mon plus gros projet est en Fortran.
Malgré un vernis publicitaire pour certains, aucun système de build ne gère correctement les dépendances dans ce langage, et encore moins si vous avez l’idée saugrenue de ne pas écrire un script de construction spécifique pour chaque compilateur.
Au final, les autotools ne font pas tout, mais déjà plus que leurs concurrents, et surtout, c’est très facile de les ajuster aux cas qu’ils ne gèrent pas directement. Gestion manuelle des dépendances ? Tu as juste à te débrouiller pour fournir un Makefile.am correct. Détection de lib obscure qui fait pas classe en soirée ? Facile d’écrire ses scripts de tests.
Du coup, le seul système de compilation que j’ai réussi à utiliser est les autotools. Je m’arrache encore un peu les cheveux de temps en temps mais au final, je n’ai toujours pas perdu autant de temps dans le manuel des autotools après 5 ans sur le même projet, que le temps que j’ai passé dans celui de CMake pour écrire un CMakeList.txt minimaliste qui parvient tout juste à compiler mon projet. Alors que les autotools font compiler mon code avec plusieurs compilateurs, sur des machines très différentes et des systèmes d’exploitations variés, sur lesquelles j’ai rarement les droits d’administration.
[^] # Re: Une défense des autotools
Posté par jyes . En réponse au journal Un petit tour des systèmes de build. Évalué à 4.
De ma toute petite expérience des systèmes de construction côté développeur, autotools est aussi celui qui se met le moins en travers de ton chemin quand tu as le malheur de ne pas être cool aux yeux des développeurs de l’outils. Dans mon cas, mon plus gros projet est en Fortran.
Malgré un vernis publicitaire pour certains, aucun système de build ne gère correctement les dépendances dans ce langage, et encore moins si vous avez l’idée saugrenue de ne pas écrire un script de construction spécifique pour chaque compilateur.
Au final, les autotools ne font pas tout, mais déjà plus que leurs concurrents, et surtout, c’est très facile de les ajuster aux cas qu’ils ne gèrent pas directement. Gestion manuelle des dépendances ? Tu as juste à te débrouiller pour fournir un Makefile.am correct. Détection de lib obscure qui fait pas classe en soirée ? Facile d’écrire ses scripts de tests.
Du coup, le seul système de compilation que j’ai réussi à utiliser est les autotools. Je m’arrache encore un peu les cheveux de temps en temps mais au final, je n’ai toujours pas perdu autant de temps dans le manuel des autotools après 5 ans sur le même projet, que le temps que j’ai passé dans celui de CMake pour écrire un CMakeList.txt minimaliste qui parvient tout juste à compiler mon projet. Alors que les autotools font compiler mon code avec plusieurs compilateurs, sur des machines très différentes et des systèmes d’exploitations variés, sur lesquelles j’ai rarement les droits d’administration.