Subject: misc/6810: 1.3.3 top-level Makefile does not work as it was apparently intended to
To: None <gnats-bugs@gnats.netbsd.org>
From: None <woods@proven.weird.com>
List: netbsd-bugs
Date: 01/14/1999 17:24:34
>Number:         6810
>Category:       misc
>Synopsis:       1.3.3 top-level Makefile does not work as it was apparently intended to
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    misc-bug-people (Misc Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 14 14:35:01 1999
>Last-Modified:
>Originator:     Greg A. Woods
>Organization:
Planix, Inc.; Toronto, Ontario; Canada
>Release:        NetBSD-1.3.3
>Environment:

System: NetBSD becoming 1.3.3 NetBSD 1.3.3 (BECOMING) #1: Wed Dec 30 19:15:12 PST 1998     woods@becoming:/proven/work/woods/NetBSD-1.3/sys/arch/i386/compile/BECOMING i386

>Description:

	Building a "domestic" 1.3.3 system from source fails if the
	compilation system has not had the "security" set installed,
	though from the looks of the first-hack attempt in the top-level
	Makefile, this should not be the case.

	FYI this was the only glitch I encoutered when building on i386.

>How-To-Repeat:

	run something like "make DESTDIR=/not-the-root/directory build"
	in the 1.3.3 source directory on a 1.3.3 system that does not
	have the security "set" installed and observe the quick failure.

>Fix:

	There's probably a better way to build and use tools necessary
	as pre-requisites to building the rest of the system, but the
	following hack seems to do the trick.  Ideally "compile_et" and
	"mk_cmds" should be installed in all systems, not just
	"domestic" systems, and then this chicken&egg-like dilema would
	not rear its ugly head.  I'm not sure what approach the -current
	build system uses because I have yet to test it under these
	circumstances....

	The ultimate solution is to eliminate recursive makes..... ;-)

Index: Makefile
===================================================================
RCS file: /cvs/NetBSD-1.3/Makefile,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 Makefile
--- Makefile	1998/12/24 07:13:37	1.1.1.2
+++ Makefile	1999/01/14 22:06:13
@@ -48,15 +48,17 @@
 	(cd ${.CURDIR}/share/mk && ${MAKE} install)
 	(cd ${.CURDIR}/share/tmac && ${MAKE} && ${MAKE} install)
 .if exists(domestic) && !defined (EXPORTABLE_SYSTEM)
+	# this is a quick hack to ensure these utilities are up-to-date
+	# in the host's compilation system (don't cross-compile them!)...
 .if exists(domestic/usr.bin/compile_et)
 	(cd ${.CURDIR}/domestic/usr.bin/compile_et && \
-	    ${MAKE} depend && ${MAKE} && \
-	    ${MAKE} install)
+	    ${MAKE} DESTDIR=/ depend && ${MAKE} DESTDIR=/ && \
+	    ${MAKE} DESTDIR=/ install-nodepend)
 .endif
 .if exists(domestic/usr.bin/make_cmds)
 	(cd ${.CURDIR}/domestic/usr.bin/make_cmds && \
-	    ${MAKE} depend && ${MAKE} && \
-	    ${MAKE} install)
+	    ${MAKE} DESTDIR=/ depend && ${MAKE} DESTDIR=/ && \
+	    ${MAKE} DESTDIR=/ install-nodepend)
 .endif
 .endif
 	${MAKE} includes
Index: domestic/usr.bin/compile_et/Makefile
===================================================================
RCS file: /cvs/NetBSD-1.3/domestic/usr.bin/compile_et/Makefile,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- domestic/usr.bin/compile_et/Makefile	1998/12/24 06:48:57	1.1.1.1
+++ domestic/usr.bin/compile_et/Makefile	1999/01/13 22:26:24
@@ -10,4 +10,7 @@
 DPADD+=	${LIBL}
 LDADD+=	-ll
 
+install-nodepend:
+	${INSTALL} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME}
+
 .include <bsd.prog.mk>
Index: domestic/usr.bin/make_cmds/Makefile
===================================================================
RCS file: /cvs/NetBSD-1.3/domestic/usr.bin/make_cmds/Makefile,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile
--- domestic/usr.bin/make_cmds/Makefile	1998/12/24 06:48:58	1.1.1.1
+++ domestic/usr.bin/make_cmds/Makefile	1999/01/13 22:27:37
@@ -14,4 +14,7 @@
 LDADD+=	-ll
 DPADD+=	${LIBL}
 
+install-nodepend:
+	${INSTALL} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME}
+
 .include <bsd.prog.mk>
>Audit-Trail:
>Unformatted: