Man Linux: Main Page and Category List

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)