Next: Back End, Previous: Documentation, Up: gcc Directory

#### 6.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 The Front End language Directory, for details.
- A mention of the language in the list of supported languages in gcc/doc/install.texi.
- A mention of the name under which the language's runtime library is recognized by --enable-shared=package in the documentation of that option in gcc/doc/install.texi.
- A mention of any special prerequisites for building the front end in the documentation of prerequisites 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 testsuites, which may be under gcc/testsuite or runtime library directories. FIXME: document somewhere how to write testsuite 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 source repository, the following are also necessary:

- At least one Bugzilla component for bugs in that front end and runtime libraries. This category needs to be mentioned in gcc/gccbug.in, as well as being added to the Bugzilla 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 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. The associated maintainer-scripts/snapshot-README and maintainer-scripts/snapshot-index.html files should be updated to list the tarballs and diffs 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.