开发者

How can I affect PATH in a makefile variable? Why is my example not working?

开发者 https://www.devze.com 2022-12-09 17:22 出处:网络
At the beginning of a makefile I ha开发者_开发技巧ve this line : PATH := $(PATH):/other/dir and this gives this error: Recursive variable \'PATH\' references itself. What do I have to do so it work

At the beginning of a makefile I ha开发者_开发技巧ve this line :

PATH := $(PATH):/other/dir

and this gives this error: Recursive variable 'PATH' references itself. What do I have to do so it works?


GNU make (and many others) has two main ways of assigning values to variables. They differ according to the operator which you use. According to the documentation, a single equals sign (=) will cause a recursive expansion of the value, whereas a colon-equals (:=) will cause a simple expansion.

Your quoted code uses a := and so should cause a simple expansion. What you are seeing is an error message associated with a recursive expansion. I would expect that sort of error if you had something like this:

PATH = $(PATH):/other/dir

Could the error be being caused by a different line in your makefile which you haven't quoted? If you're sure that your cut-and-pasting is correct, and that it is this line which is causing the problem, it would be helpful if we could see the whole, unedited makefile.


Another possibility is to use the shell function:

PATH = $(shell printenv PATH):/other/dir


try changing $(PATH) to ${PATH}

0

精彩评论

暂无评论...
验证码 换一张
取 消