Re: Chicken and egg problem when building (third-party) kernel modules with <bsd.kmod.mk> -- how to solve?

From: Lev Serebryakov <lev_at_FreeBSD.org>
Date: Thu, 12 Sep 2013 01:17:55 +0400
Hello, John-Mark.
You wrote 11 сентября 2013 г., 20:53:46:

>>  It is good idea to set KERNBUILDDIR when build module. But to set it you
>> need to know ${.OBJDIR} from ${SYSDIR} and ${SYSDIR} is set in bsd.kmod.mk,
>> which should be included last (after defining KERNBUILDDIR).
>> 
>>  How this loop could be broken?

JMG> If you need to build it stand alone, you still need the opt_*.h files
 I'm speaking about making port with kernel module, but this port is using
bsd.*.mk infrastructure by itself.

JMG> from the kernel you are going to run it with, and that directory is
JMG> what you need to set KERNBUILDDIR...
 KERNBUILDDIR could be set automagically with:

KERNBUILDROOT!= make -C ${SYSDIR} -V .OBJDIR
KERNNAME!=              uname -i
.if exists(${KERNBUILDROOT}/${KERNNAME}/opt_global.h) && !defined(KERNBUILDDIR)
KERNBUILDDIR:=${KERNBUILDROOT}/${KERNNAME}
.endif

  But here is problem, which I'm speaking about: it should go BEFORE
 <bsd.kmod.mk> but it needs to use ${SYSDIR}.

-- 
// Black Lion AKA Lev Serebryakov <lev_at_FreeBSD.org>
Received on Wed Sep 11 2013 - 19:18:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:41 UTC