5.1.5 Options concerning the sources (language options)

for more information on these options, see also Programmers guide

-Mmode
set language mode to mode, which can be one of the following:
delphi
tries to be Delphi compatible. This is more strict than the objfpc mode, since some Free Pascal extensions are switched o.
fpc
free pascal dialect (default)
gpc
tries to be gpc compatible.
macpas
tries to be compatible to the macintosh pascal dialects.
objfpc
switch some Delphi 2 extensions on. This is dierent from Delphi mode. because some Free Pascal constructs are still available.
tp
tries to be TP/BP 7.0 compatible. This means, no function overloading etc.
-Rxxx
Species what kind of assembler you use in your asm assembler code blocks. Here xxx is one of the following:
att 
asm blocks contain AT&T-style assembler. This is the default style.
intel
asm blocks contain Intel-style assembler.
direct
asm blocks should be copied as-is in the assembler, only replacing certain variables. le.
-S2
Switch on Delphi 2 extensions (objfpc mode). Deprecated, use -Mobjfpc instead.
-Sa
Include assert statements in compiled code. Omitting this option will cause assert statements to be ignored.
-Sc
Support C-style operators, i.e. *=, +=, /= and -=.
-Sd
Tells the compiler to be Delphi compatible. Deprecated, use -Mdelphi instead.
-SeN
The compiler stops after the N-th error. Normally, the compiler tries to continue compiling after an error, until 50 errors are reached, or a fatal error is reached, and then it stops. With this switch, the compiler will stop after the N-th error (if N is omitted, a default of 1 is assumed). Instead of a number, one of n, h or w can also be specied, in that case the compiler will consider notes, hints or warnings as errors and stop when one is encountered.
-Sg
Support the label and goto commands. By default these are not supported. You must also specify this option if you use labels in assembler statements. (if you use the AT&T style assember)
-Sh
Use ansistrings by default for strings. If this keyword is specied, the compiler will interpret the string keyword as a ansistring. Otherwise it is supposed to be a short strings (TP style).
-Si
Support C++ style INLINE.
-SIXXX
set interfaces style to XXX.
-Sm
Support C-style macros.
-So
Try to be Borland TP 7.0 compatible. Deprecated, use -Mtp instead.
-Sp
Try to be gpc (gnu pascal compiler) compatible. Deprecated, use -Mgpc instead.
-Ss
The name of constructors must be init, and the name of destructors should be done.
-St
Allow the static keyword in objects.
-Un
Do not check the unit name. Normally, the unit name is the same as the lename. This option allows both to be dierent.
-Us
Compile a system unit. This option causes the compiler to dene only some very basic types.