1

Salut, j'ai une question spécifique à GNU make donc le topic est pas forcément bien placé (mais vu que c'était dans un projet C...).
J'ai des fichiers bitmap sur lesquels je fais des traitements:
xxx	: %.bmp
	#traitement
jusqu'ici pas de problème.
Mais j'aimerais aussi faire un traitement différent pour certaines images sans avoir à renommer les fichiers ni à les déplacer (parce qu'ils sont utilisés autre part). J'avais pensé mettre dans un fichier texte la liste des fichiers particuliers et à vérifier dans la règle la présence ou non du nom du fichier, mais je me suis ensuite rendu compte que les conditions (ifeq etc) étaient évaluées à la lecture du fichier makefile.

Sinon ensuite j'ai essayé de jouer avec les règles, par exemple si je veux faire le traitement b pour l'image x.bmp je mets un fichier x.bmp.b dans le même répertoire et ensuite j'écris mes règles comme ça:
xxx	: %.bmp %.bmp.b
	#traitement B
xxx	: %.bmp 
	#traitement normal
ça fonctionne mais j'aurais préféré écrire une liste tongue est ce que vous savez si c'est possible ? merci
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

2

Les targets plus spécifiques sont prioritaires sur les targets moins spécifiques, donc normalement il suffit de mettre la liste et il te choisira la version avec la liste plutôt que la version par défaut avec le wildcard.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Quand je disais liste je voulais dire stocker dans un fichier externe tous les noms de fichiers pour lesquels je veux faire le traitement spécial.
Si c'est de ça que tu parles j'ai compris ce que tu voulais dire.
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

4

Je proposais de mettre la liste directement dans le makefile.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

De quelle façon tu ferais ça ?
Parce que si je stocke la liste dans une variable
liste := image1.bmp image2.bmp après comment je vérifie que l'image est bien dedans?
xxx	: %.bmp 
	si $(notdir $<) est dans $(liste) alors
		traitementB
	sinon
		traitementA
Mon problème est le "si".
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

6

J'écrirais:
.bmp.machinchose:
        traitementA

foo.machinchose: foo.bmp
        traitementB
bar.machinchose: bar.bmp
        traitementB
...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

liste=$(shell cat liste.txt)

%.dat: %.bmp
	echo Traitement 1

.depend: liste.txt
	rm -f .depend 
	for i in $(liste) ; do echo "$$(basename $$i .bmp).dat: $$i" >> .depend ; echo "	echo Traitement 2" >> .depend ; done

-include .depend


Solution artisanale j'en conviens, mais qui remplit ce que tu demande.

8

./6 oui mais c'est embêtant d'avoir à réécrire la règle plusieurs fois, oui je sais je suis chiant tongue
./7 Ah oui c'est bourrin mais c'est bien ça que je voulais, merci bien grin
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

9

Make peut faire du conditionel...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

10

ifeq et compagnie sont pris en compte à la lecture du fichier makefile, tu penses à quoi ?

et pourquoi tu mets des points de suspension ? c'est pas mal agressif je trouve tongue
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?