The FAQ describes two ways to build the kernel (
http://www.openbsd.org/faq/faq5.html#BldKernel ),
# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
or
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
I would like "make release" to use the "read only source tree" variant
above, how can I accomplish this?
Right now, I see "make release" do:
cd /home/4.2/src/etc/../sys/arch/amd64/conf && config GENERIC
Which is going to attempt to build the GENERIC kernel right there in
my source tree.
Also, I am having some other weird problem, due to the following logic
in the Makefile.amd64 which contains:
# source tree is located via $S relative to the compilation directory
.ifndef S
S!= cd ../../../..; pwd
.endif
AMD64= $S/arch/amd64
For some reason the above is setting my AMD64 to some weird path that
is not correct on my system, namely:
cd /home/4.2/src/etc/../sys/arch/amd64/conf && config GENERIC
GENERIC:13: cannot open ../../../../arch/amd64/conf/files.amd64
for reading: No such file or directory
*** Error code 1
Stop in /home/4.2/src/etc (line 11 of etc.amd64/Makefile.inc).
What is the point of the above, and how can I get the path correct for
this build?
Thanks,
Don