GNU Faça arquivos de cópia para distro diretório
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
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