Subject: bug#953: pre-crt0.o error for build in separate directory

From: Glenn Morris <[email-masked]>
Date: Wed, 10 Sep 2008 00:27:09 -0400

Package: emacs
Severity: minor
Version: 23.0.60

I don't normally build in a separate directory, but I was trying it as
an experiment.

I had CVS checkout in:

/somedir/trunk

This contained the result of a normal build, ie had not been cleaned.

I then did:

cd /somedir/build
../trunk/configure

which warned me:

   WARNING: The directory tree `/somedir/trunk' is being used as a build
   directory right now; it has been configured in its own right. To
   configure in another directory as well, you MUST use GNU make. If
   you do not have GNU make, then you must now do `make distclean' in
   /somedir/trunk, and then run ../trunk/configure again."

Since I use GNU make (3.81 on RHEL 5.2), I carried on without running
distclean.

The build failed because /somedir/build/src/pre-crt0.o was not generated.
Running `make prec-crt0.o' in that directory, I was told
that "`/somedir/trunk/src/pre-crt0.o' is up to date."

I had to delete the pre-crt0.o in trunk/src in order to get a version
to compile in build/src.

Thus, the initial message output by configure is incorrect.

I'm not sure where the bug is here: in configure's message, or GNU
make, or Emacs.

(The same thing was happening for character.o and chartab.o until I
fixed their broken dependencies on $(config_h).)