Re: git: 623be660fcc9 - main - beep: add missing include of src.opts.mk, use LIBADD instead of LDFLAGS

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Mon, 24 Mar 2025 13:30:23 UTC
On 3/19/25 16:23, Chuck Silvers wrote:
> On Wed, Mar 19, 2025 at 08:44:13PM +0000, Brooks Davis wrote:
>> On Wed, Mar 19, 2025 at 08:22:36PM +0000, Chuck Silvers wrote:
>>> The branch main has been updated by chs:
>>>
>>> URL: https://cgit.FreeBSD.org/src/commit/?id=623be660fcc9860c0e8b99e8c2c4bbdefc121fd1
>>>
>>> commit 623be660fcc9860c0e8b99e8c2c4bbdefc121fd1
>>> Author:     Chuck Silvers <chs@FreeBSD.org>
>>> AuthorDate: 2025-03-19 19:48:10 +0000
>>> Commit:     Chuck Silvers <chs@FreeBSD.org>
>>> CommitDate: 2025-03-19 19:48:10 +0000
>>>
>>>      beep: add missing include of src.opts.mk, use LIBADD instead of LDFLAGS
>>>      
>>>      Sponsored by:   Netflix
>>> ---
>>>   usr.bin/beep/Makefile | 5 +++--
>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/usr.bin/beep/Makefile b/usr.bin/beep/Makefile
>>> index f252ab64f843..8388ff7ff986 100644
>>> --- a/usr.bin/beep/Makefile
>>> +++ b/usr.bin/beep/Makefile
>>> @@ -1,6 +1,7 @@
>>> +.include <src.opts.mk>
>>
>> Why add src.opts.mk?  Nothing is using it and bsd.prog.mk will include
>> it.  Is there another change coming that will use it?
>>
>> -- Brooks
>>
>>> +
>>>   PROG=	beep
>>>   MAN=	beep.1
>>> -
>>> -LDFLAGS= -lm
>>> +LIBADD=	m
>>>   
>>>   .include <bsd.prog.mk>
>>>
> 
> the motivation for these changes is that I want to be able to add something
> to LDFLAGS in /etc/src.conf and have that actually affect every executable
> and shared library that is built.
> 
> we don't actually care about beep or trim, I just noticed that they were
> not getting the LDFLAGS from src.conf and thought I would fix them
> for completeness.  adding the include of src.opts.mk seemed to fix that.
> also, a great many makefiles include src.opts.mk as the first thing and
> I thought that was just some boilerplate that was expected to be done
> everywhere and had been overlooked in these two.
> 
> at that point I had not changed the usage of LDFLAGS in these two makefiles.
> then as I was arranging this stuff to commit, I grep'ed for other makefiles
> that assign rather than append to LDFLAGS (like I had found in bsnmpd)
> and found that these same two makefiles also incorrectly assigned to LDFLAGS,
> so then I added the other changes you see in those two commits.
> 
> I'm not sure why I thought that including src.opts.mk without changing
> the LDFLAGS usage made things work initially.  I tried that again just now
> and indeed it doesn't help, and the parts that remove the assignment to LDFLAGS
> are enough.  maybe I had something stale in my obj dir before?
> 
> anyway, I'd be happy to remove the include of src.opts.mk from these again
> if you'd like.

I do think we shouldn't keep the extra src.opts.mk includes unless they are needed.
The typical use case for including that early is if a Makefile needs to test
some of the variables it sets (e.g. MK_FOO).

-- 
John Baldwin