Chapter 11
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 2.1.1 [2005/11/18] for i386  
Copyright (c) 1993-2005 by Florian Klaempfl  
/usr/local/lib/fpc/2.1.1/ppc386 [options]  [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  
      -an        list node info in assembler file  
      -ap        use pipes instead of creating temporary assembler files  
      -ar        list register allocation/release info in assembler file  
      -at        list temp allocation/release info in assembler file  
  -A  output format:  
      -Adefault  use default assembler  
      -Aas       assemble using GNU AS  
      -Anasmcoff coff (Go32v2) file using Nasm  
      -Anasmelf  elf32 (Linux) file using Nasm  
      -Anasmwin32Win32 object file using Nasm  
      -AnasmwdosxWin32/WDOSX object file using Nasm  
      -Awasm     obj file using Wasm (Watcom)  
      -Anasmobj  obj file using Nasm  
      -Amasm     obj file using Masm (Microsoft)  
      -Atasm     obj file using Tasm (Borland)  
      -Aelf      elf32 (Linux) using internal writer  
      -Acoff     coff (Go32v2) using internal writer  
      -Apecoff   pecoff (Win32) using internal writer  
  -b     generate browser info  
      -bl        generate local symbol info  
  -B     build all modules  
  -C  code generation options:  
      -Cc     set default calling convention to   
      -CD        create also dynamic library (not supported)  
      -Ce        Compilation with emulated floating point opcodes  
      -Cf     Select fpu instruction set to use, see fpc -i for possible values  
      -Cg        Generate PIC code  
      -Ch      bytes heap (between 1023 and 67107840)  
      -Ci        IO-checking  
      -Cn        omit linking stage  
      -Co        check overflow of integer operations  
      -Cp     select instruction set, see fpc -i for possible values  
      -Cr        range checking  
      -CR        verify object method call validity  
      -Cs     set stack size to   
      -Ct        stack checking  
      -CX        create also smartlinked library  
  -d  defines the symbol   
  -D     generate a DEF file  
      -Dd     set description to   
      -Dv     set DLL version to   
  -e  set path to executable  
  -E     same as -Cn  
  -F  set file names and paths:  
      -Fa[,y] for a program load first units  and [y] before uses is parsed  
      -Fc     sets input codepage to   
      -FD     sets the directory where to search for compiler utilities  
      -Fe     redirect error output to   
      -FE     set exe/unit output path to   
      -Fi     adds  to include path  
      -Fl     adds  to library path  
      -FL     uses  as dynamic linker  
      -Fo     adds  to object path  
      -Fr     load error message file   
      -Fu     adds  to unit path  
      -FU     set unit output path to , overrides -FE  
  -g     generate debugger information:  
      -gc        generate checks for pointers  
      -gd        use dbx  
      -gg        use gsym  
      -gh        use heap trace unit (for memory leak debugging)  
      -gl        use line info unit to show more info for backtraces  
      -gv        generates programs traceable with valgrind  
      -gw        generate dwarf debugging info  
  -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  adds  to include path  
  -k  Pass  to the linker  
  -l     write logo  
  -M  set language mode to   
      -Mfpc      free pascal dialect (default)  
      -Mobjfpc   switch some Delphi 2 extensions on  
      -Mdelphi   tries to be Delphi compatible  
      -Mtp       tries to be TP/BP 7.0 compatible  
      -Mgpc      tries to be gpc compatible  
      -Mmacpas   tries to be compatible to the macintosh pascal dialects  
  -n     don't read the default config file  
  -N  node tree optimizations  
      -Nu        unroll loops  
  -o  change the name of the executable produced to   
  -O  optimizations:  
      -Oa        = set alignment  
      -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 (-O2 repeatedly, max 5 times)  
      -Op     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)  
  -pg    generate profile code for gprof (defines FPC_PROFILE)  
  -R  assembler reading style:  
      -Rdefault  use default assembler  
      -Ratt      read AT&T style assembler  
      -Rintel    read Intel style assembler  
  -S  syntax options:  
      -S2        same as -Mobjfpc  
      -Sc        supports operators like C (*=,+=,/= and -=)  
      -Sa        include assertion code.  
      -Sd        same as -Mdelphi  
      -Se     error options.  is a combination of the following:  
          : compiler stops after the  errors (default is 1)  
         w : compiler stops also after warnings  
         n : compiler stops also after notes  
         h : compiler stops also after hints  
      -Sg        allow LABEL and GOTO  
      -Sh        Use ansistrings  
      -Si        support C++ styled INLINE  
      -Sk        load fpcylix unit  
      -SI     set interface style to   
         -SIcom     COM compatible interface (default)  
         -SIcorba   CORBA compatible interface  
      -Sm        support macros like C (global)  
      -So        same as -Mtp  
      -Sp        same as -Mgpc  
      -Ss        constructor name must be init (destructor must be done)  
      -St        allow static keyword in objects  
  -s     don't call assembler and linker  
      -sh        Generate script to link on host  
      -st        Generate script to link on target  
      -sr        Skip register allocation phase (use with -alr)  
  -T  Target operating system:  
      -Temx      OS/2 via EMX (including EMX/RSX extender)  
      -Tfreebsd  FreeBSD  
      -Tgo32v2   Version 2 of DJ Delorie DOS extender  
      -Tlinux    Linux  
      -Tnetbsd   NetBSD  
      -Tnetware  Novell Netware Module (clib)  
      -Tnetwlibc Novell Netware Module (libc)  
      -Topenbsd  OpenBSD  
      -Tos2      OS/2 / eComStation  
      -Tsunos    SunOS/Solaris  
      -Twatcom   Watcom compatible DOS extender  
      -Twdosx    WDOSX DOS extender  
      -Twin32    Windows 32 Bit  
      -Twince    Windows CE  
  -u  undefines the symbol   
  -U     unit options:  
      -Un        don't check the unit name  
      -Ur        generate release unit files  
      -Us        compile a system unit  
  -v  Be verbose.  is a combination of the following letters:  
      e : Show errors (default)       0 : Show nothing (except errors)  
      w : Show warnings               u : Show unit info  
      n : Show notes                  t : Show tried/used files  
      h : Show hints                  c : Show conditionals  
      i : Show general info           d : Show debug info  
      l : Show linenumbers            r : Rhide/GCC compatibility mode  
      a : Show everything             x : Executable info (Win32 only)  
      b : Write file names messages with full path  
      v : write fpcdebug.txt with     p : Write tree.log with parse tree  
          lots of debugging info  
  -W  Win32-like target options  
      -WB        Create a relocatable image  
      -WB     Set Image base to Hexadecimal  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  
  -X     executable options:  
      -Xc        pass --shared to the linker (Unix only)  
      -Xd        don't use standard library search path (needed for cross compile)  
      -XD        try to link units dynamic          (defines FPC_LINK_DYNAMIC)  
      -Xm        generate link map  
      -XM     set the name of the 'main' program routine (default is 'main')  
      -XP     prepend the binutils names with the prefix   
      -Xr     set library search path to  (needed for cross compile)  
      -Xs        strip all symbols from executable  
      -XS        try to link units static (default) (defines FPC_LINK_STATIC)  
      -Xt        link with static libraries (-static is passed to linker)  
      -XX        try to link units smart            (defines FPC_LINK_SMART)  
 
  -?     shows this help  
  -h     shows this help without waiting