summaryrefslogtreecommitdiffstats
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1999-01-04 12:05:59 +0000
committerbde <bde@FreeBSD.org>1999-01-04 12:05:59 +0000
commit289384ff72727977121b211962226808bec92e67 (patch)
tree48a04cfd07356df219ef07c9749aab1c16f2e2de /Makefile.inc1
parentca0883293604a732bb1f0677db1554a154639595 (diff)
downloadFreeBSD-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.inc118
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; \
OpenPOWER on IntegriCloud