Appendix A
Alphabetical listing of command-line options

The following is alphabetical listing of all command-line options, as generated by the compiler:
 Free Pascal Compiler version 1.0.5 [2001/10/29] for i386
 Copyright (c) 1993-2000 by Florian Klaempfl
 /usr/local/lib/fpc/1.0.5/fpc [options] <inputfile> [options]
 put + after a boolean switch option to enable it, - to disable it
   -a     the compiler doesn't delete the generated assembler file
       -al        list sourcecode lines in assembler file
       -ar        list register allocation/release info in assembler file
       -at        list temp allocation/release info in assembler file
   -b     generate browser info
       -bl        generate local symbol info
   -B     build all modules
   -C<x>  code generation options:
       -CD        create also dynamic library (not supported)
       -Ch<n>     <n> bytes heap (between 1023 and 67107840)
       -Ci        IO-checking
       -Cn        omit linking stage
       -Co        check overflow of integer operations
       -Cr        range checking
       -Cs<n>     set stack size to <n>
       -Ct        stack checking
       -CX        create also smartlinked library
   -d<x>  defines the symbol <x>
   -e<x>  set path to executable
   -E     same as -Cn
   -F<x>  set file names and paths:
       -FD<x>     sets the directory where to search for compiler utilities
       -Fe<x>     redirect error output to <x>
       -FE<x>     set exe/unit output path to <x>
       -Fi<x>     adds <x> to include path
       -Fl<x>     adds <x> to library path
       -FL<x>     uses <x> as dynamic linker
       -Fo<x>     adds <x> to object path
       -Fr<x>     load error message file <x>
       -Fu<x>     adds <x> to unit path
       -FU<x>     set unit output path to <x>, overrides -FE
   -g     generate debugger information:
       -gg        use gsym
       -gd        use dbx
       -gh        use heap trace unit (for memory leak debugging)
       -gl        use line info unit to show more info for backtraces
       -gc        generate checks for pointers
   -i     information
       -iD        return compiler date
       -iV        return compiler version
       -iSO       return compiler OS
       -iSP       return compiler processor
       -iTO       return target OS
       -iTP       return target processor
   -I<x>  adds <x> to include path
   -k<x>  Pass <x> to the linker
                                                                            

                                                                            
   -l     write logo
   -n     don't read the default config file
   -o<x>  change the name of the executable produced to <x>
   -pg    generate profile code for gprof (defines FPC_PROFILE)
   -P     use pipes instead of creating temporary assembler files
   -S<x>  syntax options:
       -S2        switch some Delphi 2 extensions on
       -Sc        supports operators like C (*=,+=,/= and -=)
       -sa        include assertion code.
       -Sd        tries to be Delphi compatible
       -Se<x>     compiler stops after the <x> errors (default is 1)
       -Sg        allow LABEL and GOTO
       -Sh        Use ansistrings
       -Si        support C++ styled INLINE
       -Sm        support macros like C (global)
       -So        tries to be TP/BP 7.0 compatible
       -Sp        tries to be gpc compatible
       -Ss        constructor name must be init (destructor must be done)
       -St        allow static keyword in objects
   -s     don't call assembler and linker (only with -a)
   -u<x>  undefines the symbol <x>
   -U     unit options:
       -Un        don't check the unit name
       -Ur        generate release unit files
       -Us        compile a system unit
   -v<x>  Be verbose. <x> is a combination of the following letters:
       e : Show errors (default)       d : Show debug info
       w : Show warnings               u : Show unit info
       n : Show notes                  t : Show tried/used files
       h : Show hints                  m : Show defined macros
       i : Show general info           p : Show compiled procedures
       l : Show linenumbers            c : Show conditionals
       a : Show everything             0 : Show nothing (except errors)
       b : Show all procedure          r : Rhide/GCC compatibility mode
           declarations if an error    x : Executable info (Win32 only)
           occurs
   -X     executable options:
       -Xc        link with the c library
       -Xs        strip all symbols from executable
       -XD        try to link dynamic          (defines FPC_LINK_DYNAMIC)
       -XS        try to link static (default) (defines FPC_LINK_STATIC)
       -XX        try to link smart            (defines FPC_LINK_SMART)
 
 Processor specific options:
   -A<x>  output format:
       -Aas       assemble using GNU AS
       -Aasaout   assemble using GNU AS for aout (Go32v1)
       -Anasmcoff coff (Go32v2) file using Nasm
       -Anasmelf  elf32 (Linux) file using Nasm
       -Anasmobj  obj file using Nasm
       -Amasm     obj file using Masm (Microsoft)
       -Atasm     obj file using Tasm (Borland)
       -Acoff     coff (Go32v2) using internal writer
       -Apecoff   pecoff (Win32) using internal writer
                                                                            

                                                                            
   -R<x>  assembler reading style:
       -Ratt      read AT&T style assembler
       -Rintel    read Intel style assembler
       -Rdirect   copy assembler text directly to assembler file
   -O<x>  optimizations:
       -Og        generate smaller code
       -OG        generate faster code (default)
       -Or        keep certain variables in registers
       -Ou        enable uncertain optimizations (see docs)
       -O1        level 1 optimizations (quick optimizations)
       -O2        level 2 optimizations (-O1 + slower optimizations)
       -O3        level 3 optimizations (same as -O2u)
       -Op<x>     target processor:
          -Op1  set target processor to 386/486
          -Op2  set target processor to Pentium/PentiumMMX (tm)
          -Op3  set target processor to PPro/PII/c6x86/K6 (tm)
   -T<x>  Target operating system:
       -TGO32V1   version 1 of DJ Delorie DOS extender
       -TGO32V2   version 2 of DJ Delorie DOS extender
       -TLINUX    Linux
       -TOS2      OS/2 2.x
       -TSUNOS    SunOS/Solaris
       -TWin32    Windows 32 Bit
       -TBeOS     BeOS
   -W<x>  Win32 target options
       -WB<x>     Set Image base to Hexadecimal <x> value
       -WC        Specify console type application
       -WD        Use DEFFILE to export functions of DLL or EXE
       -WF        Specify full-screen type application (OS/2 only)
       -WG        Specify graphic type application
       -WN        Do not generate relocation code (necessary for debugging)
       -WR        Generate relocation code
 
   -?     shows this help
   -h     shows this help without waiting