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 !
# Sympa !
Posté par G.bleu (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 !