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 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
299 fpcmake(1) ppc386(1) make(1)
300
301
302
303FreePascal 12 Dec 1999 fpcmake(5)