kqemu-kmod port

Norikatsu Shigemura nork at FreeBSD.org
Thu Oct 27 06:21:59 PDT 2005


On Wed, 26 Oct 2005 23:17:45 +0300
Ruslan Ermilov <ru at 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:-).


More information about the freebsd-emulation mailing list