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 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
271 fpcmake(1) ppc386(1) make(1)
272
273
274
275FreePascal 12 Dec 1999 fpcmake(5)