aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1999-01-04 12:05:59 +0000
committerBruce Evans <bde@FreeBSD.org>1999-01-04 12:05:59 +0000
commit1ff0f342b71283dda49343688afd12e6efdb5b22 (patch)
treea59b4214569408de524de1592a1199c6abf2fc9b /Makefile.inc1
parent2bd69c5d346b3794a894ecab7c9a794859cd631a (diff)
downloadsrc-1ff0f342b71283dda49343688afd12e6efdb5b22.tar.gz
src-1ff0f342b71283dda49343688afd12e6efdb5b22.zip
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.
Notes
Notes: svn path=/head/; revision=42285
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 1669bff74d21..d0b177559160 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; \