Problem with libstdc++-v3/po Makefile

Loren James Rittle
Tue Jan 8 21:59:00 GMT 2002

>>> I threw out a suggestion & pseudocode patch (gcc list, 3 Jan) to turn all
>>> in-source builds into separate objdir builds, thus killing this once and
>>> for all.  Nobody commented.

Resubmit a tested patch to gcc-patches.  ;-)

Personally, I like the patch with the following changes to the "red
herring" Makefile:

1. Use this initial rule and remove 'all' from being chained:

+	@echo 'There is no default Makefile rule to build gcc.'
+	@echo 'Please read the instructions in the INSTALL directory.'
+	@exit 1

(Assuming they can actually find the INSTALL directory - I just copied
 your words, the above would have avoided many useless PRs from users
 that refused to read the 3.0 installation documents.)

2. Add this non-chained rule:

+	@rm -rf builddir

3. Add code to actually test the invocation make to see if it supports
   VPATH properly as would now be required in all cases.  Refuse to
   chain with an unsupported make implementation.  If the make
   implementation is lacking then, in detail, we must explain to the
   user what is up and what they can do about it or we may get a flood
   of PRs after you make this change (i.e. I wouldn't wish to trade one
   useless but common set of PRs for another).

And this change to configure:

4. Should issue a warning (that an interactive user will have some
   chance to see) that builddir was created and that a make
   implementation supporting VPATH is now required to build gcc.

Although we are indeed now in the 21th century, I fear that the new
requirement of a VPATH supporting make implementation will be used to
kill this idea.

> I also think re-doing the cross-compiler builds so that all the libraries 
> and headers, binaries are "staged" in the build directory is a good idea. 

I would fully support enforcing:

- srcdir!=objdir (assuming no portability improvements are required,
  Phil's patch looks reasonable to me).

- staging of all built files into a structure that looks just like the
  final install area (i.e. the difference between running 'make check'
  and 'make check-installed' should be the presence of exactly one -B

> That's a big job, but I firmly believe it will have to happen at some point.

Unless maintaining the status quo is actually a bigger job.
Loren J. Rittle
Senior Staff Software Engineer, Distributed Object Technology Lab
Networks and Infrastructure Research Lab (IL02/2240), Motorola Labs, KeyID: 2048/ADCE34A5, FDC0292446937F2A240BC07D42763672

More information about the Libstdc++ mailing list