git: f74f891581bc - main - src.opts: Introduce MK_SOUND
Date: Mon, 12 Jan 2026 14:16:43 UTC
The branch main has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=f74f891581bc4df20431607de9b761107f6a0aa7
commit f74f891581bc4df20431607de9b761107f6a0aa7
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2026-01-12 14:16:35 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2026-01-12 14:16:35 +0000
src.opts: Introduce MK_SOUND
PR: 291853
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: zarychtam_plan-b.pwste.edu.pl, markj
Differential Revision: https://reviews.freebsd.org/D54456
---
lib/Makefile | 3 ++-
libexec/rc/rc.d/Makefile | 7 ++++---
sbin/devd/Makefile | 12 +++++++-----
share/mk/src.opts.mk | 6 ++++++
tools/build/mk/OptionalObsoleteFiles.inc | 13 +++++++++++++
tools/build/options/WITH_SOUND | 1 +
usr.bin/Makefile | 2 ++
usr.sbin/Makefile | 4 +++-
8 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/lib/Makefile b/lib/Makefile
index 216ba1d58473..d06488a33fb9 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -176,7 +176,6 @@ SUBDIR+= clang
.endif
SUBDIR.${MK_CUSE}+= libcuse
-SUBDIR.${MK_CUSE}+= virtual_oss
SUBDIR.${MK_TOOLCHAIN}+=libpe
SUBDIR.${MK_DIALOG}+= libdpv libfigpar
SUBDIR.${MK_FDT}+= libfdt
@@ -238,6 +237,8 @@ SUBDIR.${MK_PMC}+= libpmc libpmcstat
SUBDIR.${MK_RADIUS_SUPPORT}+= libradius
SUBDIR.${MK_SENDMAIL}+= libmilter libsm libsmdb libsmutil
SUBDIR.${MK_TELNET}+= libtelnet
+SUBDIR.${MK_SOUND}+= libmixer
+SUBDIR.${MK_SOUND}+= virtual_oss
SUBDIR.${MK_TESTS_SUPPORT}+= atf
SUBDIR.${MK_TESTS_SUPPORT}+= liblutok
SUBDIR.${MK_TESTS}+= tests
diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile
index 3b7f45e8f101..d0a6d10ad370 100644
--- a/libexec/rc/rc.d/Makefile
+++ b/libexec/rc/rc.d/Makefile
@@ -301,9 +301,10 @@ CONFGROUPS.${MK_VI}+= VI
VIPACKAGE= vi
VI= virecover
-CONFGROUPS.${MK_CUSE}+= VOSS
-VOSSPACKAGE= sound
-VOSS= virtual_oss
+CONFGROUPS.${MK_SOUND}+= SOUND
+SOUNDPACKAGE= sound
+SOUND= mixer \
+ virtual_oss
CONFGROUPS.${MK_WIRELESS}+= HOSTAPD
HOSTAPDPACKAGE= hostapd
diff --git a/sbin/devd/Makefile b/sbin/devd/Makefile
index 553aecf4ee88..3dab9f7c9a25 100644
--- a/sbin/devd/Makefile
+++ b/sbin/devd/Makefile
@@ -32,11 +32,6 @@ CONSOLEDIR= ${DEVDDIR}
CONSOLE+= moused.conf syscons.conf
CONSOLEPACKAGE= console-tools
-CONFGROUPS+= SND
-SNDDIR= ${DEVDDIR}
-SND= snd.conf
-SNDPACKAGE= sound
-
.if ${MK_BLUETOOTH} != "no"
CONFGROUPS+= BLUETOOTH
BLUETOOTHDIR= ${DEVDDIR}
@@ -56,6 +51,13 @@ NVMEDIR= ${DEVDDIR}
NVME+= nvmf.conf
NVMEPACKAGE= nvme-tools
+.if ${MK_SOUND} != "no"
+CONFGROUPS+= SND
+SNDDIR= ${DEVDDIR}
+SND= snd.conf
+SNDPACKAGE= sound
+.endif
+
.if ${MK_USB} != "no"
DEVD+= uath.conf ulpt.conf
.endif
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 68d48271d7bc..99a70bc4239f 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -172,6 +172,7 @@ __DEFAULT_YES_OPTIONS = \
SERVICESDB \
SETUID_LOGIN \
SHAREDOCS \
+ SOUND \
SOURCELESS \
SOURCELESS_HOST \
SOURCELESS_UCODE \
@@ -500,6 +501,11 @@ MK_CLANG_FULL:= no
MK_LLVM_COV:= no
.endif
+# CUSE is needed only by virtual_oss, but virtual_oss is part of MK_SOUND.
+.if ${MK_CUSE} == "no"
+MK_SOUND:= no
+.endif
+
.if ${MK_ASAN} == "yes"
# In order to get sensible backtraces from ASAN we have to install
# llvm-symbolizer as /usr/bin/addr2line instead of the elftoolchain version.
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index a7ae52650999..4e602c929568 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -7387,6 +7387,19 @@ OLD_DIRS+=var/spool/clientmqueue
OLD_FILES+=var/db/services.db
.endif
+.if ${MK_SOUND} == no
+OLD_DIRS+=lib/mixer
+OLD_DIRS+=lib/virtual_oss
+OLD_DIRS+=usr.bin/beep
+OLD_DIRS+=usr.bin/mididump
+OLD_DIRS+=usr.sbin/mixer
+OLD_DIRS+=usr.sbin/sndctl
+OLD_DIRS+=usr.sbin/virtual_oss
+OLD_FILES+=libexec/rc/rc.d/mixer
+OLD_FILES+=libexec/rc/rc.d/virtual_oss
+OLD_FILES+=sbin/devd/snd.conf
+.endif
+
.if ${MK_NUAGEINIT} == no
OLD_FILES+=etc/rc.d/nuageinit
OLD_FILES+=usr/libexec/nuageinit
diff --git a/tools/build/options/WITH_SOUND b/tools/build/options/WITH_SOUND
new file mode 100644
index 000000000000..0e2de52511ac
--- /dev/null
+++ b/tools/build/options/WITH_SOUND
@@ -0,0 +1 @@
+Compile with sound utilities and libraries support.
diff --git a/usr.bin/Makefile b/usr.bin/Makefile
index 5fa9821466da..158d3f1a92c1 100644
--- a/usr.bin/Makefile
+++ b/usr.bin/Makefile
@@ -240,6 +240,8 @@ SUBDIR.${MK_NIS}+= ypwhich
SUBDIR.${MK_OPENSSH}+= ssh-copy-id
SUBDIR.${MK_QUOTAS}+= quota
SUBDIR.${MK_SENDMAIL}+= vacation
+SUBDIR.${MK_SOUND}+= beep
+SUBDIR.${MK_SOUND}+= mididump
SUBDIR.${MK_TALK}+= talk
SUBDIR.${MK_TELNET}+= telnet
SUBDIR.${MK_TESTS_SUPPORT}+= kyua
diff --git a/usr.sbin/Makefile b/usr.sbin/Makefile
index 0290ed4f1c58..deeeb3cc4251 100644
--- a/usr.sbin/Makefile
+++ b/usr.sbin/Makefile
@@ -131,7 +131,6 @@ SUBDIR.${MK_BSNMP}+= bsnmpd
.if ${MK_CAROOT} != "no"
SUBDIR.${MK_OPENSSL}+= certctl
.endif
-SUBDIR.${MK_CUSE}+= virtual_oss
SUBDIR.${MK_CXGBETOOL}+= cxgbetool
SUBDIR.${MK_EFI}+= efivar efidp efibootmgr efitable efiwake
.if ${MK_OPENSSL} != "no"
@@ -200,6 +199,9 @@ SUBDIR.${MK_SENDMAIL}+= mailstats
SUBDIR.${MK_SENDMAIL}+= makemap
SUBDIR.${MK_SENDMAIL}+= praliases
SUBDIR.${MK_SENDMAIL}+= sendmail
+SUBDIR.${MK_SOUND}+= mixer
+SUBDIR.${MK_SOUND}+= sndctl
+SUBDIR.${MK_SOUND}+= virtual_oss
SUBDIR.${MK_TCP_WRAPPERS}+= tcpdchk
SUBDIR.${MK_TCP_WRAPPERS}+= tcpdmatch
SUBDIR.${MK_TOOLCHAIN}+= config