|
@@ -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}
|