git: c47cefba8312 - main - Only build USB-related modules if MK_USB != no

From: Enji Cooper <ngie_at_FreeBSD.org>
Date: Tue, 03 Mar 2026 04:50:50 UTC
The branch main has been updated by ngie:

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

commit c47cefba831240a1b3de375f18134b93cf998f5c
Author:     Enji Cooper <ngie@FreeBSD.org>
AuthorDate: 2026-03-03 04:49:54 +0000
Commit:     Enji Cooper <ngie@FreeBSD.org>
CommitDate: 2026-03-03 04:50:03 +0000

    Only build USB-related modules if MK_USB != no
    
    This change moves the thunderbolt module and other USB modules under a
    MK_USB != no conditional to ensure that users not desiring USB support
    can easily build systems without USB-specific drivers using this knob.
    
    MFC after:      1 week
    Reviewed By:    imp
    Differential Revision: https://reviews.freebsd.org/D55576
---
 sys/conf/kern.opts.mk |  5 +++++
 sys/conf/kmod.mk      |  8 ++++++--
 sys/modules/Makefile  | 16 ++++++++++------
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/sys/conf/kern.opts.mk b/sys/conf/kern.opts.mk
index 81b117492916..f26a44eb61f5 100644
--- a/sys/conf/kern.opts.mk
+++ b/sys/conf/kern.opts.mk
@@ -47,6 +47,7 @@ __DEFAULT_YES_OPTIONS = \
     SOURCELESS_UCODE \
     SPLIT_KERNEL_DEBUG \
     TESTS \
+    USB \
     USB_GADGET_EXAMPLES \
     ZFS
 
@@ -207,6 +208,10 @@ MK_KERNEL_SYMBOLS:=	no
 MK_DTRACE:=	no
 .endif
 
+.if ${MK_USB} == "no"
+MK_USB_GADGET_EXAMPLES:= no
+.endif
+
 # Some modules only compile successfully if option FDT is set, due to #ifdef FDT
 # wrapped around declarations.  Module makefiles can optionally compile such
 # things using .if !empty(OPT_FDT)
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 17358428a023..4f1509592483 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -103,10 +103,14 @@ LINUXKPI_GENSRCS+= \
 	pci_iov_if.h \
 	pcib_if.h \
 	vnode_if.h \
-	usb_if.h \
-	opt_usb.h \
 	opt_stack.h
 
+.if ${MK_USB} != "no"
+LINUXKPI_GENSRCS+= \
+	usb_if.h \
+	opt_usb.h
+.endif
+
 LINUXKPI_INCLUDES+= \
 	-I${SYSDIR}/compat/linuxkpi/common/include \
 	-I${SYSDIR}/compat/linuxkpi/dummy/include \
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 49a15588e9a5..a4100c31ef26 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -356,7 +356,7 @@ SUBDIR=	\
 	${_rtw89} \
 	rtwn \
 	rtwn_pci \
-	rtwn_usb \
+	${_rtwn_usb} \
 	${_rtwnfw} \
 	${_s3} \
 	${_safe} \
@@ -411,7 +411,7 @@ SUBDIR=	\
 	${_ufshci} \
 	uinput \
 	unionfs \
-	usb \
+	${_usb} \
 	${_vesa} \
 	${_vf_i2c} \
 	virtio \
@@ -710,6 +710,14 @@ SUBDIR+=	ktest
 SUBDIR+=	tests
 .endif
 
+.if ${MK_USB} != "no" || defined(ALL_MODULES)
+_rtwn_usb=	rtwn_usb
+_usb=		usb
+. if ${MACHINE_CPUARCH} == "amd64"
+_thunderbolt=	thunderbolt
+. endif
+.endif
+
 .if ${MK_ZFS} != "no" || defined(ALL_MODULES)
 SUBDIR+=	zfs
 .endif
@@ -938,10 +946,6 @@ _bcm283x_pwm=	bcm283x_pwm
 _neta=		neta
 .endif
 
-.if ${MACHINE_CPUARCH} == "amd64"
-_thunderbolt=	thunderbolt
-.endif
-
 .if !(${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} < 110000)
 # LLVM 10 crashes when building if_malo_pci.c, fixed in LLVM11:
 # https://bugs.llvm.org/show_bug.cgi?id=44351