fpc.cfg man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

fpc.cfg(5)		    FPC configuration file		    fpc.cfg(5)

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

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

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

       When the configuration file is found, it is read, and the lines it con‐
       tains are treated like you typed them on the command  line  see	fpc(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  key‐
       words (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 con‐
       tinues to treat the command line options.

       One of the command-line options allows you to specify a second configu‐
       ration  file:  Specifying  @foo	on  the command line will use file foo
       instead of fpc.cfg and read further options from there. When  the  com‐
       piler  has finished reading this file, it continues to process the com‐
       mand line.

       The configuration file allows some kind	of  preprocessing.  It	under‐
       stands  the  following  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 are
		     encountered, 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  to
	      the  path	 if  you're compiling with version 0.99.12 of the com‐
	      piler.

       #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 are
		     encountered, 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  to
	      the  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  #IFNDEF	direc‐
		     tive  as  an  alternative.	  Lines	 following  #ELSE  are
		     skipped  read  if	the  preceding	#IFDEF	 #IFNDEF   was
		     accepted.

		     They are skipped until the keyword #ENDIF is encountered,
		     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  to
	      the  path	 if  you're compiling with version 0.99.12 of the com‐
	      piler, 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 con‐
		     figuration file for a project (or, under Unix  like  sys‐
		     tems (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, only
		     it doesn't require an #ENDIF directive. the special  name
		     COMMON  always exists, i.e. lines following #SECTION COM‐
		     MON 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
       (normally the latest release  and the lastest developpers snapshot.

SEE ALSO
       fpc(1)

FPC			       22 february 2002			    fpc.cfg(5)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net