I thought some more about it, and I'm going to be even more picky about this.

I don't like
A=value

I really want to have:
A = value
in a Makefile.
Or
A =     value
if you want to indent stuff.

Notice the spaces. They are here to make things totally unambiguous for
make, and for a human.

Our make recognizes lots of variations on variable assignment. This includes
VAR += value
VAR := value
VAR ?= value
VAR != cmd

and you can even combine these:
VAR +!= cmd
is perfectly valid.

We also use some fun variable names, such as
FOO-subpackage

for instance, the gcc port has some
PKGNAME-c++ =   g++-${FULL_PKGVERSION} definition.

In such a case, the spaces are not even optional, they are *mandatory*,
otherwise make will obviously misparse the assignment.

Here comes the important part:

-----------------------------------------------------------------------------
|
| I do not want to have to think whether an assignment requires spaces
| around it, therefore I *always* put the spaces.
|
| I do no want to have to spend time figuring out bugs because people
| did not put spaces around an assignment for whatever misguided
| aesthetic reasons they have.
|
| I don't have any aesthetic reason for those spaces. I have *technical*
| reasons.
|
-----------------------------------------------------------------------------

Whenever I make a sweep in the ports tree that adds variables, I do put 
spaces around the assignment operator, even if it doesn't match the rest 
of the port.

I finally made up my mind about it. Those are the rules. Don't commit new 
ports without proper spacing.  Whenever you update ports, if you have the
time, please add the spacing.

If you think this is open to discussion, see important part above.
Think again.

Reply via email to