Subject: kern/17384: cscope & mkid kernel make targets fail for compile outside /sys
To: None <firstname.lastname@example.org>
From: None <kre@munnari.OZ.AU>
Date: 06/25/2002 21:07:41
>Synopsis: cscope & mkid kernel make targets fail for compile outside /sys
>Arrival-Date: Tue Jun 25 07:10:01 PDT 2002
>Originator: Robert Elz
>Release: NetBSD 1.6B (-current 2002-06-25)
Prince of Songkla University
System: NetBSD delta.cs.mu.OZ.AU 1.5ZC NetBSD 1.5ZC (DELTA) #4: Mon May 27 23:17:55 ICT 2002 email@example.com.OZ.AU:/usr/src/sys.X/arch/i386/compile/DELTA i386
The kernel build setup allows placing a kernel config file
in /sys/arch/xxxx/conf/MYNAME with the corresponding kernel
being build in /sys/arch/xxx/compile/MYNAME/.
For that (I assume) the cscope & mkid targets work.
The kernel build setup also allows placing a kernel config
file in /any/where/at/all/CONFIG with the build being done
in the same directory.
In that case, the cscope & mkid targets fail (or more accurately,
produce error messages and don't include everything)
cp /sys/arch/i386/conf/GENERIC /tmp/foobar/CONFIG
config -s /sys -b /tmp/foobar
[Aside: that isn't exactly the way I run it, so I have
no guarantee that will reproduce the problem, though
it should I think].
The problem is that with this setup, the "make sourcefiles"
that the cscope and mkid targets run in tgh elib & compat
directories produce full path names, rather than relative
ones (ie: /sys/... - more likely /usr/src/sys/... but that
The make variable substitution
where LIBKERNSRC contains full path names, makes a mess...
I changed it to
with the corresponding change for LIBCOMPATSRC of course, all
duplicated for cscope & mkid, and it all seemed to work for me
after that. Whether it still works with a "conventional" kernel
compile, I don't know (I like to keep my source trees pure, makes
building source tarballs easier).