version 1.1, 2000/08/17 20:17:43 |
version 1.2, 2000/08/20 15:43:43 |
|
|
|
|
Hints for a more successful build: |
Hints for a more successful build: |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
Build a new kernel first: |
|
This makes sure that any new system calls or features |
|
expected by the new userland will be present. This |
|
helps to avoid critical errors when upgrading. |
Use object directories: |
Use object directories: |
This helps to keep stale object |
This helps to keep stale object |
files from polluting the build if a Makefile "forgets" |
files from polluting the build if a Makefile "forgets" |
Line 23 Hints for a more successful build: |
|
Line 27 Hints for a more successful build: |
|
same source tree for multiple machines. |
same source tree for multiple machines. |
To use object directories: |
To use object directories: |
a) cd /usr/src ; make cleandir |
a) cd /usr/src ; make cleandir |
b) Add "OBJMACHINE=obj.<arch>" to /etc/mk.conf |
b) Add "OBJMACHINE=yes" to /etc/mk.conf |
c) cd /usr/src ; make obj |
c) Add "MKOBJDIRS=yes" to /etc/mk.conf |
d) cd /usr/src ; make build |
d) cd /usr/src ; make build |
|
Note that running "make obj" in a directory will create |
|
in obj.$MACHINE directory. |
Build to a DESTDIR: |
Build to a DESTDIR: |
This helps to keep old |
This helps to keep old |
installed files (especially libraries) from interfering |
installed files (especially libraries) from interfering |
with the new build. |
with the new build. |
To build to a DESTDIR, set the DESTDIR environment |
To build to a DESTDIR, set the DESTDIR environment |
variable before running make build. |
variable before running make build. It should be set to |
|
the pathname of an initially empty directory. |
Problems: you might need to update critical utilities |
Problems: you might need to update critical utilities |
without using DESTDIR since nothing is executed |
without using DESTDIR since nothing is executed |
from what is installed in DESTDIR. |
from what is installed in DESTDIR. |
Line 67 something like the following: |
|
Line 74 something like the following: |
|
Failsafe rebuild of the entire tree: |
Failsafe rebuild of the entire tree: |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
If you really want to make sure the source tree is clean and |
If you really want to make sure the source tree is clean and |
ready for a build try the following: |
ready for a build try the following. Note that sourcing /etc/mk.conf |
|
(a make(1) Makefile) in this manner is not right, and will not work |
|
for anyone who uses any make(1) features in /etc/mk.conf. |
|
|
---cut here--- |
---cut here--- |
#!/bin/sh |
#!/bin/sh |
Line 99 Critical utilities: |
|
Line 108 Critical utilities: |
|
usr.bin/make |
usr.bin/make |
usr.bin/yacc |
usr.bin/yacc |
usr.bin/lex |
usr.bin/lex |
|
usr.sbin/config |
crypto-*/usr.bin/compile_et |
crypto-*/usr.bin/compile_et |
crypto-*/usr.bin/make_cmds |
crypto-*/usr.bin/make_cmds |
|
|
Line 112 Fix: Make sure .mk files are up to date. |
|
Line 122 Fix: Make sure .mk files are up to date. |
|
cd share/mk && make install |
cd share/mk && make install |
Fix: Rebuild usr.bin/make |
Fix: Rebuild usr.bin/make |
|
|
|
Symptom:Kernel `config' fails to configure any kernel, including GENERIC. |
|
Fix: Rebuild usr.sbin/config |
|
|
Symptom: |
Symptom: |
Fix: Rebuild usr.bin/yacc |
Fix: Rebuild usr.bin/yacc |
|
|