You can control the compilation driver.
SWITCH_TAKES_ARG (char) By default, this macro is defined to handle the standard options properly. You need not define it unless you wish to add additional options which take arguments.
WORD_SWITCH_TAKES_ARG (name) SWITCH_TAKES_ARG is used for multi-character option names.
By default, this macro is defined as DEFAULT_WORD_SWITCH_TAKES_ARG , which handles the standard options properly. You need not define WORD_SWITCH_TAKES_ARG unless you wish to add additional options which take arguments. Any redefinition should call DEFAULT_WORD_SWITCH_TAKES_ARG and then check for additional options.
SWITCHES_NEED_SPACES If this macro is not defined, the default value is 0.
CPP_SPEC Do not define this macro if it does not need to do anything.
NO_BUILTIN_SIZE_TYPE __SIZE_TYPE__ . The macro __SIZE_TYPE__ must then be defined by CPP_SPEC instead.
This should be defined if SIZE_TYPE depends on target dependent flags which are not accessible to the preprocessor. Otherwise, it should not be defined.
NO_BUILTIN_PTRDIFF_TYPE __PTRDIFF_TYPE__ . The macro __PTRDIFF_TYPE__ must then be defined by CPP_SPEC instead.
This should be defined if PTRDIFF_TYPE depends on target dependent flags which are not accessible to the preprocessor. Otherwise, it should not be defined.
SIGNED_CHAR_SPEC char will be treated as unsigned char by cc1 . Do not define this macro unless you need to override the default definition.
CC1_SPEC cc1 . It can also specify how to translate options you give to GNU CC into options for GNU CC to pass to the cc1 . Do not define this macro if it does not need to do anything.
CC1PLUS_SPEC cc1plus . It can also specify how to translate options you give to GNU CC into options for GNU CC to pass to the cc1plus . Do not define this macro if it does not need to do anything.
ASM_SPEC Do not define this macro if it does not need to do anything.
ASM_FINAL_SPEC Do not define this macro if it does not need to do anything.
LINK_SPEC Do not define this macro if it does not need to do anything.
LIB_SPEC LINK_SPEC . The difference between the two is that LIB_SPEC is used at the end of the command given to the linker. If this macro is not defined, a default is provided that loads the standard C library from the usual place. See `gcc.c'.
LIBGCC_SPEC LIB_SPEC . If this macro is not defined, the GNU CC driver provides a default that passes the string `-lgcc' to the linker unless the `-shared' option is specified.
STARTFILE_SPEC LINK_SPEC . The difference between the two is that STARTFILE_SPEC is used at the very beginning of the command given to the linker. If this macro is not defined, a default is provided that loads the standard C startup file from the usual place. See `gcc.c'.
ENDFILE_SPEC LINK_SPEC . The difference between the two is that ENDFILE_SPEC is used at the very end of the command given to the linker. Do not define this macro if it does not need to do anything.
LINK_LIBGCC_SPECIAL gcc should find the library `libgcc.a' by hand, rather than passing the argument `-lgcc' to tell the linker to do the search; also, gcc should not generate `-L' options to pass to the linker (as it normally does).
LINK_LIBGCC_SPECIAL_1 gcc should find the library `libgcc.a' by hand, rather than passing the argument `-lgcc' to tell the linker to do the search.
RELATIVE_PREFIX_NOT_LINKDIR gcc that it should only translate a `-B' prefix into a `-L' linker option if the prefix indicates an absolute file name.
STANDARD_EXEC_PREFIX
MD_EXEC_PREFIX STANDARD_EXEC_PREFIX . MD_EXEC_PREFIX is not searched when the `-b' option is used, or the compiler is built as a cross compiler.
STANDARD_STARTFILE_PREFIX
MD_STARTFILE_PREFIX MD_EXEC_PREFIX is not searched when the `-b' option is used, or when the compiler is built as a cross compiler.
MD_STARTFILE_PREFIX_1
INIT_ENVIRONMENT putenv to initialize the necessary environment variables.
LOCAL_INCLUDE_DIR LOCAL_INCLUDE_DIR comes before SYSTEM_INCLUDE_DIR in the search order. Cross compilers do not use this macro and do not search either `/usr/local/include' or its replacement.
SYSTEM_INCLUDE_DIR SYSTEM_INCLUDE_DIR comes before STANDARD_INCLUDE_DIR in the search order. Cross compilers do not use this macro and do not search the directory specified.
STANDARD_INCLUDE_DIR Cross compilers do not use this macro and do not search either `/usr/include' or its replacement.
INCLUDE_DEFAULTS GCC_INCLUDE_DIR , LOCAL_INCLUDE_DIR , SYSTEM_INCLUDE_DIR , GPLUSPLUS_INCLUDE_DIR , and STANDARD_INCLUDE_DIR . In addition, GPLUSPLUS_INCLUDE_DIR and GCC_INCLUDE_DIR are defined automatically by `Makefile', and specify private search areas for GCC. The directory GPLUSPLUS_INCLUDE_DIR is used only for C++ programs. The definition should be an initializer for an array of structures. Each array element should have two elements: the directory name (a string constant) and a flag for C++-only directories. Mark the end of the array with a null element. For example, here is the definition used for VMS:
#define INCLUDE_DEFAULTS \
{ \
{ "GNU_GXX_INCLUDE:", 1}, \
{ "GNU_CC_INCLUDE:", 0}, \
{ "SYS$SYSROOT:[SYSLIB.]", 0}, \
{ ".", 0}, \
{ 0, 0} \
}
Here is the order of prefixes tried for exec files:
Any prefixes specified by the user with `-B'.
The environment variable GCC_EXEC_PREFIX , if any.
The directories specified by the environment variable COMPILER_PATH .
The macro STANDARD_EXEC_PREFIX .
`/usr/lib/gcc/'.
The macro MD_EXEC_PREFIX , if any.
Here is the order of prefixes tried for startfiles:
Any prefixes specified by the user with `-B'.
The environment variable GCC_EXEC_PREFIX , if any.
The directories specified by the environment variable LIBRARY_PATH (native only, cross compilers do not use this).
The macro STANDARD_EXEC_PREFIX .
`/usr/lib/gcc/'.
The macro MD_EXEC_PREFIX , if any.
The macro MD_STARTFILE_PREFIX , if any.
The macro STANDARD_STARTFILE_PREFIX .
`/lib/'.
`/usr/lib/'.