Question

Je garde mon code source HTML (et des images, etc.) dans des répertoires distincts pour le contrôle des sources. Une partie de la fabrication distro est d'avoir faire copier des fichiers vers le dossier de sortie et définir les attributs.

Aujourd'hui, mes shows makefile (extrait):

%.html:
    /usr/bin/install -c -p -m 644 $< $@ 

www: $(HTMLDST)/firmware.html $(HTMLDST)/firmware_status.html $(HTMLDST)/index.html
$(HTMLDST)/firmware.html: $(HTMLSRC)/firmware.html 
$(HTMLDST)/firmware_status.html: $(HTMLSRC)/firmware_status.html 
$(HTMLDST)/index.html: $(HTMLSRC)/index.html 

Ceci est illustré avec seulement trois fichiers html, mais en réalité, il y a beaucoup.

Je voudrais ne citer que les noms de fichiers (sans chemins) et ont faire faire la comparaison entre la source et la destination et copiez les fichiers qui ont été mis à jour.

Merci d'avance Søren

Était-ce utile?

La solution

Cela devrait le faire:

$(HTMLDST)/%.html: $(HTMLSRC)/%.html
    /usr/bin/install -c -p -m 644 $< $@ 

www: $(HTMLDST)/firmware.html $(HTMLDST)/firmware_status.html $(HTMLDST)/index.html

Ou, par souci de concision:

HTMLFILES = firmware firmware_status index

DESTFILES = $(patsubst %,$(HTMLDST)/%.html,$(HTMLFILES))

$(HTMLDST)/%.html: $(HTMLSRC)/%.html
    /usr/bin/install -c -p -m 644 $< $@ 

.PHONY: www
www: $(DESTFILES)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top