|
@@ -26,16 +26,19 @@ The current main targets are
|
|
|
.I Go32V2
|
|
|
(Dos DJGPP extender),
|
|
|
.I Freebsd,
|
|
|
+.I OpenBSD,
|
|
|
+.I NetBSD,
|
|
|
.I Linux,
|
|
|
-.I OS/2
|
|
|
-.I BeOS
|
|
|
+.I OS/2,
|
|
|
+.I BeOS,
|
|
|
+.I Netware,
|
|
|
.I Solaris
|
|
|
and
|
|
|
.I Win32.
|
|
|
The other targets (M68K compilers for Atari and Amiga) are either based on older
|
|
|
versions of the compiler or are still in development.
|
|
|
.PP
|
|
|
-This manpage is meant for quick\-reference only. FPC comes with a great (600+ pages)
|
|
|
+This manpage is meant for quick\-reference only. FPC comes with a great (2000+ pages)
|
|
|
manual, which is updated constantly, while this man page can be out of date.
|
|
|
|
|
|
.SH Version number
|
|
@@ -194,14 +197,10 @@ the file
|
|
|
.I xxx
|
|
|
.
|
|
|
.TP
|
|
|
-.BI \-Fg xxx
|
|
|
-(linux only, obsolete)
|
|
|
+.BI \-FE xxx
|
|
|
+set the executable/unit output path to
|
|
|
.I xxx
|
|
|
- specifies the path where the compiler can find the
|
|
|
-.I GNU C
|
|
|
-library. This is superseded by the
|
|
|
-.I \-Fl
|
|
|
-option.
|
|
|
+.
|
|
|
.TP
|
|
|
.BI \-Fi xxx
|
|
|
adds
|
|
@@ -240,7 +239,7 @@ By default, the compiler only searches for units in the current directory
|
|
|
and the directory where the compiler itself resides. This option tells the
|
|
|
compiler also to look in the directory
|
|
|
.I xxx
|
|
|
-\.
|
|
|
+.
|
|
|
.TP
|
|
|
.BI \-FU xxx
|
|
|
Tells the compiler to write units in directory
|
|
@@ -252,10 +251,6 @@ Add
|
|
|
.I xxx
|
|
|
to the include file search path.
|
|
|
This path is used when looking for include files.
|
|
|
-.TP
|
|
|
-By default, the compiler only searches for units in the current directory
|
|
|
-and the directory where the compiler itself resides. This option tells the
|
|
|
-compiler also to look in the directory "xxx."
|
|
|
|
|
|
.PP Options controlling the kind of output
|
|
|
for more information on these options, see also the programmers manual.
|
|
@@ -266,8 +261,20 @@ This also counts for the (possibly) generated batch script.
|
|
|
.TP
|
|
|
.BI \-al
|
|
|
Tells the compiler to include the sourcecode lines
|
|
|
-in the assembler file as comments. This feature is still experimental, and
|
|
|
-should be used with caution.
|
|
|
+in the assembler file as comments.
|
|
|
+.TP
|
|
|
+.BI \-an
|
|
|
+Tells the compiler to include node information in the generated assembler file.
|
|
|
+This is mainly for use by the compiler developers.
|
|
|
+.TP
|
|
|
+.BI \-ap
|
|
|
+Tells the compiler to use pipes to communicate with the assembler.
|
|
|
+.TP
|
|
|
+.BI \-ar
|
|
|
+Tells the compiler to include register allocation/deallocation information.
|
|
|
+.TP
|
|
|
+.BI \-at
|
|
|
+Tells the compiler to include temparary register allocation/deallocation information.
|
|
|
.TP
|
|
|
.BI -A xxx
|
|
|
specifies what kind of assembler should be generated . Here
|
|
@@ -279,6 +286,15 @@ is one of the following :
|
|
|
A unix .o (object) file, using
|
|
|
.I GNU AS
|
|
|
.TP
|
|
|
+.I coff
|
|
|
+coff object file (go32) using internal writer.
|
|
|
+.TP
|
|
|
+.I default
|
|
|
+Use the default writer for the current platform.
|
|
|
+.TP
|
|
|
+.I elf
|
|
|
+elf object file (linux, 32-bit only) using internal writer.
|
|
|
+.TP
|
|
|
.I nasmcoff
|
|
|
a coff file using the
|
|
|
.I nasm
|
|
@@ -289,7 +305,7 @@ a ELF32 file (LINUX only) using the
|
|
|
.I nasm
|
|
|
assembler.
|
|
|
.TP
|
|
|
-.I nasmonj
|
|
|
+.I nasmobj
|
|
|
a obj file using the
|
|
|
.I nasm
|
|
|
assembler.
|
|
@@ -299,16 +315,34 @@ An obj file using the Microsoft
|
|
|
.I masm
|
|
|
assembler.
|
|
|
.TP
|
|
|
+.I pecoff
|
|
|
+pecoff object file (win32) using internal writer.
|
|
|
+.TP
|
|
|
.I tasm
|
|
|
An obj file using the Borland
|
|
|
.I tasm
|
|
|
assembler.
|
|
|
+.TP
|
|
|
+.I wasm
|
|
|
+An obj file using the Watcom assembler.
|
|
|
.RE
|
|
|
-
|
|
|
+.TP
|
|
|
+.BI \-Ccxxx
|
|
|
+set the default calling convention to XXX.
|
|
|
.TP
|
|
|
.BI \-CD
|
|
|
Create dynamic library.
|
|
|
.TP
|
|
|
+.TP
|
|
|
+.BI \-Ce
|
|
|
+Compile using emulated floating point instructions.
|
|
|
+.TP
|
|
|
+.BI \-Cfxxx
|
|
|
+Set the used floating point instruction set to xxx.
|
|
|
+.TP
|
|
|
+.BI \-Cg
|
|
|
+Generate PIC code.
|
|
|
+.TP
|
|
|
.BI \-Ch xxx
|
|
|
Reserves
|
|
|
.I xxx
|
|
@@ -325,6 +359,9 @@ Omit the linking stage.
|
|
|
.BI \-Co
|
|
|
Generate Integer overflow checking code.
|
|
|
.TP
|
|
|
+.BI \-CR
|
|
|
+Verify object call validity (method calls mustbe valid).
|
|
|
+.TP
|
|
|
.BI \-Cr
|
|
|
Generate Range checking code.
|
|
|
.TP
|
|
@@ -333,14 +370,11 @@ Set stack size to
|
|
|
.I xxx
|
|
|
bytes.
|
|
|
.TP
|
|
|
-.BI \-CS
|
|
|
-Create static library.
|
|
|
-.TP
|
|
|
.BI \-Ct
|
|
|
generate stack checking code.
|
|
|
.TP
|
|
|
-.BI \-Cx
|
|
|
-Use smartlinking when compiling and linking units.
|
|
|
+.BI \-CX
|
|
|
+Create a smartlinked library.
|
|
|
.TP
|
|
|
.BI \-d xxx
|
|
|
Define the symbol name
|
|
@@ -354,7 +388,7 @@ Same as -Cn.
|
|
|
.BI \-g
|
|
|
Generate debugging information for debugging with
|
|
|
.I GDB
|
|
|
-
|
|
|
+.
|
|
|
.TP
|
|
|
.BI \-gg
|
|
|
idem as
|
|
@@ -366,6 +400,15 @@ generate debugging info for dbx.
|
|
|
.BI \-gh
|
|
|
use the heaptrc unit (see the units part of the FPC manual).
|
|
|
.TP
|
|
|
+.BI \-gl
|
|
|
+use the lineinfo unit for line information (see the units part of the FPC manual).
|
|
|
+.TP
|
|
|
+.BI \-gv
|
|
|
+Generate information for debugging with valgrind.
|
|
|
+.TP
|
|
|
+.BI \-gw
|
|
|
+Generate DWARF debugging information.
|
|
|
+.TP
|
|
|
.BI \-O xxx
|
|
|
optimize the compiler's output;
|
|
|
.I xxx
|
|
@@ -424,40 +467,72 @@ Instead, the compiler writes a script, PPAS.BAT under DOS, or
|
|
|
ppas.sh under Linux, which can then be executed to produce an
|
|
|
executable.
|
|
|
.TP
|
|
|
+.BI \-sh
|
|
|
+Tells the compiler to generate a script that can be used to assemble
|
|
|
+and link on the host system, not on the target system. Use this when
|
|
|
+cross-compiling.
|
|
|
+.TP
|
|
|
+.BI \-sr
|
|
|
+Skip register allocation stage in compiler (use with -ar)
|
|
|
+.TP
|
|
|
+.BI \-st
|
|
|
+Tells the compiler to generate a script that can be used to assemble
|
|
|
+and link on the target system, not on the host system. Use this when
|
|
|
+cross-compiling.
|
|
|
+.TP
|
|
|
.BI \-T xxx
|
|
|
Specifies the target operating system.
|
|
|
.I xxx
|
|
|
can be one of the following:
|
|
|
.RS
|
|
|
.TP
|
|
|
+.I EMX
|
|
|
+OS/2 and DOS via the EMX extender.
|
|
|
+.TP
|
|
|
+.I FREEBSD
|
|
|
+FreeBSD
|
|
|
+.TP
|
|
|
.I GO32V2
|
|
|
DOS and version 2 of the DJ DELORIE extender.
|
|
|
.TP
|
|
|
.I LINUX
|
|
|
Linux.
|
|
|
.TP
|
|
|
+.I NETBSD
|
|
|
+Netbsd.
|
|
|
+.TP
|
|
|
+.I NETWARE
|
|
|
+Novell Netware module (clib)
|
|
|
+.TP
|
|
|
+.I NETLIBC
|
|
|
+Novell Netware module (libc)
|
|
|
+.TP
|
|
|
+.I OPENBSD
|
|
|
+OpenBSD
|
|
|
+.TP
|
|
|
.I OS2
|
|
|
-OS/2 using EMX
|
|
|
+OS/2 (native mode)
|
|
|
+.TP
|
|
|
+.I SunOS
|
|
|
+Solaris SunOS
|
|
|
+.TP
|
|
|
+.I WATCOM
|
|
|
+WatCOM dos extender
|
|
|
+.TP
|
|
|
+.I WDOSX
|
|
|
+WDosX Dos extender
|
|
|
.TP
|
|
|
.I WIN32
|
|
|
Windows 32 bit.
|
|
|
-.TP
|
|
|
-.I BeOS
|
|
|
-BeOS 80x86
|
|
|
.RE
|
|
|
.TP
|
|
|
.BI -u xxx
|
|
|
undefine the symbol
|
|
|
.I xxx
|
|
|
-\. This is the opposite of the
|
|
|
+if it is defined. This is the opposite of the
|
|
|
.B \-d
|
|
|
option.
|
|
|
.TP
|
|
|
-.BI \-u xxx
|
|
|
-Undefine symbol
|
|
|
-.I xxx
|
|
|
-\.
|
|
|
-.TP
|
|
|
.BI \-X x
|
|
|
Executable options. These tell the compiler what
|
|
|
kind of executable should be generated. the parameter
|
|
@@ -472,16 +547,60 @@ you start to port Free Pascal to another operating system.
|
|
|
.I D
|
|
|
Link with dynamic libraries (defines the FPC_LINK_DYNAMIC symbol)
|
|
|
.TP
|
|
|
+.I d
|
|
|
+Don't use the standard library path. Use this when cross-compiling, to avoid
|
|
|
+linking with the host OS libraries.
|
|
|
+.TP
|
|
|
+.I Pxxx
|
|
|
+Prepend the names of binutils (as, ld) with xxx. For use when cross-compiling.
|
|
|
+.TP
|
|
|
+.I rxxx
|
|
|
+Set the library search path to xxx.
|
|
|
+.TP
|
|
|
.I s
|
|
|
Strip the symbols from the executable.
|
|
|
.TP
|
|
|
.I S
|
|
|
-Link with static libraries (defines th FPC_LINK_STATIC symbol)
|
|
|
+Link with static libraries (defines the FPC_LINK_STATIC symbol)
|
|
|
+.TP
|
|
|
+.I t
|
|
|
+Link statically (passes -static to the linker)
|
|
|
+.TP
|
|
|
+.I X
|
|
|
+Link smart. Using this option sets the FPC_LINK_SMART symbol.
|
|
|
.RE
|
|
|
|
|
|
.PP
|
|
|
Options concerning the sources (language options)
|
|
|
-for more information on these options, see also Programmers Manual
|
|
|
+for more information on these options, see also in the Programmers Manual
|
|
|
+.TP
|
|
|
+.BI \-M mode
|
|
|
+Specify the language mode.
|
|
|
+.I mode
|
|
|
+can be one of the following:
|
|
|
+.RS
|
|
|
+.TP
|
|
|
+.I delphi
|
|
|
+Delphi-compatibility mode. This loads the objpas unit, and switches on ansistring mode (
|
|
|
+.B -Sh
|
|
|
+).
|
|
|
+.TP
|
|
|
+.I fpc
|
|
|
+Default mode.
|
|
|
+.TP
|
|
|
+.I gpc
|
|
|
+GNU pascal mode (does nothing at the moment)
|
|
|
+.TP
|
|
|
+.I macpas
|
|
|
+MAC pascal mode. This loads the macpas unit and switches on some Mac extensions
|
|
|
+(mainly macros)
|
|
|
+.TP
|
|
|
+.I objfpc
|
|
|
+Object Pascal mode. This loads the objpas unit.
|
|
|
+.TP
|
|
|
+.I tp
|
|
|
+Turbo Pascal mode.
|
|
|
+.RE
|
|
|
.TP
|
|
|
.BI \-R xxx
|
|
|
Specifies what assembler you use in your "asm" assembler code
|
|
@@ -504,6 +623,9 @@ file.
|
|
|
.BI \-S2
|
|
|
Switch on Delphi 2 extensions.
|
|
|
.TP
|
|
|
+.BI \-Sa
|
|
|
+Generate code for assertions.
|
|
|
+.TP
|
|
|
.BI \-Sc
|
|
|
Support C-style operators, i.e. *=, +=, /= and -=.
|
|
|
.TP
|
|
@@ -519,6 +641,22 @@ the compiler will stop after the first error.
|
|
|
.BI \-Sg
|
|
|
Support the label and goto commands.
|
|
|
.TP
|
|
|
+.BI \-Sh
|
|
|
+use ansistrings by default.
|
|
|
+.TP
|
|
|
+.BI \-SIxxx
|
|
|
+Specify the kind of interfaces.
|
|
|
+.I xxx
|
|
|
+can be one of the following:
|
|
|
+.RS
|
|
|
+.TP
|
|
|
+.I COM
|
|
|
+use COM interfaces. (all interfaces descend from IUnknown)
|
|
|
+.TP
|
|
|
+.I CORBA
|
|
|
+use CORBA interfaces. (no inheritance is supposed)
|
|
|
+.RE
|
|
|
+.TP
|
|
|
.BI \-Si
|
|
|
Support C++ style INLINE.
|
|
|
.TP
|
|
@@ -545,6 +683,10 @@ Allow the "static" keyword in objects.
|
|
|
Do not check the unit name. Normally, the unit name
|
|
|
is the same as the filename. This option allows both to be different.
|
|
|
.TP
|
|
|
+.BI \-Ur
|
|
|
+Create a release unit. This sets a special flag in the unit, causing the
|
|
|
+compiler not to look for sources.
|
|
|
+.TP
|
|
|
.BI \-Us
|
|
|
Compile a system unit. This option causes the
|
|
|
compiler to define only some very basic types.
|