Value Function (GNU make)

From Get docs
Make/docs/latest/Value-Function

Next: Eval Function, Previous: Call Function, Up: Functions   [Contents][Index]



8.8 The value Function

The value function provides a way for you to use the value of a variable without having it expanded. Please note that this does not undo expansions which have already occurred; for example if you create a simply expanded variable its value is expanded during the definition; in that case the value function will return the same result as using the variable directly.

The syntax of the value function is:

$(value variable)

Note that variable is the name of a variable, not a reference to that variable. Therefore you would not normally use a ā€˜$ā€™ or parentheses when writing it. (You can, however, use a variable reference in the name if you want the name not to be a constant.)

The result of this function is a string containing the value of variable, without any expansion occurring. For example, in this makefile:

FOO = $PATH

all:
        @echo $(FOO)
        @echo $(value FOO)

The first output line would be ATH, since the ā€œ$Pā€ would be expanded as a make variable, while the second output line would be the current value of your $PATH environment variable, since the value function avoided the expansion.

The value function is most often used in conjunction with the eval function (see Eval Function).