Ich verwende MinGW 3.18 unter Windows XP SP2, GNU make 3.82.MinGW/GNU Make - "mehrere Zielmuster"
Ich versuche, einen Wert von einem Skript in einem Pfad enthalten und einen Fehler erhalten.
Dies funktioniert:
PROD_DIR=$(ROOT_DIR)/PROD
version=1.1.1
PROD_SOURCE_files = \
file1 \
file2
PROD_TARGET_files = $(patsubst %,$(PROD_DIR)/$(version)/%,$(PROD_SOURCE_files))
Dies gilt nicht:
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.
(Linie 1359 ist die Definition von PROD_TARGET_files)
Ich habe doppelt geprüft $ (Version), es hat in beiden Fällen den gleichen Wert, mit scheinbar keinen führenden/nachfolgenden Leerzeichen oder Zeilenumbrüchen:
@echo [$(version)]
[1.1.1]
Sie haben ein Makefile, die (mindestens) 1359 Zeilen lang ist? Das bringt mich dazu, zu weinen! –
Sind Sie sicher, dass der Wert gleich ist? Wenn es beispielsweise den Befehl nicht finden kann, wird er auf '/ bin/sh: get_version.sh: command not found' gesetzt, was Doppelpunkte enthält und genau dieses Problem verursachen würde. –