version 1.1, 2000/08/17 20:17:43 |
version 1.6, 2000/10/19 15:02:38 |
Line 8 For a more detailed description see Make |
|
Line 8 For a more detailed description see Make |
|
Recent changes: |
Recent changes: |
^^^^^^^^^^^^^^^ |
^^^^^^^^^^^^^^^ |
|
|
|
20001019: |
|
The `ca' device driver has been replaced by `lsu'; although the |
|
major and minor numbers haven't changed, you should update your /dev |
|
directory. |
|
|
|
20000929: |
|
The following make directives are obsoleted. |
|
MKCRYPTO_RSA NOCRYPTO_RSA NOCRYPTO_RC5 NOCRYPTO_IDEA |
|
By default, RSA is built into libcrypto. IDEA and RC5 will not be |
|
bulit into libcrypto. By using MKCRYPTO_{RC5,IDEA}, you can build |
|
additional library libcrypto_{idea,rc5}. |
|
|
20000623: |
20000623: |
MKCRYPTO and friends added to share/mk/bsd.own.mk. |
MKCRYPTO and friends added to share/mk/bsd.own.mk. |
'cd share/mk ; make install' needed before make build. |
'cd share/mk ; make install' needed before make build. |
|
|
|
|
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 39 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 86 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 96 cd $BSDSRCDIR && make cleandir |
|
Line 117 cd $BSDSRCDIR && make cleandir |
|
Critical utilities: |
Critical utilities: |
^^^^^^^^^^^^^^^^^^^ |
^^^^^^^^^^^^^^^^^^^ |
gnu/usr.bin/egcs |
gnu/usr.bin/egcs |
|
usr.bin/compile_et |
usr.bin/make |
usr.bin/make |
usr.bin/yacc |
usr.bin/yacc |
usr.bin/lex |
usr.bin/lex |
crypto-*/usr.bin/compile_et |
usr.sbin/config |
crypto-*/usr.bin/make_cmds |
|
|
|
Other problems and possibly solutions: |
Other problems and possibly solutions: |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
Line 112 Fix: Make sure .mk files are up to date. |
|
Line 133 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 |
|
|
Line 120 Fix: Rebuild usr.bin/lex |
|
Line 144 Fix: Rebuild usr.bin/lex |
|
|
|
Symptom: |
Symptom: |
Fix: rm /usr/lib/libbfd.a |
Fix: rm /usr/lib/libbfd.a |
|
|
|
Symptom:Obsolete intermediate files are used during compilation |
|
Fix: Try the following sequence of commands in the directory in question. |
|
make cleandir; rm `make print-objdir`; make cleandir; make obj |
|
(If you built the tree without "make obj" in the past, obsolete files |
|
may remain. The command tries to clean everything up) |
|
|
|
Symptom:.../sysinst/run.c:xx: warning: initialization from incompatible pointer type |
|
Fix: Rebuild and install usr.bin/menuc |