Provided by: fp-utils-3.0.4_3.0.4+dfsg-18ubuntu2_amd64 bug

NAME

       Makefile.fpc - Configuration file for fpcmake.

SYNOPSIS

       Makefile.fpc  is  a  configuration file for the fpcmake command. Starting from this file a
       Makefile is created to compile Free Pascal units and programs.

DESCRIPTION

       Makefile.fpc is a plain ASCII file that contains a number of sections as in a Windows  ini
       file. The following sections are recognized (in alphabetical order):

       clean  Specifies  rules  for  cleaning the directory of units and programs.  The following
              entries are recognized:

              units  names of all units that should  be  removed  when  cleaning.  Don't  specify
                     extensions, the makefile will append these by itself.

              files  names of files that should be removed. Specify full filenames.

       defaults
              The  defaults  section  contains  some default settings. The following keywords are
              recognized:

       dirs

       info

       install
              Contains instructions for installation of your units and  programs.  The  following
              keywods are recognized:

              dirprefix
                     the  directory  below  wchich all installs are done. This corresponds to the
                     --prefix argument to GNU configure  It  is  used  for  the  installation  of
                     programs  and units. By default, this is /usr on linux, and /pp on all other
                     platforms.

              dirbase
                     The directory that is used as the base directory  for  the  installation  of
                     units.  Default  this  is  dirprefix  appended with /lib/fpc/FPC_VERSION for
                     linux or simply the dirprefix on other platforms.
       Units will be installed in the subdirectory units/$(OS_TARGET) of the dirbase entry.

       libs   This section specifies what units  should  be  merged  into  a  library,  and  what
              external libraries are needed. It can contain the following keywords:

              libname
                     the name of the library that should be created.

              libunits
                     a comma-separated list of units that should be moved into one library.

              needgcclib
                     a  boolean value that specifies whether the gcc library is needed. This will
                     make sure that the path to the GCC library is inserted in the library search
                     path.

              needotherlib
                     a  boolean value that tells the makefile that other library directories will
                     be needed.

       packages
              Which packages must be used. This section can contain the following keywords:

              packages
                     A comma-separated list of packages that are needed to compile  the  targets.
                     Valid  for  all  platforms. In order to differentiate between platforms, you
                     can prepend the keyword packages with the OS you  are  compiling  for,  e.g.
                     linuxpackages  if  you want the makefile to use the listed packages on linux
                     only.

              fcl    This is a boolean value (0 or 1) that indicates whether the FCL is used.

              rtl    This is a boolean value (0 or 1) that indicates whether the  RTL  should  be
                     recompiled.

       postsettings
              Anything  that  is in this section will be inserted as-is in the makefile after the
              makefile rules that are generated by fpcmake, but before the general  configuration
              rules.   In it, you cannot use variables that are defined by fpcmake rules, but you
              can define additional rules and configuration variables.

       presettings
              Anything that is in this section will be inserted as-is in the makefile before  the
              makefile target rules that are generated by fpcmake. This means that you cannot use
              any variables that are normally defined by

       rules  In this section you can insert dependency rules and any other targets you  wish  to
              have. Do not insert 'default rules' here.

       sections
              Here you can specify which 'rule sections' should be included in the Makefile.  The
              sections consist of a series of boolean keywords; each  keyword  decies  whether  a
              particular  section  will  be written to the makefile. By default, all sections are
              written.

              You can have the following boolean keywords in this section.

              none   If this is set to true, then no sections are written.

              units  If set to false , fpcmake omits the rules for compiling units.

              exes   If set to false , fpcmake omits the rules for compiling executables.

              loaders
                     If set to false , fpcmake omits the rules for assembling assembler files.

              examples
                     If set to false , fpcmake omits the rules for compiling examples.

              package
                     If set to false , fpcmake omits the rules for making packages.

              compile
                     If set to false , fpcmake omits  the  generic  rules  for  compiling  pascal
                     files.

              depend If set to false , fpcmake omits the dependency rules.

              install
                     If set to false , fpcmake omits the rules for installing everything.

              sourceinstall
                     If set to false , fpcmake omits the rules for installing the sources.

              zipinstall
                     If set to false , fpcmake omits the rules for installing archives.

              clean  If set to false , fpcmake omits the rules for cleaning the directories.

              libs   If set to false , fpcmake omits the rules for making libraries.

              command
                     If  set  to  false  , fpcmake omits the rules for composing the command-line
                     based on the various variables.

              exts   If set to false , fpcmake omits the rules for making libraries.

              dirs   If  set  to  false  ,  fpcmake  omits  the  rules  for   running   make   in
                     subdirectories..

              tools  If  set  to  false  ,  fpcmake omits the rules for running some tools as the
                     erchiver, UPX and zip.

              info   If set to false , fpcmake omits the rules for generating information.

       targets
              In this section you can define the various targets. The following keywords  can  be
              used there:

              dirs   A space separated list of directories where make should also be run.

              examples
                     A space separated list of example programs that need to be compiled when the
                     user asks to  compile  the  examples.  Do  not  specify  an  extension,  the
                     extension will be appended.

              loaders
                     A  space  separated list of names of assembler files that must be assembled.
                     Don't specify the extension, the extension will be appended.

              programs
                     A space separated list of program names that need to  be  compiled.  Do  not
                     specify an extension, the extension will be appended.

              rst    a list of rst files that needs to be converted to .po files for use with GNU
                     gettext and internationalization routines.

              units  A space separated list of unit names  that  need  to  be  compiled.  Do  not
                     specify an extension, just the name of the unit as it would appear un a uses
                     clause is sufficient.

       tools  In this section you can specify which tools are needed. Definitions to use each  of
              the listed tools will be inserted in the makefile, depending on the setting in this
              section.

              Each keyword is a boolean keyword; you can switch the use of a tool on or off  with
              it.

              The following keywords are recognised:

              toolppdep
                     Use ppdep the dependency tool.  True by default.

              toolppumove
                     Use ppumove the Free Pascal unit mover.  True by default.

              toolppufiles
                     Use  the  ppufile  tool  to  determine  dependencies of unit files.  True by
                     default.

              toolsed
                     Use sed the stream line editor.  False by default.

              tooldata2inc
                     use the data2inc tool to create include files from  data  files.   False  by
                     default.

              tooldiff
                     Use the GNU diff tool.  False by default.

              toolcmp
                     Use the cmp file comparer tool False by default.

              toolupx
                     Use the upx executable packer True by default.

              tooldate
                     use the date date displaying tool.  True by default.

              toolzip
                     Use  the  zip  file  archiver.  This  is  used  by the zip targets.  True by
                     default.

       zip    This section can be used to make zip files from the compiled units and programs. By
              default  all compiled units are zipped. The zip behaviour can be influencd with the
              presettings and postsettings sections.

              The following keywords can be used in this unit:

              zipname
                     this file is the name of the zip file that will be produced.

              ziptarget
                     is the name of a makefile target that will be executed  before  the  zip  is
                     made. By default this is the install target.

SEE ALSO

              fpcmake(1) ppc386(1) make(1)