git: 4d692868a673 - main - compile_et: reduce the dependency chain for bootstrap tools.

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Wed, 06 Nov 2024 13:40:20 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/src/commit/?id=4d692868a6730ebf72a1d1a619af89af6fc8d763

commit 4d692868a6730ebf72a1d1a619af89af6fc8d763
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2024-11-06 11:16:09 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2024-11-06 13:39:57 +0000

    compile_et: reduce the dependency chain for bootstrap tools.
    
    Fix the build on macOS
    
    The bootstrap tools are statically linked, so our build system
    will provide the full dependency chain which pulls in libcrypt.
    
    since recently libcrypt.a is a linker script not supported by macOS
    ar(1), given that compile_et does not use at all the function from
    libroken which brings the dependency on libcrypt, bypass LIBADD
    dependency chain by using the old LDADD/DPADD mechanism, like it is
    done for other kerberos related bootstrap tools.
---
 usr.bin/compile_et/Makefile | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/usr.bin/compile_et/Makefile b/usr.bin/compile_et/Makefile
index 6305bfe3ddfd..621ba3dd101d 100644
--- a/usr.bin/compile_et/Makefile
+++ b/usr.bin/compile_et/Makefile
@@ -4,7 +4,18 @@ PACKAGE=	kerberos
 
 PROG=	compile_et
 SRCS=	compile_et.c parse.y lex.l
-LIBADD=	roken vers
+.if defined(BOOTSTRAPPING)
+# compiler_et does not need the full libroken but just a bunch of the file
+# in there, the buildsystem we have will trigger the full dependency chain
+# when linking statically including libcrypt, which is a ldscript, not
+# supported by macOS ar(1).
+LIBROKEN_A=	${.OBJDIR:H:H}/kerberos5/lib/libroken/libroken.a
+LDADD=	${LIBROKEN_A}
+DPADD=	${LIBROKEN_A}
+.else
+LIBADD=	roken
+.endif
+LIBADD+=	vers
 CFLAGS+=-I. -I${SRCTOP}/contrib/com_err
 
 WARNS?=	0