You can control the compilation driver.
SWITCH_TAKES_ARG (char)
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
CPP_SPEC
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
ASM_FINAL_SPEC
LINK_SPEC
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
LINK_LIBGCC_SPECIAL_1
LINK_LIBGCC_SPECIAL
, except that it does
not affect `-L' options.
MULTILIB_DEFAULTS
MULTILIB_OPTIONS
.
Do not define this macro if MULTILIB_OPTIONS
is not defined in
the target makefile fragment or if none of the options listed in
MULTILIB_OPTIONS
are set by default.
See section The Target Makefile Fragment.
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
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:
GCC_EXEC_PREFIX
, if any.
COMPILER_PATH
.
STANDARD_EXEC_PREFIX
.
MD_EXEC_PREFIX
, if any.
Here is the order of prefixes tried for startfiles:
GCC_EXEC_PREFIX
, if any.
LIBRARY_PATH
(native only, cross compilers do not use this).
STANDARD_EXEC_PREFIX
.
MD_EXEC_PREFIX
, if any.
MD_STARTFILE_PREFIX
, if any.
STANDARD_STARTFILE_PREFIX
.