Creation: 11 juin 2013
Mise à jour:
Version: 1.0
Author: Jean-Louis Bicquelet-Salaün
Location:
Copyright: (c) 2013 Jean-Louis BICQUELET-SALAÜN

makefile en cmd

Je me suis demandé comment faire un makefile à l'aide d'un script sous windows. Bien sur celui-ci n'a pas la puissance de Makefile, mais bien simple il permet de simuler un makefile simple sous command line windows.

principe

En fait, il faut dans un premier tester si le fichier résultat que l'on désire obtenir existe ou non.

Il faut ensuite comparer si le fichier source a été modifié depuis la dernière fois. Pour cela on compare les dates des fichiers source et résultat. Il n'existe pas de commande interne permettant de réaliser l'opération simplement. J'ai trouvé le programme wasfile sur l'excellent site de Horst Schaeffer's Software>

On va se servir des label du langage de scripting de windows pour déterminer ce Qu'il y a à faire.

exemple

Un exemple valant mieux qu'un long discours, voici un exemple:
@echo off

::----------------------------------
:: makefile
::----------------------------------

:: teste si le fichier n'existe pas et réalise la règle
if not exist  test.html call :test

:: si le fichier source a été modifié réalise la règle
wasfile test.txt modified after test.html
if %errorlevel%==0 call :test

::~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if not exist  prog.html call :prog
wasfile prog.txt modified after prog.html
if %errorlevel%==0 call :prog

goto :eof

::----------------------------------
:: règles
::----------------------------------
:test
echo make test
type test.txt > test.html
goto :eof

:prog
echo make prog
type prog.txt > prog.html
goto :eof

Téléchargement

Pour vous faciliter la vie l'exemple et le fichier de comparaison de date son en téléchargement.
fonctionfichier
Makefilemakefile.bat
executable de comparaison de datewasfile.exe