2014-04-07 36 views
1

例如,給定當前目錄中的文件列表,如何將這些文件複製到另一個目錄中。如何複製文件並保留gnu makefiles中的結構?

dest_dir := /usr/bin/test 

.PHONY: install 
install: $(dest_dir) 

#there files are in current directory 
xpi_built := install.rdf \ 
      chrome.manifest \ 
      $(wildcard content/*.js) \ 
      $(wildcard content/*.xul) \ 
      $(wildcard content/*.xml) \ 
      $(wildcard content/*.css) \ 
      $(wildcard skin/*.css) \ 
      $(wildcard skin/*.png) \ 
      $(wildcard locale/*/*.dtd) \ 
      $(wildcard locale/*/*.properties) 

#how to copy there files to another directory 
$(dest_dir)/% : $(xpi_built) 
    @mkdir -p $(dest_dir) 
    @cp $< [email protected] 

如何將文件列表複製到目標目錄?

回答

0
.PHONY: copy_files 

copy_files: $(xpi_built) 
    @mkdir -p $(dest_dir) 
    @cp $^ $(dest_dir) 
+0

CP -R不能保存的目錄結構。 – Jichao

+0

@Jichao:你是對的,我的錯誤,我會編輯。我也在研究一個變體,只有在實際需要複製的情況下才能複製文件(即,如果它們尚未被複制或已過時),但很難做到簡單。 – Beta

+0

你可以添加一個虛擬目標/文件來跟蹤它。也就是說,使用'$(dest_dir)/。copyfiles:$(xpi_built)',最後的規則是'touch $ @'。 '$(dest_dir)/.copyfiles'文件將會有一個日期,所以只有當其中一個內置文件更新時纔會更新它。另外,如果你使用$(dest_dir),它會重新運行。 – John

相關問題