Makefile: копирование файлов с помощью правила
Я пытаюсь скопировать файлы с помощью мои правила, но мое правило не срабатывает:
BUILDDIR = build
COPY_FILES = code/xml/schema/schema.xsd config.txt
all: $(BUILDDIR) $(COPY_FILES) copy
$(BUILDDIR):
mkdir -p $@
$(COPY_FILES):
cp -f $@ $(BUILDDIR)
copy:
cp -f $(COPY_FILES) $(BUILDDIR)
Я пытаюсь использовать $(COPY_FILES), но он не запускается, хотя $(BUILDDIR) и copy запускаются. Я не уверен, что не так с моим Makefile. Я хотел бы, чтобы правило $(COPY_FILES) работало, если это возможно, пожалуйста (и удалите копию). Кто-нибудь знает?
1 ответов
проблема с $(COPY_FILES)
правило состоит в том, что целями этого правила являются два файла, которые уже существуют, а именно code/xml/schema/schema.xsd
и config.txt
. Make не видит причин для выполнения правила. Я не уверен, почему Make не выполняет в любом случае, [копировать] плохое правило.copy
правило, но я подозреваю, что есть файл под названием copy
запутанный вопрос.
попробуйте это:
COPY_FILES = $(BUILD_DIR)/schema.xsd $(BUILD_DIR)/config.txt
all: $(COPY_FILES)
$(BUILD_DIR)/schema.xsd: code/xml/schema/schema.xsd
$(BUILD_DIR)/config.txt: config.txt
$(BUILD_DIR)/%:
cp -f $< $@