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 on linux, and on all other
51                     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.  can  define  additional
110              rules and configuration variables.
111
112       presettings
113              Anything  that is in this section will be inserted
114              as-is in the makefile before the  makefile  target
115              rules  that  are  generated by fpcmake. This means
116              that you cannot use any variables  that  are  nor‐
117              mally defined by
118
119       rules  In  this  section  you can insert dependency rules
120              and any other targets you wish  to  have.  Do  not
121              insert 'default rules' here.
122
123       sections
124              Here  you can specify which 'rule sections' should
125              be included in the Makefile.  The sections consist
126              of  a  series  of  boolean  keywords; each keyword
127              decies whether a particular section will be  writ‐
128              ten  to the makefile. By default, all sections are
129              written.
130
131              You can have the  following  boolean  keywords  in
132              this section.
133
134              none   If  this  is  set to true, then no sections
135                     are written.
136
137              units  If set to false , fpcmake omits  the  rules
138                     for compiling units.
139
140              exes   If  set  to false , fpcmake omits the rules
141                     for compiling executables.
142
143              loaders
144                     If set to false , fpcmake omits  the  rules
145                     for assembling assembler files.
146
147              examples
148                     If  set  to false , fpcmake omits the rules
149                     for compiling examples.
150
151              package
152                     If set to false , fpcmake omits  the  rules
153                     for making packages.
154
155              compile
156                     If set to false , fpcmake omits the generic
157                     rules for compiling pascal files.
158
159              depend If set to false , fpcmake omits the  depen‐
160                     dency rules.
161
162              install
163                     If  set  to false , fpcmake omits the rules
164                     for installing everything.
165
166              sourceinstall
167                     If set to false , fpcmake omits  the  rules
168                     for installing the sources.
169
170              zipinstall
171                     If  set  to false , fpcmake omits the rules
172                     for installing archives.
173
174              clean  If set to false , fpcmake omits  the  rules
175                     for cleaning the directories.
176
177              libs   If  set  to false , fpcmake omits the rules
178                     for making libraries.
179
180              command
181                     If set to false , fpcmake omits  the  rules
182                     for composing the command-line based on the
183                     various variables.
184
185              exts   If set to false , fpcmake omits  the  rules
186                     for making libraries.
187
188              dirs   If  set  to false , fpcmake omits the rules
189                     for running make in subdirectories..
190
191              tools  If set to false , fpcmake omits  the  rules
192                     for running some tools as the erchiver, UPX
193                     and zip.
194
195              info   If set to false , fpcmake omits  the  rules
196                     for generating information.
197
198       targets
199              In  this  section  you can define the various tar‐
200              gets. The following keywords can be used there:
201
202              dirs   A space separated list of directories where
203                     make should also be run.
204
205              examples
206                     A  space separated list of example programs
207                     that need to be compiled when the user asks
208                     to  compile the examples. Do not specify an
209                     extension, the extension will be appended.
210
211              loaders
212                     A space separated list of names  of  assem‐
213                     bler  files  that must be assembled.  Don't
214                     specify the extension, the  extension  will
215                     be appended.
216
217              programs
218                     A  space  separated  list  of program names
219                     that need to be compiled. Do not specify an
220                     extension, the extension will be appended.
221
222              rst    a  list  of rst files that needs to be con‐
223                     verted to .po files for use with  GNU  get‐
224                     text and internationalization routines.
225
226              units  A  space  separated list of unit names that
227                     need to be  compiled.  Do  not  specify  an
228                     extension,  just the name of the unit as it
229                     would appear un a  uses  clause  is  suffi‐
230                     cient.
231
232       tools  In  this  section  you can specify which tools are
233              needed. Definitions to  use  each  of  the  listed
234              tools  will be inserted in the makefile, depending
235              on the setting in this section.
236
237              Each keyword is a boolean keyword; you can  switch
238              the use of a tool on or off with it.
239
240              The following keywords are recognised:
241
242              toolppdep
243                     Use  ppdep  the  dependency  tool.  True by
244                     default.
245
246              toolppumove
247                     Use ppumove the  Free  Pascal  unit  mover.
248                     True by default.
249
250              toolppufiles
251                     Use the ppufile tool to determine dependen‐
252                     cies of unit files.  True by default.
253
254              toolsed
255                     Use sed the stream line editor.   False  by
256                     default.
257
258              tooldata2inc
259                     use  the  data2inc  tool  to create include
260                     files from data files.  False by default.
261
262              tooldiff
263                     Use the GNU diff tool.  False by default.
264
265              toolcmp
266                     Use the cmp file  comparer  tool  False  by
267                     default.
268
269              toolupx
270                     Use  the  upx  executable  packer  True  by
271                     default.
272
273              tooldate
274                     use the date date displaying tool.  True by
275                     default.
276
277              toolzip
278                     Use  the zip file archiver. This is used by
279                     the zip targets.  True by default.
280
281       zip    This section can be used to make  zip  files  from
282              the  compiled  units  and programs. By default all
283              compiled units are zipped. The zip  behaviour  can
284              be influencd with the presettings and postsettings
285              sections.
286
287              The following keywords can be used in this unit:
288
289              zipname
290                     this file is the name of the zip file  that
291                     will be produced.
292
293              ziptarget
294                     is  the name of a makefile target that will
295                     be executed before  the  zip  is  made.  By
296                     default this is the install target.
297

SEE ALSO

299              fpcmake(1) ppc386(1) make(1)
300
301
302
303FreePascal                        12 Dec 1999                       fpcmake(5)
Impressum