How can I build a release without writing into the /usr/src tree?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

How can I build a release without writing into the /usr/src tree?


I try to studiously follow the "STABLE" branch.

I carefully follow the directions in the FAQ.

When I build my new kernel, I use the alternate instructions:

   Variation on above process: Read-only source tree

   Sometimes, you may wish to ensure your /usr/src/sys directory
remains untouched.
   This can be done by using the following process:

   $ cd /somewhere
   $ cp /usr/src/sys/arch/i386/conf/GENERIC .
   $ config -s /usr/src/sys -b . GENERIC
   $ make clean && make depend && make
      ... lots of output ...

After building my new kernel, I reboot, build userland, reboot, and
then go to build a release.

In the build process for a release ( make release ), at some point,
here is what happens:

   cd /home/openbsd/4.1/src/etc/../sys/arch/amd64/conf && config GENERIC
   config: cannot create ../compile/GENERIC: Permission denied
   *** Error code 2

   Stop in /home/openbsd/4.1/src/etc (line 11 of etc.amd64/

(FYI,  /usr/src -> /home/openbsd/4.1/src )

Looks like make release is trying to build a new kernel in my /usr/src tree.

1) Is there a way to get make release to NOT build a new kernel inside
my source tree?

2) Actually, I have already built a GENERIC kernel anyway, it would be
very nice
   if "make release" would be able to figure that out, and just use
the already built
   GENERIC kernel.  I understand it will still need to build,
bsd.rd, etc.,
   but hopefully it would build those outside the source tree also.