Man Linux: Main Page and Category List

NAME

       tccenv - Environments for tcc

DESCRIPTION

       Tcc  environments  are  used  to  configure  the behaviour of tcc(1), a
       special case of which  is  specifying  the  APIs  used.   The  standard
       environments  supplied  with the release are used to represent a number
       of commonly used APIs, implement certain tcc(1)  command-line  options,
       and  provide  a  means  of implementing system-specific options.  User-
       defined environments can easily be written to  correspond  to  a  user-
       defined  API,  or  to  group  together  a number of tcc(1) command-line
       options into a single file.

       An environment is just a file which is interpreted by tcc(1) when it is
       specified  with  the  command-line option -Ystring, where string is the
       name of the file.  Each environment file consists of lines of the form

              *IDENTIFIER "text"

       where IDENTIFIER is one of the environmental  identifiers,  text  tells
       tcc(1)  how  to modify the value given by this identifier, and * stands
       for one of the environment prefixes + < and >.

USER-DEFINED ENVIRONMENTS

       The simplest example of a user-defined environment  contains  lines  of
       the form

              +FLAG "text"

       which  tells  tcc(1)  to  interpret  text  as  if it were passed on the
       command-line.  So, for example, an environment consisting of the lines

              +FLAG "-Yposix"
              +FLAG "-Xs"
              +FLAG "-I/home/user/include"

       will modify tcc(1) to use the POSIX 1003.1 API with strict checks,  and
       add  the  directory /home/user/include to the search path for #included
       files.

       By default, tcc(1)  looks  for  environments  in  the  current  working
       directory  and  in the default environments directory.  In addition, if
       the system variable TCCENV is defined, this specifies a colon-separated
       list  of  directories  along  which tcc(1) searches for any environment
       which is not a full pathname.

FULL ENVIRONMENT LIST

       The majority of the standard  environments  can  be  divided  into  two
       classes:  those  which  correspond  to  APIs  and those which implement
       tcc(1) command-line options.  (In addition to these, a small number are
       used to enable extra tools and to specify minimum integer sizes.)

       The  API  environments  are  subdivided  into  base APIs (such as ANSI,
       POSIX) and extension APIs (such as the X11 environments):

              ansi        the ANSI X3.159 API (this is the default API environment)
              iso         the ISO/IEC 9899:1990 (Amendment 1:L1995 (E)) API

              posix       the POSIX (IEEE 1003.1:1988) API
              posix1      the POSIX.1 (ISO/IEC 9945-1:1990) API
              posix2      the POSIX.2 (ISO/IEC 9945-2:1993) API
              xpg3        the X/Open Portability Guide 3
              xpg4        the X/Open Portability Guide 4
              unix95      the X/Open Single UNIX Specification (Spec 1170)
              svid3       the System V Interface Definition (3rd Edition)
              aes         the Application Environment Specification (Revision A) API

              bsd_extn    BSD-like extension for use with POSIX, etc.
              x5_lib      X11 (Release 5) X Library
              x5_t        X11 (Release 5) Intrinsics Toolkit
              x5_mu       X11 (Release 5) Miscellaneous Utilities
              x5_aw       X11 (Release 5) Athena Widgets
              x5_mit      X11 (Release 5) MIT Implementation
              x5_proto    X11 (Release 5) Protocol Extension
              x5_ext      X11 (Release 5) Extensions
              motif_1_1   Motif (Release 1.1)
              motif_1_2   Motif (Release 1.2)

              system      System headers as main API
              system+     System headers as last resort extension API
              tdf_ext     compilation using TDF Version 4.0 extensions

       Some environments are  available  which  modify  access  to  previously
       specified APIs:

              x5_private      permit access to X11 Release 5 private headers (*P.h)
              motif_private   permit access to Motif private headers (*P.h)

       Note  that TDF token libraries for all these APIs will not be available
       on all platforms, so it may not be possible run installers for programs
       compiled  with  all  API  environments.   It will always be possible to
       check code with any API environment using tchk(1).

       The following environments are used to specify the  use  of  particular
       tools (where available) which are not enabled by default:

              c++      enables the C++ producer/checker tcpplus.
              pl_tdf   enables the PL_TDF compiler pl.
              tnc      enables the TDF notation compiler tnc.

       The  default  behaviour  of  tcc(1)  is  to assume the minimal sizes of
       integer types allowed by ANSI.  This behaviour can be modified with the
       following environments:

              16bit   specifies minimal integer sizes allowed by ANSI (default)
              32bit   specifies integer sizes found on most 32-bit machines

       In addition to these, the following implement target-specific options:

              aout     Use a.out instead of ELF format (386 Linux ELF only).
              static   Use static instead of dynamic linking (Alpha only).

ENVIRONMENTAL IDENTIFIERS

       In  the  following list, the environmental prefix * must be replaced by
       one of + (which replaces the existing value), < (which adds a value  to
       the  beginning  of  the existing list), or > (which adds a value to the
       end of the existing list).

       *API_NAME             modifies the list of API analysis environment names
       *AS                   modifies the system assembler executable
       *AS1                  modifies the auxiliary assembler executable (Mips and Alpha only)
       *CC                   modifies the system compiler executable
       *CPP_SPEC_LINK        modifies the C++ spec linker executable
       *CRT0                 modifies the first list of initial default .o files
       *CRT1                 modifies the second list of initial default .o files
       *CRTP_N               modifies the list of additional default .o files (-Yprom only)
       *CRTN                 modifies the list of final default .o files
       *DISP                 modifies the TDF pretty printer executable
       *DUMP_ANAL            modifies the dump-file analyser executable
       *DUMP_LINK            modifies the dump linker executable
       *DYN_LINK             modifies the dynamic-initialisation linker executable (RS6000 and Sparc only)
       +ENVDIR               sets the default environment directory
       +FLAG                 passes a flag to tcc(1)
       +FLAG_AS              passes a flag to the assembler
       +FLAG_AS1             passes a flag to the auxiliary assembler (Mips and Alpha only)
       +FLAG_CC              passes a flag to the system compiler
       +FLAG_CPP_SPEC_LINK   passes a flag to the C++ spec linker
       +FLAG_DISP            passes a flag to the TDF pretty printer
       +FLAG_DUMP_ANAL       passes a flag to the dump-file analyser
       +FLAG_DUMP_LINK       passes a flag to the dump linker
       +FLAG_DYN_LINK        passes a flag to the dynamic-initialisation linker ((RS6000 and Sparc only)
       +FLAG_INSTALL         passes a flag to the TDF archive builder
       +FLAG_LD              passes a flag to the system linker
       +FLAG_PL_TDF          passes a flag to the PL_TDF compiler
       +FLAG_SPEC_LINKER     passes a flag to the C spec linker
       +FLAG_TCPPLUS         passes a flag to the C++ producer
       +FLAG_TCPPLUSPP       passes a flag to the C++ preprocessor
       +FLAG_TDFC            passes a flag to the C producer
       +FLAG_TDFCPP          passes a flag to the C preprocessor
       +FLAG_TLD             passes a flag to the TDF linker
       +FLAG_TNC             passes a flag to the TDF notation compiler
       +FLAG_TRANS           passes a flag to the TDF translator
       *INCL                 modifies the list of default include file directories
       *INFO                 modifies the list of API information
       *LD                   modifies the system linker executable
       *LIB                  modifies the list of default TDF libraries
       +LINE_START           inserts a line in the tcc(1) built-in start-up file
       +LINE_END             inserts a line in the tcc(1) built-in end-up file
       *LINK                 modifies the list of default TDF library directories
       *LINK_ENTRY           modifies the linker options specifying the entry point
       +MACHINE              sets the target machine type
       +PORTABILITY          sets the producer portability table
       *PL_TDF               modifies the PL_TDF compiler executable
       *SPEC_LINK            modifies the C spec linker executable
       *STARTUP              modifies the list of default C producer start-up files
       *STARTUP_DIR          modifies the list of default C producer start-up directories
       *STARTUP_CPP          modifies the list of default C++ producer start-up files
       *STARTUP_CPP_DIR      modifies the list of default C++ producer start-up directories
       *SUFFIX_CPP           sets the filename suffix override for C++ source files
       *SYS_LIB              modifies the list of default system libraries
       *SYS_LIBC             modifies the list of standard system libraries
       *SYS_LINK             modifies the list of default system library directories
       *TCPPLUS              modifies the C++ producer executable
       *TCPPLUSPP            modifies the C++ preprocessor executable
       *TDFC                 modifies the C producer executable
       *TDFCPP               modifies the C preprocessor executable
       +TEMP                 sets the temporary directory
       *TLD                  modifies the TDF linker executable
       *TNC                  modifies the TDF notation compiler executable
       *TRANS                modifies the TDF translator executable

       +VERSION              sets the target machine version (Mips only)

SEE ALSO

       tcc(1), tchk(1), tcpplus(1), pl(1), tnc(1).

                                                                     tccenv(5)