The branch stable/13 has been updated by des:

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

commit eafc54027d2ee6feac2114277d3c0f5131c9325f
Author:     Dag-Erling Smørgrav <d...@freebsd.org>
AuthorDate: 2025-09-10 16:57:26 +0000
Commit:     Dag-Erling Smørgrav <d...@freebsd.org>
CommitDate: 2025-09-16 13:55:22 +0000

    src.sys.mk: Support src.conf in SRCTOP
    
    If SRCCONF is not defined and src.conf exists at the top level of the
    source tree, use that instead of /etc/src.conf.
    
    MFC after:      3 days
    Reviewed by:    kevans, imp
    Differential Revision:  https://reviews.freebsd.org/D52470
    
    (cherry picked from commit dd8c666d8b78f6b9ddb691f0505837fa885ff3b4)
    
    UPDATING: mention the src.conf change
    
    Fixes:          dd8c666d8b78 ("src.sys.mk: Support src.conf in SRCTOP")
    (cherry picked from commit ab2fea3f9a5a58f0ba90499ad3a8614e3dca0c5f)
---
 .gitignore                  | 1 +
 UPDATING                    | 5 +++++
 share/man/man5/src.conf.5   | 9 ++++++---
 share/mk/src.sys.mk         | 4 ++++
 sys/conf/kern.pre.mk        | 4 ++++
 tools/build/options/makeman | 7 +++++--
 6 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index 668b6d90483a..454340511754 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ cscope.in.out
 cscope.out
 cscope.po.out
 tags
+/src.conf
diff --git a/UPDATING b/UPDATING
index a40ddb1d3670..84474463a407 100644
--- a/UPDATING
+++ b/UPDATING
@@ -17,6 +17,11 @@ and/or ports.
        has changed.  An NFS server that exports any of these file systems will
        need its clients to unmount and remount the exports.
 
+20250916:
+       If SRCCONF is unset and a file named src.conf is present at
+       the top of the source tree, it will now be used instead of
+       /etc/src.conf.
+
 20240419:
        Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
        been upgraded to 18.1.6. It is important that you run `make delete-old`
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 181b4fea466d..01721e786aa1 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,6 +1,6 @@
 .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
 .\" $FreeBSD$
-.Dd March 8, 2024
+.Dd September 16, 2025
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -30,8 +30,11 @@ variables that control the aspects of how the system builds.
 .Pp
 The default location of
 .Nm
-is
-.Pa /etc/src.conf ,
+is the top level of the source tree, or
+.Pa /etc/src.conf
+if no
+.Nm
+is found in the source tree itself,
 though an alternative location can be specified in the
 .Xr make 1
 variable
diff --git a/share/mk/src.sys.mk b/share/mk/src.sys.mk
index d5c2af0c559d..d563859586b0 100644
--- a/share/mk/src.sys.mk
+++ b/share/mk/src.sys.mk
@@ -6,7 +6,11 @@
 
 .if !defined(_WITHOUT_SRCCONF)
 # Allow user to configure things that only effect src tree builds.
+.if exists(${SRCTOP}/src.conf)
+SRCCONF?=      ${SRCTOP}/src.conf
+.else
 SRCCONF?=      /etc/src.conf
+.endif
 .if !empty(SRCCONF) && \
     (exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf") && \
     !target(_srcconf_included_)
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index 8728ac269dd6..c0af7ea7313f 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -8,7 +8,11 @@
 # the rest of /usr/src, but they still always process SRCCONF even though
 # the normal mechanisms to prevent that (compiling out of tree) won't
 # work. To ensure they do work, we have to duplicate thee few lines here.
+.if exists(${SRCTOP}/src.conf)
+SRCCONF?=      ${SRCTOP}/src.conf
+.else
 SRCCONF?=      /etc/src.conf
+.endif
 .if (exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf") && 
!target(_srcconf_included_)
 .include "${SRCCONF}"
 _srcconf_included_:
diff --git a/tools/build/options/makeman b/tools/build/options/makeman
index 05a07f592b09..875d8cf16b9d 100755
--- a/tools/build/options/makeman
+++ b/tools/build/options/makeman
@@ -174,8 +174,11 @@ variables that control the aspects of how the system 
builds.
 .Pp
 The default location of
 .Nm
-is
-.Pa /etc/src.conf ,
+is the top level of the source tree, or
+.Pa /etc/src.conf
+if no
+.Nm
+is found in the source tree itself,
 though an alternative location can be specified in the
 .Xr make 1
 variable

Reply via email to