No Make

Construire des projets C et C++ automatiquement sans makefile.

Produire un makefile pour un programme C ou C++ est fastidieux, en raison notamment de la syntaxe très particulière de ce fichier, qui date de l'antiquité des ordinateurs.

On a trouvé maintenant qu'il était plus intéressant de produire un fichier CMake à partir duquel un fichier makefile pourra être généré automatiquement. Mais cela ne simplifie pas le travail et on voit qu'il y a des centaines de tutoriaux sur le web pour aider à construire ce nouveau fichier de configuration de génération de fichier de configuration.

Pour faire simple, j'ai écrit No Make, un programme qui trouve par lui-même les dépendances de chaque fichier source et les compile avant de générer le programme exécutable.

No Make vérifie pour chaque fichier source s'il y a un fichier objet déjà généré ou si le source est plus récent que le fichier objet, et il ne compile le source que dans ce cas.
On peut cependant avec l'option -a choisir de regénérer le projet entier. Dans les deux cas avec une seule commande:

nomake source

ou:

nomake -a source

"source" est le nom du code source du fichier contenant la fonction "main". L'extension est optionelle. Celui-ci doit inclure les fichiers d'en-tête des sources dont il dépend, qui eux-même doivent aussi avoir des #include pour leurs dépendances. Une autre contrainte est que tous les fichiers sources doivent avoir la même extension, ".c" ou ".cpp".

No Make construit d'abord une liste de tous les fichiers nécessaires, en ce basant sur les commandes include, puis il compile les sources en commençant par ceux qui ont le moins de dépendances pour finir par celui qui en a le plus.

Pour afficher la liste des options, taper juste le nom du programme:

nomake

Personnaliser

Le fichier nomake.ini est un simple fichier texte qui contient une liste d'option pour adapter nomake à votre compilateur et votre projet:

Exemple:

compiler=@cl.exe /nologo /O2 /c /D "_UNIX" /Ip:\antlr-2.7.7\lib\cpp\antlr\ /Ip:\antlr-2.7.7\lib\cpp\  /EHsc  
linker=@link.exe /nologo /OUT:ccw.exe
extension= .obj
libs=antlr.a

Téléchargement

Télécharger No Make

Le code source est inclus. Licence: Apache 2.0

Fonctionne par défaut avec Visual C sous Windows.

Voir aussi: