svn commit: r251404 - in head/lib/msun: . src

Chris Rees utisoft at gmail.com
Wed Jun 5 10:02:55 UTC 2013


On 5 Jun 2013 10:46, "Bruce Evans" <brde at optusnet.com.au> wrote:
>
> On Wed, 5 Jun 2013, Chris Rees wrote:
>
>> On 5 Jun 2013 06:33, "David Schultz" <das at freebsd.org> wrote:
>>>
>>> ...
>>>
>>> Log:
>>>   Style fixes.
>>>
>>>   Submitted by: bde
>>> ...
>>
>>
==============================================================================
>>>
>>> --- head/lib/msun/Makefile      Wed Jun  5 01:22:59 2013
 (r251403)
>>> +++ head/lib/msun/Makefile      Wed Jun  5 05:33:01 2013
 (r251404)
>>> @@ -21,6 +21,10 @@ ARCH_SUBDIR= ${MACHINE_CPUARCH}
>>>  .include "${ARCH_SUBDIR}/Makefile.inc"
>>>
>>>  .PATH: ${.CURDIR}/${ARCH_SUBDIR}
>>> +.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
>>> +.PATH: ${.CURDIR}/x86
>>> +CFLAGS+=       -I${.CURDIR}/x86
>>> +.endif
>>
>>
>> Since you're doing style fixes, it is worth noting that quoting strings
in
>> Makefiles is nearly always incorrect, and only works in our make because
of
>> an extension.
>
>
> Ugh.  make's tutorial even says that strings are required in both of the
> above contexts (for .include "file" and for strings in comparison
> operations).  From /usr/share/doc/psd/12.make:
>
> @    added ability to use variables in the filenames.  An include
> @    directive in a makefile looks either like this:
> @ @         #include <file>
> @ @    or this
> @ @         #include "file"
> @ @    The  difference  between the two is where PMake searches for
> @    the file: the first way, PMake will look for the  file  only
> @ ...
> @    The arithmetic and string operators may only be used to test
> @    the  value of a variable. The lefthand side must contain the
> @    variable expansion, while the righthand side contains either
> @    a  string, enclosed in double-quotes, or a number. The stan-
> @    dard C numeric conventions (except for specifying  an  octal
> @    number) apply to both sides. E.g.
> @ @         #if $(OS) == 4.3
> @ @         #if $(MACHINE) == "sun3"
> @ @         #if $(LOAD_ADDR) < 0xc000
> @ @    are  all  valid conditionals. In addition, the numeric value
> @    of a variable can be tested as a boolean as follows:
>
> The tutorial doesn't seem to have been updated for the new make (or
> the old make).  bmake duplicates the ~20-year old source file except
> for about 20 lines of trivial changes, but doesn't seem to build or
> install its version.
>
> I tried building a target named "foo bar".  It failed completely.

Very little in that guide is at all relevant or correct.  Perhaps when it
was first written.... It shows some interesting historical notes on the
difference between ${} and $(), which is also now wrong.

Following quoting rules because of an out of date tutorial and thus
diverging from the rest of the world seems a little odd.

I can't work out whether you agree or disagree with me from your comment :)

Chris


More information about the svn-src-head mailing list