At the beginning of a makefile I have 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?
At the beginning of a makefile I have 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.