Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Oct 2005 22:21:57 +0900
From:      Norikatsu Shigemura <nork@FreeBSD.org>
To:        Ruslan Ermilov <ru@FreeBSD.org>
Cc:        freebsd-emulation@FreeBSD.org, imp@FreeBSD.org, nork@FreeBSD.org
Subject:   Re: kqemu-kmod port
Message-ID:  <20051027222157.91ce56cf.nork@FreeBSD.org>
In-Reply-To: <20051026201745.GB68470@ip.net.ua>
References:  <20051025215759.25681b85.nork@FreeBSD.org> <20051026224839.bfa3920b.nork@FreeBSD.org> <20051026201745.GB68470@ip.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 26 Oct 2005 23:17:45 +0300
Ruslan Ermilov <ru@FreeBSD.org> wrote:
> > > 	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
> > 	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/../../..

	Wow!  I confirmed that your patch is good works.

# make -j1 buildkernel PORTS_MODULES=local/kqemu-kmod
   :
cd ${PORTSDIR:-/usr/ports}/local/kqemu-kmod; SYSDIR=/usr/src/sys /usr/obj/usr/src/make.i386/make -B all
   :
# make installkernel PORTS_MODULES=local/kqemu-kmod
   :
cd ${PORTSDIR:-/usr/ports}/local/kqemu-kmod; SYSDIR=/usr/src/sys /usr/obj/usr/src/make.i386/make -B deinstall deinstall reinstall
===>  Deinstalling for emulators/kqemu-kmod
===>   kqemu-kmod not installed, skipping
===>  Installing for kqemu-kmod-0.7.2
===>   Generating temporary packing list
===>  Checking if emulators/kqemu-kmod already installed
install -o root -g wheel -m 555   kqemu.ko /boot/kernel
kldxref /boot/kernel
if mount |/usr/bin/grep ^devfs >/dev/null ; then  : ;  else  if [ ! -e /dev/kqemu ]; then mknod /dev/kqemu c 250 0 ;  fi ;  /bin/chmod 666 /dev/kqemu ;  fi
===>   Registering installation for kqemu-kmod-0.7.2
#

> %%%
> 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}
> %%%

	Thank you.  Please commit this patch:-).



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