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