makefile et généricité
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.os.unix ]
Sujet: makefile et généricité
De: ...@elzevir.fr (mpg)
Groupes: fr.comp.os.unix
Organisation: Service de news de lacave.net
Date: 16. Jul 2008, 16:37:12
|
Bonjour,
je suis plus ou moins débutant en makefiles, et je suis actuellement en
train d'essayer d'en faire un pour convertir des répertoires de pages de
man en pdf et en html. Pour l'instant, j'ai un Makefile à la racine
(répertoire man) comme suit :
DIR = man1 man5
all: $(DIR)
pdf: $(DIR)
html: $(DIR)
clean: $(DIR)
$(DIR):
$(MAKE) -C $@ $(MAKECMDGOALS)
..PHONY: $(DIR)
et deux, resp. dans man1 et man5 (seules sections présentes) comme ça :
SRC = $(wildcard *.5)
PDF = $(patsubst %.5, %.pdf, $(SRC))
HTML = $(patsubst %.5, %.html, $(SRC))
all: html pdf
pdf: $(PDF)
html: $(HTML)
clean:
-rm -f -- $(PDF) $(HTML)
%.pdf: %.5
groff -man $< | ps2pdf - $@
%.html: %.5
groff -man -Thtml $< > $@
en remplaçant partout .5 par .1 pour man1/Makefile.
La ressemblance très forte entre les deux derniers fichiers me fait penser
qu'il y aurait sans doute moyen de factoriser un peu tout ça, mais je ne
vois pas trop comment procéder. J'ai essayé de mettre des règles comme :
%.pdf: %.$(SEC)
groff -man $< | ps2pdf - $@
dans le Makefile racine puis de définir SEC = 5 dans le man5/Makefile,
visiblement ce n'est pas du goût de make. Pour la génération des listes PDF
et HTML, je ne vois pas non plus.
Je suis preneur de toute piste ou pointeur vers la partie adéquate de la
documentation. Le truc n'a pas besoin d'être portable donc si des
fonctionnalités spécifiques de GNU make peuvent aider, ça ne pose pas de
problème de les utiliser.
Merci d'avance !
Manuel.

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|