PATCH: Fix recent make-compatibility regression in libstdc++-v3
Phil Edwards
phil@jaj.com
Thu Jun 6 00:11:00 GMT 2002
On Wed, Jun 05, 2002 at 09:30:33PM -0500, Loren James Rittle wrote:
> Hi Phil,
>
> Recently, a change in the generated libstdc++-v3/src/Makefile.in and
> libstdc++-v3/testsuite/Makefile.in crept in. (This is directed at you
> since you accidentally allowed the actual creep and since you do most
> of the libstdc++-v3 Makefile hacking and thus also care about it. ;-)
Can't argue with that logic.
> $(srcdir)/Makefile.in: # Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
> cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile
>
> Was this intended?
Absolutely not; this needs to be fixed so that BSD Make is still supported.
(I'm amused that the super-strict "gnits" mode allows GNUisms.)
Here's what happened (with some explanatory notes for the audience members
who might use automake in the future):
If Makefile.am is changed in one of the subdirectories, you can't just cd
into that directory and run automake. Automake can only be executed from
the top level (of v3). You /can/ however limit the regeneration process by
specifying which Makefiles to recreate. (Why "Makefile" must be specified
instead of "Makefile.in" I have no idea.)
You can see this being automated in the (generated) rule Loren has quoted
above.
So in my change
* src/Makefile.am (sources): Alphabetize for convenience.
* src/Makefile.in: Regenerate.
because only src/Makefile.am was changed, I used this technique to only
regenerate src/Makefile.in. (The alternative is to let automake recreate
all the */Makefile.in's and then be very careful which ones are checked in.)
Loren, please apply your patch. In addition to fixing this oops, --cygnus
mode has always seemed better thought-out to me than --gnu or --gnits.
Phil
--
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace. We seek
not your counsel, nor your arms. Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen. - Samuel Adams
More information about the Libstdc++
mailing list