This is the mail archive of the
mailing list for the GCC project.
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)
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
* Is there anything else that should be not built by default unless
maintainer mode is enabled?