This is the mail archive of the gcc-patches@gcc.gnu.org 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]

Re: small patch for install.texi



> The maintainer mode issue hasn't been brought up to the SC yet. Would
> you be willing to write a short abstract on what you have in mind? I'll
> then forward it.

The issues as I see them are these:

* The build writes to the source directory when it creates info files.

* Not everyone has the tools to build documentation (not just info,
  but html, dvi, etc).

* People who get pre-packaged distributions get pre-built docs too;
  there should be no need to rebuild them.

* People creating distributions need to be able to ensure that all the
  docs are up to date.

In other projects, "maintainer mode" is invoked by people who *do*
care about updating those things which are in cvs yet are generated
files, such as info files, some headers, Makefile.in, configure, etc.

GCC's configure already supports --maintainer-mode, but Makefile.in
does nothing with it.  Adding support is as simple as adding @MAINT@
to the beginning of lines that should exist only when maintainer mode
is invoked.  So, I propose the following:

* Docs moved to the doc/ subdirectory.

* Makefile.in changed to build docs in the doc/ subdirectory (i.e. no
  Makefile.in *in* the doc/ subdirectory).

* Dependencies on documentation conditional on maintainer mode,
  something like this:

	@MAINT@MAINT_DEPS = info <etc>

	all : gcc cc1 $(MAINT_DEPS)

	INFO_DEPS = doc/gcc.info doc/cpp.info
	info : $(INFO_DEPS)
	doc/gcc.info :
		blah blah blah

  So, without maintainer mode the doc files are simply left as-is,
  built or not.  With maintainer mode, the doc files are built when
  needed as before, into the source tree.  In either case, the user
  can type "make info" to build them manually.

So, the questions are:

* Should CVS include info files?  This should be decided before we
  move the docs to doc/, or we can just not move them and check them
  in later when we do decide.

* Should info files be built sometimes even without maintainer mode?
  If so, under what conditions?

* Should the doc/* targets be in the top Makefile.in, or moved to a
  doc/Make-doc.in frag?

* Is there anything else that should be not built by default unless
  maintainer mode is enabled?


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