Browse Source

+ Corrected compiler options

michael 24 years ago
parent
commit
f5675de287
1 changed files with 120 additions and 103 deletions
  1. 120 103
      docs/user.tex

+ 120 - 103
docs/user.tex

@@ -1092,6 +1092,7 @@ to conditionally compile parts of your code.
 \item [-gd] \olabel{gd} generate debugging info for \file{dbx}.
 \item [-gh] use the heaptrc unit (see \unitsref).
 \item [-gc] generate checks for pointers.
+\item[-kxxx] pass \var{xxx} to the linker. 
 \item[-Oxxx] \olabel{O} optimize the compiler's output; \var{xxx} can have one
 of the following values :
 \begin{description}
@@ -1113,7 +1114,9 @@ caution).
 The exact effect of these effects can be found in the \progref.
 \item [-oxxx] Tells the compiler to use \var{xxx} as the name of the output
 file (executable). Only with programs.
-\item [-pg] \olabel{gp} Generate profiler code for \file{gprof}.
+\item [-pg] \olabel{gp} Generate profiler code for \file{gprof}. This will
+define the symbol \var{FPC\_PROFILE}, which can be used in conditional
+defines.
 \item [-s] \olabel{s} Tells the compiler not to call the assembler and linker.
 Instead, the compiler writes a script, \file{PPAS.BAT} under \dos, or
 \file{ppas.sh} under \linux, which can then be executed to produce an
@@ -1127,9 +1130,14 @@ the following:
 \item \textbf{LINUX} : \linux.
 \item \textbf{OS2} : OS/2 (2.x) using the \var{EMX} extender.
 \item \textbf{WIN32} : \windows 32 bit.
+\item \textbf{SUNOS} : SunOS/Solaris.
+\item \textbf{BEOS} : BeOS.
 \end{itemize}
 \item [-uxxx] \olabel{u} Undefine the symbol \var{xxx}. This is the opposite
 of the \var{-d} option.
+\item [-Ur] \olabel{Ur} Generate release unit files. These files will not be
+recompiled, even when the sources are available. This is useful when making
+release distributions.
 \item [-Xx] \olabel{X} executable options. This tells the compiler what
 kind of executable should be generated. the parameter \var{x}
 can be one of the following:
@@ -1166,8 +1174,11 @@ This is the default style.
 only replacing certain variables.
 file.
 \end{description}
-\item [-S2] \olabel{Stwo} Switch on Delphi 2 extensions.  This is different
-from \var{-Sd} because some \fpc constructs are still available to you.
+\item [-S2] \olabel{Stwo} Switch on Delphi 2 extensions (\var{objfpc} mode). 
+This is different from \var{-Sd} (Delphi mode) because some \fpc constructs 
+are still available.
+\item [-Sa] \olabel{Sa} Include assert statements in compiled code. Omitting 
+this option will cause assert statements to be ignored.
 \item [-Sc] \olabel{Sc} Support C-style operators, i.e. \var{*=, +=, /= and
 -=}.
 \item [-Sd] Tells the compiler to be Delphi compatible. This is more strict
@@ -2814,52 +2825,54 @@ Windows for other servers, I'd be willing to include it here.
 The following is alphabetical listing of all command-line options, as
 generated by the compiler:
 \begin{verbatim}
-ppc386 [options] <inputfile> [options]
+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/ppc386 [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
+      -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
+      -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
+      -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
+      -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
+      -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
+      -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
@@ -2868,83 +2881,87 @@ put + after a boolean switch option to enable it, - to disable it
   -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
+      -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
-           -Us        compile a system unit
+      -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
+      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)
+      -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
+      -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
+      -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)
+      -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
-           -TWin32    Windows 32 Bit
+      -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
-           -WG        Specify graphic type application
-           -WN        Do not generate relocation code (necessary for debugging)
-           -WR        Generate relocation code
-
+      -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
 \end{verbatim}