1#
2#   Makefile.fpc for Free Pascal Linux RTL
3#
4
5[package]
6main=rtl
7
8[target]
9loaders=$(LOADERS)
10units=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) \
11      uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil \
12      heaptrc lineinfo lnfodwrf \
13      termio unix linux initc cmem $(CPU_UNITS) \
14      linuxvcs \
15      sysutils typinfo math   \
16      charset cpall character unixcp getopts \
17      errors dl dynlibs \
18      types sysconst fpwidestring \
19      cthreads classes fgl rtlconsts dos cwstring fpcylix \
20      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
21
22implicitunits=exeinfo \
23      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
24      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
25      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
26      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
27      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u \
28      unicodedata unicodenumtable
29
30rsts=math typinfo sysconst rtlconsts
31
32[require]
33nortl=y
34
35[clean]
36units=syslinux linux
37
38[install]
39fpcpackage=y
40
41[default]
42fpcdir=../..
43target=linux
44
45[compiler]
46includedir=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
47sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
48targetdir=.
49
50[shared]
51libunits=$(SYSTEMUNIT) objpas strings dos \
52      unix baseunix unixtype unixutil \
53      sysutils typinfo math \
54      $(CPU_UNITS) getopts \
55      errors  \
56      classes fgl sysconst rtlconsts types
57
58[prerules]
59RTL=..
60INC=$(RTL)/inc
61COMMON=$(RTL)/common
62PROCINC=$(RTL)/$(ARCH)
63UNIXINC=$(RTL)/unix
64
65UNITPREFIX=rtl
66
67CPU_UNITS=
68SYSINIT_UNITS=
69
70LOADERS=prt0 dllprt0 cprt0 gprt0
71
72ifeq ($(ARCH),i386)
73override LOADERS=
74CPU_UNITS=x86 ports cpu mmx
75SYSINIT_UNITS=si_prc si_c21g si_c21 si_c si_dll si_uc
76endif
77
78ifeq ($(ARCH),x86_64)
79CPU_UNITS=x86 ports cpu
80SYSINIT_UNITS=si_prc si_c si_g si_dll
81override LOADERS+=abitag
82endif
83
84ifeq ($(ARCH),powerpc64)
85SYSINIT_UNITS=si_prc si_c si_g si_dll
86endif
87
88ifeq ($(ARCH),sparc64)
89override LOADERS=
90SYSINIT_UNITS=si_prc si_c si_g si_dll
91endif
92
93# mipsel reuses mips files by including so some file names exist
94# twice, this causes the compiler to find sometimes wrong files and it tries
95# to recompile rtl units. To prevent this, compile always as release PPUs, this
96# should not harm.
97ifeq ($(ARCH),mipsel)
98override FPCOPT+=-Ur
99endif
100
101
102ifeq ($(ARCH),arm)
103override LOADERS+=ucprt0
104CPU_UNITS=cpu
105endif
106
107ifeq ($(ARCH),sparc)
108  override FPCOPT+=-Fisparcgen
109endif
110
111ifeq ($(ARCH),sparc64)
112  override FPCOPT+=-Fisparcgen
113endif
114
115
116SYSTEMUNIT=system
117
118# Causes release PPU files not to be recompiled
119ifdef RELEASE
120override FPCOPT+=-Ur
121endif
122
123# Paths
124OBJPASDIR=$(RTL)/objpas
125
126[rules]
127# Get the $(SYSTEMUNIT) independent include file names.
128# This will set the following variables :
129# SYSINCNAMES
130include $(INC)/makefile.inc
131SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
132
133# Get the processor dependent include file names.
134# This will set the following variables :
135# CPUINCNAMES
136include $(PROCINC)/makefile.cpu
137SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
138
139# Put $(SYSTEMUNIT) unit dependencies together.
140SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
141
142SYSNRINC=$(ARCH)/sysnr.inc
143
144# Set PIC_OPT to 1 if -Cg or -fPIC is used
145ifneq ($(findstring -Cg ,$(COMPILER)),)
146  PIC_OPT=1
147endif
148ifneq ($(findstring -fPIC ,$(COMPILER)),)
149  PIC_OPT=1
150endif
151
152# Select 32/64 mode
153ifeq ($(ARCH),i386)
154  ASTARGET=--32
155endif
156ifeq ($(ARCH),x86_64)
157  ASTARGET=--64
158endif
159ifeq ($(ARCH),powerpc)
160  ASTARGET=-a32
161endif
162ifeq ($(ARCH),powerpc64)
163  ASTARGET=-a64
164endif
165# Select 32/64 mode
166ifeq ($(ARCH),mips)
167  ASTARGET=-32 -mabi=32 -mips2 -EB
168  ifeq ($(PIC_OPT),1)
169    ASTARGET+= -KPIC
170  endif
171  ASSHAREDOPT=-KPIC
172endif
173ifeq ($(ARCH),mipsel)
174  ASTARGET=-32 -mabi=32 -mips2 -EL
175  ifeq ($(PIC_OPT),1)
176    ASTARGET+= -KPIC
177  endif
178  ASSHAREDOPT=-KPIC
179endif
180
181ifeq ($(ARCH),sparc)
182  ifeq ($(PIC_OPT),1)
183    ASTARGET+=-K PIC --defsym PIC=1
184  endif
185  ASTARGET+=-32
186  SYSNRINC=sparcgen/sysnr.inc
187  ASSHAREDOPT=-KPIC
188endif
189
190ifeq ($(ARCH),sparc64)
191  ifeq ($(PIC_OPT),1)
192    ASTARGET+=-K PIC --defsym PIC=1
193  endif
194  ASTARGET+=-64
195  SYSNRINC=sparcgen/sysnr.inc
196  ASSHAREDOPT=-KPIC
197endif
198
199ifeq ($(ARCH),arm)
200  ifeq ($(SUBARCH),armv6m)
201    ASTARGET+=-mthumb --def __thumb__=1
202    ARMTHUMB=1
203  endif
204  ASTARGET+= -meabi=5
205endif
206
207
208#
209# Loaders
210#
211
212prt0$(OEXT) : $(ARCH)/prt0.as
213	$(MAKE) $(COMPILER_UNITTARGETDIR)
214        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(ARCH)/prt0.as
215
216abitag$(OEXT) : $(ARCH)/abitag.as
217	$(MAKE) $(COMPILER_UNITTARGETDIR)
218        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)abitag$(OEXT) $(ARCH)/abitag.as
219
220# ASSHAREDOPT adds -KPIC mandatoy for mips/mipsel objects in shared libs
221#
222# the following startup files do not support thumb yet
223#
224dllprt0$(OEXT) : $(ARCH)/dllprt0.as
225	$(MAKE) $(COMPILER_UNITTARGETDIR)
226ifndef ARMTHUMB
227        $(AS) $(ASTARGET) $(ASSHAREDOPT) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(ARCH)/dllprt0.as
228endif
229
230gprt0$(OEXT) : $(ARCH)/gprt0.as
231ifndef ARMTHUMB
232	$(MAKE) $(COMPILER_UNITTARGETDIR)
233        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(ARCH)/gprt0.as
234endif
235
236cprt0$(OEXT) : $(ARCH)/cprt0.as
237ifndef ARMTHUMB
238	$(MAKE) $(COMPILER_UNITTARGETDIR)
239        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(ARCH)/cprt0.as
240endif
241
242cprt21$(OEXT) : $(ARCH)/cprt21.as
243ifndef ARMTHUMB
244	$(MAKE) $(COMPILER_UNITTARGETDIR)
245        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)cprt21$(OEXT) $(ARCH)/cprt21.as
246endif
247
248gprt21$(OEXT) : $(ARCH)/gprt21.as
249ifndef ARMTHUMB
250	$(MAKE) $(COMPILER_UNITTARGETDIR)
251        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)gprt21$(OEXT) $(ARCH)/gprt21.as
252endif
253
254ucprt0$(OEXT) : $(ARCH)/ucprt0.as
255ifndef ARMTHUMB
256	$(MAKE) $(COMPILER_UNITTARGETDIR)
257        $(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)$@ $<
258endif
259
260
261#
262# $(SYSINIT_UNITS) Units
263#
264si_prc$(PPUEXT) : si_prc.pp si_intf.inc $(SYSNRINC) $(ARCH)/si_prc.inc $(SYSTEMUNIT)$(PPUEXT)
265	$(COMPILER) si_prc.pp
266
267si_c21g$(PPUEXT) : si_c21g.pp si_intf.inc $(SYSNRINC) $(ARCH)/si_c21.inc $(SYSTEMUNIT)$(PPUEXT)
268	$(COMPILER) si_c21g.pp
269
270si_c21$(PPUEXT) : si_c21.pp si_intf.inc $(SYSNRINC)  $(ARCH)/si_c21.inc $(SYSTEMUNIT)$(PPUEXT)
271	$(COMPILER) si_c21.pp
272
273si_c$(PPUEXT) : si_c.pp si_intf.inc $(SYSNRINC)  $(ARCH)/si_c.inc $(SYSTEMUNIT)$(PPUEXT)
274	$(COMPILER) si_c.pp
275
276si_dll$(PPUEXT) : si_dll.pp si_intf.inc $(SYSNRINC)  $(ARCH)/si_dll.inc $(SYSTEMUNIT)$(PPUEXT)
277	$(COMPILER) si_dll.pp
278
279si_uc$(PPUEXT) : si_uc.pp si_intf.inc $(SYSNRINC)  $(ARCH)/si_uc.inc $(SYSTEMUNIT)$(PPUEXT)
280	$(COMPILER) si_uc.pp
281
282si_g$(PPUEXT) : si_g.pp si_intf.inc $(SYSNRINC) $(ARCH)/si_g.inc $(SYSTEMUNIT)$(PPUEXT)
283	$(COMPILER) si_g.pp
284
285
286#
287# $(SYSTEMUNIT) Units ($(SYSTEMUNIT), Objpas, Strings)
288#
289
290$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
291        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp
292
293uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
294	$(COMPILER) $(INC)/uuchar.pp
295
296objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
297        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
298
299strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
300                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
301                   $(SYSTEMUNIT)$(PPUEXT)
302	$(COMPILER) $(INC)/strings.pp
303
304#
305# $(SYSTEMUNIT) Dependent Units
306#
307
308unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) baseunix$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
309                 unxconst.inc $(UNIXINC)/timezone.inc $(SYSTEMUNIT)$(PPUEXT) unixutil$(PPUEXT) \
310                 unxfunc.inc
311	$(COMPILER) $(UNIXINC)/unix.pp
312
313syscall$(PPUEXT) : $(UNIXINC)/syscall.pp $(ARCH)/syscallh.inc $(SYSNRINC)  $(SYSTEMUNIT)$(PPUEXT)
314	$(COMPILER) $(UNIXINC)/syscall.pp
315
316unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc $(SYSTEMUNIT)$(PPUEXT)
317	$(COMPILER) $(UNIXINC)/unixutil.pp
318
319unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
320	$(COMPILER) $(UNIXINC)/unixtype.pp
321
322baseunix$(PPUEXT) : unixtype$(PPUEXT) errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
323  $(UNIXINC)/bunxh.inc \
324  bunxsysc.inc $(ARCH)/syscallh.inc $(SYSNRINC)  \
325  ostypes.inc osmacro.inc $(UNIXINC)/gensigset.inc \
326  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
327	$(COMPILER) $(UNIXINC)/baseunix.pp
328
329ports$(PPUEXT) : $(UNIXINC)/ports.pp $(SYSTEMUNIT)$(PPUEXT)
330	$(COMPILER) $(UNIXINC)/ports.pp
331
332dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
333	$(COMPILER) $(UNIXINC)/dl.pp
334
335dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT) rtlconsts$(PPUEXT) sysutils$(PPUEXT)
336	$(COMPILER) $(INC)/dynlibs.pas
337
338initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
339        $(COMPILER) $(UNIXINC)/initc.pp
340
341unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
342        $(COMPILER) $(UNIXINC)/unixcp.pp
343
344linux$(PPUEXT) :  linux.pp baseunix$(PPUEXT) unixtype$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
345        $(COMPILER) linux.pp
346
347linuxvcs$(PPUEXT) :  linuxvcs.pp baseunix$(PPUEXT) strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
348        $(COMPILER) linuxvcs.pp
349
350termio$(PPUEXT) : termio.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
351        $(COMPILER) termio.pp
352
353#
354# TP7 Compatible RTL Units
355#
356
357dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
358               unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
359	$(COMPILER) $(UNIXINC)/dos.pp
360
361#
362# Delphi Compatible Units
363#
364
365sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
366                    objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT) \
367                    linux$(PPUEXT)
368        $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
369
370classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
371                   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) fgl$(PPUEXT) types$(PPUEXT) unix$(PPUEXT)
372        $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
373
374typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT)
375        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
376
377# let it depend on buildcollations to prevent simultaneous building of unicodedata
378character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
379        $(COMPILER) $(OBJPASDIR)/character.pas
380
381math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
382        $(COMPILER) $(OBJPASDIR)/math.pp
383
384fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
385        $(COMPILER) $(OBJPASDIR)/fgl.pp
386
387types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
388        $(COMPILER) $(OBJPASDIR)/types.pp
389
390sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
391        $(COMPILER) $(OBJPASDIR)/sysconst.pp
392
393rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
394        $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
395
396#
397# Mac Pascal Model
398#
399
400macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
401        $(COMPILER) $(INC)/macpas.pp $(REDIR)
402
403#
404# Other $(SYSTEMUNIT)-independent RTL Units
405#
406
407ifneq ($(findstring $(ARCH),x86_64 i386),)
408cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) objpas$(PPUEXT)
409	$(COMPILER) $(PROCINC)/cpu.pp
410else
411cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
412	$(COMPILER) $(PROCINC)/cpu.pp
413endif
414
415mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
416	$(COMPILER) $(PROCINC)/mmx.pp
417
418x86$(PPUEXT) : $(UNIXINC)/x86.pp baseunix$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
419	$(COMPILER) $(UNIXINC)/x86.pp
420
421getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
422	$(COMPILER) $(INC)/getopts.pp
423
424heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
425        $(COMPILER) -Sg $(INC)/heaptrc.pp
426
427lineinfo$(PPUEXT) : $(INC)/lineinfo.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
428	$(COMPILER) $(INC)/lineinfo.pp
429
430lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) $(INC)/exeinfo.pp lineinfo$(PPUEXT) sysutils$(PPUEXT)
431	$(COMPILER) $(INC)/lnfodwrf.pp
432
433charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
434	$(COMPILER) $(INC)/charset.pp
435
436cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
437        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
438
439iso7185$(PPUEXT) : $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
440        $(COMPILER) $(INC)/iso7185.pp
441
442extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
443        $(COMPILER) $(INC)/extpas.pp
444
445fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
446        $(COMPILER) $(INC)/fpintres.pp
447
448fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
449        $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
450#
451# Other $(SYSTEMUNIT)-dependent RTL Units
452#
453
454errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
455	$(COMPILER) $(UNIXINC)/errors.pp
456
457callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
458	$(COMPILER) $(INC)/callspec.pp
459
460cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
461	$(COMPILER) $(INC)/cmem.pp
462
463cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT) unix$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) initc$(PPUEXT) dl$(PPUEXT)
464	$(COMPILER) $(UNIXINC)/cthreads.pp
465
466cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT) unixcp$(PPUEXT)
467	$(COMPILER) $(UNIXINC)/cwstring.pp
468
469ctypes$(PPUEXT) :  $(INC)/ctypes.pp unixtype$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
470	$(COMPILER) $(INC)/ctypes.pp
471
472fpcylix$(PPUEXT) : fpcylix.pp cthreads$(PPUEXT) cwstring$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
473	$(COMPILER) fpcylix.pp
474
475softfpu$(PPUEXT) : $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
476	$(COMPILER) $(INC)/softfpu.pp
477
478sfpux80$(PPUEXT) : $(INC)/sfpux80.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
479	$(COMPILER) $(INC)/sfpux80.pp
480
481sfpu128$(PPUEXT) : $(INC)/sfpu128.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
482	$(COMPILER) $(INC)/sfpu128.pp
483
484ufloatx80$(PPUEXT) : $(INC)/ufloatx80.pp sfpux80$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
485	$(COMPILER) $(INC)/ufloatx80.pp
486
487ufloat128$(PPUEXT) : $(INC)/ufloat128.pp sfpu128$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
488	$(COMPILER) $(INC)/ufloat128.pp
489
490