Subject: Re: putting more 'make' into 'make snapshot'
To: Todd Whitesel <toddpw@best.com>
From: Frederick Bruckman <fb@enteract.com>
List: tech-install
Date: 12/20/1999 14:22:21
On Mon, 20 Dec 1999, Todd Whitesel wrote:

> 1. Use 'make clean' (or snapclean) to reset the snapshot goo. I don't like
> 	the UPDATE=1 concept very much; IMHO it is a "knob", only acceptable
> 	in the context of something like 'make build' because you may to
> 	update share/mk before anything else will work. Even then I wish we
> 	would do something else instead, perhaps 'make newsrc cleandir build'
> 	so you are really saying what you mean. But I digress.

I don't see what's wrong with UPDATE. I feel it's dishonest somehow to
build and install a different system than the one you're running.
Whatever you have to do--update the toolchain, rebuild a couple of
times--"make UPDATE=1 DESTDIR=... RELEASEDIR=... release" lets you
build the snapshot from your "final" binaries. One advantage of that
method is, after the snapshot, you can blow away ${DESTDIR}, keep the
obj dir, and the .depends files point somewhere useful for later.
  
> 2. Migrate more of the phony targets to depend on real buildable things
> 	when a clear output target is produced (like a kernel, or a boot
> 	file, or a disk image). Most (all?) places we currently use .for
> 	to expand out multiple commands in one rule, could just as easily
> 	be used to expand out multiple rules with the same command, and
> 	declare the additional dependencies needed to tell make what to do.

That's a great idea. I'd like to see 1) The INSTALL.{html,more,ps,txt}
files not rebuilt everytime you run make in the "notes" dir, and 2)
config not rerun unnecessarily: I'd like to add the GENERIC kernel to
EXTRA_KERNELS without having two different version in kern.tgz and
netbsd-GENERIC.gz.