Pergunta

Eu mantenho meu HTML de origem (e imagens etc.) em diretórios separados para controle de origem. Parte da fabricação da distro é fazer com que os arquivos de cópia sejam pastas de saída e defina os atributos.

Hoje meus shows makefile (extrato):

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

Isso é mostrado com apenas três arquivos HTML, mas, na realidade, há muito.

Gostaria de apenas listar os nomes de arquivos (sem caminhos) e fazer a comparação entre a origem e o destino e copiar os arquivos que foram atualizados.

Obrigado antecipadamente Søren

Foi útil?

Solução

Isso deve servir:

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

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

Ou, por brevidade:

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top