#### 6.3.8.2 The Front End `config-lang.in` File

Each language subdirectory contains a `config-lang.in` file. This file is a shell script that may define some variables describing the language:

`language`

  This definition must be present, and gives the name of the language for some purposes such as arguments to `--enable-languages`.

`lang_requires`

  If defined, this variable lists (space-separated) language front ends other than C that this front end requires to be enabled (with the names given being their `language` settings). For example, the Obj-C++ front end depends on the C++ and ObjC front ends, so sets ‘`lang_requires="objc c++"`’.

`subdir_requires`

  If defined, this variable lists (space-separated) front end directories other than C that this front end requires to be present. For example, the Objective-C++ front end uses source files from the C++ and Objective-C front ends, so sets ‘`subdir_requires="cp objc"`’.

`target_libs`

  If defined, this variable lists (space-separated) targets in the top level `Makefile` to build the runtime libraries for this language, such as `target-libobjc`.

`lang_dirs`

  If defined, this variable lists (space-separated) top level directories (parallel to `gcc`), apart from the runtime libraries, that should not be configured if this front end is not built.

`build_by_default`

  If defined to ‘`no`’, this language front end is not built unless enabled in a `--enable-languages` argument. Otherwise, front ends are built by default, subject to any special logic in `configure.ac` (as is present to disable the Ada front end if the Ada compiler is not already installed).

`boot_language`

  If defined to ‘`yes`’, this front end is built in stage1 of the bootstrap. This is only relevant to front ends written in their own languages.

`compilers`

  If defined, a space-separated list of compiler executables that will be run by the driver. The names here will each end with ‘`\$(exeext)`’.

`outputs`

  If defined, a space-separated list of files that should be generated by `configure` substituting values in them. This mechanism can be used to create a file `language/Makefile` from `language/Makefile.in`, but this is deprecated, building everything from the single `gcc/Makefile` is preferred.

`gtfiles`

  If defined, a space-separated list of files that should be scanned by `gengtype.c` to generate the garbage collection tables and routines for this language. This excludes the files that are common to all front ends. See Type Information.