Subject: Re: lib/9702: Makefile lossage for crypto-intl
To: Aidan Cully <aidan@kublai.com>
From: Simon Burge <simonb@netbsd.org>
List: tech-crypto
Date: 04/14/2000 13:12:45
Aidan Cully wrote:

> On Wed, Mar 29, 2000 at 09:25:29PM +1000, Simon Burge wrote:
> > Lennart Augustsson wrote:
> > 
> > > >Number:         9702
> > > >Category:       lib
> > > >Synopsis:       Makefile lossage for crypto-intl
> > > 
> > > >Description:
> > > 	There is a problem with the Makefiles for the crypto-intl stuff.
> > > 	It remakes things too often.
> > > >How-To-Repeat:
> > > 		cd src
> > > 		make build
> > > 		make UPDATE=Y build
> > > 	Watch how the second make recompiles a lot of the crypto libraries.
> > > 	This can't be necessary and it's very annoying on slow machines.
> > > >Fix:
> > > 	Makefiles move mysteriously, meandering maliciously...
> > 
> > I _think_ from memory that this is because commands like compile_et and
> > so on get rebuilt (because libc is updated) and they have dependancies
> > on them so other files get rebuilt.  Do you get unnecessary recompiles
> > if you "make UPDATE=y build" yet again?

I dug a bit deeper - it's asn1_compile that's the problem.  In my case
after two complete builds on my Alpha:

	cd /NetBSD/src/crypto-intl/lib/libasn1
	make
	touch /NetBSD/src/crypto-intl/lib/libasn1/asn1_compile/obj.alpha/asn1_compile
	make

nothing happens after the first make and the second make will rebuild
libasn1 again.  Doing a diff on the old .x files and the new .x files
reveals no differences.  It sounds like we should get asn1_compile to
generate the new files into temporary files and only move them to the
right name if the correct file is either different or missing, ala the
cmphdr() function in usr.sbin/config/mkheaders.c.

Is asn1_compile the same on -us and -intl?  I'm in the wrong country to
check :-)

Simon.