summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.kmod.mk
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2000-03-20 01:29:59 +0000
committerpeter <peter@FreeBSD.org>2000-03-20 01:29:59 +0000
commitfd1c6c35b4789e6b4e60bb07b726c91540260378 (patch)
treeebbc22c5f4f22b997eff28fcc59d961a5a65c45b /share/mk/bsd.kmod.mk
parent2fbc3b4b79bac539afa9037a4cfdd9c657810419 (diff)
downloadFreeBSD-src-fd1c6c35b4789e6b4e60bb07b726c91540260378.zip
FreeBSD-src-fd1c6c35b4789e6b4e60bb07b726c91540260378.tar.gz
Use an intermediate file containing the module binary before converting
it into a ``shared'' .ko file. This intermediate file can be directly linked into a static kernel. This isn't all that useful yet but will become much more interesting shortly.
Diffstat (limited to 'share/mk/bsd.kmod.mk')
-rw-r--r--share/mk/bsd.kmod.mk11
1 files changed, 7 insertions, 4 deletions
diff --git a/share/mk/bsd.kmod.mk b/share/mk/bsd.kmod.mk
index aa6e97b..3cafc33 100644
--- a/share/mk/bsd.kmod.mk
+++ b/share/mk/bsd.kmod.mk
@@ -131,14 +131,17 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
PROG= ${KMOD}.ko
.endif
-${PROG}: ${OBJS} ${DPADD} ${KMODDEPS}
+${PROG}: ${KMOD}.kld ${KMODDEPS}
+ ${LD} -Bshareable ${LDFLAGS} -o ${.TARGET} ${KMOD}.kld ${KMODDEPS}
+
+${KMOD}.kld: ${OBJS}
.if ${OBJFORMAT} == elf
gensetdefs ${OBJS}
${CC} ${CFLAGS} -c setdef0.c
${CC} ${CFLAGS} -c setdef1.c
- ${LD} -Bshareable ${LDFLAGS} -o ${.TARGET} setdef0.o ${OBJS} setdef1.o ${KMODDEPS}
+ ${LD} ${LDFLAGS} -r -o ${.TARGET} setdef0.o ${OBJS} setdef1.o
.else
- ${LD} -Bshareable ${LDFLAGS} -o ${.TARGET} ${OBJS} ${KMODDEPS}
+ ${LD} ${LDFLAGS} -r -o ${.TARGET} ${OBJS}
.endif
.if defined(KMODDEPS)
@@ -193,7 +196,7 @@ ${_ILINKS}:
${ECHO} ${.TARGET} "->" $$path ; \
ln -s $$path ${.TARGET}
-CLEANFILES+= ${PROG} ${OBJS} ${_ILINKS} symb.tmp tmp.o
+CLEANFILES+= ${PROG} ${KMOD}.kld ${OBJS} ${_ILINKS} symb.tmp tmp.o
.if !target(install)
.if !target(beforeinstall)
OpenPOWER on IntegriCloud