GNU使复制文件到发行目录

时间:2010-03-30 05:58:26

标签: file makefile copy gnu

我将源html(和图像等)保存在不同的目录中以进行源代码控制。 制作发行版的一部分是将复制文件制作到输出文件夹并设置属性。

今天我的makefile显示(提取):

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

这只显示了三个html文件,但实际上有很多。

我想列出文件名(没有路径),并在源和目标之间进行比较并复制已更新的文件。

提前谢谢你 索伦

1 个答案:

答案 0 :(得分:4)

这应该这样做:

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

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

或者,为简洁起见:

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)