【问题标题】:GNU make copy files to distro directoryGNU 将文件复制到发行版目录
【发布时间】:2010-03-30 05:58:26
【问题描述】:

我将源 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文件,但实际上有很多。

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

提前谢谢你 索伦

【问题讨论】:

    标签: file makefile copy gnu


    【解决方案1】:

    应该这样做:

    $(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)
    

    【讨论】:

    • 非常感谢,正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2012-03-18
    • 2011-11-19
    相关资源
    最近更新 更多