SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG
DONATE


YUM REPOSITORY

 
 

MAN page from OpenSuSE fpc-3.0.4-lp152.5.59.x86_64.rpm

fpc.cfg

Section: FPC configuration file (5)
Updated: 22 february 2002
Index 

NAME

fpc.cfg - Free Pascal Compiler (FPC) configuration file, name derived from Free Pascal Compiler.

 

DESCRIPTION

This is the main configuration file of theFree Pascal Compiler (FPC)

All commandline options of the compiler (described infpc(1)) can be specified in fpc.cfg

When the configuration file is found, it is read, and the linesit contains are treated like you typed them on the command line seefpc(1)with some extra condtional possibilities.

 

SYNTAX

You can specify comments in the configuration file with the # sign.Everything from the # on will be ignored, unless it is one of the keywords (see below).

The compiler looks for the fpc.cfg file in the following places :

- Under Linux and unix
- The current directory.
- Home directory, looks for .fpc.cfg
- The directory specified in the environment
variable PPC_CONFIG_PATH, and if it's not
set under compilerdir/../etc.
- If it is not yet found: in /etc.

- Under all other OSes:
- The current directory.
- The directory specified in the environment
variable PPC_CONFIG_PATH.
- The directory where the compiler binary is.

When the compiler has finished reading the configuration file, it continuesto treat the command line options.

One of the command-line options allows you to specify a second configurationfile: Specifying @foo on the command line will use file foo instead of fpc.cfgand read further options from there. When the compiler has finished readingthis file, it continues to process the command line.

The configuration file allows some kind of preprocessing. It understands thefollowing directives, which you should place on the first column of a line :

#IFDEF
#IFNDEF
#ELSE
#ENDIF
#DEFINE
#UNDEF
#WRITE
#INCLUDE
#SECTION
They work the same way as their $... directive counterparts in Pascal:

#IFDEF
Syntax
#IFDEF name

Lines following #IFDEF are skipped read if the keyword "name"following it is not defined.

They are read until the keywords #ELSE or #ENDIF areencountered, after which normal processing is resumed.

Example
#IFDEF VER0_99_12
-Fu/usr/lib/fpc/0.99.12/rtl
#ENDIF

In the above example, /usr/lib/fpc/0.99.12/rtl will be added tothe path if you're compiling with version 0.99.12 of the compiler.

#IFNDEF
Syntax
#IFNDEF name

Lines following #IFDEF are skipped read if the keyword "name"following it is defined.

They are read until the keywords #ELSE or #ENDIF areencountered, after which normal processing is resumed.

Example
#IFNDEF VER0_99_12
-Fu/usr/lib/fpc/0.99.13/rtl
#ENDIF

In the above example, /usr/lib/fpc/0.99.13/rtl will be added tothe path if you're NOT compiling with version 0.99.12 of the compiler.

#ELSE
Syntax
#ELSE

#ELSE can be specified after a #IFDEF or #IFNDEFdirective as an alternative.Lines following #ELSE are skipped read if the preceding #IFDEF#IFNDEF was accepted.

They are skipped until the keyword #ENDIF isencountered, after which normal processing is resumed.

Example

#IFDEF VER0_99_12
-Fu/usr/lib/fpc/0.99.12/rtl
#ELSE
-Fu/usr/lib/fpc/0.99.13/rtl
#ENDIF

In the above example, /usr/lib/fpc/0.99.12/rtl will be added tothe path if you're compiling with version 0.99.12 of the compiler,otherwise /usr/lib/fpc/0.99.13/rtl will be added to the path.

#ENDIF
Syntax
#ENDIF

#ENDIF marks the end of a block that started with #IF(N)DEF,possibly with an #ELSE between it.

#DEFINE
Syntax
#DEFINE name

#DEFINE defines a new keyword. This has the same effect as a"-dname" command-line option.

#UNDEF
Syntax
#UNDEF name

#UNDEF un-defines a keyword if it existed.This has the same effect as a "-uname" command-line option.

#WRITE
Syntax
#WRITE Message Text

#WRITE writes "Message Text" to the screen.This can be useful to display warnings if certain options are set.

Example
#IFDEF DEBUG
#WRITE Setting debugging ON...
-g
#ENDIF

if "DEBUG is defined, this will produce a line

Setting debugging ON...

and will then switch on debugging information in the compiler.

#INCLUDE
Syntax
#INCLUDE filename

#INCLUDE instructs the compiler to read the contents of"filename" before continuing to process options in the current file.

This can be useful if you want to have a particular configuration filefor a project (or, under Unix like systems (such as Linux), in your home directory), but still want to have the global options that are set in a global configuration file.

Example
#IFDEF LINUX

  #INCLUDE /etc/fpc.cfg
#ELSE

  #IFDEF GO32V2

    #INCLUDE c:\pp\bin\fpc.cfg

  #ENDIF
#ENDIF

This will include /etc/fpc.cfg if you're on a unix like machine (like linux),and will include c:\pp\bin\fpc.cfg on a dos machine.

#SECTION
Syntax
#SECTION name

The #SECTION directive acts as a #IFDEF directive, onlyit doesn't require an #ENDIF directive. the special name COMMONalways exists, i.e. lines following #SECTION COMMON are always read.

 

Example

A standard block often used in (the Linux version of) fpc.cfg is

-vwhin
#IFDEF VER0_99_12

 #IFDEF FPC_LINK_STATIC

  -Fu/usr/lib/fpc/0.99.12/rtl/static

  -Fu/usr/lib/fpc/0.99.12/units/static

 #ENDIF

 #IFDEF FPC_LINK_DYNAMIC

  -Fu/usr/lib/fpc/0.99.12/rtl/shared

  -Fu/usr/lib/fpc/0.99.12/units/shared

 #ENDIF

 -Fu/usr/lib/fpc/0.99.12/rtl

 -Fu/usr/lib/fpc/0.99.12/units
#ENDIF

The block is copied into the fpc.cfg file for each version you use (normallythe latest release and the lastest developperssnapshot.

 

SEE ALSO

fpc(1)


 

Index

NAME
DESCRIPTION
SYNTAX
Example
SEE ALSO

This document was created byman2html,using the manual pages.