Ich habe eine Version Datei verfile
, die unter Version Zeichenfolge enthält
V1.1.2
Bash-Schnipsel nicht in Make-Datei funktioniert
Und in Makefile Ich beabsichtige, diese Version Zeichenfolge zu lesen, Also schrieb ich Makefile wie folgt,
filepath := $(PWD)
versionfile := $(filepath)/verfile
all:
cat $(versionfile)
version=$(shell cat $(versionfile))
echo "version=$(version)"
Nun, wenn ich die Make-Datei ausführen bekomme ich folgende ouput
cat /home/ubuntu/ankur/verfile
v1.1.2
version=v1.1.2
echo "version="
version=
Also ich bin nicht in der Lage, Version Zeichenfolge in der Variablen zu speichern und später verwenden, Ich bin mir nicht sicher, was mache ich falsch?
Irgendein Vorschlag/Zeiger?
Nach der Lektüre Antwort von "Didier Trosset" änderte ich meine Make-Datei wie folgt,
filepath := $(PWD)
versionfile := $(filepath)/verfile
myversion := ""
all:
ifeq ($(wildcard $(versionfile)),)
all:
echo "File not present"
else
all: myversion = $(shell cat $(versionfile))
endif
all:
echo "myversion = $(myversion)"
und unten ausgegeben für die
echo "myversion = v1.1.2"
myversion = v1.1.2
Keine Notwendigkeit für die Parens - jeder Befehl in make wird sowieso in einer Shell aufgerufen –