DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(make.info.gz) Environment

Info Catalog (make.info.gz) Defining (make.info.gz) Using Variables (make.info.gz) Target-specific
 
 6.9 Variables from the Environment
 ==================================
 
 Variables in `make' can come from the environment in which `make' is
 run.  Every environment variable that `make' sees when it starts up is
 transformed into a `make' variable with the same name and value.
 However, an explicit assignment in the makefile, or with a command
 argument, overrides the environment.  (If the `-e' flag is specified,
 then values from the environment override assignments in the makefile.
  Summary of Options Options Summary.  But this is not recommended
 practice.)
 
    Thus, by setting the variable `CFLAGS' in your environment, you can
 cause all C compilations in most makefiles to use the compiler switches
 you prefer.  This is safe for variables with standard or conventional
 meanings because you know that no makefile will use them for other
 things.  (Note this is not totally reliable; some makefiles set
 `CFLAGS' explicitly and therefore are not affected by the value in the
 environment.)
 
    When `make' runs a command script, variables defined in the makefile
 are placed into the environment of that command.  This allows you to
 pass values to sub-`make' invocations ( Recursive Use of `make'
 Recursion.).  By default, only variables that came from the environment
 or the command line are passed to recursive invocations.  You can use
 the `export' directive to pass other variables.   Communicating
 Variables to a Sub-`make' Variables/Recursion, for full details.
 
    Other use of variables from the environment is not recommended.  It
 is not wise for makefiles to depend for their functioning on
 environment variables set up outside their control, since this would
 cause different users to get different results from the same makefile.
 This is against the whole purpose of most makefiles.
 
    Such problems would be especially likely with the variable `SHELL',
 which is normally present in the environment to specify the user's
 choice of interactive shell.  It would be very undesirable for this
 choice to affect `make'; so, `make' handles the `SHELL' environment
 variable in a special way; see  Choosing the Shell.
 
Info Catalog (make.info.gz) Defining (make.info.gz) Using Variables (make.info.gz) Target-specific
automatically generated byinfo2html