Я использую MinGW 3.18 под Windows XP SP2, GNU make 3.82.
Я пытаюсь включить в путь значение, возвращаемое сценарием, и получить ошибку.
Это работает:
PROD_DIR=$(ROOT_DIR)/PROD
version=1.1.1
PROD_SOURCE_files = \
file1 \
file2
PROD_TARGET_files = $(patsubst %,$(PROD_DIR)/$(version)/%,$(PROD_SOURCE_files))
Это не так:
PROD_DIR=$(ROOT_DIR)/PROD
version=`get_version.sh`
PROD_SOURCE_files = \
file1 \
file2
PROD_TARGET_files = $(patsubst %,$(PROD_DIR)/$(version)/%,$(PROD_SOURCE_files))
Makefile:1359: *** multiple target patterns. Stop.
(строка 1359 - это определение PROD_TARGET_files)
Я дважды проверил $ (версия), оно имеет одинаковое значение в обоих случаях, по-видимому, без начальных / конечных пробелов или переносов:
@echo [$(version)]
[1.1.1]