Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 May 1997 03:52:42 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, jkh@time.cdrom.com
Cc:        bde@freebsd.org, current@freebsd.org
Subject:   Re: -current build is now broken..
Message-ID:  <199705011752.DAA19281@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> Apparently your src/Makefile is out of date, or your /usr/share/sys/*.mk
>> are inconsistent with the src tree.  Current versions of *.mk can't be
>> used to build old releases.
>
>Nope - this is all checked out of a current CVS repository.  The
>release build checks out the entire tree, chroots into it and does a
>make world (which quickly and early on builds and installs the *.mk
>files).

Nope - first it populates the chroot tree using:

	cd ${.CURDIR}/.. && ${MAKE} install DESTDIR=${CHROOTDIR} NOMAN=1

Apparently your /usr/share/sys/*.mk are inconsistent with
${.CURDIR}/../Makefile :-).  This can be fixed using something like

	cd ${.CURDIR}/.. && ${MAKE} -m ${.CURDIR}/../share/mk install \
	    DESTDIR=${CHROOTDIR} NOINFO=1 NOMAN=1

NOINFO=1 saves time and would probably have fixed the current problem.
---

src/Makefile should use -m instead of not so quickly installing *.mk:

diff -c2 src/Makefile~ src/Makefile
*** Makefile~	Fri May  2 00:16:46 1997
--- Makefile	Fri May  2 01:41:51 1997
***************
*** 33,36 ****
--- 33,37 ----
  #		obj depend all install clean cleandepend cleanobj
  
+ .MAKEFLAGS:=	-m ${.CURDIR}/share/mk
  
  # Put initial settings here.
***************
*** 155,163 ****
  	@echo
  	@echo "--------------------------------------------------------------"
- 	@echo " Rebuilding /usr/share/mk"
- 	@echo "--------------------------------------------------------------"
- 	cd ${.CURDIR} && ${MAKE} mk
- 	@echo
- 	@echo "--------------------------------------------------------------"
  	@echo " Cleaning up the source tree"
  	@echo "--------------------------------------------------------------"
--- 156,159 ----
***************
*** 250,258 ****
  	@echo
  	@echo "--------------------------------------------------------------"
- 	@echo " Rebuilding /usr/share/mk"
- 	@echo "--------------------------------------------------------------"
- 	cd ${.CURDIR} && ${MAKE} mk
- 	@echo
- 	@echo "--------------------------------------------------------------"
  	@echo " Installing everything.."
  	@echo "--------------------------------------------------------------"
--- 246,249 ----
***************
*** 357,366 ****
  hierarchy:
  	cd ${.CURDIR}/etc &&		${MAKE} distrib-dirs
- 
- #
- # mk - update the /usr/share/mk makefiles.
- #
- mk:
- 	cd ${.CURDIR}/share/mk &&	${MAKE} install
  
  #
--- 348,351 ----

This fixes `make <anything>' in the top-level src directory when the
installed *.mk files are not too inconsistent.  The have to be correct
enough for src/Makefile to be interpreted correctly.  In particular,
sys.mk, bsd.own.mk and bsd.subdir.mk have to be installed.  There
is no way to change the include path in time for a Makefile to affect
its own includes.  -m must be used on the command line to avoid using
the default `mk' files.  This is most annoying for src/Makefile and
leaf Makefiles.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705011752.DAA19281>