• # Sympa !

    Posté par (site web personnel) . En réponse au message Makefile générique pour les petits projets. Évalué à 6.

    Tu aurais dû faire un journal pour ce très bon article, c'est moins volatile que le forum !

    Personnellement, le projet sur lequel je travail au boulot est très gros (plusieurs milliers de fichiers dont des centaines de makefiles, récursif bien sûr !)
    C'est une vrai horreur à faire marcher :
    - illisible, des milliers de lignes qui s'appellent dans tous les sens...
    - utilisation massive de variables global qui vont rester dans le shell (donc aucune garantie sur l'état
    - scripts de nettoyage trop vieux (nettoient pas tout voir plante carrément !)
    - lenteur (des dizaines de secondes juste pour vérifier les dépendances)
    - Et bien sûr le moindre changement tient de la gageure !

    À côté de ça, mon expérience sur les autotools m'a définitivement convaincu que ce remède est pire que le mal :
    - extrêmement bordélique (pan ! voila 10 fichiers en plus dans la racine de ton projet...)
    - très lent (mention spéciale au configure)
    - mal documenté et complexe à utiliser (la semaine dernière j'ai cherché à modifier un script autotools d'un vieux projet... j'ai laissé tombé après 1h de tâtonnement...)

    Au final j'en suis arrivé à la conclusion suivante (complètement opposée à la tienne ! ) : La simplicité avant tout !
    - Autant que possible : pas de système de build ! De nos jours, combien de projet on vraiment besoin d'être écrit en C/C++ plutôt qu'en Python ?
    - Pour les tout petit projets : Makefile tout seul avec grosso modo trois règles toutes simples (build, clean, %.o:%c)
    - Pour le reste : CMake (avec Clang et ninja, mais c'est une question de goûts et ça se change en 2s). Un seul fichier de configuration simple et ça roule tout seul !