1 (This file under construction).
4 The GAS Configuration Plan
8 The goal of the new configuration scheme is to bury all object format,
9 target processor, and host machine dependancies in object, target, and
10 host specific files. That is, to move as many #ifdef's as possible
11 out of the gas common code.
13 Here's how it works. There is a .h and a .c file for each object file
14 format, a .h and a .c file for each target processor, and a .h for
15 each host. configure creates {sym}links in the current directory to
16 the appropriate files in the config directory.
20 host.h is a {sym}link to .../config/ho-yourhost.h. It is intended to
21 be used to hide host compiler, system header file, and system library
22 differences between host machines. If your host needs actual c source
23 files, then either: these are generally useful functions, in which
24 case you should probably build a local library outside of the gas
25 source tree, or someone, perhaps me, is confused about what is needed
28 obj-format.h is a {sym}link to .../config/obj-something.h. It is
29 intended to hide object file format differences from the bulk of gas,
30 and from most of the cpu backend.
32 All gas .c files include as.h.
34 as.h #define's "gas", includes host.h, defines a number of gas
35 specific structures and types, and then includes tp.h, obj.h, and
38 te-something.h defines a target environment specific preprocessor
39 flag, eg, TE_SUN, and then includes obj-format.h.
41 obj-format.h defines an object format specific preprocessor flag, eg,
42 OBJ_AOUT, OBJ_BOUT, OBJ_COFF, includes "target-processor.h", and then
43 defines the object specific macros, functions, types, and structures.
51 There appear to be four major types of ports; new hosts, new target
52 processors, new object file formats, and new target environments.