make -n -n

Bryan Drewery bdrewery at FreeBSD.org
Sat Oct 17 16:40:40 UTC 2015


On 10/17/2015 8:29 AM, John D. Hendrickson wrote:
> Bryan Drewery wrote:
>> Does anyone consider 'make -n -n' a thing for top-level builds?
>>
>> We have this ${_+_} thing in Makefiles that used to expand to '+' if you
>> gave '-n -n'.  This was so just 1 '-n' would just show what the
>> top-level Makefile would do:
>>
>> ~/svn/clean2 # make -n includes
>> cd /root/svn/clean2; PATH=/sbin:/bin:/usr/sbin:/usr/bin make -m
>> /root/svn/clean2/share/mk -f Makefile.inc1 TARGET=amd64
>> TARGET_ARCH=amd64 includes
>>
>> Versus the more expected (at least for bmake) -n behavior of traversing
>> sub-makes:
>>
>> ~/svn/clean2 # make -n -n includes
>> ===> lib (includes)
>> ===> lib/csu (includes)
>> ===> lib/csu/amd64 (includes)
>> ===> lib/libcompiler_rt (includes)
>> ===> lib/libc (includes)
>> ===> lib/libc/tests (includes)
>> ===> lib/libc/tests/tls_dso (includes)
>> ===> lib/libc/tests/c063 (includes)
>> etc...
>>
>> Note the actual output may be off due to local changes, but the point is
>> that -n with bmake is documented to run sub-makes with -n as well, so it
>> calls right down the chain showing all build commands without taking any
>> real actions.
>>
>> Bmake added a '-N' flag that essentially does the hack that we've put
>> into our top-level Makefile - it doesn't run sub-makes.
>>
>>
>> So having said all of that, the ${_+_} never expands anymore since
>> r251748 (June 2013). The act of it working in top-level has only been
>> fixed since r288391 (September 2015).
>>
>> Given it was broken for this long period I assume no one uses '-n -n' or
>> even knew about it.
>>
>> I would like to remove it (-n -n and _+_) and just use the (bmake)
>> documented -n and -N flags and use '+' everywhere appropriate. Note that
>> we use .MAKE in some targets that achieves largely the same thing, but
>> many sub-make calls don't have a .MAKE and lack a proper '+' to recurse
>> in Makefile.inc1.
>>
> 
> if you take a Makefile for older pmake and run it with newer - there is
> no telling what might happen (unless of course it's already been tried)
> 
> no telling
> 

I'm talking about head, where only bmake is supported.

Either way, the '-n -n' feature was not documented anywhere that I can
find. I am making the change here to desupport '-n -n' and make '-n' and
'-N' behave as documented in the bmake manpage.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20151017/c5c657ba/attachment.bin>


More information about the freebsd-arch mailing list