我有一个包含数千个媒体文件和以下文件结构的源代码:
files/module/file.vid
files/module/lang/file.vid
如果存在“files/module/lang/file.vid
”,我想将其按原样复制到目标。
如果没有,我想将“files/module/file.vid
”复制到目标中的“files/module/lang/file.vid
”。
如何使用makefile执行此操作?
PS:更准确地说,解决方案是否适合下面的当前部分?
$(foreach lang,$(filter-out en-US,$(gb_HELP_LANGS)),$(eval $(call gb_AllLangPackage_add_files_for_lang,helpcontent2_html_media_lang,$(lang),$(LIBO_SHARE_HELP_FOLDER)$(if $(HELP_ONLINE),/$(PRODUCTVERSION))/media, \
files/scalc/$(lang)/imtrigon.vid \
files/scalc/$(lang)/trigon.vid \
files/scalc/$(lang)/pivot.vid \
files/scalc/$(lang)/functions_ifs.vid \
)))
由于
答案 0 :(得分:0)
你可以这样做:
VIDDIR := files/module
LANGDIR := $(VIDDIR)/lang
TARGETDIR := target
VIDFILES := $(notdir $(wildcard $(VIDDIR)/*.vid))
TARGETVIDS := $(addprefix $(TARGETDIR)/,$(VIDFILES))
LANGVIDS := $(addprefix $(LANGDIR)/,$(VIDFILES))
all: $(TARGETVIDS) $(LANGVIDS)
$(TARGETDIR)/%.vid : $(LANGDIR)/%.vid
cp $< $@
$(LANGDIR)/%.vid: $(VIDDIR)/%.vid
cp $< $@