1fpcmake(5) Free Pascal Makefile.fpc format fpcmake(5)
2
3
4
6 Makefile.fpc - Configuration file for fpcmake.
7
8
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
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
301 fpcmake(1) ppc386(1) make(1)
302
303
304
305FreePascal 12 Dec 1999 fpcmake(5)