Pour tirer parti correctement de make tu as besoin de préciser correctement tes dépendances et de tenir compte des timestamps. Comme tu sais programmer des dæmons en Python, je suppose que des programmes plus simples sont également à ta portée.
Voici ce que je propose:
Pour commencer, on définit une commande TeX MyFancyGraphic qu'on utilise comme suit:
Dont l'effet est d'inclure l'image filename et de poubelliser (ignorer) le reste.
Ensuite on écrit un programme makedepend_blender — en OCaml, mais on s'en cogne ;) — qui prépare les dépendances. Il lit tes fichiers TeX et écrit un fichier .depend_blender contenant des lignes du type
# DRAFT vaut no quand on prépare la version finale du document et yes# autrement.DISTCLEANFILES+= filename.in
REALCLEANFILES+= filename.png
filename.png:filename.in
sh ./call_blender.sh -D ${DRAFT} -o filename.png filename.in
(Si les fichiers image ont d'autres dépendances, il faut trouver une convention pour les ajouter dans MyFancyGraphic et demander à makedepend_blender d'écrire leurs noms à droite de filename.in.)
De plus makdepend_blender écrit aussi le contenu de l'appel à la commande dans le fichier filename.in — mais ne réécrit pas le fichier si le contenu n'a pas changé, ce qui évite de changer inutilement le timestamp.
[^] # Re: Problématique
Posté par Michaël (site web personnel) . En réponse au journal BSD Make Pallàs Scripts 2.0. Évalué à 2.
Ta solution est beaucoup trop compliquée!
Pour tirer parti correctement de
maketu as besoin de préciser correctement tes dépendances et de tenir compte destimestamps. Comme tu sais programmer des dæmons en Python, je suppose que des programmes plus simples sont également à ta portée.Voici ce que je propose:
Pour commencer, on définit une commande TeX
MyFancyGraphicqu'on utilise comme suit:Dont l'effet est d'inclure l'image
filenameet de poubelliser (ignorer) le reste.Ensuite on écrit un programme
makedepend_blender— en OCaml, mais on s'en cogne ;) — qui prépare les dépendances. Il lit tes fichiers TeX et écrit un fichier.depend_blendercontenant des lignes du type(Si les fichiers image ont d'autres dépendances, il faut trouver une convention pour les ajouter dans
MyFancyGraphicet demander àmakedepend_blenderd'écrire leurs noms à droite defilename.in.)De plus
makdepend_blenderécrit aussi le contenu de l'appel à la commande dans le fichierfilename.in— mais ne réécrit pas le fichier si le contenu n'a pas changé, ce qui évite de changer inutilement le timestamp.Finalement, côté
Makefilecela donne:Et voilà. :)