GNU Compiler Collection (GCC) Internals
5.3.8 Anatomy of a Language Front End
A front end for a language in GCC has the following parts:
-
A directory `language' under `gcc' containing source
files for that front end. See section The Front End `language' Directory, for details.
-
A mention of the language in the list of supported languages in
`gcc/doc/install.texi'.
-
Details of contributors to that front end in
`gcc/doc/contrib.texi'. If the details are in that front end's
own manual then there should be a link to that manual's list in
`contrib.texi'.
-
Information about support for that language in
`gcc/doc/frontends.texi'.
-
Information about standards for that language, and the front end's
support for them, in `gcc/doc/standards.texi'. This may be a
link to such information in the front end's own manual.
-
Details of source file suffixes for that language and `-x
lang' options supported, in `gcc/doc/invoke.texi'.
-
Entries in
default_compilers in `gcc.c' for source file
suffixes for that language.
-
Preferably test suites, which may be under `gcc/testsuite' or
runtime library directories. FIXME: document somewhere how to write
test suite harnesses.
-
Probably a runtime library for the language, outside the `gcc'
directory. FIXME: document this further.
-
Details of the directories of any runtime libraries in
`gcc/doc/sourcebuild.texi'.
If the front end is added to the official GCC CVS repository, the
following are also necessary:
-
At least one GNATS category for bugs in that front end and runtime
libraries. This category needs to be mentioned in
`gcc/gccbug.in', and in `gnats.html' on the GCC web site, as
well as being added to the GNATS database.
-
Normally, one or more maintainers of that front end listed in
`MAINTAINERS'.
-
Mentions on the GCC web site in `index.html' and
`frontends.html', with any relevant links on
`readings.html'. (Front ends that are not an official part of
GCC may also be listed on `frontends.html', with relevant links.)
-
A news item on `index.html', and possibly an announcement on the
gcc-announce@gcc.gnu.org mailing list.
-
The front end's manuals should be mentioned in
`maintainer-scripts/update_web_docs' (see section 5.3.7.1 Texinfo Manuals)
and the online manuals should be linked to from
`onlinedocs/index.html'.
-
Any old releases or CVS repositories of the front end, before its
inclusion in GCC, should be made available on the GCC FTP site
ftp://gcc.gnu.org/pub/gcc/old-releases/.
-
The release and snapshot script `maintainer-scripts/gcc_release'
should be updated to generate appropriate tarballs for this front end.
-
If this front end includes its own version files that include the
current date, `maintainer-scripts/update_version' should be
updated accordingly.
-
`CVSROOT/modules' in the GCC CVS repository should be updated.