1fpcmake(5)              Free Pascal Makefile.fpc format             fpcmake(5)
2
3
4

NAME

6       Makefile.fpc - Configuration file for fpcmake.
7
8

SYNOPSIS

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

DESCRIPTION

16       Makefile.fpc  is  a plain ASCII file that contains a number of sections
17       as in a Windows ini file. The following sections are recognized (in al‐
18       phabetical order):
19
20       clean  Specifies  rules  for  cleaning  the directory of units and pro‐
21              grams.  The following entries are recognized:
22
23              units  names of all units that should be removed when  cleaning.
24                     Don't  specify extensions, the makefile will append these
25                     by itself.
26
27              files  names of files that should be removed. Specify full file‐
28                     names.
29
30       defaults
31              The defaults section contains some default settings. The follow‐
32              ing keywords are recognized:
33
34
35
36       dirs
37
38       info
39
40       install
41              Contains instructions for installation of your  units  and  pro‐
42              grams. The following keywods are recognized:
43
44              dirprefix
45                     the  directory  below  wchich all installs are done. This
46                     corresponds to the --prefix argument to GNU configure  It
47                     is  used  for  the installation of programs and units. By
48                     default, this is /usr on linux,  and  /pp  on  all  other
49                     platforms.
50
51              dirbase
52                     The  directory that is used as the base directory for the
53                     installation of units. Default this is dirprefix appended
54                     with /lib/fpc/FPC_VERSION for linux or simply the dirpre‐
55                     fix on other platforms.
56       Units will be installed in the subdirectory units/$(OS_TARGET)  of  the
57       dirbase entry.
58
59       libs   This  section  specifies  what units should be merged into a li‐
60              brary, and what external libraries are needed.  It  can  contain
61              the following keywords:
62
63              libname
64                     the name of the library that should be created.
65
66              libunits
67                     a comma-separated list of units that should be moved into
68                     one library.
69
70              needgcclib
71                     a boolean value that specifies whether the gcc library is
72                     needed.  This will make sure that the path to the GCC li‐
73                     brary is inserted in the library search path.
74
75              needotherlib
76                     a boolean value that tells the makefile  that  other  li‐
77                     brary directories will be needed.
78
79       packages
80              Which  packages  must be used. This section can contain the fol‐
81              lowing keywords:
82
83              packages
84                     A comma-separated list of packages  that  are  needed  to
85                     compile  the  targets.  Valid for all platforms. In order
86                     to differentiate between platforms, you can  prepend  the
87                     keyword  packages with the OS you are compiling for, e.g.
88                     linuxpackages if you want the makefile to use the  listed
89                     packages on linux only.
90
91              fcl    This  is  a boolean value (0 or 1) that indicates whether
92                     the FCL is used.
93
94              rtl    This is a boolean value (0 or 1) that  indicates  whether
95                     the RTL should be recompiled.
96
97       postsettings
98              Anything  that  is in this section will be inserted as-is in the
99              makefile after the makefile rules that are generated by fpcmake,
100              but  before  the general configuration rules.  In it, you cannot
101              use variables that are defined by fpcmake rules, but you can de‐
102              fine additional rules and configuration variables.
103
104       presettings
105              Anything  that  is in this section will be inserted as-is in the
106              makefile before the makefile target rules that are generated  by
107              fpcmake.  This  means that you cannot use any variables that are
108              normally defined by
109
110       rules  In this section you can insert dependency rules  and  any  other
111              targets you wish to have. Do not insert 'default rules' here.
112
113       sections
114              Here you can specify which 'rule sections' should be included in
115              the Makefile.  The sections consist of a series of boolean  key‐
116              words; each keyword decides whether a particular section will be
117              written to the makefile. By default, all sections are written.
118
119              You can have the following boolean keywords in this section.
120
121              none   If this is set to true, then no sections are written.
122
123              units  If set to false , fpcmake omits the rules  for  compiling
124                     units.
125
126              exes   If  set  to false , fpcmake omits the rules for compiling
127                     executables.
128
129              loaders
130                     If set to false , fpcmake omits the rules for  assembling
131                     assembler files.
132
133              examples
134                     If  set  to false , fpcmake omits the rules for compiling
135                     examples.
136
137              package
138                     If set to false , fpcmake  omits  the  rules  for  making
139                     packages.
140
141              compile
142                     If  set  to  false  , fpcmake omits the generic rules for
143                     compiling pascal files.
144
145              depend If set to false , fpcmake omits the dependency rules.
146
147              install
148                     If set to false , fpcmake omits the rules for  installing
149                     everything.
150
151              sourceinstall
152                     If  set to false , fpcmake omits the rules for installing
153                     the sources.
154
155              zipinstall
156                     If set to false , fpcmake omits the rules for  installing
157                     archives.
158
159              clean  If  set  to  false , fpcmake omits the rules for cleaning
160                     the directories.
161
162              libs   If set to false , fpcmake omits the rules for making  li‐
163                     braries.
164
165              command
166                     If  set  to false , fpcmake omits the rules for composing
167                     the command-line based on the various variables.
168
169              exts   If set to false , fpcmake omits the rules for making  li‐
170                     braries.
171
172              dirs   If  set  to  false  , fpcmake omits the rules for running
173                     make in subdirectories..
174
175              tools  If set to false , fpcmake omits  the  rules  for  running
176                     some tools as the erchiver, UPX and zip.
177
178              info   If  set to false , fpcmake omits the rules for generating
179                     information.
180
181       targets
182              In this section you can define the various targets. The  follow‐
183              ing keywords can be used there:
184
185              dirs   A  space  separated list of directories where make should
186                     also be run.
187
188              examples
189                     A space separated list of example programs that  need  to
190                     be  compiled  when the user asks to compile the examples.
191                     Do not specify an extension, the extension  will  be  ap‐
192                     pended.
193
194              loaders
195                     A  space  separated list of names of assembler files that
196                     must be assembled.  Don't specify the extension, the  ex‐
197                     tension will be appended.
198
199              programs
200                     A  space  separated list of program names that need to be
201                     compiled. Do not specify an extension, the extension will
202                     be appended.
203
204              rst    a  list  of  rst  files that needs to be converted to .po
205                     files for use with GNU gettext  and  internationalization
206                     routines.
207
208              units  A space separated list of unit names that need to be com‐
209                     piled. Do not specify an extension, just the name of  the
210                     unit as it would appear un a uses clause is sufficient.
211
212       tools  In  this section you can specify which tools are needed. Defini‐
213              tions to use each of the listed tools will be  inserted  in  the
214              makefile, depending on the setting in this section.
215
216              Each  keyword  is a boolean keyword; you can switch the use of a
217              tool on or off with it.
218
219              The following keywords are recognised:
220
221              toolppdep
222                     Use ppdep the dependency tool.  True by default.
223
224              toolppumove
225                     Use ppumove the Free Pascal unit mover.  True by default.
226
227              toolppufiles
228                     Use the ppufile tool to determine  dependencies  of  unit
229                     files.  True by default.
230
231              toolsed
232                     Use sed the stream line editor.  False by default.
233
234              tooldata2inc
235                     use  the  data2inc tool to create include files from data
236                     files.  False by default.
237
238              tooldiff
239                     Use the GNU diff tool.  False by default.
240
241              toolcmp
242                     Use the cmp file comparer tool False by default.
243
244              toolupx
245                     Use the upx executable packer True by default.
246
247              tooldate
248                     use the date date displaying tool.  True by default.
249
250              toolzip
251                     Use the zip file archiver. This is used by the  zip  tar‐
252                     gets.  True by default.
253
254       zip    This  section  can  be  used to make zip files from the compiled
255              units and programs. By default all compiled  units  are  zipped.
256              The  zip  behaviour  can  be  influencd with the presettings and
257              postsettings sections.
258
259              The following keywords can be used in this unit:
260
261              zipname
262                     this file is the name of the zip file that will  be  pro‐
263                     duced.
264
265              ziptarget
266                     is  the  name  of a makefile target that will be executed
267                     before the zip is made. By default this  is  the  install
268                     target.
269

SEE ALSO

271              fpcmake(1) ppc386(1) make(1)
272
273
274
275FreePascal                        12 Dec 1999                       fpcmake(5)
Impressum