Domanda

io continuo la mia html sorgente (e le immagini, ecc) in directory separate per il controllo di origine. Parte di rendere la distro è quello di avere file di effettuare una copia nella cartella di output e impostare gli attributi.

Oggi i miei spettacoli Makefile (estratto):

%.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 

Questo è mostrato con solo tre file html, ma in realtà, ci sono un sacco.

Vorrei elencare solo i nomi dei file (senza percorso) e hanno accontentarsi il confronto tra sorgente e destinazione e copiare i file che sono stati aggiornati.

Grazie in anticipo Søren

È stato utile?

Soluzione

Questo dovrebbe farlo:

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

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

In alternativa, per brevità:

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top