kmod.mk: Allow extra objects to be specified in modules

OBJS are automatically added to CLEANFILES. For pre-built objects, this
is not desirable since it will delete the object from the source
tree. Introduce EXTRA_OBJS which list these object files, but aren't
added to clean files.

Sponsored by:		Netflix
Reviewed by:		emaste@
Differential Revision:	https://reviews.freebsd.org/D30615
This commit is contained in:
Warner Losh 2021-06-02 10:35:01 -06:00
parent 774bb1c256
commit e8dca53aa0

View File

@ -44,10 +44,12 @@
#
# DESTDIR The tree where the module gets installed. [not set]
#
# KERNBUILDDIR
# Set to the location of the kernel build directory where
# KERNBUILDDIR Set to the location of the kernel build directory where
# the opt_*.h files, .o's and kernel winds up.
#
# BLOB_OBJS Prebuilt binary blobs .o's from the src tree to be linked into
# the module. These are precious and not removed in make clean.
#
# +++ targets +++
#
# install:
@ -241,14 +243,14 @@ LDSCRIPT_FLAGS?= -T ${SYSDIR}/conf/ldscript.kmod.${MACHINE_ARCH}
.endif
.if ${__KLD_SHARED} == yes
${KMOD}.kld: ${OBJS}
${KMOD}.kld: ${OBJS} ${BLOB_OBJS}
.else
${FULLPROG}: ${OBJS}
${FULLPROG}: ${OBJS} ${BLOB_OBJS}
.endif
${LD} -m ${LD_EMULATION} ${_LDFLAGS} ${LDSCRIPT_FLAGS} -r -d \
-o ${.TARGET} ${OBJS}
-o ${.TARGET} ${OBJS} ${BLOB_OBJS}
.if ${MK_CTF} != "no"
${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS}
${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${OBJS} ${BLOB_OBJS}
.endif
.if defined(EXPORT_SYMS)
.if ${EXPORT_SYMS} != YES