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
18       alphabetical 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
42              units and programs. The following keywods are rec‐
43              ognized:
44
45              dirprefix
46                     the directory below wchich all installs are
47                     done.  This  corresponds  to  the  --prefix
48                     argument to GNU configure It  is  used  for
49                     the  installation of programs and units. By
50                     default, this is /usr on linux, and /pp  on
51                     all other platforms.
52
53              dirbase
54                     The  directory  that  is  used  as the base
55                     directory for the  installation  of  units.
56                     Default  this  is  dirprefix  appended with
57                     /lib/fpc/FPC_VERSION for  linux  or  simply
58                     the dirprefix on other platforms.
59       Units    will    be   installed   in   the   subdirectory
60       units/$(OS_TARGET) of the dirbase entry.
61
62       libs   This section specifies what units should be merged
63              into  a  library,  and what external libraries are
64              needed. It can contain the following keywords:
65
66              libname
67                     the name of the library that should be cre‐
68                     ated.
69
70              libunits
71                     a comma-separated list of units that should
72                     be moved into one library.
73
74              needgcclib
75                     a boolean value that specifies whether  the
76                     gcc  library is needed. This will make sure
77                     that  the  path  to  the  GCC  library   is
78                     inserted in the library search path.
79
80              needotherlib
81                     a  boolean  value  that  tells the makefile
82                     that  other  library  directories  will  be
83                     needed.
84
85       packages
86              Which packages must be used. This section can con‐
87              tain the following keywords:
88
89              packages
90                     A comma-separated list of packages that are
91                     needed  to  compile the targets.  Valid for
92                     all platforms. In  order  to  differentiate
93                     between platforms, you can prepend the key‐
94                     word packages with the OS you are compiling
95                     for,  e.g.   linuxpackages  if you want the
96                     makefile to  use  the  listed  packages  on
97                     linux only.
98
99              fcl    This is a boolean value (0 or 1) that indi‐
100                     cates whether the FCL is used.
101
102              rtl    This is a boolean value (0 or 1) that indi‐
103                     cates whether the RTL should be recompiled.
104
105       postsettings
106              Anything  that is in this section will be inserted
107              as-is in the makefile  after  the  makefile  rules
108              that are generated by fpcmake, but before the gen‐
109              eral configuration rules.  In it, you  cannot  use
110              variables  that  are defined by fpcmake rules, but
111              you can define additional rules and  configuration
112              variables.
113
114       presettings
115              Anything  that is in this section will be inserted
116              as-is in the makefile before the  makefile  target
117              rules  that  are  generated by fpcmake. This means
118              that you cannot use any variables  that  are  nor‐
119              mally defined by
120
121       rules  In  this  section  you can insert dependency rules
122              and any other targets you wish  to  have.  Do  not
123              insert 'default rules' here.
124
125       sections
126              Here  you can specify which 'rule sections' should
127              be included in the Makefile.  The sections consist
128              of  a  series  of  boolean  keywords; each keyword
129              decies whether a particular section will be  writ‐
130              ten  to the makefile. By default, all sections are
131              written.
132
133              You can have the  following  boolean  keywords  in
134              this section.
135
136              none   If  this  is  set to true, then no sections
137                     are written.
138
139              units  If set to false , fpcmake omits  the  rules
140                     for compiling units.
141
142              exes   If  set  to false , fpcmake omits the rules
143                     for compiling executables.
144
145              loaders
146                     If set to false , fpcmake omits  the  rules
147                     for assembling assembler files.
148
149              examples
150                     If  set  to false , fpcmake omits the rules
151                     for compiling examples.
152
153              package
154                     If set to false , fpcmake omits  the  rules
155                     for making packages.
156
157              compile
158                     If set to false , fpcmake omits the generic
159                     rules for compiling pascal files.
160
161              depend If set to false , fpcmake omits the  depen‐
162                     dency rules.
163
164              install
165                     If  set  to false , fpcmake omits the rules
166                     for installing everything.
167
168              sourceinstall
169                     If set to false , fpcmake omits  the  rules
170                     for installing the sources.
171
172              zipinstall
173                     If  set  to false , fpcmake omits the rules
174                     for installing archives.
175
176              clean  If set to false , fpcmake omits  the  rules
177                     for cleaning the directories.
178
179              libs   If  set  to false , fpcmake omits the rules
180                     for making libraries.
181
182              command
183                     If set to false , fpcmake omits  the  rules
184                     for composing the command-line based on the
185                     various variables.
186
187              exts   If set to false , fpcmake omits  the  rules
188                     for making libraries.
189
190              dirs   If  set  to false , fpcmake omits the rules
191                     for running make in subdirectories..
192
193              tools  If set to false , fpcmake omits  the  rules
194                     for running some tools as the erchiver, UPX
195                     and zip.
196
197              info   If set to false , fpcmake omits  the  rules
198                     for generating information.
199
200       targets
201              In  this  section  you can define the various tar‐
202              gets. The following keywords can be used there:
203
204              dirs   A space separated list of directories where
205                     make should also be run.
206
207              examples
208                     A  space separated list of example programs
209                     that need to be compiled when the user asks
210                     to  compile the examples. Do not specify an
211                     extension, the extension will be appended.
212
213              loaders
214                     A space separated list of names  of  assem‐
215                     bler  files  that must be assembled.  Don't
216                     specify the extension, the  extension  will
217                     be appended.
218
219              programs
220                     A  space  separated  list  of program names
221                     that need to be compiled. Do not specify an
222                     extension, the extension will be appended.
223
224              rst    a  list  of rst files that needs to be con‐
225                     verted to .po files for use with  GNU  get‐
226                     text and internationalization routines.
227
228              units  A  space  separated list of unit names that
229                     need to be  compiled.  Do  not  specify  an
230                     extension,  just the name of the unit as it
231                     would appear un a  uses  clause  is  suffi‐
232                     cient.
233
234       tools  In  this  section  you can specify which tools are
235              needed. Definitions to  use  each  of  the  listed
236              tools  will be inserted in the makefile, depending
237              on the setting in this section.
238
239              Each keyword is a boolean keyword; you can  switch
240              the use of a tool on or off with it.
241
242              The following keywords are recognised:
243
244              toolppdep
245                     Use  ppdep  the  dependency  tool.  True by
246                     default.
247
248              toolppumove
249                     Use ppumove the  Free  Pascal  unit  mover.
250                     True by default.
251
252              toolppufiles
253                     Use the ppufile tool to determine dependen‐
254                     cies of unit files.  True by default.
255
256              toolsed
257                     Use sed the stream line editor.   False  by
258                     default.
259
260              tooldata2inc
261                     use  the  data2inc  tool  to create include
262                     files from data files.  False by default.
263
264              tooldiff
265                     Use the GNU diff tool.  False by default.
266
267              toolcmp
268                     Use the cmp file  comparer  tool  False  by
269                     default.
270
271              toolupx
272                     Use  the  upx  executable  packer  True  by
273                     default.
274
275              tooldate
276                     use the date date displaying tool.  True by
277                     default.
278
279              toolzip
280                     Use  the zip file archiver. This is used by
281                     the zip targets.  True by default.
282
283       zip    This section can be used to make  zip  files  from
284              the  compiled  units  and programs. By default all
285              compiled units are zipped. The zip  behaviour  can
286              be influencd with the presettings and postsettings
287              sections.
288
289              The following keywords can be used in this unit:
290
291              zipname
292                     this file is the name of the zip file  that
293                     will be produced.
294
295              ziptarget
296                     is  the name of a makefile target that will
297                     be executed before  the  zip  is  made.  By
298                     default this is the install target.
299

SEE ALSO

301              fpcmake(1) ppc386(1) make(1)
302
303
304
305FreePascal                        12 Dec 1999                       fpcmake(5)
Impressum