PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > fr.comp.os.unix > Makefile et circular dependency
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
fr.comp.os.unix Système UNIX.

Makefile et circular dependency

Réponse
 
LinkBack Outils de la discussion
Vieux 04/05/2006, 13h31   #1
Thomas vO
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Makefile et circular dependency

bonjour,

j'essaie de faire un Makefile relativement générique pour (pdf)LaTeX
(qui fonctionne avec le make de GNU).

j'ai donc mis des variables contenant les images :

### figures à convertir de l'EPS en PDF
ALL_EPS = \
logo.pdf
### figures à convertir depuis pdflatex en EPS
ALL_PDF = \
logo.eps
ALL_JPG = \
dsotm.jpg

pour lesquels j'ai mis les règles suivantes :

### un .eps dépend d'un .pdf, d'un .jpg ou d'un .png
%.eps: %.pdf ${ALL_PDF}
${PDF2EPS} $<

%.eps: %.jpg ${ALL_JPG}
convert $< $(patsubst %.jpg,%.eps,$<)

%.eps: %.png ${ALL_PNG}
convert $< $(patsubst %.png,%.eps,$<)

### Conversion des images pour le PDF
### ou d'un eps (+ conversion)
%.pdf: %.eps ${ALL_EPS}
${EPS2PDF} -o=$(patsubst %.eps,%.pdf,$<) $<

et bien évidemment, j'ai des dépendances circulaires... est-ce qu'il
existe un moyen d'arrêter ce cercle (vicieux) ?

--
Thomas vO - <http://perso.enstimac.fr/~vanouden/>
  Réponse avec citation
Vieux 04/05/2006, 16h19   #2
Pascal Bourguignon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Makefile et circular dependency

Thomas vO <vanouden@cf.webpage.invalid> writes:

> bonjour,
>
> j'essaie de faire un Makefile relativement générique pour (pdf)LaTeX
> (qui fonctionne avec le make de GNU).
>
> j'ai donc mis des variables contenant les images :
>
> ### figures à convertir de l'EPS en PDF
> ALL_EPS = \
> logo.pdf
> ### figures à convertir depuis pdflatex en EPS
> ALL_PDF = \
> logo.eps
> ALL_JPG = \
> dsotm.jpg
>
> pour lesquels j'ai mis les règles suivantes :
>
> ### un .eps dépend d'un .pdf, d'un .jpg ou d'un .png
> %.eps: %.pdf ${ALL_PDF}
> ${PDF2EPS} $<
>
> %.eps: %.jpg ${ALL_JPG}
> convert $< $(patsubst %.jpg,%.eps,$<)
>
> %.eps: %.png ${ALL_PNG}
> convert $< $(patsubst %.png,%.eps,$<)
>
> ### Conversion des images pour le PDF
> ### ou d'un eps (+ conversion)
> %.pdf: %.eps ${ALL_EPS}
> ${EPS2PDF} -o=$(patsubst %.eps,%.pdf,$<) $<
>
> et bien évidemment, j'ai des dépendances circulaires... est-ce qu'il
> existe un moyen d'arrêter ce cercle (vicieux) ?


Si tu veux le faire avec des règles générique, il faudra utiliser des
extensions différentes.

%.eps: %.in.pdf
%.out.pdf: %.eps

Sinon, supprimer une de ces règles générale, ce qui n'empêche pas d'écrire:

toto.eps:titi.pdf
${PDF2EPS} $< $@

toto.pdf:toto.eps # ici on utilise la règle générale.

--
__Pascal Bourguignon__ http://www.informatimago.com/

ATTENTION: Despite any other listing of product contents found
herein, the consumer is advised that, in actuality, this product
consists of 99.9999999999% empty space.
  Réponse avec citation
Vieux 04/05/2006, 17h09   #3
Thomas vO
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Makefile et circular dependency


À (at) Thu, 04 May 2006 17:19:07 +0200,
Pascal Bourguignon <pjb@informatimago.com> nous disait (told us):
> Thomas vO <vanouden@cf.webpage.invalid> writes:
>> et bien évidemment, j'ai des dépendances circulaires... est-ce
>> qu'il existe un moyen d'arrêter ce cercle (vicieux) ?

>
> Si tu veux le faire avec des règles générique, il faudra utiliser des
> extensions différentes.
>
> %.eps: %.in.pdf
> %.out.pdf: %.eps


merci.
j'ai donc fait ça :

### figures à convertir de l'EPS en PDF
ALL_EPS = \
logo.out.pdf

### figures à convertir depuis pdflatex en EPS
ALL_PDF = \
logo.out.eps

et ça :

### Conversion des images pour le PS
### un .eps dépend d'un .pdf
%.out.eps: %.in.pdf ${ALL_PDF}
@${PDF2EPS} $< $(patsubst %.in.pdf,%.out.eps,$<)

### Conversion des images pour le PDF
### un .pdf dépend d'un .eps
%.out.pdf: %.in.eps ${ALL_EPS}
@${EPS2PDF} -o=$(patsubst %.in.eps,%.out.pdf,$<) $<

et toujours la même erreur :
vanouden@zola[gmake] gmake pdf
gmake: Circular logo.out.pdf <- logo.out.pdf dependency dropped.

qu'est-ce que j'ai raté ??

--
Thomas vO - <http://perso.enstimac.fr/~vanouden/>
  Réponse avec citation
Vieux 04/05/2006, 17h28   #4
Pascal Bourguignon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Makefile et circular dependency

Thomas vO <vanouden@cf.webpage.invalid> writes:

> À (at) Thu, 04 May 2006 17:19:07 +0200,
> Pascal Bourguignon <pjb@informatimago.com> nous disait (told us):
>> Thomas vO <vanouden@cf.webpage.invalid> writes:
>>> et bien évidemment, j'ai des dépendances circulaires... est-ce
>>> qu'il existe un moyen d'arrêter ce cercle (vicieux) ?

>>
>> Si tu veux le faire avec des règles générique, il faudra utiliser des
>> extensions différentes.
>>
>> %.eps: %.in.pdf
>> %.out.pdf: %.eps

>
> merci.
> j'ai donc fait ça :
>
> ### figures à convertir de l'EPS en PDF
> ALL_EPS = \
> logo.out.pdf
>
> ### figures à convertir depuis pdflatex en EPS
> ALL_PDF = \
> logo.out.eps
>
> et ça :
>
> ### Conversion des images pour le PS
> ### un .eps dépend d'un .pdf
> %.out.eps: %.in.pdf ${ALL_PDF}
> @${PDF2EPS} $< $(patsubst %.in.pdf,%.out.eps,$<)
>
> ### Conversion des images pour le PDF
> ### un .pdf dépend d'un .eps
> %.out.pdf: %.in.eps ${ALL_EPS}
> @${EPS2PDF} -o=$(patsubst %.in.eps,%.out.pdf,$<) $<
>
> et toujours la même erreur :
> vanouden@zola[gmake] gmake pdf
> gmake: Circular logo.out.pdf <- logo.out.pdf dependency dropped.
>
> qu'est-ce que j'ai raté ??


Il faut distinguer les PDF IN des PDF OUT:

ALL_PDF_IN = \
logo.in.pdf
ALL_PDF_OUT = \
logo.out.pdf

%.out.eps: %.in.pdf $(ALL_PDF_IN)
@${PDF2EPS} $< $(patsubst %.in.pdf,%.out.eps,$<)

all: $(ALL_PDF_OUT)

--
__Pascal Bourguignon__ http://www.informatimago.com/

CONSUMER NOTICE: Because of the "uncertainty principle," it is
impossible for the consumer to simultaneously know both the precise
location and velocity of this product.
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 13h43.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12072 seconds with 12 queries