22.3 Source Files Containing Type Information
- You need to add the file to the list of source files the type
machinery scans. There are four cases:
- For a back-end file, this is usually done
automatically; if not, you should add it to
target_gtfilesin the appropriate port's entries in config.gcc.
- For files shared by all front ends, add the filename to the
GTFILESvariable in Makefile.in.
- For files that are part of one front end, add the filename to the
gtfilesvariable defined in the appropriate config-lang.in. For C, the file is c-config-lang.in. Headers should appear before non-headers in this list.
- For files that are part of some but not all front ends, add the
filename to the
gtfilesvariable of all the front ends that use it.
- For a back-end file, this is usually done automatically; if not, you should add it to
- If the file was a header file, you'll need to check that it's included
in the right place to be visible to the generated files. For a back-end
header file, this should be done automatically. For a front-end header
file, it needs to be included by the same file that includes
gtype-lang.h. For other header files, it needs to be
included in gtype-desc.c, which is a generated file, so add it to
For source files that aren't header files, the machinery will generate a header file that should be included in the source file you just changed. The file will be called gt-path.h where path is the pathname relative to the gcc directory with slashes replaced by -, so for example the header file to be included in cp/parser.c is called gt-cp-parser.c. The generated header file should be included after everything else in the source file. Don't forget to mention this file as a dependency in the Makefile!
For language frontends, there is another file that needs to be included somewhere. It will be called gtype-lang.h, where lang is the name of the subdirectory the language is contained in.