[817] in NetBSD-Development

home help back first fref pref prev next nref lref last post

Most make changes reverted

daemon@ATHENA.MIT.EDU (Greg Hudson)
Mon Jun 26 02:44:07 1995

Date: Mon, 26 Jun 1995 02:43:59 -0400
From: Greg Hudson <ghudson@MIT.EDU>
To: netbsd-dev@MIT.EDU


After some reflection and experience with problems encountered with
make and the source tree, I decided that most of the changes I've made
to make are ill-advised.  Changing the current directory after reading
the Makefile changes your semantics in subtle ways.

I have reverted (using "rcs -b" to set the default branch) most of my
changes to usr.bin/make/* except for the :C variable modifier to
canonicalize filenames, because I think it's useful.  (I will send a
change-request pr for it shortly.)  I have reverted my changes to
share/mk/bsd.obj.mk except for the change to canonicalize BSDSRCDIR
before extracting it from the current directory.  I have also reverted
changes to usr.bin/tn3270/{tn3270,mset}/Makefile,
usr.bin/vi/common/Makefile, and usr.games/fortune/datfiles/Makefile
where I inserted ".include <bsd.obj.mk>" directives into sub-makes
when the .OBJDIR change was in effect.

limekiller may need to have make and the /usr/share/mk files
reinstalled.

I have recreated the obj links in the source tree to point into
/usr/obj.  Development machines can point /usr/obj at
/afs/sipb.mit.edu/project/netbsd/dev/current-source/build/@sys; users
can point it wherever they want in order to do builds out of our
source tree.  This leaves two problems:

	* Users cannot do a "make obj" to ensure the existence of the
	  target directories under /usr/obj.  Possible solutions
	  include:

		- Make a script to mirror all the Makefile-containing
		  source directories under /usr/obj or some subtree of
		  it.
		- Modify "make obj" to work without write access to
		  the source tree (just creating directories under
		  /usr/obj), or provide a separate target that does
		  that part of the job.  This is probably preferrable
		  to the first option.
		* Modify make to dynamically create obj if it's a
		  symlink to a nonexistent directory.  I don't like
		  this option.

	* Users still can't build a kernel out of the source tree.  My
	  plan is to make /usr/src/sys/arch/<foo>/compile be a symlink
	  to /usr/obj/sys/arch/<foo>/compile, and modify the Makefiles
	  in arch/<foo>/conf to look for the source tree top in
	  ${BSDSRCDIR}/sys.


home help back first fref pref prev next nref lref last post