[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mention if a=b make = make a=b
From: |
Edward Welbourne |
Subject: |
Re: mention if a=b make = make a=b |
Date: |
Tue, 21 Nov 2017 10:50:27 +0000 |
Dan Jacobson (20 November 2017 23:50)
> (info "(make) Environment") should mention how equivalent
> $ a=b make #and
> $ make a=b
> are to each other.
> See also http://debbugs.gnu.org/29270
They're not quite equivalent, although an example like the one you give
may be a good one for the documentation to explore in explaining what
the difference is. Assignments as command-line arguments over-ride
assignments in the make-files which, in turn, over-ride assignments in
the environment. Thus if a make-file says:
CPPFLAGS = -DNDEBUG -Iapi
then invoking
CPPFLAGS=-DCUSTOM_DEBUG make
will ignore the environment setting and use -DNDEBUG -Iapi; while
make CPPFLAGS=-DCUSTOM_DEBUG
will use -DCUSTOM_DEBUG and ignore the make-file's setting (so no -Iapi
option will be passed to your compiler).
IIRC, there is an "override" command you can use in the make-file to
make its setting override even the command-line.
I can't remember what happens if you use += in the make-file: I'm fairly
sure it extends whatever you had in the environment, but I can't
remember whether it extends a value set on the command-line.
Eddy.