This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

toplevel generate with autogen

This change causes toplevel to be generated by autogen from
Makefile.tpl and Makefile.def; consensus was reached a while back that
this was a reasonable thing to do.  Makefile.tpl is a 'model' for  It contains several autogen FOR statements, which generate
some of the repetitive lists of 'all-x all-y all-z'.

This is the first in several steps in cleaning up the toplevel Makefile
for autoconfiscation.  I was originally going to do them all at once,
but I decided there was value in doing it incrementally.

This first step doesn't change much.  It *reorders* some of the entries
in, and that diff is attached.  Since that's all it does,
except for the deletion of the bogus target check-mmcheckoc, it should
be a very safe change.

I am currently bootstrapping an ubertree to try to check that I didn't
lose any implicit dependencies. If I *have* lost any implicit
dependencies, they should be recreated as *explicit* dependencies in the

The major advantage, however, is the reduction in the number of lists of
modules present in the makefile.  This makes it much easier to catch
stupid errors like 'check-mmcheckoc'.  (Note that mmalloc has check
disabled in the new file since it proved not to be working!)

Once the files Makefile.tpl and Makefile.def *exist* in gcc & src, it
also becomes easier for me to do experimental improvements without
dropping them into mainline gcc/src.

Future steps in 'autogenification' involve:
* generating more of the lists ; pulling more from Makefile.tpl
  to Makefile.def
* Eliminating Make macro speed penalties, and reducing the length of
  embedded shell code in Make rules, by generating separate rules for
  each target using autogen.
* Separating the lists of targets which 'all', 'install', etc. depend on
  from the collection of all-x targets which exist.
* Generating the lists of targets which 'all', 'install', etc. depend on
  using configure; then the targets' rules can assume that their
  directories exist and are configured, saving more shell code.

Attachment: Makefile.tpl
Description: Text document

Attachment: Makefile.def
Description: Text document

Attachment: min.diff
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]