Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Oct 2005 23:17:45 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        Norikatsu Shigemura <nork@FreeBSD.org>
Cc:        freebsd-emulation@FreeBSD.org, Warner Losh <imp@FreeBSD.org>
Subject:   Re: kqemu-kmod port
Message-ID:  <20051026201745.GB68470@ip.net.ua>
In-Reply-To: <20051026224839.bfa3920b.nork@FreeBSD.org>
References:  <20051025215759.25681b85.nork@FreeBSD.org> <20051026224839.bfa3920b.nork@FreeBSD.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
Hi,

On Wed, Oct 26, 2005 at 10:48:39PM +0900, Norikatsu Shigemura wrote:
> Hi ru!
> 
> On Tue, 25 Oct 2005 21:57:59 +0900
> Norikatsu Shigemura <nork@FreeBSD.org> wrote:
> > Hi qemu maintainer and users!
> > 	I want kqemu only port to make buildkernel with PORTS_MODULES.
> > 	I tested that make buildworld PORTS_MODULES=emulators/qemu,
> > 	but no good.  So I decided to make kqemu-kmod port.> 
> > 	If I commit following port, I'll remove kqemu related code
> > 	from emulators/qemu/Makefile and add dependency on kqemu-kmod.
> 
> > 	http://people.freebsd.org/~nork/kqemu-kmod.shar
> 
> 	I'll try to make buildworld with abobe expremental ports:
> 	# make -j1 buildkernel PORTS_MODULES=local/kqemu-kmod
> 
> 	But I contacted a problem like following lines:
> 
> cd ${PORTSDIR:-/usr/ports}/local/kqemu-kmod; SYSDIR= /usr/obj/usr/src/make.i386/make -B all
> ===>  Building for kqemu-kmod-0.7.2
> "/usr/src/share/mk/bsd.kmod.mk", line 12: "can't find kernel source tree"
> *** Error code 1
> 
> Stop in /usr/ports/local/kqemu-kmod.
> *** Error code 1
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> 
> 	Do you have any idea for fix?
> 
Warner created this feature only to fit one case: where you build kernel
from its canonical place, /usr/src/sys/<arch>/compile/<KERNEL>, then
${.CURDIR}/../../../ will match the the correct SYSDIR.  The below
patch makes it work in all cases.  If $S is absolute, it's used,
otherwise ${.CURDIR}/$S is used:

# pwd
/usr/obj/usr/src/sys/HAMMER
# make -V S -V PORTSMODULESENV -DPORTS_MODULES
/usr/src/sys
SYSDIR=/usr/src/sys

# pwd
/sys/amd64/compile/GENERIC
# make -V S -V PORTSMODULESENV -DPORTS_MODULES
../../..
SYSDIR=/usr/src/sys/amd64/compile/GENERIC/../../..

%%%
Index: kern.post.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kern.post.mk,v
retrieving revision 1.86
diff -u -r1.86 kern.post.mk
--- kern.post.mk	25 Oct 2005 09:05:07 -0000	1.86
+++ kern.post.mk	26 Oct 2005 20:10:52 -0000
@@ -29,11 +29,7 @@
 
 # Handle out of tree ports 
 .if !defined(NO_MODULES) && defined(PORTS_MODULES)
-.for _dir in ${.CURDIR}/../../..
-.if !defined(SYSDIR) && exists(${_dir}/kern/)
-SYSDIR=	${_dir}
-.endif
-.endfor
+SYSDIR?= ${S:C;^[^/];${.CURDIR}/&;}
 PORTSMODULESENV=SYSDIR=${SYSDIR}
 .for __target in all install reinstall clean
 ${__target}: ports-${__target}
%%%


Cheers,
-- 
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)

iD8DBQFDX+RpqRfpzJluFF4RAtoBAJ9P7QspwdMJMA2Zepxn3mDpHRwBCQCeL3om
bgy5jHOmI7dGweMQRuqtDCk=
=44Ke
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051026201745.GB68470>