1#
2# Don't edit, this file is generated by FPCMake Version 2.0.0
3#
4default: all
5MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android aarch64-ios wasm-wasm sparc64-linux
6BSDs = freebsd netbsd openbsd darwin dragonfly
7UNIXs = linux $(BSDs) solaris qnx haiku aix
8LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
9OSNeedsComspecToRunBatch = go32v2 watcom
10FORCE:
11.PHONY: FORCE
12override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
13ifneq ($(findstring darwin,$(OSTYPE)),)
14inUnix=1 #darwin
15SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
16else
17ifeq ($(findstring ;,$(PATH)),)
18inUnix=1
19SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
20else
21SEARCHPATH:=$(subst ;, ,$(PATH))
22endif
23endif
24SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
25PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
26ifeq ($(PWD),)
27PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
28ifeq ($(PWD),)
29$(error You need the GNU utils package to use this Makefile)
30else
31PWD:=$(firstword $(PWD))
32SRCEXEEXT=
33endif
34else
35PWD:=$(firstword $(PWD))
36SRCEXEEXT=.exe
37endif
38ifndef inUnix
39ifeq ($(OS),Windows_NT)
40inWinNT=1
41else
42ifdef OS2_SHELL
43inOS2=1
44endif
45endif
46else
47ifneq ($(findstring cygdrive,$(PATH)),)
48inCygWin=1
49endif
50endif
51ifdef inUnix
52SRCBATCHEXT=.sh
53else
54ifdef inOS2
55SRCBATCHEXT=.cmd
56else
57SRCBATCHEXT=.bat
58endif
59endif
60ifdef COMSPEC
61ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
62ifndef RUNBATCH
63RUNBATCH=$(COMSPEC) /C
64endif
65endif
66endif
67ifdef inUnix
68PATHSEP=/
69else
70PATHSEP:=$(subst /,\,/)
71ifdef inCygWin
72PATHSEP=/
73endif
74endif
75ifdef PWD
76BASEDIR:=$(subst \,/,$(shell $(PWD)))
77ifdef inCygWin
78ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
79BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
80BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
81BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
82endif
83endif
84else
85BASEDIR=.
86endif
87ifdef inOS2
88ifndef ECHO
89ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
90ifeq ($(ECHO),)
91ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
92ifeq ($(ECHO),)
93ECHO=echo
94else
95ECHO:=$(firstword $(ECHO))
96endif
97else
98ECHO:=$(firstword $(ECHO))
99endif
100endif
101export ECHO
102endif
103override DEFAULT_FPCDIR=../..
104ifndef FPC
105ifdef PP
106FPC=$(PP)
107endif
108endif
109ifndef FPC
110FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
111ifneq ($(FPCPROG),)
112FPCPROG:=$(firstword $(FPCPROG))
113ifneq ($(CPU_TARGET),)
114FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
115else
116FPC:=$(shell $(FPCPROG) -PB)
117endif
118ifneq ($(findstring Error,$(FPC)),)
119override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
120else
121ifeq ($(strip $(wildcard $(FPC))),)
122FPC:=$(firstword $(FPCPROG))
123endif
124endif
125else
126override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
127endif
128endif
129override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
130override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
131FOUNDFPC:=$(strip $(wildcard $(FPC)))
132ifeq ($(FOUNDFPC),)
133FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
134ifeq ($(FOUNDFPC),)
135$(error Compiler $(FPC) not found)
136endif
137endif
138ifndef FPC_COMPILERINFO
139FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
140endif
141ifndef FPC_VERSION
142FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
143endif
144export FPC FPC_VERSION FPC_COMPILERINFO
145unexport CHECKDEPEND ALLDEPENDENCIES
146ifndef CPU_TARGET
147ifdef CPU_TARGET_DEFAULT
148CPU_TARGET=$(CPU_TARGET_DEFAULT)
149endif
150endif
151ifndef OS_TARGET
152ifdef OS_TARGET_DEFAULT
153OS_TARGET=$(OS_TARGET_DEFAULT)
154endif
155endif
156ifndef CPU_SOURCE
157CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
158endif
159ifndef CPU_TARGET
160CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
161endif
162ifndef OS_SOURCE
163OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
164endif
165ifndef OS_TARGET
166OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
167endif
168FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
169FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
170ifeq ($(CPU_TARGET),armeb)
171ARCH=arm
172override FPCOPT+=-Cb
173else
174ifeq ($(CPU_TARGET),armel)
175ARCH=arm
176override FPCOPT+=-CaEABI
177else
178ARCH=$(CPU_TARGET)
179endif
180endif
181ifeq ($(FULL_TARGET),arm-embedded)
182ifeq ($(SUBARCH),)
183$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
184endif
185override FPCOPT+=-Cp$(SUBARCH)
186endif
187ifeq ($(FULL_TARGET),avr-embedded)
188ifeq ($(SUBARCH),)
189$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
190endif
191override FPCOPT+=-Cp$(SUBARCH)
192endif
193ifeq ($(FULL_TARGET),mipsel-embedded)
194ifeq ($(SUBARCH),)
195$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
196endif
197override FPCOPT+=-Cp$(SUBARCH)
198endif
199ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
200TARGETSUFFIX=$(OS_TARGET)
201SOURCESUFFIX=$(OS_SOURCE)
202else
203ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
204TARGETSUFFIX=$(OS_TARGET)
205else
206TARGETSUFFIX=$(FULL_TARGET)
207endif
208SOURCESUFFIX=$(FULL_SOURCE)
209endif
210ifneq ($(FULL_TARGET),$(FULL_SOURCE))
211CROSSCOMPILE=1
212endif
213ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
214ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
215$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
216endif
217endif
218ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
219BSDhier=1
220endif
221ifeq ($(OS_TARGET),linux)
222linuxHier=1
223endif
224ifndef CROSSCOMPILE
225BUILDFULLNATIVE=1
226export BUILDFULLNATIVE
227endif
228ifdef BUILDFULLNATIVE
229BUILDNATIVE=1
230export BUILDNATIVE
231endif
232export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
233ifdef FPCDIR
234override FPCDIR:=$(subst \,/,$(FPCDIR))
235ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
236override FPCDIR=wrong
237endif
238else
239override FPCDIR=wrong
240endif
241ifdef DEFAULT_FPCDIR
242ifeq ($(FPCDIR),wrong)
243override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
244ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
245override FPCDIR=wrong
246endif
247endif
248endif
249ifeq ($(FPCDIR),wrong)
250ifdef inUnix
251override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
252ifeq ($(wildcard $(FPCDIR)/units),)
253override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
254endif
255else
256override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
257override FPCDIR:=$(FPCDIR)/..
258ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
259override FPCDIR:=$(FPCDIR)/..
260ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
261override FPCDIR:=$(BASEDIR)
262ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
263override FPCDIR=c:/pp
264endif
265endif
266endif
267endif
268endif
269ifndef CROSSBINDIR
270CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
271endif
272ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
273ifneq ($(findstring $(OS_SOURCE),darwin ios),)
274DARWIN2DARWIN=1
275endif
276endif
277ifndef BINUTILSPREFIX
278ifndef CROSSBINDIR
279ifdef CROSSCOMPILE
280ifneq ($(OS_TARGET),msdos)
281ifndef DARWIN2DARWIN
282ifneq ($(CPU_TARGET),jvm)
283BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
284ifeq ($(OS_TARGET),android)
285ifeq ($(CPU_TARGET),arm)
286BINUTILSPREFIX=arm-linux-androideabi-
287else
288ifeq ($(CPU_TARGET),i386)
289BINUTILSPREFIX=i686-linux-android-
290else
291BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
292endif
293endif
294endif
295endif
296endif
297else
298BINUTILSPREFIX=$(OS_TARGET)-
299endif
300endif
301endif
302endif
303UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
304ifeq ($(UNITSDIR),)
305UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
306endif
307PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
308ifndef FPCFPMAKE
309ifdef CROSSCOMPILE
310ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
311FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
312ifneq ($(FPCPROG),)
313FPCPROG:=$(firstword $(FPCPROG))
314FPCFPMAKE:=$(shell $(FPCPROG) -PB)
315ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
316FPCFPMAKE:=$(firstword $(FPCPROG))
317endif
318else
319override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
320endif
321else
322FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
323FPMAKE_SKIP_CONFIG=-n
324export FPCFPMAKE
325export FPMAKE_SKIP_CONFIG
326endif
327else
328FPMAKE_SKIP_CONFIG=-n
329FPCFPMAKE=$(FPC)
330endif
331endif
332ifeq ($(FULL_TARGET),i386-linux)
333override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
334endif
335ifeq ($(FULL_TARGET),i386-go32v2)
336override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
337endif
338ifeq ($(FULL_TARGET),i386-win32)
339override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
340endif
341ifeq ($(FULL_TARGET),i386-os2)
342override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
343endif
344ifeq ($(FULL_TARGET),i386-freebsd)
345override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
346endif
347ifeq ($(FULL_TARGET),i386-beos)
348override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
349endif
350ifeq ($(FULL_TARGET),i386-haiku)
351override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
352endif
353ifeq ($(FULL_TARGET),i386-netbsd)
354override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
355endif
356ifeq ($(FULL_TARGET),i386-solaris)
357override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
358endif
359ifeq ($(FULL_TARGET),i386-netware)
360override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
361endif
362ifeq ($(FULL_TARGET),i386-openbsd)
363override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
364endif
365ifeq ($(FULL_TARGET),i386-wdosx)
366override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
367endif
368ifeq ($(FULL_TARGET),i386-darwin)
369override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
370endif
371ifeq ($(FULL_TARGET),i386-emx)
372override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
373endif
374ifeq ($(FULL_TARGET),i386-watcom)
375override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
376endif
377ifeq ($(FULL_TARGET),i386-netwlibc)
378override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
379endif
380ifeq ($(FULL_TARGET),i386-wince)
381override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
382endif
383ifeq ($(FULL_TARGET),i386-embedded)
384override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
385endif
386ifeq ($(FULL_TARGET),i386-symbian)
387override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
388endif
389ifeq ($(FULL_TARGET),i386-nativent)
390override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
391endif
392ifeq ($(FULL_TARGET),i386-iphonesim)
393override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
394endif
395ifeq ($(FULL_TARGET),i386-android)
396override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
397endif
398ifeq ($(FULL_TARGET),i386-aros)
399override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
400endif
401ifeq ($(FULL_TARGET),m68k-linux)
402override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
403endif
404ifeq ($(FULL_TARGET),m68k-netbsd)
405override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
406endif
407ifeq ($(FULL_TARGET),m68k-amiga)
408override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
409endif
410ifeq ($(FULL_TARGET),m68k-atari)
411override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
412endif
413ifeq ($(FULL_TARGET),m68k-palmos)
414override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
415endif
416ifeq ($(FULL_TARGET),m68k-macosclassic)
417override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
418endif
419ifeq ($(FULL_TARGET),m68k-embedded)
420override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
421endif
422ifeq ($(FULL_TARGET),powerpc-linux)
423override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
424endif
425ifeq ($(FULL_TARGET),powerpc-netbsd)
426override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
427endif
428ifeq ($(FULL_TARGET),powerpc-amiga)
429override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
430endif
431ifeq ($(FULL_TARGET),powerpc-macosclassic)
432override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
433endif
434ifeq ($(FULL_TARGET),powerpc-darwin)
435override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
436endif
437ifeq ($(FULL_TARGET),powerpc-morphos)
438override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
439endif
440ifeq ($(FULL_TARGET),powerpc-embedded)
441override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
442endif
443ifeq ($(FULL_TARGET),powerpc-wii)
444override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
445endif
446ifeq ($(FULL_TARGET),powerpc-aix)
447override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
448endif
449ifeq ($(FULL_TARGET),sparc-linux)
450override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
451endif
452ifeq ($(FULL_TARGET),sparc-netbsd)
453override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
454endif
455ifeq ($(FULL_TARGET),sparc-solaris)
456override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
457endif
458ifeq ($(FULL_TARGET),sparc-embedded)
459override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
460endif
461ifeq ($(FULL_TARGET),x86_64-linux)
462override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
463endif
464ifeq ($(FULL_TARGET),x86_64-freebsd)
465override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
466endif
467ifeq ($(FULL_TARGET),x86_64-haiku)
468override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
469endif
470ifeq ($(FULL_TARGET),x86_64-netbsd)
471override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
472endif
473ifeq ($(FULL_TARGET),x86_64-solaris)
474override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
475endif
476ifeq ($(FULL_TARGET),x86_64-openbsd)
477override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
478endif
479ifeq ($(FULL_TARGET),x86_64-darwin)
480override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
481endif
482ifeq ($(FULL_TARGET),x86_64-win64)
483override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
484endif
485ifeq ($(FULL_TARGET),x86_64-embedded)
486override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
487endif
488ifeq ($(FULL_TARGET),x86_64-iphonesim)
489override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
490endif
491ifeq ($(FULL_TARGET),x86_64-android)
492override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
493endif
494ifeq ($(FULL_TARGET),x86_64-aros)
495override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
496endif
497ifeq ($(FULL_TARGET),x86_64-dragonfly)
498override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
499endif
500ifeq ($(FULL_TARGET),arm-linux)
501override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
502endif
503ifeq ($(FULL_TARGET),arm-netbsd)
504override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
505endif
506ifeq ($(FULL_TARGET),arm-palmos)
507override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
508endif
509ifeq ($(FULL_TARGET),arm-wince)
510override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
511endif
512ifeq ($(FULL_TARGET),arm-gba)
513override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
514endif
515ifeq ($(FULL_TARGET),arm-nds)
516override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
517endif
518ifeq ($(FULL_TARGET),arm-embedded)
519override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
520endif
521ifeq ($(FULL_TARGET),arm-symbian)
522override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
523endif
524ifeq ($(FULL_TARGET),arm-android)
525override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
526endif
527ifeq ($(FULL_TARGET),arm-aros)
528override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
529endif
530ifeq ($(FULL_TARGET),arm-ios)
531override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
532endif
533ifeq ($(FULL_TARGET),powerpc64-linux)
534override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
535endif
536ifeq ($(FULL_TARGET),powerpc64-darwin)
537override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
538endif
539ifeq ($(FULL_TARGET),powerpc64-embedded)
540override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
541endif
542ifeq ($(FULL_TARGET),powerpc64-aix)
543override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
544endif
545ifeq ($(FULL_TARGET),avr-embedded)
546override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
547endif
548ifeq ($(FULL_TARGET),armeb-linux)
549override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
550endif
551ifeq ($(FULL_TARGET),armeb-embedded)
552override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
553endif
554ifeq ($(FULL_TARGET),mips-linux)
555override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
556endif
557ifeq ($(FULL_TARGET),mipsel-linux)
558override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
559endif
560ifeq ($(FULL_TARGET),mipsel-embedded)
561override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
562endif
563ifeq ($(FULL_TARGET),mipsel-android)
564override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
565endif
566ifeq ($(FULL_TARGET),jvm-java)
567override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
568endif
569ifeq ($(FULL_TARGET),jvm-android)
570override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
571endif
572ifeq ($(FULL_TARGET),i8086-embedded)
573override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
574endif
575ifeq ($(FULL_TARGET),i8086-msdos)
576override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
577endif
578ifeq ($(FULL_TARGET),i8086-win16)
579override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
580endif
581ifeq ($(FULL_TARGET),aarch64-linux)
582override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
583endif
584ifeq ($(FULL_TARGET),aarch64-darwin)
585override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
586endif
587ifeq ($(FULL_TARGET),aarch64-android)
588override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
589endif
590ifeq ($(FULL_TARGET),aarch64-ios)
591override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
592endif
593ifeq ($(FULL_TARGET),wasm-wasm)
594override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
595endif
596ifeq ($(FULL_TARGET),sparc64-linux)
597override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins
598endif
599ifeq ($(FULL_TARGET),i386-linux)
600override CLEAN_UNITS+=ppu crc
601endif
602ifeq ($(FULL_TARGET),i386-go32v2)
603override CLEAN_UNITS+=ppu crc
604endif
605ifeq ($(FULL_TARGET),i386-win32)
606override CLEAN_UNITS+=ppu crc
607endif
608ifeq ($(FULL_TARGET),i386-os2)
609override CLEAN_UNITS+=ppu crc
610endif
611ifeq ($(FULL_TARGET),i386-freebsd)
612override CLEAN_UNITS+=ppu crc
613endif
614ifeq ($(FULL_TARGET),i386-beos)
615override CLEAN_UNITS+=ppu crc
616endif
617ifeq ($(FULL_TARGET),i386-haiku)
618override CLEAN_UNITS+=ppu crc
619endif
620ifeq ($(FULL_TARGET),i386-netbsd)
621override CLEAN_UNITS+=ppu crc
622endif
623ifeq ($(FULL_TARGET),i386-solaris)
624override CLEAN_UNITS+=ppu crc
625endif
626ifeq ($(FULL_TARGET),i386-netware)
627override CLEAN_UNITS+=ppu crc
628endif
629ifeq ($(FULL_TARGET),i386-openbsd)
630override CLEAN_UNITS+=ppu crc
631endif
632ifeq ($(FULL_TARGET),i386-wdosx)
633override CLEAN_UNITS+=ppu crc
634endif
635ifeq ($(FULL_TARGET),i386-darwin)
636override CLEAN_UNITS+=ppu crc
637endif
638ifeq ($(FULL_TARGET),i386-emx)
639override CLEAN_UNITS+=ppu crc
640endif
641ifeq ($(FULL_TARGET),i386-watcom)
642override CLEAN_UNITS+=ppu crc
643endif
644ifeq ($(FULL_TARGET),i386-netwlibc)
645override CLEAN_UNITS+=ppu crc
646endif
647ifeq ($(FULL_TARGET),i386-wince)
648override CLEAN_UNITS+=ppu crc
649endif
650ifeq ($(FULL_TARGET),i386-embedded)
651override CLEAN_UNITS+=ppu crc
652endif
653ifeq ($(FULL_TARGET),i386-symbian)
654override CLEAN_UNITS+=ppu crc
655endif
656ifeq ($(FULL_TARGET),i386-nativent)
657override CLEAN_UNITS+=ppu crc
658endif
659ifeq ($(FULL_TARGET),i386-iphonesim)
660override CLEAN_UNITS+=ppu crc
661endif
662ifeq ($(FULL_TARGET),i386-android)
663override CLEAN_UNITS+=ppu crc
664endif
665ifeq ($(FULL_TARGET),i386-aros)
666override CLEAN_UNITS+=ppu crc
667endif
668ifeq ($(FULL_TARGET),m68k-linux)
669override CLEAN_UNITS+=ppu crc
670endif
671ifeq ($(FULL_TARGET),m68k-netbsd)
672override CLEAN_UNITS+=ppu crc
673endif
674ifeq ($(FULL_TARGET),m68k-amiga)
675override CLEAN_UNITS+=ppu crc
676endif
677ifeq ($(FULL_TARGET),m68k-atari)
678override CLEAN_UNITS+=ppu crc
679endif
680ifeq ($(FULL_TARGET),m68k-palmos)
681override CLEAN_UNITS+=ppu crc
682endif
683ifeq ($(FULL_TARGET),m68k-macosclassic)
684override CLEAN_UNITS+=ppu crc
685endif
686ifeq ($(FULL_TARGET),m68k-embedded)
687override CLEAN_UNITS+=ppu crc
688endif
689ifeq ($(FULL_TARGET),powerpc-linux)
690override CLEAN_UNITS+=ppu crc
691endif
692ifeq ($(FULL_TARGET),powerpc-netbsd)
693override CLEAN_UNITS+=ppu crc
694endif
695ifeq ($(FULL_TARGET),powerpc-amiga)
696override CLEAN_UNITS+=ppu crc
697endif
698ifeq ($(FULL_TARGET),powerpc-macosclassic)
699override CLEAN_UNITS+=ppu crc
700endif
701ifeq ($(FULL_TARGET),powerpc-darwin)
702override CLEAN_UNITS+=ppu crc
703endif
704ifeq ($(FULL_TARGET),powerpc-morphos)
705override CLEAN_UNITS+=ppu crc
706endif
707ifeq ($(FULL_TARGET),powerpc-embedded)
708override CLEAN_UNITS+=ppu crc
709endif
710ifeq ($(FULL_TARGET),powerpc-wii)
711override CLEAN_UNITS+=ppu crc
712endif
713ifeq ($(FULL_TARGET),powerpc-aix)
714override CLEAN_UNITS+=ppu crc
715endif
716ifeq ($(FULL_TARGET),sparc-linux)
717override CLEAN_UNITS+=ppu crc
718endif
719ifeq ($(FULL_TARGET),sparc-netbsd)
720override CLEAN_UNITS+=ppu crc
721endif
722ifeq ($(FULL_TARGET),sparc-solaris)
723override CLEAN_UNITS+=ppu crc
724endif
725ifeq ($(FULL_TARGET),sparc-embedded)
726override CLEAN_UNITS+=ppu crc
727endif
728ifeq ($(FULL_TARGET),x86_64-linux)
729override CLEAN_UNITS+=ppu crc
730endif
731ifeq ($(FULL_TARGET),x86_64-freebsd)
732override CLEAN_UNITS+=ppu crc
733endif
734ifeq ($(FULL_TARGET),x86_64-haiku)
735override CLEAN_UNITS+=ppu crc
736endif
737ifeq ($(FULL_TARGET),x86_64-netbsd)
738override CLEAN_UNITS+=ppu crc
739endif
740ifeq ($(FULL_TARGET),x86_64-solaris)
741override CLEAN_UNITS+=ppu crc
742endif
743ifeq ($(FULL_TARGET),x86_64-openbsd)
744override CLEAN_UNITS+=ppu crc
745endif
746ifeq ($(FULL_TARGET),x86_64-darwin)
747override CLEAN_UNITS+=ppu crc
748endif
749ifeq ($(FULL_TARGET),x86_64-win64)
750override CLEAN_UNITS+=ppu crc
751endif
752ifeq ($(FULL_TARGET),x86_64-embedded)
753override CLEAN_UNITS+=ppu crc
754endif
755ifeq ($(FULL_TARGET),x86_64-iphonesim)
756override CLEAN_UNITS+=ppu crc
757endif
758ifeq ($(FULL_TARGET),x86_64-android)
759override CLEAN_UNITS+=ppu crc
760endif
761ifeq ($(FULL_TARGET),x86_64-aros)
762override CLEAN_UNITS+=ppu crc
763endif
764ifeq ($(FULL_TARGET),x86_64-dragonfly)
765override CLEAN_UNITS+=ppu crc
766endif
767ifeq ($(FULL_TARGET),arm-linux)
768override CLEAN_UNITS+=ppu crc
769endif
770ifeq ($(FULL_TARGET),arm-netbsd)
771override CLEAN_UNITS+=ppu crc
772endif
773ifeq ($(FULL_TARGET),arm-palmos)
774override CLEAN_UNITS+=ppu crc
775endif
776ifeq ($(FULL_TARGET),arm-wince)
777override CLEAN_UNITS+=ppu crc
778endif
779ifeq ($(FULL_TARGET),arm-gba)
780override CLEAN_UNITS+=ppu crc
781endif
782ifeq ($(FULL_TARGET),arm-nds)
783override CLEAN_UNITS+=ppu crc
784endif
785ifeq ($(FULL_TARGET),arm-embedded)
786override CLEAN_UNITS+=ppu crc
787endif
788ifeq ($(FULL_TARGET),arm-symbian)
789override CLEAN_UNITS+=ppu crc
790endif
791ifeq ($(FULL_TARGET),arm-android)
792override CLEAN_UNITS+=ppu crc
793endif
794ifeq ($(FULL_TARGET),arm-aros)
795override CLEAN_UNITS+=ppu crc
796endif
797ifeq ($(FULL_TARGET),arm-ios)
798override CLEAN_UNITS+=ppu crc
799endif
800ifeq ($(FULL_TARGET),powerpc64-linux)
801override CLEAN_UNITS+=ppu crc
802endif
803ifeq ($(FULL_TARGET),powerpc64-darwin)
804override CLEAN_UNITS+=ppu crc
805endif
806ifeq ($(FULL_TARGET),powerpc64-embedded)
807override CLEAN_UNITS+=ppu crc
808endif
809ifeq ($(FULL_TARGET),powerpc64-aix)
810override CLEAN_UNITS+=ppu crc
811endif
812ifeq ($(FULL_TARGET),avr-embedded)
813override CLEAN_UNITS+=ppu crc
814endif
815ifeq ($(FULL_TARGET),armeb-linux)
816override CLEAN_UNITS+=ppu crc
817endif
818ifeq ($(FULL_TARGET),armeb-embedded)
819override CLEAN_UNITS+=ppu crc
820endif
821ifeq ($(FULL_TARGET),mips-linux)
822override CLEAN_UNITS+=ppu crc
823endif
824ifeq ($(FULL_TARGET),mipsel-linux)
825override CLEAN_UNITS+=ppu crc
826endif
827ifeq ($(FULL_TARGET),mipsel-embedded)
828override CLEAN_UNITS+=ppu crc
829endif
830ifeq ($(FULL_TARGET),mipsel-android)
831override CLEAN_UNITS+=ppu crc
832endif
833ifeq ($(FULL_TARGET),jvm-java)
834override CLEAN_UNITS+=ppu crc
835endif
836ifeq ($(FULL_TARGET),jvm-android)
837override CLEAN_UNITS+=ppu crc
838endif
839ifeq ($(FULL_TARGET),i8086-embedded)
840override CLEAN_UNITS+=ppu crc
841endif
842ifeq ($(FULL_TARGET),i8086-msdos)
843override CLEAN_UNITS+=ppu crc
844endif
845ifeq ($(FULL_TARGET),i8086-win16)
846override CLEAN_UNITS+=ppu crc
847endif
848ifeq ($(FULL_TARGET),aarch64-linux)
849override CLEAN_UNITS+=ppu crc
850endif
851ifeq ($(FULL_TARGET),aarch64-darwin)
852override CLEAN_UNITS+=ppu crc
853endif
854ifeq ($(FULL_TARGET),aarch64-android)
855override CLEAN_UNITS+=ppu crc
856endif
857ifeq ($(FULL_TARGET),aarch64-ios)
858override CLEAN_UNITS+=ppu crc
859endif
860ifeq ($(FULL_TARGET),wasm-wasm)
861override CLEAN_UNITS+=ppu crc
862endif
863ifeq ($(FULL_TARGET),sparc64-linux)
864override CLEAN_UNITS+=ppu crc
865endif
866override INSTALL_FPCPACKAGE=y
867ifeq ($(FULL_TARGET),i386-linux)
868override COMPILER_UNITDIR+=..
869endif
870ifeq ($(FULL_TARGET),i386-go32v2)
871override COMPILER_UNITDIR+=..
872endif
873ifeq ($(FULL_TARGET),i386-win32)
874override COMPILER_UNITDIR+=..
875endif
876ifeq ($(FULL_TARGET),i386-os2)
877override COMPILER_UNITDIR+=..
878endif
879ifeq ($(FULL_TARGET),i386-freebsd)
880override COMPILER_UNITDIR+=..
881endif
882ifeq ($(FULL_TARGET),i386-beos)
883override COMPILER_UNITDIR+=..
884endif
885ifeq ($(FULL_TARGET),i386-haiku)
886override COMPILER_UNITDIR+=..
887endif
888ifeq ($(FULL_TARGET),i386-netbsd)
889override COMPILER_UNITDIR+=..
890endif
891ifeq ($(FULL_TARGET),i386-solaris)
892override COMPILER_UNITDIR+=..
893endif
894ifeq ($(FULL_TARGET),i386-netware)
895override COMPILER_UNITDIR+=..
896endif
897ifeq ($(FULL_TARGET),i386-openbsd)
898override COMPILER_UNITDIR+=..
899endif
900ifeq ($(FULL_TARGET),i386-wdosx)
901override COMPILER_UNITDIR+=..
902endif
903ifeq ($(FULL_TARGET),i386-darwin)
904override COMPILER_UNITDIR+=..
905endif
906ifeq ($(FULL_TARGET),i386-emx)
907override COMPILER_UNITDIR+=..
908endif
909ifeq ($(FULL_TARGET),i386-watcom)
910override COMPILER_UNITDIR+=..
911endif
912ifeq ($(FULL_TARGET),i386-netwlibc)
913override COMPILER_UNITDIR+=..
914endif
915ifeq ($(FULL_TARGET),i386-wince)
916override COMPILER_UNITDIR+=..
917endif
918ifeq ($(FULL_TARGET),i386-embedded)
919override COMPILER_UNITDIR+=..
920endif
921ifeq ($(FULL_TARGET),i386-symbian)
922override COMPILER_UNITDIR+=..
923endif
924ifeq ($(FULL_TARGET),i386-nativent)
925override COMPILER_UNITDIR+=..
926endif
927ifeq ($(FULL_TARGET),i386-iphonesim)
928override COMPILER_UNITDIR+=..
929endif
930ifeq ($(FULL_TARGET),i386-android)
931override COMPILER_UNITDIR+=..
932endif
933ifeq ($(FULL_TARGET),i386-aros)
934override COMPILER_UNITDIR+=..
935endif
936ifeq ($(FULL_TARGET),m68k-linux)
937override COMPILER_UNITDIR+=..
938endif
939ifeq ($(FULL_TARGET),m68k-netbsd)
940override COMPILER_UNITDIR+=..
941endif
942ifeq ($(FULL_TARGET),m68k-amiga)
943override COMPILER_UNITDIR+=..
944endif
945ifeq ($(FULL_TARGET),m68k-atari)
946override COMPILER_UNITDIR+=..
947endif
948ifeq ($(FULL_TARGET),m68k-palmos)
949override COMPILER_UNITDIR+=..
950endif
951ifeq ($(FULL_TARGET),m68k-macosclassic)
952override COMPILER_UNITDIR+=..
953endif
954ifeq ($(FULL_TARGET),m68k-embedded)
955override COMPILER_UNITDIR+=..
956endif
957ifeq ($(FULL_TARGET),powerpc-linux)
958override COMPILER_UNITDIR+=..
959endif
960ifeq ($(FULL_TARGET),powerpc-netbsd)
961override COMPILER_UNITDIR+=..
962endif
963ifeq ($(FULL_TARGET),powerpc-amiga)
964override COMPILER_UNITDIR+=..
965endif
966ifeq ($(FULL_TARGET),powerpc-macosclassic)
967override COMPILER_UNITDIR+=..
968endif
969ifeq ($(FULL_TARGET),powerpc-darwin)
970override COMPILER_UNITDIR+=..
971endif
972ifeq ($(FULL_TARGET),powerpc-morphos)
973override COMPILER_UNITDIR+=..
974endif
975ifeq ($(FULL_TARGET),powerpc-embedded)
976override COMPILER_UNITDIR+=..
977endif
978ifeq ($(FULL_TARGET),powerpc-wii)
979override COMPILER_UNITDIR+=..
980endif
981ifeq ($(FULL_TARGET),powerpc-aix)
982override COMPILER_UNITDIR+=..
983endif
984ifeq ($(FULL_TARGET),sparc-linux)
985override COMPILER_UNITDIR+=..
986endif
987ifeq ($(FULL_TARGET),sparc-netbsd)
988override COMPILER_UNITDIR+=..
989endif
990ifeq ($(FULL_TARGET),sparc-solaris)
991override COMPILER_UNITDIR+=..
992endif
993ifeq ($(FULL_TARGET),sparc-embedded)
994override COMPILER_UNITDIR+=..
995endif
996ifeq ($(FULL_TARGET),x86_64-linux)
997override COMPILER_UNITDIR+=..
998endif
999ifeq ($(FULL_TARGET),x86_64-freebsd)
1000override COMPILER_UNITDIR+=..
1001endif
1002ifeq ($(FULL_TARGET),x86_64-haiku)
1003override COMPILER_UNITDIR+=..
1004endif
1005ifeq ($(FULL_TARGET),x86_64-netbsd)
1006override COMPILER_UNITDIR+=..
1007endif
1008ifeq ($(FULL_TARGET),x86_64-solaris)
1009override COMPILER_UNITDIR+=..
1010endif
1011ifeq ($(FULL_TARGET),x86_64-openbsd)
1012override COMPILER_UNITDIR+=..
1013endif
1014ifeq ($(FULL_TARGET),x86_64-darwin)
1015override COMPILER_UNITDIR+=..
1016endif
1017ifeq ($(FULL_TARGET),x86_64-win64)
1018override COMPILER_UNITDIR+=..
1019endif
1020ifeq ($(FULL_TARGET),x86_64-embedded)
1021override COMPILER_UNITDIR+=..
1022endif
1023ifeq ($(FULL_TARGET),x86_64-iphonesim)
1024override COMPILER_UNITDIR+=..
1025endif
1026ifeq ($(FULL_TARGET),x86_64-android)
1027override COMPILER_UNITDIR+=..
1028endif
1029ifeq ($(FULL_TARGET),x86_64-aros)
1030override COMPILER_UNITDIR+=..
1031endif
1032ifeq ($(FULL_TARGET),x86_64-dragonfly)
1033override COMPILER_UNITDIR+=..
1034endif
1035ifeq ($(FULL_TARGET),arm-linux)
1036override COMPILER_UNITDIR+=..
1037endif
1038ifeq ($(FULL_TARGET),arm-netbsd)
1039override COMPILER_UNITDIR+=..
1040endif
1041ifeq ($(FULL_TARGET),arm-palmos)
1042override COMPILER_UNITDIR+=..
1043endif
1044ifeq ($(FULL_TARGET),arm-wince)
1045override COMPILER_UNITDIR+=..
1046endif
1047ifeq ($(FULL_TARGET),arm-gba)
1048override COMPILER_UNITDIR+=..
1049endif
1050ifeq ($(FULL_TARGET),arm-nds)
1051override COMPILER_UNITDIR+=..
1052endif
1053ifeq ($(FULL_TARGET),arm-embedded)
1054override COMPILER_UNITDIR+=..
1055endif
1056ifeq ($(FULL_TARGET),arm-symbian)
1057override COMPILER_UNITDIR+=..
1058endif
1059ifeq ($(FULL_TARGET),arm-android)
1060override COMPILER_UNITDIR+=..
1061endif
1062ifeq ($(FULL_TARGET),arm-aros)
1063override COMPILER_UNITDIR+=..
1064endif
1065ifeq ($(FULL_TARGET),arm-ios)
1066override COMPILER_UNITDIR+=..
1067endif
1068ifeq ($(FULL_TARGET),powerpc64-linux)
1069override COMPILER_UNITDIR+=..
1070endif
1071ifeq ($(FULL_TARGET),powerpc64-darwin)
1072override COMPILER_UNITDIR+=..
1073endif
1074ifeq ($(FULL_TARGET),powerpc64-embedded)
1075override COMPILER_UNITDIR+=..
1076endif
1077ifeq ($(FULL_TARGET),powerpc64-aix)
1078override COMPILER_UNITDIR+=..
1079endif
1080ifeq ($(FULL_TARGET),avr-embedded)
1081override COMPILER_UNITDIR+=..
1082endif
1083ifeq ($(FULL_TARGET),armeb-linux)
1084override COMPILER_UNITDIR+=..
1085endif
1086ifeq ($(FULL_TARGET),armeb-embedded)
1087override COMPILER_UNITDIR+=..
1088endif
1089ifeq ($(FULL_TARGET),mips-linux)
1090override COMPILER_UNITDIR+=..
1091endif
1092ifeq ($(FULL_TARGET),mipsel-linux)
1093override COMPILER_UNITDIR+=..
1094endif
1095ifeq ($(FULL_TARGET),mipsel-embedded)
1096override COMPILER_UNITDIR+=..
1097endif
1098ifeq ($(FULL_TARGET),mipsel-android)
1099override COMPILER_UNITDIR+=..
1100endif
1101ifeq ($(FULL_TARGET),jvm-java)
1102override COMPILER_UNITDIR+=..
1103endif
1104ifeq ($(FULL_TARGET),jvm-android)
1105override COMPILER_UNITDIR+=..
1106endif
1107ifeq ($(FULL_TARGET),i8086-embedded)
1108override COMPILER_UNITDIR+=..
1109endif
1110ifeq ($(FULL_TARGET),i8086-msdos)
1111override COMPILER_UNITDIR+=..
1112endif
1113ifeq ($(FULL_TARGET),i8086-win16)
1114override COMPILER_UNITDIR+=..
1115endif
1116ifeq ($(FULL_TARGET),aarch64-linux)
1117override COMPILER_UNITDIR+=..
1118endif
1119ifeq ($(FULL_TARGET),aarch64-darwin)
1120override COMPILER_UNITDIR+=..
1121endif
1122ifeq ($(FULL_TARGET),aarch64-android)
1123override COMPILER_UNITDIR+=..
1124endif
1125ifeq ($(FULL_TARGET),aarch64-ios)
1126override COMPILER_UNITDIR+=..
1127endif
1128ifeq ($(FULL_TARGET),wasm-wasm)
1129override COMPILER_UNITDIR+=..
1130endif
1131ifeq ($(FULL_TARGET),sparc64-linux)
1132override COMPILER_UNITDIR+=..
1133endif
1134ifeq ($(FULL_TARGET),i386-linux)
1135override COMPILER_SOURCEDIR+=..
1136endif
1137ifeq ($(FULL_TARGET),i386-go32v2)
1138override COMPILER_SOURCEDIR+=..
1139endif
1140ifeq ($(FULL_TARGET),i386-win32)
1141override COMPILER_SOURCEDIR+=..
1142endif
1143ifeq ($(FULL_TARGET),i386-os2)
1144override COMPILER_SOURCEDIR+=..
1145endif
1146ifeq ($(FULL_TARGET),i386-freebsd)
1147override COMPILER_SOURCEDIR+=..
1148endif
1149ifeq ($(FULL_TARGET),i386-beos)
1150override COMPILER_SOURCEDIR+=..
1151endif
1152ifeq ($(FULL_TARGET),i386-haiku)
1153override COMPILER_SOURCEDIR+=..
1154endif
1155ifeq ($(FULL_TARGET),i386-netbsd)
1156override COMPILER_SOURCEDIR+=..
1157endif
1158ifeq ($(FULL_TARGET),i386-solaris)
1159override COMPILER_SOURCEDIR+=..
1160endif
1161ifeq ($(FULL_TARGET),i386-netware)
1162override COMPILER_SOURCEDIR+=..
1163endif
1164ifeq ($(FULL_TARGET),i386-openbsd)
1165override COMPILER_SOURCEDIR+=..
1166endif
1167ifeq ($(FULL_TARGET),i386-wdosx)
1168override COMPILER_SOURCEDIR+=..
1169endif
1170ifeq ($(FULL_TARGET),i386-darwin)
1171override COMPILER_SOURCEDIR+=..
1172endif
1173ifeq ($(FULL_TARGET),i386-emx)
1174override COMPILER_SOURCEDIR+=..
1175endif
1176ifeq ($(FULL_TARGET),i386-watcom)
1177override COMPILER_SOURCEDIR+=..
1178endif
1179ifeq ($(FULL_TARGET),i386-netwlibc)
1180override COMPILER_SOURCEDIR+=..
1181endif
1182ifeq ($(FULL_TARGET),i386-wince)
1183override COMPILER_SOURCEDIR+=..
1184endif
1185ifeq ($(FULL_TARGET),i386-embedded)
1186override COMPILER_SOURCEDIR+=..
1187endif
1188ifeq ($(FULL_TARGET),i386-symbian)
1189override COMPILER_SOURCEDIR+=..
1190endif
1191ifeq ($(FULL_TARGET),i386-nativent)
1192override COMPILER_SOURCEDIR+=..
1193endif
1194ifeq ($(FULL_TARGET),i386-iphonesim)
1195override COMPILER_SOURCEDIR+=..
1196endif
1197ifeq ($(FULL_TARGET),i386-android)
1198override COMPILER_SOURCEDIR+=..
1199endif
1200ifeq ($(FULL_TARGET),i386-aros)
1201override COMPILER_SOURCEDIR+=..
1202endif
1203ifeq ($(FULL_TARGET),m68k-linux)
1204override COMPILER_SOURCEDIR+=..
1205endif
1206ifeq ($(FULL_TARGET),m68k-netbsd)
1207override COMPILER_SOURCEDIR+=..
1208endif
1209ifeq ($(FULL_TARGET),m68k-amiga)
1210override COMPILER_SOURCEDIR+=..
1211endif
1212ifeq ($(FULL_TARGET),m68k-atari)
1213override COMPILER_SOURCEDIR+=..
1214endif
1215ifeq ($(FULL_TARGET),m68k-palmos)
1216override COMPILER_SOURCEDIR+=..
1217endif
1218ifeq ($(FULL_TARGET),m68k-macosclassic)
1219override COMPILER_SOURCEDIR+=..
1220endif
1221ifeq ($(FULL_TARGET),m68k-embedded)
1222override COMPILER_SOURCEDIR+=..
1223endif
1224ifeq ($(FULL_TARGET),powerpc-linux)
1225override COMPILER_SOURCEDIR+=..
1226endif
1227ifeq ($(FULL_TARGET),powerpc-netbsd)
1228override COMPILER_SOURCEDIR+=..
1229endif
1230ifeq ($(FULL_TARGET),powerpc-amiga)
1231override COMPILER_SOURCEDIR+=..
1232endif
1233ifeq ($(FULL_TARGET),powerpc-macosclassic)
1234override COMPILER_SOURCEDIR+=..
1235endif
1236ifeq ($(FULL_TARGET),powerpc-darwin)
1237override COMPILER_SOURCEDIR+=..
1238endif
1239ifeq ($(FULL_TARGET),powerpc-morphos)
1240override COMPILER_SOURCEDIR+=..
1241endif
1242ifeq ($(FULL_TARGET),powerpc-embedded)
1243override COMPILER_SOURCEDIR+=..
1244endif
1245ifeq ($(FULL_TARGET),powerpc-wii)
1246override COMPILER_SOURCEDIR+=..
1247endif
1248ifeq ($(FULL_TARGET),powerpc-aix)
1249override COMPILER_SOURCEDIR+=..
1250endif
1251ifeq ($(FULL_TARGET),sparc-linux)
1252override COMPILER_SOURCEDIR+=..
1253endif
1254ifeq ($(FULL_TARGET),sparc-netbsd)
1255override COMPILER_SOURCEDIR+=..
1256endif
1257ifeq ($(FULL_TARGET),sparc-solaris)
1258override COMPILER_SOURCEDIR+=..
1259endif
1260ifeq ($(FULL_TARGET),sparc-embedded)
1261override COMPILER_SOURCEDIR+=..
1262endif
1263ifeq ($(FULL_TARGET),x86_64-linux)
1264override COMPILER_SOURCEDIR+=..
1265endif
1266ifeq ($(FULL_TARGET),x86_64-freebsd)
1267override COMPILER_SOURCEDIR+=..
1268endif
1269ifeq ($(FULL_TARGET),x86_64-haiku)
1270override COMPILER_SOURCEDIR+=..
1271endif
1272ifeq ($(FULL_TARGET),x86_64-netbsd)
1273override COMPILER_SOURCEDIR+=..
1274endif
1275ifeq ($(FULL_TARGET),x86_64-solaris)
1276override COMPILER_SOURCEDIR+=..
1277endif
1278ifeq ($(FULL_TARGET),x86_64-openbsd)
1279override COMPILER_SOURCEDIR+=..
1280endif
1281ifeq ($(FULL_TARGET),x86_64-darwin)
1282override COMPILER_SOURCEDIR+=..
1283endif
1284ifeq ($(FULL_TARGET),x86_64-win64)
1285override COMPILER_SOURCEDIR+=..
1286endif
1287ifeq ($(FULL_TARGET),x86_64-embedded)
1288override COMPILER_SOURCEDIR+=..
1289endif
1290ifeq ($(FULL_TARGET),x86_64-iphonesim)
1291override COMPILER_SOURCEDIR+=..
1292endif
1293ifeq ($(FULL_TARGET),x86_64-android)
1294override COMPILER_SOURCEDIR+=..
1295endif
1296ifeq ($(FULL_TARGET),x86_64-aros)
1297override COMPILER_SOURCEDIR+=..
1298endif
1299ifeq ($(FULL_TARGET),x86_64-dragonfly)
1300override COMPILER_SOURCEDIR+=..
1301endif
1302ifeq ($(FULL_TARGET),arm-linux)
1303override COMPILER_SOURCEDIR+=..
1304endif
1305ifeq ($(FULL_TARGET),arm-netbsd)
1306override COMPILER_SOURCEDIR+=..
1307endif
1308ifeq ($(FULL_TARGET),arm-palmos)
1309override COMPILER_SOURCEDIR+=..
1310endif
1311ifeq ($(FULL_TARGET),arm-wince)
1312override COMPILER_SOURCEDIR+=..
1313endif
1314ifeq ($(FULL_TARGET),arm-gba)
1315override COMPILER_SOURCEDIR+=..
1316endif
1317ifeq ($(FULL_TARGET),arm-nds)
1318override COMPILER_SOURCEDIR+=..
1319endif
1320ifeq ($(FULL_TARGET),arm-embedded)
1321override COMPILER_SOURCEDIR+=..
1322endif
1323ifeq ($(FULL_TARGET),arm-symbian)
1324override COMPILER_SOURCEDIR+=..
1325endif
1326ifeq ($(FULL_TARGET),arm-android)
1327override COMPILER_SOURCEDIR+=..
1328endif
1329ifeq ($(FULL_TARGET),arm-aros)
1330override COMPILER_SOURCEDIR+=..
1331endif
1332ifeq ($(FULL_TARGET),arm-ios)
1333override COMPILER_SOURCEDIR+=..
1334endif
1335ifeq ($(FULL_TARGET),powerpc64-linux)
1336override COMPILER_SOURCEDIR+=..
1337endif
1338ifeq ($(FULL_TARGET),powerpc64-darwin)
1339override COMPILER_SOURCEDIR+=..
1340endif
1341ifeq ($(FULL_TARGET),powerpc64-embedded)
1342override COMPILER_SOURCEDIR+=..
1343endif
1344ifeq ($(FULL_TARGET),powerpc64-aix)
1345override COMPILER_SOURCEDIR+=..
1346endif
1347ifeq ($(FULL_TARGET),avr-embedded)
1348override COMPILER_SOURCEDIR+=..
1349endif
1350ifeq ($(FULL_TARGET),armeb-linux)
1351override COMPILER_SOURCEDIR+=..
1352endif
1353ifeq ($(FULL_TARGET),armeb-embedded)
1354override COMPILER_SOURCEDIR+=..
1355endif
1356ifeq ($(FULL_TARGET),mips-linux)
1357override COMPILER_SOURCEDIR+=..
1358endif
1359ifeq ($(FULL_TARGET),mipsel-linux)
1360override COMPILER_SOURCEDIR+=..
1361endif
1362ifeq ($(FULL_TARGET),mipsel-embedded)
1363override COMPILER_SOURCEDIR+=..
1364endif
1365ifeq ($(FULL_TARGET),mipsel-android)
1366override COMPILER_SOURCEDIR+=..
1367endif
1368ifeq ($(FULL_TARGET),jvm-java)
1369override COMPILER_SOURCEDIR+=..
1370endif
1371ifeq ($(FULL_TARGET),jvm-android)
1372override COMPILER_SOURCEDIR+=..
1373endif
1374ifeq ($(FULL_TARGET),i8086-embedded)
1375override COMPILER_SOURCEDIR+=..
1376endif
1377ifeq ($(FULL_TARGET),i8086-msdos)
1378override COMPILER_SOURCEDIR+=..
1379endif
1380ifeq ($(FULL_TARGET),i8086-win16)
1381override COMPILER_SOURCEDIR+=..
1382endif
1383ifeq ($(FULL_TARGET),aarch64-linux)
1384override COMPILER_SOURCEDIR+=..
1385endif
1386ifeq ($(FULL_TARGET),aarch64-darwin)
1387override COMPILER_SOURCEDIR+=..
1388endif
1389ifeq ($(FULL_TARGET),aarch64-android)
1390override COMPILER_SOURCEDIR+=..
1391endif
1392ifeq ($(FULL_TARGET),aarch64-ios)
1393override COMPILER_SOURCEDIR+=..
1394endif
1395ifeq ($(FULL_TARGET),wasm-wasm)
1396override COMPILER_SOURCEDIR+=..
1397endif
1398ifeq ($(FULL_TARGET),sparc64-linux)
1399override COMPILER_SOURCEDIR+=..
1400endif
1401override SHARED_BUILD=n
1402override SHARED_BUILD=n
1403ifdef REQUIRE_UNITSDIR
1404override UNITSDIR+=$(REQUIRE_UNITSDIR)
1405endif
1406ifdef REQUIRE_PACKAGESDIR
1407override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
1408endif
1409ifdef ZIPINSTALL
1410ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
1411UNIXHier=1
1412endif
1413else
1414ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
1415UNIXHier=1
1416endif
1417endif
1418ifndef INSTALL_PREFIX
1419ifdef PREFIX
1420INSTALL_PREFIX=$(PREFIX)
1421endif
1422endif
1423ifndef INSTALL_PREFIX
1424ifdef UNIXHier
1425INSTALL_PREFIX=/usr/local
1426else
1427ifdef INSTALL_FPCPACKAGE
1428INSTALL_BASEDIR:=/pp
1429else
1430INSTALL_BASEDIR:=/$(PACKAGE_NAME)
1431endif
1432endif
1433endif
1434export INSTALL_PREFIX
1435ifdef INSTALL_FPCSUBDIR
1436export INSTALL_FPCSUBDIR
1437endif
1438ifndef DIST_DESTDIR
1439DIST_DESTDIR:=$(BASEDIR)
1440endif
1441export DIST_DESTDIR
1442ifndef COMPILER_UNITTARGETDIR
1443ifdef PACKAGEDIR_MAIN
1444COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
1445else
1446COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
1447endif
1448endif
1449ifndef COMPILER_TARGETDIR
1450COMPILER_TARGETDIR=.
1451endif
1452ifndef INSTALL_BASEDIR
1453ifdef UNIXHier
1454ifdef INSTALL_FPCPACKAGE
1455INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
1456else
1457INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
1458endif
1459else
1460INSTALL_BASEDIR:=$(INSTALL_PREFIX)
1461endif
1462endif
1463ifndef INSTALL_BINDIR
1464ifdef UNIXHier
1465INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
1466else
1467INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
1468ifdef INSTALL_FPCPACKAGE
1469ifdef CROSSCOMPILE
1470ifdef CROSSINSTALL
1471INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
1472else
1473INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1474endif
1475else
1476INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1477endif
1478endif
1479endif
1480endif
1481ifndef INSTALL_UNITDIR
1482INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
1483ifdef INSTALL_FPCPACKAGE
1484ifdef PACKAGE_NAME
1485INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
1486endif
1487endif
1488endif
1489ifndef INSTALL_LIBDIR
1490ifdef UNIXHier
1491INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
1492else
1493INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
1494endif
1495endif
1496ifndef INSTALL_SOURCEDIR
1497ifdef UNIXHier
1498ifdef BSDhier
1499SRCPREFIXDIR=share/src
1500else
1501ifdef linuxHier
1502SRCPREFIXDIR=share/src
1503else
1504SRCPREFIXDIR=src
1505endif
1506endif
1507ifdef INSTALL_FPCPACKAGE
1508ifdef INSTALL_FPCSUBDIR
1509INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1510else
1511INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1512endif
1513else
1514INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1515endif
1516else
1517ifdef INSTALL_FPCPACKAGE
1518ifdef INSTALL_FPCSUBDIR
1519INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1520else
1521INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
1522endif
1523else
1524INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
1525endif
1526endif
1527endif
1528ifndef INSTALL_DOCDIR
1529ifdef UNIXHier
1530ifdef BSDhier
1531DOCPREFIXDIR=share/doc
1532else
1533ifdef linuxHier
1534DOCPREFIXDIR=share/doc
1535else
1536DOCPREFIXDIR=doc
1537endif
1538endif
1539ifdef INSTALL_FPCPACKAGE
1540INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1541else
1542INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1543endif
1544else
1545ifdef INSTALL_FPCPACKAGE
1546INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
1547else
1548INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
1549endif
1550endif
1551endif
1552ifndef INSTALL_EXAMPLEDIR
1553ifdef UNIXHier
1554ifdef INSTALL_FPCPACKAGE
1555ifdef BSDhier
1556INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1557else
1558ifdef linuxHier
1559INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
1560else
1561INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
1562endif
1563endif
1564else
1565ifdef BSDhier
1566INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1567else
1568ifdef linuxHier
1569INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1570else
1571INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1572endif
1573endif
1574endif
1575else
1576ifdef INSTALL_FPCPACKAGE
1577INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
1578else
1579INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
1580endif
1581endif
1582endif
1583ifndef INSTALL_DATADIR
1584INSTALL_DATADIR=$(INSTALL_BASEDIR)
1585endif
1586ifndef INSTALL_SHAREDDIR
1587INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
1588endif
1589ifdef CROSSCOMPILE
1590ifndef CROSSBINDIR
1591CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
1592ifeq ($(CROSSBINDIR),)
1593CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
1594endif
1595endif
1596else
1597CROSSBINDIR=
1598endif
1599BATCHEXT=.bat
1600LOADEREXT=.as
1601EXEEXT=.exe
1602PPLEXT=.ppl
1603PPUEXT=.ppu
1604OEXT=.o
1605ASMEXT=.s
1606SMARTEXT=.sl
1607STATICLIBEXT=.a
1608SHAREDLIBEXT=.so
1609SHAREDLIBPREFIX=libfp
1610STATICLIBPREFIX=libp
1611IMPORTLIBPREFIX=libimp
1612RSTEXT=.rst
1613EXEDBGEXT=.dbg
1614ifeq ($(OS_TARGET),go32v1)
1615STATICLIBPREFIX=
1616SHORTSUFFIX=v1
1617endif
1618ifeq ($(OS_TARGET),go32v2)
1619STATICLIBPREFIX=
1620SHORTSUFFIX=dos
1621IMPORTLIBPREFIX=
1622endif
1623ifeq ($(OS_TARGET),watcom)
1624STATICLIBPREFIX=
1625OEXT=.obj
1626ASMEXT=.asm
1627SHAREDLIBEXT=.dll
1628SHORTSUFFIX=wat
1629IMPORTLIBPREFIX=
1630endif
1631ifneq ($(CPU_TARGET),jvm)
1632ifeq ($(OS_TARGET),android)
1633BATCHEXT=.sh
1634EXEEXT=
1635HASSHAREDLIB=1
1636SHORTSUFFIX=lnx
1637endif
1638endif
1639ifeq ($(OS_TARGET),linux)
1640BATCHEXT=.sh
1641EXEEXT=
1642HASSHAREDLIB=1
1643SHORTSUFFIX=lnx
1644endif
1645ifeq ($(OS_TARGET),dragonfly)
1646BATCHEXT=.sh
1647EXEEXT=
1648HASSHAREDLIB=1
1649SHORTSUFFIX=df
1650endif
1651ifeq ($(OS_TARGET),freebsd)
1652BATCHEXT=.sh
1653EXEEXT=
1654HASSHAREDLIB=1
1655SHORTSUFFIX=fbs
1656endif
1657ifeq ($(OS_TARGET),netbsd)
1658BATCHEXT=.sh
1659EXEEXT=
1660HASSHAREDLIB=1
1661SHORTSUFFIX=nbs
1662endif
1663ifeq ($(OS_TARGET),openbsd)
1664BATCHEXT=.sh
1665EXEEXT=
1666HASSHAREDLIB=1
1667SHORTSUFFIX=obs
1668endif
1669ifeq ($(OS_TARGET),win32)
1670SHAREDLIBEXT=.dll
1671SHORTSUFFIX=w32
1672endif
1673ifeq ($(OS_TARGET),os2)
1674BATCHEXT=.cmd
1675AOUTEXT=.out
1676STATICLIBPREFIX=
1677SHAREDLIBEXT=.dll
1678SHORTSUFFIX=os2
1679ECHO=echo
1680IMPORTLIBPREFIX=
1681endif
1682ifeq ($(OS_TARGET),emx)
1683BATCHEXT=.cmd
1684AOUTEXT=.out
1685STATICLIBPREFIX=
1686SHAREDLIBEXT=.dll
1687SHORTSUFFIX=emx
1688ECHO=echo
1689IMPORTLIBPREFIX=
1690endif
1691ifeq ($(OS_TARGET),amiga)
1692EXEEXT=
1693SHAREDLIBEXT=.library
1694SHORTSUFFIX=amg
1695endif
1696ifeq ($(OS_TARGET),aros)
1697EXEEXT=
1698SHAREDLIBEXT=.library
1699SHORTSUFFIX=aros
1700endif
1701ifeq ($(OS_TARGET),morphos)
1702EXEEXT=
1703SHAREDLIBEXT=.library
1704SHORTSUFFIX=mos
1705endif
1706ifeq ($(OS_TARGET),atari)
1707EXEEXT=.ttp
1708SHORTSUFFIX=ata
1709endif
1710ifeq ($(OS_TARGET),beos)
1711BATCHEXT=.sh
1712EXEEXT=
1713SHORTSUFFIX=be
1714endif
1715ifeq ($(OS_TARGET),haiku)
1716BATCHEXT=.sh
1717EXEEXT=
1718SHORTSUFFIX=hai
1719endif
1720ifeq ($(OS_TARGET),solaris)
1721BATCHEXT=.sh
1722EXEEXT=
1723SHORTSUFFIX=sun
1724endif
1725ifeq ($(OS_TARGET),qnx)
1726BATCHEXT=.sh
1727EXEEXT=
1728SHORTSUFFIX=qnx
1729endif
1730ifeq ($(OS_TARGET),netware)
1731EXEEXT=.nlm
1732STATICLIBPREFIX=
1733SHORTSUFFIX=nw
1734IMPORTLIBPREFIX=imp
1735endif
1736ifeq ($(OS_TARGET),netwlibc)
1737EXEEXT=.nlm
1738STATICLIBPREFIX=
1739SHORTSUFFIX=nwl
1740IMPORTLIBPREFIX=imp
1741endif
1742ifeq ($(OS_TARGET),macosclassic)
1743BATCHEXT=
1744EXEEXT=
1745DEBUGSYMEXT=.xcoff
1746SHORTSUFFIX=mac
1747IMPORTLIBPREFIX=imp
1748endif
1749ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
1750BATCHEXT=.sh
1751EXEEXT=
1752HASSHAREDLIB=1
1753SHORTSUFFIX=dwn
1754EXEDBGEXT=.dSYM
1755endif
1756ifeq ($(OS_TARGET),gba)
1757EXEEXT=.gba
1758SHAREDLIBEXT=.so
1759SHORTSUFFIX=gba
1760endif
1761ifeq ($(OS_TARGET),symbian)
1762SHAREDLIBEXT=.dll
1763SHORTSUFFIX=symbian
1764endif
1765ifeq ($(OS_TARGET),NativeNT)
1766SHAREDLIBEXT=.dll
1767SHORTSUFFIX=nativent
1768endif
1769ifeq ($(OS_TARGET),wii)
1770EXEEXT=.dol
1771SHAREDLIBEXT=.so
1772SHORTSUFFIX=wii
1773endif
1774ifeq ($(OS_TARGET),aix)
1775BATCHEXT=.sh
1776EXEEXT=
1777SHAREDLIBEXT=.a
1778SHORTSUFFIX=aix
1779endif
1780ifeq ($(OS_TARGET),java)
1781OEXT=.class
1782ASMEXT=.j
1783SHAREDLIBEXT=.jar
1784SHORTSUFFIX=java
1785endif
1786ifeq ($(CPU_TARGET),jvm)
1787ifeq ($(OS_TARGET),android)
1788OEXT=.class
1789ASMEXT=.j
1790SHAREDLIBEXT=.jar
1791SHORTSUFFIX=android
1792endif
1793endif
1794ifeq ($(OS_TARGET),msdos)
1795STATICLIBPREFIX=
1796STATICLIBEXT=.a
1797SHORTSUFFIX=d16
1798endif
1799ifeq ($(OS_TARGET),embedded)
1800ifeq ($(CPU_TARGET),i8086)
1801STATICLIBPREFIX=
1802STATICLIBEXT=.a
1803else
1804EXEEXT=.bin
1805endif
1806SHORTSUFFIX=emb
1807endif
1808ifeq ($(OS_TARGET),win16)
1809STATICLIBPREFIX=
1810STATICLIBEXT=.a
1811SHAREDLIBEXT=.dll
1812SHORTSUFFIX=w16
1813endif
1814ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
1815FPCMADE=fpcmade.$(SHORTSUFFIX)
1816ZIPSUFFIX=$(SHORTSUFFIX)
1817ZIPCROSSPREFIX=
1818ZIPSOURCESUFFIX=src
1819ZIPEXAMPLESUFFIX=exm
1820else
1821FPCMADE=fpcmade.$(TARGETSUFFIX)
1822ZIPSOURCESUFFIX=.source
1823ZIPEXAMPLESUFFIX=.examples
1824ifdef CROSSCOMPILE
1825ZIPSUFFIX=.$(SOURCESUFFIX)
1826ZIPCROSSPREFIX=$(TARGETSUFFIX)-
1827else
1828ZIPSUFFIX=.$(TARGETSUFFIX)
1829ZIPCROSSPREFIX=
1830endif
1831endif
1832ifndef ECHO
1833ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
1834ifeq ($(ECHO),)
1835ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
1836ifeq ($(ECHO),)
1837ECHO= __missing_command_ECHO
1838else
1839ECHO:=$(firstword $(ECHO))
1840endif
1841else
1842ECHO:=$(firstword $(ECHO))
1843endif
1844endif
1845export ECHO
1846ifndef DATE
1847DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
1848ifeq ($(DATE),)
1849DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
1850ifeq ($(DATE),)
1851DATE= __missing_command_DATE
1852else
1853DATE:=$(firstword $(DATE))
1854endif
1855else
1856DATE:=$(firstword $(DATE))
1857endif
1858endif
1859export DATE
1860ifndef GINSTALL
1861GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
1862ifeq ($(GINSTALL),)
1863GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
1864ifeq ($(GINSTALL),)
1865GINSTALL= __missing_command_GINSTALL
1866else
1867GINSTALL:=$(firstword $(GINSTALL))
1868endif
1869else
1870GINSTALL:=$(firstword $(GINSTALL))
1871endif
1872endif
1873export GINSTALL
1874ifndef CPPROG
1875CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
1876ifeq ($(CPPROG),)
1877CPPROG= __missing_command_CPPROG
1878else
1879CPPROG:=$(firstword $(CPPROG))
1880endif
1881endif
1882export CPPROG
1883ifndef RMPROG
1884RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
1885ifeq ($(RMPROG),)
1886RMPROG= __missing_command_RMPROG
1887else
1888RMPROG:=$(firstword $(RMPROG))
1889endif
1890endif
1891export RMPROG
1892ifndef MVPROG
1893MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
1894ifeq ($(MVPROG),)
1895MVPROG= __missing_command_MVPROG
1896else
1897MVPROG:=$(firstword $(MVPROG))
1898endif
1899endif
1900export MVPROG
1901ifndef MKDIRPROG
1902MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
1903ifeq ($(MKDIRPROG),)
1904MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
1905ifeq ($(MKDIRPROG),)
1906MKDIRPROG= __missing_command_MKDIRPROG
1907else
1908MKDIRPROG:=$(firstword $(MKDIRPROG))
1909endif
1910else
1911MKDIRPROG:=$(firstword $(MKDIRPROG))
1912endif
1913endif
1914export MKDIRPROG
1915ifndef ECHOREDIR
1916ifndef inUnix
1917ECHOREDIR=echo
1918else
1919ECHOREDIR=$(ECHO)
1920endif
1921endif
1922ifndef COPY
1923COPY:=$(CPPROG) -fp
1924endif
1925ifndef COPYTREE
1926COPYTREE:=$(CPPROG) -Rfp
1927endif
1928ifndef MKDIRTREE
1929MKDIRTREE:=$(MKDIRPROG) -p
1930endif
1931ifndef MOVE
1932MOVE:=$(MVPROG) -f
1933endif
1934ifndef DEL
1935DEL:=$(RMPROG) -f
1936endif
1937ifndef DELTREE
1938DELTREE:=$(RMPROG) -rf
1939endif
1940ifndef INSTALL
1941ifdef inUnix
1942INSTALL:=$(GINSTALL) -c -m 644
1943else
1944INSTALL:=$(COPY)
1945endif
1946endif
1947ifndef INSTALLEXE
1948ifdef inUnix
1949INSTALLEXE:=$(GINSTALL) -c -m 755
1950else
1951INSTALLEXE:=$(COPY)
1952endif
1953endif
1954ifndef MKDIR
1955MKDIR:=$(GINSTALL) -m 755 -d
1956endif
1957export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
1958ifndef PPUMOVE
1959PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
1960ifeq ($(PPUMOVE),)
1961PPUMOVE= __missing_command_PPUMOVE
1962else
1963PPUMOVE:=$(firstword $(PPUMOVE))
1964endif
1965endif
1966export PPUMOVE
1967ifndef FPCMAKE
1968FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
1969ifeq ($(FPCMAKE),)
1970FPCMAKE= __missing_command_FPCMAKE
1971else
1972FPCMAKE:=$(firstword $(FPCMAKE))
1973endif
1974endif
1975export FPCMAKE
1976ifndef ZIPPROG
1977ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
1978ifeq ($(ZIPPROG),)
1979ZIPPROG= __missing_command_ZIPPROG
1980else
1981ZIPPROG:=$(firstword $(ZIPPROG))
1982endif
1983endif
1984export ZIPPROG
1985ifndef TARPROG
1986TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
1987ifeq ($(TARPROG),)
1988TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
1989ifeq ($(TARPROG),)
1990TARPROG= __missing_command_TARPROG
1991else
1992TARPROG:=$(firstword $(TARPROG))
1993endif
1994else
1995TARPROG:=$(firstword $(TARPROG))
1996endif
1997endif
1998export TARPROG
1999ASNAME=$(BINUTILSPREFIX)as
2000LDNAME=$(BINUTILSPREFIX)ld
2001ARNAME=$(BINUTILSPREFIX)ar
2002RCNAME=$(BINUTILSPREFIX)rc
2003NASMNAME=$(BINUTILSPREFIX)nasm
2004ifndef ASPROG
2005ifdef CROSSBINDIR
2006ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
2007else
2008ASPROG=$(ASNAME)
2009endif
2010endif
2011ifndef LDPROG
2012ifdef CROSSBINDIR
2013LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
2014else
2015LDPROG=$(LDNAME)
2016endif
2017endif
2018ifndef RCPROG
2019ifdef CROSSBINDIR
2020RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
2021else
2022RCPROG=$(RCNAME)
2023endif
2024endif
2025ifndef ARPROG
2026ifdef CROSSBINDIR
2027ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
2028else
2029ARPROG=$(ARNAME)
2030endif
2031endif
2032ifndef NASMPROG
2033ifdef CROSSBINDIR
2034NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
2035else
2036NASMPROG=$(NASMNAME)
2037endif
2038endif
2039AS=$(ASPROG)
2040LD=$(LDPROG)
2041RC=$(RCPROG)
2042AR=$(ARPROG)
2043NASM=$(NASMPROG)
2044ifdef inUnix
2045PPAS=./ppas$(SRCBATCHEXT)
2046else
2047PPAS=ppas$(SRCBATCHEXT)
2048endif
2049ifdef inUnix
2050LDCONFIG=ldconfig
2051else
2052LDCONFIG=
2053endif
2054ifdef DATE
2055DATESTR:=$(shell $(DATE) +%Y%m%d)
2056else
2057DATESTR=
2058endif
2059ZIPOPT=-9
2060ZIPEXT=.zip
2061ifeq ($(USETAR),bz2)
2062TAROPT=vj
2063TAREXT=.tar.bz2
2064else
2065TAROPT=vz
2066TAREXT=.tar.gz
2067endif
2068override REQUIRE_PACKAGES=rtl
2069ifeq ($(FULL_TARGET),i386-linux)
2070REQUIRE_PACKAGES_RTL=1
2071endif
2072ifeq ($(FULL_TARGET),i386-go32v2)
2073REQUIRE_PACKAGES_RTL=1
2074endif
2075ifeq ($(FULL_TARGET),i386-win32)
2076REQUIRE_PACKAGES_RTL=1
2077endif
2078ifeq ($(FULL_TARGET),i386-os2)
2079REQUIRE_PACKAGES_RTL=1
2080endif
2081ifeq ($(FULL_TARGET),i386-freebsd)
2082REQUIRE_PACKAGES_RTL=1
2083endif
2084ifeq ($(FULL_TARGET),i386-beos)
2085REQUIRE_PACKAGES_RTL=1
2086endif
2087ifeq ($(FULL_TARGET),i386-haiku)
2088REQUIRE_PACKAGES_RTL=1
2089endif
2090ifeq ($(FULL_TARGET),i386-netbsd)
2091REQUIRE_PACKAGES_RTL=1
2092endif
2093ifeq ($(FULL_TARGET),i386-solaris)
2094REQUIRE_PACKAGES_RTL=1
2095endif
2096ifeq ($(FULL_TARGET),i386-netware)
2097REQUIRE_PACKAGES_RTL=1
2098endif
2099ifeq ($(FULL_TARGET),i386-openbsd)
2100REQUIRE_PACKAGES_RTL=1
2101endif
2102ifeq ($(FULL_TARGET),i386-wdosx)
2103REQUIRE_PACKAGES_RTL=1
2104endif
2105ifeq ($(FULL_TARGET),i386-darwin)
2106REQUIRE_PACKAGES_RTL=1
2107endif
2108ifeq ($(FULL_TARGET),i386-emx)
2109REQUIRE_PACKAGES_RTL=1
2110endif
2111ifeq ($(FULL_TARGET),i386-watcom)
2112REQUIRE_PACKAGES_RTL=1
2113endif
2114ifeq ($(FULL_TARGET),i386-netwlibc)
2115REQUIRE_PACKAGES_RTL=1
2116endif
2117ifeq ($(FULL_TARGET),i386-wince)
2118REQUIRE_PACKAGES_RTL=1
2119endif
2120ifeq ($(FULL_TARGET),i386-embedded)
2121REQUIRE_PACKAGES_RTL=1
2122endif
2123ifeq ($(FULL_TARGET),i386-symbian)
2124REQUIRE_PACKAGES_RTL=1
2125endif
2126ifeq ($(FULL_TARGET),i386-nativent)
2127REQUIRE_PACKAGES_RTL=1
2128endif
2129ifeq ($(FULL_TARGET),i386-iphonesim)
2130REQUIRE_PACKAGES_RTL=1
2131endif
2132ifeq ($(FULL_TARGET),i386-android)
2133REQUIRE_PACKAGES_RTL=1
2134endif
2135ifeq ($(FULL_TARGET),i386-aros)
2136REQUIRE_PACKAGES_RTL=1
2137endif
2138ifeq ($(FULL_TARGET),m68k-linux)
2139REQUIRE_PACKAGES_RTL=1
2140endif
2141ifeq ($(FULL_TARGET),m68k-netbsd)
2142REQUIRE_PACKAGES_RTL=1
2143endif
2144ifeq ($(FULL_TARGET),m68k-amiga)
2145REQUIRE_PACKAGES_RTL=1
2146endif
2147ifeq ($(FULL_TARGET),m68k-atari)
2148REQUIRE_PACKAGES_RTL=1
2149endif
2150ifeq ($(FULL_TARGET),m68k-palmos)
2151REQUIRE_PACKAGES_RTL=1
2152endif
2153ifeq ($(FULL_TARGET),m68k-macosclassic)
2154REQUIRE_PACKAGES_RTL=1
2155endif
2156ifeq ($(FULL_TARGET),m68k-embedded)
2157REQUIRE_PACKAGES_RTL=1
2158endif
2159ifeq ($(FULL_TARGET),powerpc-linux)
2160REQUIRE_PACKAGES_RTL=1
2161endif
2162ifeq ($(FULL_TARGET),powerpc-netbsd)
2163REQUIRE_PACKAGES_RTL=1
2164endif
2165ifeq ($(FULL_TARGET),powerpc-amiga)
2166REQUIRE_PACKAGES_RTL=1
2167endif
2168ifeq ($(FULL_TARGET),powerpc-macosclassic)
2169REQUIRE_PACKAGES_RTL=1
2170endif
2171ifeq ($(FULL_TARGET),powerpc-darwin)
2172REQUIRE_PACKAGES_RTL=1
2173endif
2174ifeq ($(FULL_TARGET),powerpc-morphos)
2175REQUIRE_PACKAGES_RTL=1
2176endif
2177ifeq ($(FULL_TARGET),powerpc-embedded)
2178REQUIRE_PACKAGES_RTL=1
2179endif
2180ifeq ($(FULL_TARGET),powerpc-wii)
2181REQUIRE_PACKAGES_RTL=1
2182endif
2183ifeq ($(FULL_TARGET),powerpc-aix)
2184REQUIRE_PACKAGES_RTL=1
2185endif
2186ifeq ($(FULL_TARGET),sparc-linux)
2187REQUIRE_PACKAGES_RTL=1
2188endif
2189ifeq ($(FULL_TARGET),sparc-netbsd)
2190REQUIRE_PACKAGES_RTL=1
2191endif
2192ifeq ($(FULL_TARGET),sparc-solaris)
2193REQUIRE_PACKAGES_RTL=1
2194endif
2195ifeq ($(FULL_TARGET),sparc-embedded)
2196REQUIRE_PACKAGES_RTL=1
2197endif
2198ifeq ($(FULL_TARGET),x86_64-linux)
2199REQUIRE_PACKAGES_RTL=1
2200endif
2201ifeq ($(FULL_TARGET),x86_64-freebsd)
2202REQUIRE_PACKAGES_RTL=1
2203endif
2204ifeq ($(FULL_TARGET),x86_64-haiku)
2205REQUIRE_PACKAGES_RTL=1
2206endif
2207ifeq ($(FULL_TARGET),x86_64-netbsd)
2208REQUIRE_PACKAGES_RTL=1
2209endif
2210ifeq ($(FULL_TARGET),x86_64-solaris)
2211REQUIRE_PACKAGES_RTL=1
2212endif
2213ifeq ($(FULL_TARGET),x86_64-openbsd)
2214REQUIRE_PACKAGES_RTL=1
2215endif
2216ifeq ($(FULL_TARGET),x86_64-darwin)
2217REQUIRE_PACKAGES_RTL=1
2218endif
2219ifeq ($(FULL_TARGET),x86_64-win64)
2220REQUIRE_PACKAGES_RTL=1
2221endif
2222ifeq ($(FULL_TARGET),x86_64-embedded)
2223REQUIRE_PACKAGES_RTL=1
2224endif
2225ifeq ($(FULL_TARGET),x86_64-iphonesim)
2226REQUIRE_PACKAGES_RTL=1
2227endif
2228ifeq ($(FULL_TARGET),x86_64-android)
2229REQUIRE_PACKAGES_RTL=1
2230endif
2231ifeq ($(FULL_TARGET),x86_64-aros)
2232REQUIRE_PACKAGES_RTL=1
2233endif
2234ifeq ($(FULL_TARGET),x86_64-dragonfly)
2235REQUIRE_PACKAGES_RTL=1
2236endif
2237ifeq ($(FULL_TARGET),arm-linux)
2238REQUIRE_PACKAGES_RTL=1
2239endif
2240ifeq ($(FULL_TARGET),arm-netbsd)
2241REQUIRE_PACKAGES_RTL=1
2242endif
2243ifeq ($(FULL_TARGET),arm-palmos)
2244REQUIRE_PACKAGES_RTL=1
2245endif
2246ifeq ($(FULL_TARGET),arm-wince)
2247REQUIRE_PACKAGES_RTL=1
2248endif
2249ifeq ($(FULL_TARGET),arm-gba)
2250REQUIRE_PACKAGES_RTL=1
2251endif
2252ifeq ($(FULL_TARGET),arm-nds)
2253REQUIRE_PACKAGES_RTL=1
2254endif
2255ifeq ($(FULL_TARGET),arm-embedded)
2256REQUIRE_PACKAGES_RTL=1
2257endif
2258ifeq ($(FULL_TARGET),arm-symbian)
2259REQUIRE_PACKAGES_RTL=1
2260endif
2261ifeq ($(FULL_TARGET),arm-android)
2262REQUIRE_PACKAGES_RTL=1
2263endif
2264ifeq ($(FULL_TARGET),arm-aros)
2265REQUIRE_PACKAGES_RTL=1
2266endif
2267ifeq ($(FULL_TARGET),arm-ios)
2268REQUIRE_PACKAGES_RTL=1
2269endif
2270ifeq ($(FULL_TARGET),powerpc64-linux)
2271REQUIRE_PACKAGES_RTL=1
2272endif
2273ifeq ($(FULL_TARGET),powerpc64-darwin)
2274REQUIRE_PACKAGES_RTL=1
2275endif
2276ifeq ($(FULL_TARGET),powerpc64-embedded)
2277REQUIRE_PACKAGES_RTL=1
2278endif
2279ifeq ($(FULL_TARGET),powerpc64-aix)
2280REQUIRE_PACKAGES_RTL=1
2281endif
2282ifeq ($(FULL_TARGET),avr-embedded)
2283REQUIRE_PACKAGES_RTL=1
2284endif
2285ifeq ($(FULL_TARGET),armeb-linux)
2286REQUIRE_PACKAGES_RTL=1
2287endif
2288ifeq ($(FULL_TARGET),armeb-embedded)
2289REQUIRE_PACKAGES_RTL=1
2290endif
2291ifeq ($(FULL_TARGET),mips-linux)
2292REQUIRE_PACKAGES_RTL=1
2293endif
2294ifeq ($(FULL_TARGET),mipsel-linux)
2295REQUIRE_PACKAGES_RTL=1
2296endif
2297ifeq ($(FULL_TARGET),mipsel-embedded)
2298REQUIRE_PACKAGES_RTL=1
2299endif
2300ifeq ($(FULL_TARGET),mipsel-android)
2301REQUIRE_PACKAGES_RTL=1
2302endif
2303ifeq ($(FULL_TARGET),jvm-java)
2304REQUIRE_PACKAGES_RTL=1
2305endif
2306ifeq ($(FULL_TARGET),jvm-android)
2307REQUIRE_PACKAGES_RTL=1
2308endif
2309ifeq ($(FULL_TARGET),i8086-embedded)
2310REQUIRE_PACKAGES_RTL=1
2311endif
2312ifeq ($(FULL_TARGET),i8086-msdos)
2313REQUIRE_PACKAGES_RTL=1
2314endif
2315ifeq ($(FULL_TARGET),i8086-win16)
2316REQUIRE_PACKAGES_RTL=1
2317endif
2318ifeq ($(FULL_TARGET),aarch64-linux)
2319REQUIRE_PACKAGES_RTL=1
2320endif
2321ifeq ($(FULL_TARGET),aarch64-darwin)
2322REQUIRE_PACKAGES_RTL=1
2323endif
2324ifeq ($(FULL_TARGET),aarch64-android)
2325REQUIRE_PACKAGES_RTL=1
2326endif
2327ifeq ($(FULL_TARGET),aarch64-ios)
2328REQUIRE_PACKAGES_RTL=1
2329endif
2330ifeq ($(FULL_TARGET),wasm-wasm)
2331REQUIRE_PACKAGES_RTL=1
2332endif
2333ifeq ($(FULL_TARGET),sparc64-linux)
2334REQUIRE_PACKAGES_RTL=1
2335endif
2336ifdef REQUIRE_PACKAGES_RTL
2337PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
2338ifneq ($(PACKAGEDIR_RTL),)
2339ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
2340UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
2341else
2342UNITDIR_RTL=$(PACKAGEDIR_RTL)
2343endif
2344ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
2345UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
2346else
2347ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
2348UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
2349else
2350UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
2351endif
2352endif
2353ifdef CHECKDEPEND
2354$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
2355	$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
2356override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
2357endif
2358else
2359PACKAGEDIR_RTL=
2360UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
2361ifneq ($(UNITDIR_RTL),)
2362UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
2363else
2364UNITDIR_RTL=
2365endif
2366endif
2367ifdef UNITDIR_RTL
2368override COMPILER_UNITDIR+=$(UNITDIR_RTL)
2369endif
2370ifdef UNITDIR_FPMAKE_RTL
2371override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
2372endif
2373endif
2374ifndef NOCPUDEF
2375override FPCOPTDEF=$(ARCH)
2376endif
2377ifneq ($(OS_TARGET),$(OS_SOURCE))
2378override FPCOPT+=-T$(OS_TARGET)
2379endif
2380ifneq ($(CPU_TARGET),$(CPU_SOURCE))
2381override FPCOPT+=-P$(ARCH)
2382endif
2383ifeq ($(OS_SOURCE),openbsd)
2384override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
2385override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
2386override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
2387endif
2388ifndef CROSSBOOTSTRAP
2389ifneq ($(BINUTILSPREFIX),)
2390override FPCOPT+=-XP$(BINUTILSPREFIX)
2391endif
2392ifneq ($(BINUTILSPREFIX),)
2393override FPCOPT+=-Xr$(RLINKPATH)
2394endif
2395endif
2396ifndef CROSSCOMPILE
2397ifneq ($(BINUTILSPREFIX),)
2398override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
2399override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
2400endif
2401endif
2402ifdef UNITDIR
2403override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
2404endif
2405ifdef LIBDIR
2406override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
2407endif
2408ifdef OBJDIR
2409override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
2410endif
2411ifdef INCDIR
2412override FPCOPT+=$(addprefix -Fi,$(INCDIR))
2413endif
2414ifdef LINKSMART
2415override FPCOPT+=-XX
2416endif
2417ifdef CREATESMART
2418override FPCOPT+=-CX
2419endif
2420ifdef DEBUG
2421override FPCOPT+=-gl
2422override FPCOPTDEF+=DEBUG
2423endif
2424ifdef RELEASE
2425FPCCPUOPT:=-O2
2426override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
2427override FPCOPTDEF+=RELEASE
2428endif
2429ifdef STRIP
2430override FPCOPT+=-Xs
2431endif
2432ifdef OPTIMIZE
2433override FPCOPT+=-O2
2434endif
2435ifdef VERBOSE
2436override FPCOPT+=-vwni
2437endif
2438ifdef COMPILER_OPTIONS
2439override FPCOPT+=$(COMPILER_OPTIONS)
2440endif
2441ifdef COMPILER_UNITDIR
2442override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
2443endif
2444ifdef COMPILER_LIBRARYDIR
2445override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
2446endif
2447ifdef COMPILER_OBJECTDIR
2448override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
2449endif
2450ifdef COMPILER_INCLUDEDIR
2451override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
2452endif
2453ifdef CROSSBINDIR
2454override FPCOPT+=-FD$(CROSSBINDIR)
2455endif
2456ifdef COMPILER_TARGETDIR
2457override FPCOPT+=-FE$(COMPILER_TARGETDIR)
2458ifeq ($(COMPILER_TARGETDIR),.)
2459override TARGETDIRPREFIX=
2460else
2461override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
2462endif
2463endif
2464ifdef COMPILER_UNITTARGETDIR
2465override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
2466ifeq ($(COMPILER_UNITTARGETDIR),.)
2467override UNITTARGETDIRPREFIX=
2468else
2469override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
2470endif
2471else
2472ifdef COMPILER_TARGETDIR
2473override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
2474override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
2475endif
2476endif
2477ifdef CREATESHARED
2478override FPCOPT+=-Cg
2479endif
2480ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
2481ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
2482override FPCOPT+=-Cg
2483endif
2484endif
2485ifdef LINKSHARED
2486endif
2487ifdef OPT
2488override FPCOPT+=$(OPT)
2489endif
2490ifdef FPMAKEBUILDOPT
2491override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
2492endif
2493ifdef FPCOPTDEF
2494override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
2495endif
2496ifdef CFGFILE
2497override FPCOPT+=@$(CFGFILE)
2498endif
2499ifdef USEENV
2500override FPCEXTCMD:=$(FPCOPT)
2501override FPCOPT:=!FPCEXTCMD
2502export FPCEXTCMD
2503endif
2504override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
2505override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
2506ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
2507override ACROSSCOMPILE=1
2508endif
2509ifdef ACROSSCOMPILE
2510override FPCOPT+=$(CROSSOPT)
2511endif
2512override COMPILER:=$(strip $(FPC) $(FPCOPT))
2513ifneq (,$(findstring -sh ,$(COMPILER)))
2514UseEXECPPAS=1
2515endif
2516ifneq (,$(findstring -s ,$(COMPILER)))
2517ifeq ($(FULL_SOURCE),$(FULL_TARGET))
2518UseEXECPPAS=1
2519endif
2520endif
2521ifneq ($(UseEXECPPAS),1)
2522EXECPPAS=
2523else
2524ifdef RUNBATCH
2525EXECPPAS:=@$(RUNBATCH) $(PPAS)
2526else
2527EXECPPAS:=@$(PPAS)
2528endif
2529endif
2530.PHONY: fpc_exes
2531ifndef CROSSINSTALL
2532ifneq ($(TARGET_PROGRAMS),)
2533override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
2534override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
2535override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
2536override ALLTARGET+=fpc_exes
2537override INSTALLEXEFILES+=$(EXEFILES)
2538override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
2539override CLEANEXEDBGFILES+=$(EXEDBGFILES)
2540ifeq ($(OS_TARGET),os2)
2541override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
2542endif
2543ifeq ($(OS_TARGET),emx)
2544override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
2545endif
2546endif
2547endif
2548fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
2549ifdef TARGET_RSTS
2550override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
2551override CLEANRSTFILES+=$(RSTFILES)
2552endif
2553.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
2554$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
2555	@$(ECHOREDIR) Compiled > $(FPCMADE)
2556fpc_all: $(FPCMADE)
2557fpc_smart:
2558	$(MAKE) all LINKSMART=1 CREATESMART=1
2559fpc_debug:
2560	$(MAKE) all DEBUG=1
2561fpc_release:
2562	$(MAKE) all RELEASE=1
2563.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
2564$(COMPILER_UNITTARGETDIR):
2565	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
2566$(COMPILER_TARGETDIR):
2567	$(MKDIRTREE) $(COMPILER_TARGETDIR)
2568%$(PPUEXT): %.pp
2569	$(COMPILER) $<
2570	$(EXECPPAS)
2571%$(PPUEXT): %.pas
2572	$(COMPILER) $<
2573	$(EXECPPAS)
2574%$(EXEEXT): %.pp
2575	$(COMPILER) $<
2576	$(EXECPPAS)
2577%$(EXEEXT): %.pas
2578	$(COMPILER) $<
2579	$(EXECPPAS)
2580%$(EXEEXT): %.lpr
2581	$(COMPILER) $<
2582	$(EXECPPAS)
2583%$(EXEEXT): %.dpr
2584	$(COMPILER) $<
2585	$(EXECPPAS)
2586%.res: %.rc
2587	windres -i $< -o $@
2588vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2589vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2590vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2591vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2592vpath %.inc $(COMPILER_INCLUDEDIR)
2593vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
2594vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
2595.PHONY: fpc_shared
2596override INSTALLTARGET+=fpc_shared_install
2597ifndef SHARED_LIBVERSION
2598SHARED_LIBVERSION=$(FPC_VERSION)
2599endif
2600ifndef SHARED_LIBNAME
2601SHARED_LIBNAME=$(PACKAGE_NAME)
2602endif
2603ifndef SHARED_FULLNAME
2604SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
2605endif
2606ifndef SHARED_LIBUNITS
2607SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
2608override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
2609endif
2610fpc_shared:
2611ifdef HASSHAREDLIB
2612	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
2613ifneq ($(SHARED_BUILD),n)
2614	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
2615endif
2616else
2617	@$(ECHO) Shared Libraries not supported
2618endif
2619fpc_shared_install:
2620ifneq ($(SHARED_BUILD),n)
2621ifneq ($(SHARED_LIBUNITS),)
2622ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
2623	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
2624endif
2625endif
2626endif
2627.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
2628ifdef INSTALL_UNITS
2629override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
2630endif
2631ifdef INSTALL_BUILDUNIT
2632override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
2633endif
2634ifdef INSTALLPPUFILES
2635ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
2636override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
2637else
2638override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
2639endif
2640ifneq ($(UNITTARGETDIRPREFIX),)
2641override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
2642override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
2643endif
2644override INSTALL_CREATEPACKAGEFPC=1
2645endif
2646ifdef INSTALLEXEFILES
2647ifneq ($(TARGETDIRPREFIX),)
2648override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
2649endif
2650endif
2651fpc_install: all $(INSTALLTARGET)
2652ifdef INSTALLEXEFILES
2653	$(MKDIR) $(INSTALL_BINDIR)
2654	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
2655endif
2656ifdef INSTALL_CREATEPACKAGEFPC
2657ifdef FPCMAKE
2658ifdef PACKAGE_VERSION
2659ifneq ($(wildcard Makefile.fpc),)
2660	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
2661	$(MKDIR) $(INSTALL_UNITDIR)
2662	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
2663endif
2664endif
2665endif
2666endif
2667ifdef INSTALLPPUFILES
2668	$(MKDIR) $(INSTALL_UNITDIR)
2669	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
2670ifneq ($(INSTALLPPULINKFILES),)
2671	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
2672endif
2673ifneq ($(wildcard $(LIB_FULLNAME)),)
2674	$(MKDIR) $(INSTALL_LIBDIR)
2675	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
2676ifdef inUnix
2677	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
2678endif
2679endif
2680endif
2681ifdef INSTALL_FILES
2682	$(MKDIR) $(INSTALL_DATADIR)
2683	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
2684endif
2685fpc_sourceinstall: distclean
2686	$(MKDIR) $(INSTALL_SOURCEDIR)
2687	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
2688fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
2689ifdef HASEXAMPLES
2690	$(MKDIR) $(INSTALL_EXAMPLEDIR)
2691endif
2692ifdef EXAMPLESOURCEFILES
2693	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
2694endif
2695ifdef TARGET_EXAMPLEDIRS
2696	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
2697endif
2698.PHONY: fpc_clean fpc_cleanall fpc_distclean
2699ifdef EXEFILES
2700override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
2701override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
2702endif
2703ifdef CLEAN_PROGRAMS
2704override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
2705override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
2706endif
2707ifdef CLEAN_UNITS
2708override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
2709endif
2710ifdef CLEANPPUFILES
2711override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
2712ifdef DEBUGSYMEXT
2713override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
2714endif
2715override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
2716override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
2717endif
2718fpc_clean: $(CLEANTARGET)
2719ifdef CLEANEXEFILES
2720	-$(DEL) $(CLEANEXEFILES)
2721endif
2722ifdef CLEANEXEDBGFILES
2723	-$(DELTREE) $(CLEANEXEDBGFILES)
2724endif
2725ifdef CLEANPPUFILES
2726	-$(DEL) $(CLEANPPUFILES)
2727endif
2728ifneq ($(CLEANPPULINKFILES),)
2729	-$(DEL) $(CLEANPPULINKFILES)
2730endif
2731ifdef CLEANRSTFILES
2732	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
2733endif
2734ifdef CLEAN_FILES
2735	-$(DEL) $(CLEAN_FILES)
2736endif
2737ifdef LIB_NAME
2738	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
2739endif
2740	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
2741	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
2742fpc_cleanall: $(CLEANTARGET)
2743ifdef CLEANEXEFILES
2744	-$(DEL) $(CLEANEXEFILES)
2745endif
2746ifdef COMPILER_UNITTARGETDIR
2747ifdef CLEANPPUFILES
2748	-$(DEL) $(CLEANPPUFILES)
2749endif
2750ifneq ($(CLEANPPULINKFILES),)
2751	-$(DEL) $(CLEANPPULINKFILES)
2752endif
2753ifdef CLEANRSTFILES
2754	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
2755endif
2756endif
2757ifdef CLEAN_FILES
2758	-$(DEL) $(CLEAN_FILES)
2759endif
2760	-$(DELTREE) units
2761	-$(DELTREE) bin
2762	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
2763ifneq ($(PPUEXT),.ppu)
2764	-$(DEL) *.o *.ppu *.a
2765endif
2766	-$(DELTREE) *$(SMARTEXT)
2767	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
2768	-$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
2769ifdef AOUTEXT
2770	-$(DEL) *$(AOUTEXT)
2771endif
2772ifdef DEBUGSYMEXT
2773	-$(DEL) *$(DEBUGSYMEXT)
2774endif
2775ifdef LOCALFPMAKEBIN
2776	-$(DEL) $(LOCALFPMAKEBIN)
2777	-$(DEL) $(FPMAKEBINOBJ)
2778endif
2779fpc_distclean: cleanall
2780.PHONY: fpc_baseinfo
2781override INFORULES+=fpc_baseinfo
2782fpc_baseinfo:
2783	@$(ECHO)
2784	@$(ECHO)  == Package info ==
2785	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
2786	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
2787	@$(ECHO)
2788	@$(ECHO)  == Configuration info ==
2789	@$(ECHO)
2790	@$(ECHO)  FPC.......... $(FPC)
2791	@$(ECHO)  FPC Version.. $(FPC_VERSION)
2792	@$(ECHO)  Source CPU... $(CPU_SOURCE)
2793	@$(ECHO)  Target CPU... $(CPU_TARGET)
2794	@$(ECHO)  Source OS.... $(OS_SOURCE)
2795	@$(ECHO)  Target OS.... $(OS_TARGET)
2796	@$(ECHO)  Full Source.. $(FULL_SOURCE)
2797	@$(ECHO)  Full Target.. $(FULL_TARGET)
2798	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
2799	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
2800	@$(ECHO)  FPC fpmake... $(FPCFPMAKE)
2801	@$(ECHO)
2802	@$(ECHO)  == Directory info ==
2803	@$(ECHO)
2804	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
2805	@$(ECHO)
2806	@$(ECHO)  Basedir......... $(BASEDIR)
2807	@$(ECHO)  FPCDir.......... $(FPCDIR)
2808	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
2809	@$(ECHO)  UnitsDir........ $(UNITSDIR)
2810	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
2811	@$(ECHO)
2812	@$(ECHO)  GCC library..... $(GCCLIBDIR)
2813	@$(ECHO)  Other library... $(OTHERLIBDIR)
2814	@$(ECHO)
2815	@$(ECHO)  == Tools info ==
2816	@$(ECHO)
2817	@$(ECHO)  As........ $(AS)
2818	@$(ECHO)  Ld........ $(LD)
2819	@$(ECHO)  Ar........ $(AR)
2820	@$(ECHO)  Rc........ $(RC)
2821	@$(ECHO)
2822	@$(ECHO)  Mv........ $(MVPROG)
2823	@$(ECHO)  Cp........ $(CPPROG)
2824	@$(ECHO)  Rm........ $(RMPROG)
2825	@$(ECHO)  GInstall.. $(GINSTALL)
2826	@$(ECHO)  Echo...... $(ECHO)
2827	@$(ECHO)  Shell..... $(SHELL)
2828	@$(ECHO)  Date...... $(DATE)
2829	@$(ECHO)  FPCMake... $(FPCMAKE)
2830	@$(ECHO)  PPUMove... $(PPUMOVE)
2831	@$(ECHO)  Zip....... $(ZIPPROG)
2832	@$(ECHO)
2833	@$(ECHO)  == Object info ==
2834	@$(ECHO)
2835	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
2836	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
2837	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
2838	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
2839	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
2840	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
2841	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
2842	@$(ECHO)
2843	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
2844	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
2845	@$(ECHO)
2846	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
2847	@$(ECHO)  Install Files....... $(INSTALL_FILES)
2848	@$(ECHO)
2849	@$(ECHO)  == Install info ==
2850	@$(ECHO)
2851	@$(ECHO)  DateStr.............. $(DATESTR)
2852	@$(ECHO)  ZipName.............. $(ZIPNAME)
2853	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
2854	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
2855	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
2856	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
2857	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
2858	@$(ECHO)
2859	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
2860	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
2861	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
2862	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
2863	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
2864	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
2865	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
2866	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
2867	@$(ECHO)
2868	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
2869	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
2870	@$(ECHO)
2871.PHONY: fpc_info
2872fpc_info: $(INFORULES)
2873.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
2874	fpc_makefile_dirs
2875fpc_makefile:
2876	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
2877fpc_makefile_sub1:
2878ifdef TARGET_DIRS
2879	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
2880endif
2881ifdef TARGET_EXAMPLEDIRS
2882	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
2883endif
2884fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
2885fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
2886fpc_makefiles: fpc_makefile fpc_makefile_dirs
2887ifndef DATA2INC
2888DATA2INC:=$(strip $(wildcard $(addsuffix /data2inc$(SRCEXEEXT),$(SEARCHPATH))))
2889ifeq ($(DATA2INC),)
2890DATA2INC= __missing_command_DATA2INC
2891else
2892DATA2INC:=$(firstword $(DATA2INC))
2893endif
2894endif
2895export DATA2INC
2896all: fpc_all
2897debug: fpc_debug
2898smart: fpc_smart
2899release: fpc_release
2900units: fpc_units
2901examples:
2902shared: fpc_shared
2903install: fpc_install
2904sourceinstall: fpc_sourceinstall
2905exampleinstall: fpc_exampleinstall
2906distinstall:
2907zipinstall:
2908zipsourceinstall:
2909zipexampleinstall:
2910zipdistinstall:
2911clean: fpc_clean
2912distclean: fpc_distclean
2913cleanall: fpc_cleanall
2914info: fpc_info
2915makefiles: fpc_makefiles
2916.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
2917ifneq ($(wildcard fpcmake.loc),)
2918include fpcmake.loc
2919endif
2920.NOTPARALLEL:
2921REG_SOURCES=$(wildcard *reg.pp)
2922REG_EXES=$(subst .pp,$(EXEEXT),$(REG_SOURCES))
2923ifndef NOCPUDEF
2924ppu$(PPUEXT): ../ppu.pas
2925	$(MAKE) ppu$(PPUEXT) NOCPUDEF=1
2926ppudump$(EXEEXT): ppuutils/ppudump.pp ppu$(PPUEXT)
2927	$(MAKE) ppudump$(EXEEXT) NOCPUDEF=1
2928ppufiles$(EXEEXT): ppufiles.pp ppu$(PPUEXT)
2929	$(MAKE) ppufiles$(EXEEXT) NOCPUDEF=1
2930ppumove$(EXEEXT): ppumove.pp ppu$(PPUEXT)
2931	$(MAKE) ppumove$(EXEEXT) NOCPUDEF=1
2932else
2933ppu$(PPUEXT): ../ppu.pas
2934	$(COMPILER) ../ppu.pas -Fu../generic -dGENERIC_CPU -Fi..
2935ppudump$(EXEEXT): ppuutils/ppudump.pp ppu$(PPUEXT)
2936	$(COMPILER) ppuutils/ppudump.pp -Fu../generic -dGENERIC_CPU -Fi..
2937ppufiles$(EXEEXT): ppufiles.pp ppu$(PPUEXT)
2938	$(COMPILER) ppufiles.pp -Fu../generic -dGENERIC_CPU -Fi..
2939ppumove$(EXEEXT): ppumove.pp ppu$(PPUEXT)
2940	$(COMPILER) ppumove.pp -Fu../generic -dGENERIC_CPU -Fi..
2941endif
2942msg2inc$(EXEEXT): $(COMPILER_UNITTARGETDIR) msg2inc.pp
2943gppc386$(EXEEXT): $(COMPILER_UNITTARGETDIR) gppc386.pp
2944fpcsubst$(EXEEXT): fpcsubst.pp usubst.pp
2945fpcmkcfg$(EXEEXT): fpcmkcfg.pp usubst.pp fpccfg.inc fpcfg.inc fpini.inc
2946ifneq ($(DATA2INC),)
2947fpccfg.inc: fpc.cft
2948	$(DATA2INC) -b -s fpc.cft fpccfg.inc DefaultConfig
2949fpcfg.inc : fpinc.cfg
2950	$(DATA2INC) -b -s fpinc.cfg fpcfg.inc fpcfg
2951fpini.inc : fpinc.ini
2952	$(DATA2INC) -b -s fpinc.ini fpini.inc fpini
2953endif
2954reg_exes: $(COMPILER_UNITTARGETDIR)
2955	$(MAKE) $(REG_EXES)
2956unexport PPUFILES PPUMOVE
2957