diff options
author | bde <bde@FreeBSD.org> | 1999-01-04 12:05:59 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1999-01-04 12:05:59 +0000 |
commit | 289384ff72727977121b211962226808bec92e67 (patch) | |
tree | 48a04cfd07356df219ef07c9749aab1c16f2e2de /Makefile.inc1 | |
parent | ca0883293604a732bb1f0677db1554a154639595 (diff) | |
download | FreeBSD-src-289384ff72727977121b211962226808bec92e67.zip FreeBSD-src-289384ff72727977121b211962226808bec92e67.tar.gz |
Backed out rev.1.49. It broke bootstrapping from 2.1.5 2.2.7 and
probably other versions by spamming ${DESTDIR}/usr/include in much
the same way as `make includes'.
Details for 2.2.7: the bootstrap target has always done a weak spam
of ${DESTDIR}/usr/include; we depend on it not installing any
significant anachronisms (it probably shouldn't touch the headers
at all; however, we may be depending on it for things like the
renaming of ts_nsec to ts_sec in <sys/time.h>). Rev.1.49 strengthens
the spam to everything in src/include. For 2.2.7, this is not
immediately fatal. However, the `make all' step in src/includes
is not followed by a `make clean' step, so new rpc headers are not
generated after we've bootstrapped rpcgen. This causes a fatal
error much later when the old (generated) rpc headers are used with
the current headers (sys/types.h and/or the non-generated rpc
headers).
Details for 2.1.x: the bug is immediately fatal. It gives definition
of errno that is not supported by 2.1.x's libc. The weak spam in the
restored version avoids this problem by not installing errno.h.
(Bootstrapping from 2.1.5 actually breaks much earlier.)
I think the header problems supposedly fixed by rev.1.49 were caused
by using NOCLEAN and having the build fall over when the weakly
spammed headers are active. Minor differences in the layout will
then cause the .depend files to point to nonexistent headers. It
is a feature for symlinks like errno.h -> sys/errno.h to not exist
early.
The other change in rev.1.49 breaks building obj directories if NOCLEAN
is set. It is only safe for _re_building with NOCLEAN set.
Diffstat (limited to 'Makefile.inc1')
-rw-r--r-- | Makefile.inc1 | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1 index 1669bff..d0b1775 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -1,5 +1,5 @@ # -# $Id: Makefile.inc1,v 1.53 1998/12/30 12:06:07 bde Exp $ +# $Id: Makefile.inc1,v 1.54 1999/01/01 08:45:43 peter Exp $ # # Make command line options: # -DCLOBBER will remove /usr/include @@ -266,12 +266,12 @@ buildworld: check-objformat @echo ">>> Cleaning up the ${OBJFORMAT} obj tree" @echo "--------------------------------------------------------------" cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 ${CLEANDIR:S/^/par-/} +.endif @echo @echo "--------------------------------------------------------------" @echo ">>> Rebuilding the ${OBJFORMAT} obj tree" @echo "--------------------------------------------------------------" cd ${.CURDIR}; ${BMAKE} -f Makefile.inc1 par-${OBJDIR} -.endif .if !defined(NOTOOLS) @echo @echo "--------------------------------------------------------------" @@ -471,8 +471,18 @@ bootstrap: .if defined(DESTDIR) rm -f ${DESTDIR}/usr/src/sys ln -s ${.CURDIR}/sys ${DESTDIR}/usr/src - cd ${.CURDIR}/include; ${MAKE} all - cd ${.CURDIR}/include; ${MAKE} beforeinstall + cd ${.CURDIR}/include; find -dx . | cpio -dump ${DESTDIR}/usr/include +.for d in net netatm netinet posix4 sys vm machine + if [ -h ${DESTDIR}/usr/include/$d ]; then \ + rm -f ${DESTDIR}/usr/include/$d ; \ + fi +.endfor + cd ${.CURDIR}/sys; \ + find -dx net netatm netinet posix4 sys vm -name '*.h' -o -type d | \ + cpio -dump ${DESTDIR}/usr/include + mkdir -p ${DESTDIR}/usr/include/machine + cd ${.CURDIR}/sys/${MACHINE_ARCH}/include; find -dx . -name '*.h' -o -type d | \ + cpio -dump ${DESTDIR}/usr/include/machine .endif cd ${.CURDIR}/usr.bin/make; ${MAKE} ${MK_FLAGS} ${_DEPEND}; \ ${MAKE} ${MK_FLAGS} all; \ |