The variable definitions in the reference pages that follow have trailing letters in parenthesis to indicate how they apply:
The variable is globally defined: a definition applies to the entire makefile independent of all targets. Compiler options defined as global are usually in addition to those defined by the release tools.
The variable applies to each target: a target such as an executable or a library can define this variable and it will be limited to dealing with that target only. For example, library libX.a could define a target-specific variable VAR by defining libX.a_VAR.
The variable applies to individual source files: each source file can add more options by defining the appropriate variable. For example, file file.cxx could define a file-specific variable VAR by defining file.cxx_VAR.
Makefile uses can extend the variable. For example, use u could extend variable VAR by defining u_VAR. Typically at least the defining use defines the variable.
The variable allows option sets: the use-defined values can be extended by option sets. The selected option sets will always be target-specific (libX.a_OPTION_SETS, typically just the global option sets USE_OPTION_SETS) and file-specific (file.cxx_OPTION_SETS).
The variable is not defined, only used. The value must be defined either on make command line, in the makefile, or in the environment.