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 OS_TARGET_DEFAULT=java
104override DEFAULT_FPCDIR=../..
105ifndef FPC
106ifdef PP
107FPC=$(PP)
108endif
109endif
110ifndef FPC
111FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
112ifneq ($(FPCPROG),)
113FPCPROG:=$(firstword $(FPCPROG))
114ifneq ($(CPU_TARGET),)
115FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
116else
117FPC:=$(shell $(FPCPROG) -PB)
118endif
119ifneq ($(findstring Error,$(FPC)),)
120override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
121else
122ifeq ($(strip $(wildcard $(FPC))),)
123FPC:=$(firstword $(FPCPROG))
124endif
125endif
126else
127override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
128endif
129endif
130override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
131override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
132FOUNDFPC:=$(strip $(wildcard $(FPC)))
133ifeq ($(FOUNDFPC),)
134FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
135ifeq ($(FOUNDFPC),)
136$(error Compiler $(FPC) not found)
137endif
138endif
139ifndef FPC_COMPILERINFO
140FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
141endif
142ifndef FPC_VERSION
143FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
144endif
145export FPC FPC_VERSION FPC_COMPILERINFO
146unexport CHECKDEPEND ALLDEPENDENCIES
147ifndef CPU_TARGET
148ifdef CPU_TARGET_DEFAULT
149CPU_TARGET=$(CPU_TARGET_DEFAULT)
150endif
151endif
152ifndef OS_TARGET
153ifdef OS_TARGET_DEFAULT
154OS_TARGET=$(OS_TARGET_DEFAULT)
155endif
156endif
157ifndef CPU_SOURCE
158CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
159endif
160ifndef CPU_TARGET
161CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
162endif
163ifndef OS_SOURCE
164OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
165endif
166ifndef OS_TARGET
167OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
168endif
169FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
170FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
171ifeq ($(CPU_TARGET),armeb)
172ARCH=arm
173override FPCOPT+=-Cb
174else
175ifeq ($(CPU_TARGET),armel)
176ARCH=arm
177override FPCOPT+=-CaEABI
178else
179ARCH=$(CPU_TARGET)
180endif
181endif
182ifeq ($(FULL_TARGET),arm-embedded)
183ifeq ($(SUBARCH),)
184$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
185endif
186override FPCOPT+=-Cp$(SUBARCH)
187endif
188ifeq ($(FULL_TARGET),avr-embedded)
189ifeq ($(SUBARCH),)
190$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
191endif
192override FPCOPT+=-Cp$(SUBARCH)
193endif
194ifeq ($(FULL_TARGET),mipsel-embedded)
195ifeq ($(SUBARCH),)
196$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
197endif
198override FPCOPT+=-Cp$(SUBARCH)
199endif
200ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
201TARGETSUFFIX=$(OS_TARGET)
202SOURCESUFFIX=$(OS_SOURCE)
203else
204ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
205TARGETSUFFIX=$(OS_TARGET)
206else
207TARGETSUFFIX=$(FULL_TARGET)
208endif
209SOURCESUFFIX=$(FULL_SOURCE)
210endif
211ifneq ($(FULL_TARGET),$(FULL_SOURCE))
212CROSSCOMPILE=1
213endif
214ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
215ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
216$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
217endif
218endif
219ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
220BSDhier=1
221endif
222ifeq ($(OS_TARGET),linux)
223linuxHier=1
224endif
225ifndef CROSSCOMPILE
226BUILDFULLNATIVE=1
227export BUILDFULLNATIVE
228endif
229ifdef BUILDFULLNATIVE
230BUILDNATIVE=1
231export BUILDNATIVE
232endif
233export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
234ifdef FPCDIR
235override FPCDIR:=$(subst \,/,$(FPCDIR))
236ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
237override FPCDIR=wrong
238endif
239else
240override FPCDIR=wrong
241endif
242ifdef DEFAULT_FPCDIR
243ifeq ($(FPCDIR),wrong)
244override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
245ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
246override FPCDIR=wrong
247endif
248endif
249endif
250ifeq ($(FPCDIR),wrong)
251ifdef inUnix
252override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
253ifeq ($(wildcard $(FPCDIR)/units),)
254override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
255endif
256else
257override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
258override FPCDIR:=$(FPCDIR)/..
259ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
260override FPCDIR:=$(FPCDIR)/..
261ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
262override FPCDIR:=$(BASEDIR)
263ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
264override FPCDIR=c:/pp
265endif
266endif
267endif
268endif
269endif
270ifndef CROSSBINDIR
271CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
272endif
273ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
274ifneq ($(findstring $(OS_SOURCE),darwin ios),)
275DARWIN2DARWIN=1
276endif
277endif
278ifndef BINUTILSPREFIX
279ifndef CROSSBINDIR
280ifdef CROSSCOMPILE
281ifneq ($(OS_TARGET),msdos)
282ifndef DARWIN2DARWIN
283ifneq ($(CPU_TARGET),jvm)
284BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
285ifeq ($(OS_TARGET),android)
286ifeq ($(CPU_TARGET),arm)
287BINUTILSPREFIX=arm-linux-androideabi-
288else
289ifeq ($(CPU_TARGET),i386)
290BINUTILSPREFIX=i686-linux-android-
291else
292BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
293endif
294endif
295endif
296endif
297endif
298else
299BINUTILSPREFIX=$(OS_TARGET)-
300endif
301endif
302endif
303endif
304UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
305ifeq ($(UNITSDIR),)
306UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
307endif
308PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
309ifndef FPCFPMAKE
310ifdef CROSSCOMPILE
311ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
312FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
313ifneq ($(FPCPROG),)
314FPCPROG:=$(firstword $(FPCPROG))
315FPCFPMAKE:=$(shell $(FPCPROG) -PB)
316ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
317FPCFPMAKE:=$(firstword $(FPCPROG))
318endif
319else
320override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
321endif
322else
323FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
324FPMAKE_SKIP_CONFIG=-n
325export FPCFPMAKE
326export FPMAKE_SKIP_CONFIG
327endif
328else
329FPMAKE_SKIP_CONFIG=-n
330FPCFPMAKE=$(FPC)
331endif
332endif
333override PACKAGE_NAME=rtl
334PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
335RTL=..
336INC=$(RTL)/inc
337COMMON=$(RTL)/common
338PROCINC=$(RTL)/$(CPU_TARGET)
339UNITPREFIX=rtl
340SYSTEMUNIT=system
341ifdef RELEASE
342override FPCOPT+=-Ur
343endif
344CPU_UNITS=
345SYSINIT_UNITS=
346ifeq ($(ARCH),arm)
347CPU_UNITS=lpc21x4 at91sam7x256 stellaris stm32f103
348endif
349GRAPHDIR=$(INC)/graph
350ifeq ($(FULL_TARGET),i386-linux)
351override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
352endif
353ifeq ($(FULL_TARGET),i386-go32v2)
354override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
355endif
356ifeq ($(FULL_TARGET),i386-win32)
357override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
358endif
359ifeq ($(FULL_TARGET),i386-os2)
360override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
361endif
362ifeq ($(FULL_TARGET),i386-freebsd)
363override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
364endif
365ifeq ($(FULL_TARGET),i386-beos)
366override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
367endif
368ifeq ($(FULL_TARGET),i386-haiku)
369override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
370endif
371ifeq ($(FULL_TARGET),i386-netbsd)
372override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
373endif
374ifeq ($(FULL_TARGET),i386-solaris)
375override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
376endif
377ifeq ($(FULL_TARGET),i386-netware)
378override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
379endif
380ifeq ($(FULL_TARGET),i386-openbsd)
381override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
382endif
383ifeq ($(FULL_TARGET),i386-wdosx)
384override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
385endif
386ifeq ($(FULL_TARGET),i386-darwin)
387override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
388endif
389ifeq ($(FULL_TARGET),i386-emx)
390override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
391endif
392ifeq ($(FULL_TARGET),i386-watcom)
393override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
394endif
395ifeq ($(FULL_TARGET),i386-netwlibc)
396override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
397endif
398ifeq ($(FULL_TARGET),i386-wince)
399override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
400endif
401ifeq ($(FULL_TARGET),i386-embedded)
402override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
403endif
404ifeq ($(FULL_TARGET),i386-symbian)
405override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
406endif
407ifeq ($(FULL_TARGET),i386-nativent)
408override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
409endif
410ifeq ($(FULL_TARGET),i386-iphonesim)
411override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
412endif
413ifeq ($(FULL_TARGET),i386-android)
414override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
415endif
416ifeq ($(FULL_TARGET),i386-aros)
417override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
418endif
419ifeq ($(FULL_TARGET),m68k-linux)
420override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
421endif
422ifeq ($(FULL_TARGET),m68k-netbsd)
423override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
424endif
425ifeq ($(FULL_TARGET),m68k-amiga)
426override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
427endif
428ifeq ($(FULL_TARGET),m68k-atari)
429override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
430endif
431ifeq ($(FULL_TARGET),m68k-palmos)
432override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
433endif
434ifeq ($(FULL_TARGET),m68k-macosclassic)
435override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
436endif
437ifeq ($(FULL_TARGET),m68k-embedded)
438override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
439endif
440ifeq ($(FULL_TARGET),powerpc-linux)
441override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
442endif
443ifeq ($(FULL_TARGET),powerpc-netbsd)
444override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
445endif
446ifeq ($(FULL_TARGET),powerpc-amiga)
447override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
448endif
449ifeq ($(FULL_TARGET),powerpc-macosclassic)
450override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
451endif
452ifeq ($(FULL_TARGET),powerpc-darwin)
453override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
454endif
455ifeq ($(FULL_TARGET),powerpc-morphos)
456override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
457endif
458ifeq ($(FULL_TARGET),powerpc-embedded)
459override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
460endif
461ifeq ($(FULL_TARGET),powerpc-wii)
462override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
463endif
464ifeq ($(FULL_TARGET),powerpc-aix)
465override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
466endif
467ifeq ($(FULL_TARGET),sparc-linux)
468override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
469endif
470ifeq ($(FULL_TARGET),sparc-netbsd)
471override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
472endif
473ifeq ($(FULL_TARGET),sparc-solaris)
474override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
475endif
476ifeq ($(FULL_TARGET),sparc-embedded)
477override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
478endif
479ifeq ($(FULL_TARGET),x86_64-linux)
480override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
481endif
482ifeq ($(FULL_TARGET),x86_64-freebsd)
483override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
484endif
485ifeq ($(FULL_TARGET),x86_64-haiku)
486override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
487endif
488ifeq ($(FULL_TARGET),x86_64-netbsd)
489override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
490endif
491ifeq ($(FULL_TARGET),x86_64-solaris)
492override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
493endif
494ifeq ($(FULL_TARGET),x86_64-openbsd)
495override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
496endif
497ifeq ($(FULL_TARGET),x86_64-darwin)
498override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
499endif
500ifeq ($(FULL_TARGET),x86_64-win64)
501override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
502endif
503ifeq ($(FULL_TARGET),x86_64-embedded)
504override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
505endif
506ifeq ($(FULL_TARGET),x86_64-iphonesim)
507override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
508endif
509ifeq ($(FULL_TARGET),x86_64-android)
510override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
511endif
512ifeq ($(FULL_TARGET),x86_64-aros)
513override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
514endif
515ifeq ($(FULL_TARGET),x86_64-dragonfly)
516override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
517endif
518ifeq ($(FULL_TARGET),arm-linux)
519override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
520endif
521ifeq ($(FULL_TARGET),arm-netbsd)
522override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
523endif
524ifeq ($(FULL_TARGET),arm-palmos)
525override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
526endif
527ifeq ($(FULL_TARGET),arm-wince)
528override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
529endif
530ifeq ($(FULL_TARGET),arm-gba)
531override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
532endif
533ifeq ($(FULL_TARGET),arm-nds)
534override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
535endif
536ifeq ($(FULL_TARGET),arm-embedded)
537override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
538endif
539ifeq ($(FULL_TARGET),arm-symbian)
540override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
541endif
542ifeq ($(FULL_TARGET),arm-android)
543override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
544endif
545ifeq ($(FULL_TARGET),arm-aros)
546override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
547endif
548ifeq ($(FULL_TARGET),arm-ios)
549override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
550endif
551ifeq ($(FULL_TARGET),powerpc64-linux)
552override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
553endif
554ifeq ($(FULL_TARGET),powerpc64-darwin)
555override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
556endif
557ifeq ($(FULL_TARGET),powerpc64-embedded)
558override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
559endif
560ifeq ($(FULL_TARGET),powerpc64-aix)
561override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
562endif
563ifeq ($(FULL_TARGET),avr-embedded)
564override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
565endif
566ifeq ($(FULL_TARGET),armeb-linux)
567override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
568endif
569ifeq ($(FULL_TARGET),armeb-embedded)
570override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
571endif
572ifeq ($(FULL_TARGET),mips-linux)
573override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
574endif
575ifeq ($(FULL_TARGET),mipsel-linux)
576override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
577endif
578ifeq ($(FULL_TARGET),mipsel-embedded)
579override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
580endif
581ifeq ($(FULL_TARGET),mipsel-android)
582override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
583endif
584ifeq ($(FULL_TARGET),jvm-java)
585override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
586endif
587ifeq ($(FULL_TARGET),jvm-android)
588override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
589endif
590ifeq ($(FULL_TARGET),i8086-embedded)
591override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
592endif
593ifeq ($(FULL_TARGET),i8086-msdos)
594override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
595endif
596ifeq ($(FULL_TARGET),i8086-win16)
597override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
598endif
599ifeq ($(FULL_TARGET),aarch64-linux)
600override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
601endif
602ifeq ($(FULL_TARGET),aarch64-darwin)
603override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
604endif
605ifeq ($(FULL_TARGET),aarch64-android)
606override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
607endif
608ifeq ($(FULL_TARGET),aarch64-ios)
609override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
610endif
611ifeq ($(FULL_TARGET),wasm-wasm)
612override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
613endif
614ifeq ($(FULL_TARGET),sparc64-linux)
615override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
616endif
617override INSTALL_FPCPACKAGE=y
618ifeq ($(FULL_TARGET),i386-linux)
619override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
620endif
621ifeq ($(FULL_TARGET),i386-go32v2)
622override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
623endif
624ifeq ($(FULL_TARGET),i386-win32)
625override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
626endif
627ifeq ($(FULL_TARGET),i386-os2)
628override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
629endif
630ifeq ($(FULL_TARGET),i386-freebsd)
631override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
632endif
633ifeq ($(FULL_TARGET),i386-beos)
634override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
635endif
636ifeq ($(FULL_TARGET),i386-haiku)
637override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
638endif
639ifeq ($(FULL_TARGET),i386-netbsd)
640override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
641endif
642ifeq ($(FULL_TARGET),i386-solaris)
643override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
644endif
645ifeq ($(FULL_TARGET),i386-netware)
646override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
647endif
648ifeq ($(FULL_TARGET),i386-openbsd)
649override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
650endif
651ifeq ($(FULL_TARGET),i386-wdosx)
652override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
653endif
654ifeq ($(FULL_TARGET),i386-darwin)
655override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
656endif
657ifeq ($(FULL_TARGET),i386-emx)
658override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
659endif
660ifeq ($(FULL_TARGET),i386-watcom)
661override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
662endif
663ifeq ($(FULL_TARGET),i386-netwlibc)
664override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
665endif
666ifeq ($(FULL_TARGET),i386-wince)
667override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
668endif
669ifeq ($(FULL_TARGET),i386-embedded)
670override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
671endif
672ifeq ($(FULL_TARGET),i386-symbian)
673override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
674endif
675ifeq ($(FULL_TARGET),i386-nativent)
676override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
677endif
678ifeq ($(FULL_TARGET),i386-iphonesim)
679override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
680endif
681ifeq ($(FULL_TARGET),i386-android)
682override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
683endif
684ifeq ($(FULL_TARGET),i386-aros)
685override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
686endif
687ifeq ($(FULL_TARGET),m68k-linux)
688override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
689endif
690ifeq ($(FULL_TARGET),m68k-netbsd)
691override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
692endif
693ifeq ($(FULL_TARGET),m68k-amiga)
694override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
695endif
696ifeq ($(FULL_TARGET),m68k-atari)
697override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
698endif
699ifeq ($(FULL_TARGET),m68k-palmos)
700override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
701endif
702ifeq ($(FULL_TARGET),m68k-macosclassic)
703override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
704endif
705ifeq ($(FULL_TARGET),m68k-embedded)
706override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
707endif
708ifeq ($(FULL_TARGET),powerpc-linux)
709override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
710endif
711ifeq ($(FULL_TARGET),powerpc-netbsd)
712override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
713endif
714ifeq ($(FULL_TARGET),powerpc-amiga)
715override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
716endif
717ifeq ($(FULL_TARGET),powerpc-macosclassic)
718override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
719endif
720ifeq ($(FULL_TARGET),powerpc-darwin)
721override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
722endif
723ifeq ($(FULL_TARGET),powerpc-morphos)
724override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
725endif
726ifeq ($(FULL_TARGET),powerpc-embedded)
727override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
728endif
729ifeq ($(FULL_TARGET),powerpc-wii)
730override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
731endif
732ifeq ($(FULL_TARGET),powerpc-aix)
733override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
734endif
735ifeq ($(FULL_TARGET),sparc-linux)
736override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
737endif
738ifeq ($(FULL_TARGET),sparc-netbsd)
739override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
740endif
741ifeq ($(FULL_TARGET),sparc-solaris)
742override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
743endif
744ifeq ($(FULL_TARGET),sparc-embedded)
745override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
746endif
747ifeq ($(FULL_TARGET),x86_64-linux)
748override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
749endif
750ifeq ($(FULL_TARGET),x86_64-freebsd)
751override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
752endif
753ifeq ($(FULL_TARGET),x86_64-haiku)
754override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
755endif
756ifeq ($(FULL_TARGET),x86_64-netbsd)
757override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
758endif
759ifeq ($(FULL_TARGET),x86_64-solaris)
760override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
761endif
762ifeq ($(FULL_TARGET),x86_64-openbsd)
763override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
764endif
765ifeq ($(FULL_TARGET),x86_64-darwin)
766override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
767endif
768ifeq ($(FULL_TARGET),x86_64-win64)
769override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
770endif
771ifeq ($(FULL_TARGET),x86_64-embedded)
772override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
773endif
774ifeq ($(FULL_TARGET),x86_64-iphonesim)
775override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
776endif
777ifeq ($(FULL_TARGET),x86_64-android)
778override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
779endif
780ifeq ($(FULL_TARGET),x86_64-aros)
781override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
782endif
783ifeq ($(FULL_TARGET),x86_64-dragonfly)
784override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
785endif
786ifeq ($(FULL_TARGET),arm-linux)
787override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
788endif
789ifeq ($(FULL_TARGET),arm-netbsd)
790override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
791endif
792ifeq ($(FULL_TARGET),arm-palmos)
793override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
794endif
795ifeq ($(FULL_TARGET),arm-wince)
796override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
797endif
798ifeq ($(FULL_TARGET),arm-gba)
799override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
800endif
801ifeq ($(FULL_TARGET),arm-nds)
802override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
803endif
804ifeq ($(FULL_TARGET),arm-embedded)
805override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
806endif
807ifeq ($(FULL_TARGET),arm-symbian)
808override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
809endif
810ifeq ($(FULL_TARGET),arm-android)
811override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
812endif
813ifeq ($(FULL_TARGET),arm-aros)
814override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
815endif
816ifeq ($(FULL_TARGET),arm-ios)
817override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
818endif
819ifeq ($(FULL_TARGET),powerpc64-linux)
820override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
821endif
822ifeq ($(FULL_TARGET),powerpc64-darwin)
823override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
824endif
825ifeq ($(FULL_TARGET),powerpc64-embedded)
826override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
827endif
828ifeq ($(FULL_TARGET),powerpc64-aix)
829override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
830endif
831ifeq ($(FULL_TARGET),avr-embedded)
832override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
833endif
834ifeq ($(FULL_TARGET),armeb-linux)
835override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
836endif
837ifeq ($(FULL_TARGET),armeb-embedded)
838override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
839endif
840ifeq ($(FULL_TARGET),mips-linux)
841override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
842endif
843ifeq ($(FULL_TARGET),mipsel-linux)
844override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
845endif
846ifeq ($(FULL_TARGET),mipsel-embedded)
847override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
848endif
849ifeq ($(FULL_TARGET),mipsel-android)
850override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
851endif
852ifeq ($(FULL_TARGET),jvm-java)
853override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
854endif
855ifeq ($(FULL_TARGET),jvm-android)
856override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
857endif
858ifeq ($(FULL_TARGET),i8086-embedded)
859override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
860endif
861ifeq ($(FULL_TARGET),i8086-msdos)
862override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
863endif
864ifeq ($(FULL_TARGET),i8086-win16)
865override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
866endif
867ifeq ($(FULL_TARGET),aarch64-linux)
868override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
869endif
870ifeq ($(FULL_TARGET),aarch64-darwin)
871override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
872endif
873ifeq ($(FULL_TARGET),aarch64-android)
874override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
875endif
876ifeq ($(FULL_TARGET),aarch64-ios)
877override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
878endif
879ifeq ($(FULL_TARGET),wasm-wasm)
880override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
881endif
882ifeq ($(FULL_TARGET),sparc64-linux)
883override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
884endif
885ifeq ($(FULL_TARGET),i386-linux)
886override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
887endif
888ifeq ($(FULL_TARGET),i386-go32v2)
889override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
890endif
891ifeq ($(FULL_TARGET),i386-win32)
892override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
893endif
894ifeq ($(FULL_TARGET),i386-os2)
895override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
896endif
897ifeq ($(FULL_TARGET),i386-freebsd)
898override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
899endif
900ifeq ($(FULL_TARGET),i386-beos)
901override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
902endif
903ifeq ($(FULL_TARGET),i386-haiku)
904override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
905endif
906ifeq ($(FULL_TARGET),i386-netbsd)
907override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
908endif
909ifeq ($(FULL_TARGET),i386-solaris)
910override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
911endif
912ifeq ($(FULL_TARGET),i386-netware)
913override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
914endif
915ifeq ($(FULL_TARGET),i386-openbsd)
916override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
917endif
918ifeq ($(FULL_TARGET),i386-wdosx)
919override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
920endif
921ifeq ($(FULL_TARGET),i386-darwin)
922override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
923endif
924ifeq ($(FULL_TARGET),i386-emx)
925override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
926endif
927ifeq ($(FULL_TARGET),i386-watcom)
928override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
929endif
930ifeq ($(FULL_TARGET),i386-netwlibc)
931override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
932endif
933ifeq ($(FULL_TARGET),i386-wince)
934override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
935endif
936ifeq ($(FULL_TARGET),i386-embedded)
937override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
938endif
939ifeq ($(FULL_TARGET),i386-symbian)
940override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
941endif
942ifeq ($(FULL_TARGET),i386-nativent)
943override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
944endif
945ifeq ($(FULL_TARGET),i386-iphonesim)
946override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
947endif
948ifeq ($(FULL_TARGET),i386-android)
949override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
950endif
951ifeq ($(FULL_TARGET),i386-aros)
952override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
953endif
954ifeq ($(FULL_TARGET),m68k-linux)
955override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
956endif
957ifeq ($(FULL_TARGET),m68k-netbsd)
958override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
959endif
960ifeq ($(FULL_TARGET),m68k-amiga)
961override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
962endif
963ifeq ($(FULL_TARGET),m68k-atari)
964override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
965endif
966ifeq ($(FULL_TARGET),m68k-palmos)
967override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
968endif
969ifeq ($(FULL_TARGET),m68k-macosclassic)
970override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
971endif
972ifeq ($(FULL_TARGET),m68k-embedded)
973override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
974endif
975ifeq ($(FULL_TARGET),powerpc-linux)
976override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
977endif
978ifeq ($(FULL_TARGET),powerpc-netbsd)
979override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
980endif
981ifeq ($(FULL_TARGET),powerpc-amiga)
982override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
983endif
984ifeq ($(FULL_TARGET),powerpc-macosclassic)
985override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
986endif
987ifeq ($(FULL_TARGET),powerpc-darwin)
988override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
989endif
990ifeq ($(FULL_TARGET),powerpc-morphos)
991override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
992endif
993ifeq ($(FULL_TARGET),powerpc-embedded)
994override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
995endif
996ifeq ($(FULL_TARGET),powerpc-wii)
997override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
998endif
999ifeq ($(FULL_TARGET),powerpc-aix)
1000override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1001endif
1002ifeq ($(FULL_TARGET),sparc-linux)
1003override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1004endif
1005ifeq ($(FULL_TARGET),sparc-netbsd)
1006override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1007endif
1008ifeq ($(FULL_TARGET),sparc-solaris)
1009override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1010endif
1011ifeq ($(FULL_TARGET),sparc-embedded)
1012override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1013endif
1014ifeq ($(FULL_TARGET),x86_64-linux)
1015override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1016endif
1017ifeq ($(FULL_TARGET),x86_64-freebsd)
1018override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1019endif
1020ifeq ($(FULL_TARGET),x86_64-haiku)
1021override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1022endif
1023ifeq ($(FULL_TARGET),x86_64-netbsd)
1024override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1025endif
1026ifeq ($(FULL_TARGET),x86_64-solaris)
1027override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1028endif
1029ifeq ($(FULL_TARGET),x86_64-openbsd)
1030override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1031endif
1032ifeq ($(FULL_TARGET),x86_64-darwin)
1033override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1034endif
1035ifeq ($(FULL_TARGET),x86_64-win64)
1036override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1037endif
1038ifeq ($(FULL_TARGET),x86_64-embedded)
1039override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1040endif
1041ifeq ($(FULL_TARGET),x86_64-iphonesim)
1042override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1043endif
1044ifeq ($(FULL_TARGET),x86_64-android)
1045override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1046endif
1047ifeq ($(FULL_TARGET),x86_64-aros)
1048override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1049endif
1050ifeq ($(FULL_TARGET),x86_64-dragonfly)
1051override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1052endif
1053ifeq ($(FULL_TARGET),arm-linux)
1054override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1055endif
1056ifeq ($(FULL_TARGET),arm-netbsd)
1057override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1058endif
1059ifeq ($(FULL_TARGET),arm-palmos)
1060override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1061endif
1062ifeq ($(FULL_TARGET),arm-wince)
1063override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1064endif
1065ifeq ($(FULL_TARGET),arm-gba)
1066override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1067endif
1068ifeq ($(FULL_TARGET),arm-nds)
1069override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1070endif
1071ifeq ($(FULL_TARGET),arm-embedded)
1072override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1073endif
1074ifeq ($(FULL_TARGET),arm-symbian)
1075override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1076endif
1077ifeq ($(FULL_TARGET),arm-android)
1078override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1079endif
1080ifeq ($(FULL_TARGET),arm-aros)
1081override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1082endif
1083ifeq ($(FULL_TARGET),arm-ios)
1084override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1085endif
1086ifeq ($(FULL_TARGET),powerpc64-linux)
1087override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1088endif
1089ifeq ($(FULL_TARGET),powerpc64-darwin)
1090override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1091endif
1092ifeq ($(FULL_TARGET),powerpc64-embedded)
1093override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1094endif
1095ifeq ($(FULL_TARGET),powerpc64-aix)
1096override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1097endif
1098ifeq ($(FULL_TARGET),avr-embedded)
1099override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1100endif
1101ifeq ($(FULL_TARGET),armeb-linux)
1102override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1103endif
1104ifeq ($(FULL_TARGET),armeb-embedded)
1105override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1106endif
1107ifeq ($(FULL_TARGET),mips-linux)
1108override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1109endif
1110ifeq ($(FULL_TARGET),mipsel-linux)
1111override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1112endif
1113ifeq ($(FULL_TARGET),mipsel-embedded)
1114override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1115endif
1116ifeq ($(FULL_TARGET),mipsel-android)
1117override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1118endif
1119ifeq ($(FULL_TARGET),jvm-java)
1120override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1121endif
1122ifeq ($(FULL_TARGET),jvm-android)
1123override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1124endif
1125ifeq ($(FULL_TARGET),i8086-embedded)
1126override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1127endif
1128ifeq ($(FULL_TARGET),i8086-msdos)
1129override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1130endif
1131ifeq ($(FULL_TARGET),i8086-win16)
1132override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1133endif
1134ifeq ($(FULL_TARGET),aarch64-linux)
1135override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1136endif
1137ifeq ($(FULL_TARGET),aarch64-darwin)
1138override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1139endif
1140ifeq ($(FULL_TARGET),aarch64-android)
1141override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1142endif
1143ifeq ($(FULL_TARGET),aarch64-ios)
1144override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1145endif
1146ifeq ($(FULL_TARGET),wasm-wasm)
1147override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1148endif
1149ifeq ($(FULL_TARGET),sparc64-linux)
1150override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
1151endif
1152ifdef REQUIRE_UNITSDIR
1153override UNITSDIR+=$(REQUIRE_UNITSDIR)
1154endif
1155ifdef REQUIRE_PACKAGESDIR
1156override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
1157endif
1158ifdef ZIPINSTALL
1159ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
1160UNIXHier=1
1161endif
1162else
1163ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
1164UNIXHier=1
1165endif
1166endif
1167ifndef INSTALL_PREFIX
1168ifdef PREFIX
1169INSTALL_PREFIX=$(PREFIX)
1170endif
1171endif
1172ifndef INSTALL_PREFIX
1173ifdef UNIXHier
1174INSTALL_PREFIX=/usr/local
1175else
1176ifdef INSTALL_FPCPACKAGE
1177INSTALL_BASEDIR:=/pp
1178else
1179INSTALL_BASEDIR:=/$(PACKAGE_NAME)
1180endif
1181endif
1182endif
1183export INSTALL_PREFIX
1184ifdef INSTALL_FPCSUBDIR
1185export INSTALL_FPCSUBDIR
1186endif
1187ifndef DIST_DESTDIR
1188DIST_DESTDIR:=$(BASEDIR)
1189endif
1190export DIST_DESTDIR
1191ifndef COMPILER_UNITTARGETDIR
1192ifdef PACKAGEDIR_MAIN
1193COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
1194else
1195COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
1196endif
1197endif
1198ifndef COMPILER_TARGETDIR
1199COMPILER_TARGETDIR=.
1200endif
1201ifndef INSTALL_BASEDIR
1202ifdef UNIXHier
1203ifdef INSTALL_FPCPACKAGE
1204INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
1205else
1206INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
1207endif
1208else
1209INSTALL_BASEDIR:=$(INSTALL_PREFIX)
1210endif
1211endif
1212ifndef INSTALL_BINDIR
1213ifdef UNIXHier
1214INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
1215else
1216INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
1217ifdef INSTALL_FPCPACKAGE
1218ifdef CROSSCOMPILE
1219ifdef CROSSINSTALL
1220INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
1221else
1222INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1223endif
1224else
1225INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1226endif
1227endif
1228endif
1229endif
1230ifndef INSTALL_UNITDIR
1231INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
1232ifdef INSTALL_FPCPACKAGE
1233ifdef PACKAGE_NAME
1234INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
1235endif
1236endif
1237endif
1238ifndef INSTALL_LIBDIR
1239ifdef UNIXHier
1240INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
1241else
1242INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
1243endif
1244endif
1245ifndef INSTALL_SOURCEDIR
1246ifdef UNIXHier
1247ifdef BSDhier
1248SRCPREFIXDIR=share/src
1249else
1250ifdef linuxHier
1251SRCPREFIXDIR=share/src
1252else
1253SRCPREFIXDIR=src
1254endif
1255endif
1256ifdef INSTALL_FPCPACKAGE
1257ifdef INSTALL_FPCSUBDIR
1258INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1259else
1260INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1261endif
1262else
1263INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1264endif
1265else
1266ifdef INSTALL_FPCPACKAGE
1267ifdef INSTALL_FPCSUBDIR
1268INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1269else
1270INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
1271endif
1272else
1273INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
1274endif
1275endif
1276endif
1277ifndef INSTALL_DOCDIR
1278ifdef UNIXHier
1279ifdef BSDhier
1280DOCPREFIXDIR=share/doc
1281else
1282ifdef linuxHier
1283DOCPREFIXDIR=share/doc
1284else
1285DOCPREFIXDIR=doc
1286endif
1287endif
1288ifdef INSTALL_FPCPACKAGE
1289INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1290else
1291INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1292endif
1293else
1294ifdef INSTALL_FPCPACKAGE
1295INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
1296else
1297INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
1298endif
1299endif
1300endif
1301ifndef INSTALL_EXAMPLEDIR
1302ifdef UNIXHier
1303ifdef INSTALL_FPCPACKAGE
1304ifdef BSDhier
1305INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1306else
1307ifdef linuxHier
1308INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
1309else
1310INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
1311endif
1312endif
1313else
1314ifdef BSDhier
1315INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1316else
1317ifdef linuxHier
1318INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1319else
1320INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1321endif
1322endif
1323endif
1324else
1325ifdef INSTALL_FPCPACKAGE
1326INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
1327else
1328INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
1329endif
1330endif
1331endif
1332ifndef INSTALL_DATADIR
1333INSTALL_DATADIR=$(INSTALL_BASEDIR)
1334endif
1335ifndef INSTALL_SHAREDDIR
1336INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
1337endif
1338ifdef CROSSCOMPILE
1339ifndef CROSSBINDIR
1340CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
1341ifeq ($(CROSSBINDIR),)
1342CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
1343endif
1344endif
1345else
1346CROSSBINDIR=
1347endif
1348BATCHEXT=.bat
1349LOADEREXT=.as
1350EXEEXT=.exe
1351PPLEXT=.ppl
1352PPUEXT=.ppu
1353OEXT=.o
1354ASMEXT=.s
1355SMARTEXT=.sl
1356STATICLIBEXT=.a
1357SHAREDLIBEXT=.so
1358SHAREDLIBPREFIX=libfp
1359STATICLIBPREFIX=libp
1360IMPORTLIBPREFIX=libimp
1361RSTEXT=.rst
1362EXEDBGEXT=.dbg
1363ifeq ($(OS_TARGET),go32v1)
1364STATICLIBPREFIX=
1365SHORTSUFFIX=v1
1366endif
1367ifeq ($(OS_TARGET),go32v2)
1368STATICLIBPREFIX=
1369SHORTSUFFIX=dos
1370IMPORTLIBPREFIX=
1371endif
1372ifeq ($(OS_TARGET),watcom)
1373STATICLIBPREFIX=
1374OEXT=.obj
1375ASMEXT=.asm
1376SHAREDLIBEXT=.dll
1377SHORTSUFFIX=wat
1378IMPORTLIBPREFIX=
1379endif
1380ifneq ($(CPU_TARGET),jvm)
1381ifeq ($(OS_TARGET),android)
1382BATCHEXT=.sh
1383EXEEXT=
1384HASSHAREDLIB=1
1385SHORTSUFFIX=lnx
1386endif
1387endif
1388ifeq ($(OS_TARGET),linux)
1389BATCHEXT=.sh
1390EXEEXT=
1391HASSHAREDLIB=1
1392SHORTSUFFIX=lnx
1393endif
1394ifeq ($(OS_TARGET),dragonfly)
1395BATCHEXT=.sh
1396EXEEXT=
1397HASSHAREDLIB=1
1398SHORTSUFFIX=df
1399endif
1400ifeq ($(OS_TARGET),freebsd)
1401BATCHEXT=.sh
1402EXEEXT=
1403HASSHAREDLIB=1
1404SHORTSUFFIX=fbs
1405endif
1406ifeq ($(OS_TARGET),netbsd)
1407BATCHEXT=.sh
1408EXEEXT=
1409HASSHAREDLIB=1
1410SHORTSUFFIX=nbs
1411endif
1412ifeq ($(OS_TARGET),openbsd)
1413BATCHEXT=.sh
1414EXEEXT=
1415HASSHAREDLIB=1
1416SHORTSUFFIX=obs
1417endif
1418ifeq ($(OS_TARGET),win32)
1419SHAREDLIBEXT=.dll
1420SHORTSUFFIX=w32
1421endif
1422ifeq ($(OS_TARGET),os2)
1423BATCHEXT=.cmd
1424AOUTEXT=.out
1425STATICLIBPREFIX=
1426SHAREDLIBEXT=.dll
1427SHORTSUFFIX=os2
1428ECHO=echo
1429IMPORTLIBPREFIX=
1430endif
1431ifeq ($(OS_TARGET),emx)
1432BATCHEXT=.cmd
1433AOUTEXT=.out
1434STATICLIBPREFIX=
1435SHAREDLIBEXT=.dll
1436SHORTSUFFIX=emx
1437ECHO=echo
1438IMPORTLIBPREFIX=
1439endif
1440ifeq ($(OS_TARGET),amiga)
1441EXEEXT=
1442SHAREDLIBEXT=.library
1443SHORTSUFFIX=amg
1444endif
1445ifeq ($(OS_TARGET),aros)
1446EXEEXT=
1447SHAREDLIBEXT=.library
1448SHORTSUFFIX=aros
1449endif
1450ifeq ($(OS_TARGET),morphos)
1451EXEEXT=
1452SHAREDLIBEXT=.library
1453SHORTSUFFIX=mos
1454endif
1455ifeq ($(OS_TARGET),atari)
1456EXEEXT=.ttp
1457SHORTSUFFIX=ata
1458endif
1459ifeq ($(OS_TARGET),beos)
1460BATCHEXT=.sh
1461EXEEXT=
1462SHORTSUFFIX=be
1463endif
1464ifeq ($(OS_TARGET),haiku)
1465BATCHEXT=.sh
1466EXEEXT=
1467SHORTSUFFIX=hai
1468endif
1469ifeq ($(OS_TARGET),solaris)
1470BATCHEXT=.sh
1471EXEEXT=
1472SHORTSUFFIX=sun
1473endif
1474ifeq ($(OS_TARGET),qnx)
1475BATCHEXT=.sh
1476EXEEXT=
1477SHORTSUFFIX=qnx
1478endif
1479ifeq ($(OS_TARGET),netware)
1480EXEEXT=.nlm
1481STATICLIBPREFIX=
1482SHORTSUFFIX=nw
1483IMPORTLIBPREFIX=imp
1484endif
1485ifeq ($(OS_TARGET),netwlibc)
1486EXEEXT=.nlm
1487STATICLIBPREFIX=
1488SHORTSUFFIX=nwl
1489IMPORTLIBPREFIX=imp
1490endif
1491ifeq ($(OS_TARGET),macosclassic)
1492BATCHEXT=
1493EXEEXT=
1494DEBUGSYMEXT=.xcoff
1495SHORTSUFFIX=mac
1496IMPORTLIBPREFIX=imp
1497endif
1498ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
1499BATCHEXT=.sh
1500EXEEXT=
1501HASSHAREDLIB=1
1502SHORTSUFFIX=dwn
1503EXEDBGEXT=.dSYM
1504endif
1505ifeq ($(OS_TARGET),gba)
1506EXEEXT=.gba
1507SHAREDLIBEXT=.so
1508SHORTSUFFIX=gba
1509endif
1510ifeq ($(OS_TARGET),symbian)
1511SHAREDLIBEXT=.dll
1512SHORTSUFFIX=symbian
1513endif
1514ifeq ($(OS_TARGET),NativeNT)
1515SHAREDLIBEXT=.dll
1516SHORTSUFFIX=nativent
1517endif
1518ifeq ($(OS_TARGET),wii)
1519EXEEXT=.dol
1520SHAREDLIBEXT=.so
1521SHORTSUFFIX=wii
1522endif
1523ifeq ($(OS_TARGET),aix)
1524BATCHEXT=.sh
1525EXEEXT=
1526SHAREDLIBEXT=.a
1527SHORTSUFFIX=aix
1528endif
1529ifeq ($(OS_TARGET),java)
1530OEXT=.class
1531ASMEXT=.j
1532SHAREDLIBEXT=.jar
1533SHORTSUFFIX=java
1534endif
1535ifeq ($(CPU_TARGET),jvm)
1536ifeq ($(OS_TARGET),android)
1537OEXT=.class
1538ASMEXT=.j
1539SHAREDLIBEXT=.jar
1540SHORTSUFFIX=android
1541endif
1542endif
1543ifeq ($(OS_TARGET),msdos)
1544STATICLIBPREFIX=
1545STATICLIBEXT=.a
1546SHORTSUFFIX=d16
1547endif
1548ifeq ($(OS_TARGET),embedded)
1549ifeq ($(CPU_TARGET),i8086)
1550STATICLIBPREFIX=
1551STATICLIBEXT=.a
1552else
1553EXEEXT=.bin
1554endif
1555SHORTSUFFIX=emb
1556endif
1557ifeq ($(OS_TARGET),win16)
1558STATICLIBPREFIX=
1559STATICLIBEXT=.a
1560SHAREDLIBEXT=.dll
1561SHORTSUFFIX=w16
1562endif
1563ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
1564FPCMADE=fpcmade.$(SHORTSUFFIX)
1565ZIPSUFFIX=$(SHORTSUFFIX)
1566ZIPCROSSPREFIX=
1567ZIPSOURCESUFFIX=src
1568ZIPEXAMPLESUFFIX=exm
1569else
1570FPCMADE=fpcmade.$(TARGETSUFFIX)
1571ZIPSOURCESUFFIX=.source
1572ZIPEXAMPLESUFFIX=.examples
1573ifdef CROSSCOMPILE
1574ZIPSUFFIX=.$(SOURCESUFFIX)
1575ZIPCROSSPREFIX=$(TARGETSUFFIX)-
1576else
1577ZIPSUFFIX=.$(TARGETSUFFIX)
1578ZIPCROSSPREFIX=
1579endif
1580endif
1581ifndef ECHO
1582ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
1583ifeq ($(ECHO),)
1584ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
1585ifeq ($(ECHO),)
1586ECHO= __missing_command_ECHO
1587else
1588ECHO:=$(firstword $(ECHO))
1589endif
1590else
1591ECHO:=$(firstword $(ECHO))
1592endif
1593endif
1594export ECHO
1595ifndef DATE
1596DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
1597ifeq ($(DATE),)
1598DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
1599ifeq ($(DATE),)
1600DATE= __missing_command_DATE
1601else
1602DATE:=$(firstword $(DATE))
1603endif
1604else
1605DATE:=$(firstword $(DATE))
1606endif
1607endif
1608export DATE
1609ifndef GINSTALL
1610GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
1611ifeq ($(GINSTALL),)
1612GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
1613ifeq ($(GINSTALL),)
1614GINSTALL= __missing_command_GINSTALL
1615else
1616GINSTALL:=$(firstword $(GINSTALL))
1617endif
1618else
1619GINSTALL:=$(firstword $(GINSTALL))
1620endif
1621endif
1622export GINSTALL
1623ifndef CPPROG
1624CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
1625ifeq ($(CPPROG),)
1626CPPROG= __missing_command_CPPROG
1627else
1628CPPROG:=$(firstword $(CPPROG))
1629endif
1630endif
1631export CPPROG
1632ifndef RMPROG
1633RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
1634ifeq ($(RMPROG),)
1635RMPROG= __missing_command_RMPROG
1636else
1637RMPROG:=$(firstword $(RMPROG))
1638endif
1639endif
1640export RMPROG
1641ifndef MVPROG
1642MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
1643ifeq ($(MVPROG),)
1644MVPROG= __missing_command_MVPROG
1645else
1646MVPROG:=$(firstword $(MVPROG))
1647endif
1648endif
1649export MVPROG
1650ifndef MKDIRPROG
1651MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
1652ifeq ($(MKDIRPROG),)
1653MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
1654ifeq ($(MKDIRPROG),)
1655MKDIRPROG= __missing_command_MKDIRPROG
1656else
1657MKDIRPROG:=$(firstword $(MKDIRPROG))
1658endif
1659else
1660MKDIRPROG:=$(firstword $(MKDIRPROG))
1661endif
1662endif
1663export MKDIRPROG
1664ifndef ECHOREDIR
1665ifndef inUnix
1666ECHOREDIR=echo
1667else
1668ECHOREDIR=$(ECHO)
1669endif
1670endif
1671ifndef COPY
1672COPY:=$(CPPROG) -fp
1673endif
1674ifndef COPYTREE
1675COPYTREE:=$(CPPROG) -Rfp
1676endif
1677ifndef MKDIRTREE
1678MKDIRTREE:=$(MKDIRPROG) -p
1679endif
1680ifndef MOVE
1681MOVE:=$(MVPROG) -f
1682endif
1683ifndef DEL
1684DEL:=$(RMPROG) -f
1685endif
1686ifndef DELTREE
1687DELTREE:=$(RMPROG) -rf
1688endif
1689ifndef INSTALL
1690ifdef inUnix
1691INSTALL:=$(GINSTALL) -c -m 644
1692else
1693INSTALL:=$(COPY)
1694endif
1695endif
1696ifndef INSTALLEXE
1697ifdef inUnix
1698INSTALLEXE:=$(GINSTALL) -c -m 755
1699else
1700INSTALLEXE:=$(COPY)
1701endif
1702endif
1703ifndef MKDIR
1704MKDIR:=$(GINSTALL) -m 755 -d
1705endif
1706export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
1707ifndef PPUMOVE
1708PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
1709ifeq ($(PPUMOVE),)
1710PPUMOVE= __missing_command_PPUMOVE
1711else
1712PPUMOVE:=$(firstword $(PPUMOVE))
1713endif
1714endif
1715export PPUMOVE
1716ifndef FPCMAKE
1717FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
1718ifeq ($(FPCMAKE),)
1719FPCMAKE= __missing_command_FPCMAKE
1720else
1721FPCMAKE:=$(firstword $(FPCMAKE))
1722endif
1723endif
1724export FPCMAKE
1725ifndef ZIPPROG
1726ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
1727ifeq ($(ZIPPROG),)
1728ZIPPROG= __missing_command_ZIPPROG
1729else
1730ZIPPROG:=$(firstword $(ZIPPROG))
1731endif
1732endif
1733export ZIPPROG
1734ifndef TARPROG
1735TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
1736ifeq ($(TARPROG),)
1737TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
1738ifeq ($(TARPROG),)
1739TARPROG= __missing_command_TARPROG
1740else
1741TARPROG:=$(firstword $(TARPROG))
1742endif
1743else
1744TARPROG:=$(firstword $(TARPROG))
1745endif
1746endif
1747export TARPROG
1748ASNAME=$(BINUTILSPREFIX)as
1749LDNAME=$(BINUTILSPREFIX)ld
1750ARNAME=$(BINUTILSPREFIX)ar
1751RCNAME=$(BINUTILSPREFIX)rc
1752NASMNAME=$(BINUTILSPREFIX)nasm
1753ifndef ASPROG
1754ifdef CROSSBINDIR
1755ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
1756else
1757ASPROG=$(ASNAME)
1758endif
1759endif
1760ifndef LDPROG
1761ifdef CROSSBINDIR
1762LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
1763else
1764LDPROG=$(LDNAME)
1765endif
1766endif
1767ifndef RCPROG
1768ifdef CROSSBINDIR
1769RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
1770else
1771RCPROG=$(RCNAME)
1772endif
1773endif
1774ifndef ARPROG
1775ifdef CROSSBINDIR
1776ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
1777else
1778ARPROG=$(ARNAME)
1779endif
1780endif
1781ifndef NASMPROG
1782ifdef CROSSBINDIR
1783NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
1784else
1785NASMPROG=$(NASMNAME)
1786endif
1787endif
1788AS=$(ASPROG)
1789LD=$(LDPROG)
1790RC=$(RCPROG)
1791AR=$(ARPROG)
1792NASM=$(NASMPROG)
1793ifdef inUnix
1794PPAS=./ppas$(SRCBATCHEXT)
1795else
1796PPAS=ppas$(SRCBATCHEXT)
1797endif
1798ifdef inUnix
1799LDCONFIG=ldconfig
1800else
1801LDCONFIG=
1802endif
1803ifdef DATE
1804DATESTR:=$(shell $(DATE) +%Y%m%d)
1805else
1806DATESTR=
1807endif
1808ZIPOPT=-9
1809ZIPEXT=.zip
1810ifeq ($(USETAR),bz2)
1811TAROPT=vj
1812TAREXT=.tar.bz2
1813else
1814TAROPT=vz
1815TAREXT=.tar.gz
1816endif
1817ifndef NOCPUDEF
1818override FPCOPTDEF=$(ARCH)
1819endif
1820ifneq ($(OS_TARGET),$(OS_SOURCE))
1821override FPCOPT+=-T$(OS_TARGET)
1822endif
1823ifneq ($(CPU_TARGET),$(CPU_SOURCE))
1824override FPCOPT+=-P$(ARCH)
1825endif
1826ifeq ($(OS_SOURCE),openbsd)
1827override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
1828override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
1829override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
1830endif
1831ifndef CROSSBOOTSTRAP
1832ifneq ($(BINUTILSPREFIX),)
1833override FPCOPT+=-XP$(BINUTILSPREFIX)
1834endif
1835ifneq ($(BINUTILSPREFIX),)
1836override FPCOPT+=-Xr$(RLINKPATH)
1837endif
1838endif
1839ifndef CROSSCOMPILE
1840ifneq ($(BINUTILSPREFIX),)
1841override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
1842override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
1843endif
1844endif
1845ifdef UNITDIR
1846override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
1847endif
1848ifdef LIBDIR
1849override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
1850endif
1851ifdef OBJDIR
1852override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
1853endif
1854ifdef INCDIR
1855override FPCOPT+=$(addprefix -Fi,$(INCDIR))
1856endif
1857ifdef LINKSMART
1858override FPCOPT+=-XX
1859endif
1860ifdef CREATESMART
1861override FPCOPT+=-CX
1862endif
1863ifdef DEBUG
1864override FPCOPT+=-gl
1865override FPCOPTDEF+=DEBUG
1866endif
1867ifdef RELEASE
1868FPCCPUOPT:=-O2
1869override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
1870override FPCOPTDEF+=RELEASE
1871endif
1872ifdef STRIP
1873override FPCOPT+=-Xs
1874endif
1875ifdef OPTIMIZE
1876override FPCOPT+=-O2
1877endif
1878ifdef VERBOSE
1879override FPCOPT+=-vwni
1880endif
1881ifdef COMPILER_OPTIONS
1882override FPCOPT+=$(COMPILER_OPTIONS)
1883endif
1884ifdef COMPILER_UNITDIR
1885override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
1886endif
1887ifdef COMPILER_LIBRARYDIR
1888override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
1889endif
1890ifdef COMPILER_OBJECTDIR
1891override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
1892endif
1893ifdef COMPILER_INCLUDEDIR
1894override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
1895endif
1896ifdef CROSSBINDIR
1897override FPCOPT+=-FD$(CROSSBINDIR)
1898endif
1899ifdef COMPILER_TARGETDIR
1900override FPCOPT+=-FE$(COMPILER_TARGETDIR)
1901ifeq ($(COMPILER_TARGETDIR),.)
1902override TARGETDIRPREFIX=
1903else
1904override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
1905endif
1906endif
1907ifdef COMPILER_UNITTARGETDIR
1908override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
1909ifeq ($(COMPILER_UNITTARGETDIR),.)
1910override UNITTARGETDIRPREFIX=
1911else
1912override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
1913endif
1914else
1915ifdef COMPILER_TARGETDIR
1916override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
1917override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
1918endif
1919endif
1920ifdef CREATESHARED
1921override FPCOPT+=-Cg
1922endif
1923ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
1924ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
1925override FPCOPT+=-Cg
1926endif
1927endif
1928ifdef LINKSHARED
1929endif
1930ifdef OPT
1931override FPCOPT+=$(OPT)
1932endif
1933ifdef FPMAKEBUILDOPT
1934override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
1935endif
1936ifdef FPCOPTDEF
1937override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
1938endif
1939ifdef CFGFILE
1940override FPCOPT+=@$(CFGFILE)
1941endif
1942ifdef USEENV
1943override FPCEXTCMD:=$(FPCOPT)
1944override FPCOPT:=!FPCEXTCMD
1945export FPCEXTCMD
1946endif
1947override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
1948override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
1949ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
1950override ACROSSCOMPILE=1
1951endif
1952ifdef ACROSSCOMPILE
1953override FPCOPT+=$(CROSSOPT)
1954endif
1955override COMPILER:=$(strip $(FPC) $(FPCOPT))
1956ifneq (,$(findstring -sh ,$(COMPILER)))
1957UseEXECPPAS=1
1958endif
1959ifneq (,$(findstring -s ,$(COMPILER)))
1960ifeq ($(FULL_SOURCE),$(FULL_TARGET))
1961UseEXECPPAS=1
1962endif
1963endif
1964ifneq ($(UseEXECPPAS),1)
1965EXECPPAS=
1966else
1967ifdef RUNBATCH
1968EXECPPAS:=@$(RUNBATCH) $(PPAS)
1969else
1970EXECPPAS:=@$(PPAS)
1971endif
1972endif
1973.PHONY: fpc_units
1974ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
1975override ALLTARGET+=fpc_units
1976override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
1977override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
1978override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
1979override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
1980endif
1981fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
1982ifdef TARGET_RSTS
1983override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
1984override CLEANRSTFILES+=$(RSTFILES)
1985endif
1986.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
1987$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
1988	@$(ECHOREDIR) Compiled > $(FPCMADE)
1989fpc_all: $(FPCMADE)
1990fpc_smart:
1991	$(MAKE) all LINKSMART=1 CREATESMART=1
1992fpc_debug:
1993	$(MAKE) all DEBUG=1
1994fpc_release:
1995	$(MAKE) all RELEASE=1
1996.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
1997$(COMPILER_UNITTARGETDIR):
1998	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
1999$(COMPILER_TARGETDIR):
2000	$(MKDIRTREE) $(COMPILER_TARGETDIR)
2001%$(PPUEXT): %.pp
2002	$(COMPILER) $<
2003	$(EXECPPAS)
2004%$(PPUEXT): %.pas
2005	$(COMPILER) $<
2006	$(EXECPPAS)
2007%$(EXEEXT): %.pp
2008	$(COMPILER) $<
2009	$(EXECPPAS)
2010%$(EXEEXT): %.pas
2011	$(COMPILER) $<
2012	$(EXECPPAS)
2013%$(EXEEXT): %.lpr
2014	$(COMPILER) $<
2015	$(EXECPPAS)
2016%$(EXEEXT): %.dpr
2017	$(COMPILER) $<
2018	$(EXECPPAS)
2019%.res: %.rc
2020	windres -i $< -o $@
2021vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2022vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2023vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2024vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
2025vpath %.inc $(COMPILER_INCLUDEDIR)
2026vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
2027vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
2028.PHONY: fpc_shared
2029override INSTALLTARGET+=fpc_shared_install
2030ifndef SHARED_LIBVERSION
2031SHARED_LIBVERSION=$(FPC_VERSION)
2032endif
2033ifndef SHARED_LIBNAME
2034SHARED_LIBNAME=$(PACKAGE_NAME)
2035endif
2036ifndef SHARED_FULLNAME
2037SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
2038endif
2039ifndef SHARED_LIBUNITS
2040SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
2041override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
2042endif
2043fpc_shared:
2044ifdef HASSHAREDLIB
2045	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
2046ifneq ($(SHARED_BUILD),n)
2047	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
2048endif
2049else
2050	@$(ECHO) Shared Libraries not supported
2051endif
2052fpc_shared_install:
2053ifneq ($(SHARED_BUILD),n)
2054ifneq ($(SHARED_LIBUNITS),)
2055ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
2056	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
2057endif
2058endif
2059endif
2060.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
2061ifdef INSTALL_UNITS
2062override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
2063endif
2064ifdef INSTALL_BUILDUNIT
2065override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
2066endif
2067ifdef INSTALLPPUFILES
2068ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
2069override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
2070else
2071override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
2072endif
2073ifneq ($(UNITTARGETDIRPREFIX),)
2074override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
2075override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
2076endif
2077override INSTALL_CREATEPACKAGEFPC=1
2078endif
2079ifdef INSTALLEXEFILES
2080ifneq ($(TARGETDIRPREFIX),)
2081override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
2082endif
2083endif
2084fpc_install: all $(INSTALLTARGET)
2085ifdef INSTALLEXEFILES
2086	$(MKDIR) $(INSTALL_BINDIR)
2087	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
2088endif
2089ifdef INSTALL_CREATEPACKAGEFPC
2090ifdef FPCMAKE
2091ifdef PACKAGE_VERSION
2092ifneq ($(wildcard Makefile.fpc),)
2093	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
2094	$(MKDIR) $(INSTALL_UNITDIR)
2095	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
2096endif
2097endif
2098endif
2099endif
2100ifdef INSTALLPPUFILES
2101	$(MKDIR) $(INSTALL_UNITDIR)
2102	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
2103ifneq ($(INSTALLPPULINKFILES),)
2104	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
2105endif
2106ifneq ($(wildcard $(LIB_FULLNAME)),)
2107	$(MKDIR) $(INSTALL_LIBDIR)
2108	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
2109ifdef inUnix
2110	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
2111endif
2112endif
2113endif
2114ifdef INSTALL_FILES
2115	$(MKDIR) $(INSTALL_DATADIR)
2116	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
2117endif
2118fpc_sourceinstall: distclean
2119	$(MKDIR) $(INSTALL_SOURCEDIR)
2120	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
2121fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
2122ifdef HASEXAMPLES
2123	$(MKDIR) $(INSTALL_EXAMPLEDIR)
2124endif
2125ifdef EXAMPLESOURCEFILES
2126	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
2127endif
2128ifdef TARGET_EXAMPLEDIRS
2129	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
2130endif
2131.PHONY: fpc_clean fpc_cleanall fpc_distclean
2132ifdef EXEFILES
2133override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
2134override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
2135endif
2136ifdef CLEAN_PROGRAMS
2137override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
2138override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
2139endif
2140ifdef CLEAN_UNITS
2141override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
2142endif
2143ifdef CLEANPPUFILES
2144override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
2145ifdef DEBUGSYMEXT
2146override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
2147endif
2148override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
2149override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
2150endif
2151fpc_clean: $(CLEANTARGET)
2152ifdef CLEANEXEFILES
2153	-$(DEL) $(CLEANEXEFILES)
2154endif
2155ifdef CLEANEXEDBGFILES
2156	-$(DELTREE) $(CLEANEXEDBGFILES)
2157endif
2158ifdef CLEANPPUFILES
2159	-$(DEL) $(CLEANPPUFILES)
2160endif
2161ifneq ($(CLEANPPULINKFILES),)
2162	-$(DEL) $(CLEANPPULINKFILES)
2163endif
2164ifdef CLEANRSTFILES
2165	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
2166endif
2167ifdef CLEAN_FILES
2168	-$(DEL) $(CLEAN_FILES)
2169endif
2170ifdef LIB_NAME
2171	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
2172endif
2173	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
2174	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
2175fpc_cleanall: $(CLEANTARGET)
2176ifdef CLEANEXEFILES
2177	-$(DEL) $(CLEANEXEFILES)
2178endif
2179ifdef COMPILER_UNITTARGETDIR
2180ifdef CLEANPPUFILES
2181	-$(DEL) $(CLEANPPUFILES)
2182endif
2183ifneq ($(CLEANPPULINKFILES),)
2184	-$(DEL) $(CLEANPPULINKFILES)
2185endif
2186ifdef CLEANRSTFILES
2187	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
2188endif
2189endif
2190ifdef CLEAN_FILES
2191	-$(DEL) $(CLEAN_FILES)
2192endif
2193	-$(DELTREE) units
2194	-$(DELTREE) bin
2195	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
2196ifneq ($(PPUEXT),.ppu)
2197	-$(DEL) *.o *.ppu *.a
2198endif
2199	-$(DELTREE) *$(SMARTEXT)
2200	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
2201	-$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
2202ifdef AOUTEXT
2203	-$(DEL) *$(AOUTEXT)
2204endif
2205ifdef DEBUGSYMEXT
2206	-$(DEL) *$(DEBUGSYMEXT)
2207endif
2208ifdef LOCALFPMAKEBIN
2209	-$(DEL) $(LOCALFPMAKEBIN)
2210	-$(DEL) $(FPMAKEBINOBJ)
2211endif
2212fpc_distclean: cleanall
2213.PHONY: fpc_baseinfo
2214override INFORULES+=fpc_baseinfo
2215fpc_baseinfo:
2216	@$(ECHO)
2217	@$(ECHO)  == Package info ==
2218	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
2219	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
2220	@$(ECHO)
2221	@$(ECHO)  == Configuration info ==
2222	@$(ECHO)
2223	@$(ECHO)  FPC.......... $(FPC)
2224	@$(ECHO)  FPC Version.. $(FPC_VERSION)
2225	@$(ECHO)  Source CPU... $(CPU_SOURCE)
2226	@$(ECHO)  Target CPU... $(CPU_TARGET)
2227	@$(ECHO)  Source OS.... $(OS_SOURCE)
2228	@$(ECHO)  Target OS.... $(OS_TARGET)
2229	@$(ECHO)  Full Source.. $(FULL_SOURCE)
2230	@$(ECHO)  Full Target.. $(FULL_TARGET)
2231	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
2232	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
2233	@$(ECHO)  FPC fpmake... $(FPCFPMAKE)
2234	@$(ECHO)
2235	@$(ECHO)  == Directory info ==
2236	@$(ECHO)
2237	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
2238	@$(ECHO)
2239	@$(ECHO)  Basedir......... $(BASEDIR)
2240	@$(ECHO)  FPCDir.......... $(FPCDIR)
2241	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
2242	@$(ECHO)  UnitsDir........ $(UNITSDIR)
2243	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
2244	@$(ECHO)
2245	@$(ECHO)  GCC library..... $(GCCLIBDIR)
2246	@$(ECHO)  Other library... $(OTHERLIBDIR)
2247	@$(ECHO)
2248	@$(ECHO)  == Tools info ==
2249	@$(ECHO)
2250	@$(ECHO)  As........ $(AS)
2251	@$(ECHO)  Ld........ $(LD)
2252	@$(ECHO)  Ar........ $(AR)
2253	@$(ECHO)  Rc........ $(RC)
2254	@$(ECHO)
2255	@$(ECHO)  Mv........ $(MVPROG)
2256	@$(ECHO)  Cp........ $(CPPROG)
2257	@$(ECHO)  Rm........ $(RMPROG)
2258	@$(ECHO)  GInstall.. $(GINSTALL)
2259	@$(ECHO)  Echo...... $(ECHO)
2260	@$(ECHO)  Shell..... $(SHELL)
2261	@$(ECHO)  Date...... $(DATE)
2262	@$(ECHO)  FPCMake... $(FPCMAKE)
2263	@$(ECHO)  PPUMove... $(PPUMOVE)
2264	@$(ECHO)  Zip....... $(ZIPPROG)
2265	@$(ECHO)
2266	@$(ECHO)  == Object info ==
2267	@$(ECHO)
2268	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
2269	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
2270	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
2271	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
2272	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
2273	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
2274	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
2275	@$(ECHO)
2276	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
2277	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
2278	@$(ECHO)
2279	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
2280	@$(ECHO)  Install Files....... $(INSTALL_FILES)
2281	@$(ECHO)
2282	@$(ECHO)  == Install info ==
2283	@$(ECHO)
2284	@$(ECHO)  DateStr.............. $(DATESTR)
2285	@$(ECHO)  ZipName.............. $(ZIPNAME)
2286	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
2287	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
2288	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
2289	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
2290	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
2291	@$(ECHO)
2292	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
2293	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
2294	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
2295	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
2296	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
2297	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
2298	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
2299	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
2300	@$(ECHO)
2301	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
2302	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
2303	@$(ECHO)
2304.PHONY: fpc_info
2305fpc_info: $(INFORULES)
2306.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
2307	fpc_makefile_dirs
2308fpc_makefile:
2309	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
2310fpc_makefile_sub1:
2311ifdef TARGET_DIRS
2312	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
2313endif
2314ifdef TARGET_EXAMPLEDIRS
2315	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
2316endif
2317fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
2318fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
2319fpc_makefiles: fpc_makefile fpc_makefile_dirs
2320all: fpc_all
2321debug: fpc_debug
2322smart: fpc_smart
2323release: fpc_release
2324units: fpc_units
2325examples:
2326shared: fpc_shared
2327install: fpc_install
2328sourceinstall: fpc_sourceinstall
2329exampleinstall: fpc_exampleinstall
2330distinstall:
2331zipinstall:
2332zipsourceinstall:
2333zipexampleinstall:
2334zipdistinstall:
2335clean: fpc_clean
2336distclean: fpc_distclean
2337cleanall: fpc_cleanall
2338info: fpc_info
2339makefiles: fpc_makefiles
2340.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
2341ifneq ($(wildcard fpcmake.loc),)
2342include fpcmake.loc
2343endif
2344.NOTPARALLEL:
2345.PHONY: installclasses
2346installclasses:
2347	$(MKDIRTREE) $(INSTALL_UNITDIR)/org/freepascal/rtl
2348ifdef inUnix
2349	$(INSTALL) $(subst $$,\$$, $(wildcard $(UNITTARGETDIRPREFIX)/org/freepascal/rtl/*.class)) $(INSTALL_UNITDIR)/org/freepascal/rtl
2350else
2351	$(INSTALL) $(wildcard $(UNITTARGETDIRPREFIX)/org/freepascal/rtl/*.class) $(INSTALL_UNITDIR)/org/freepascal/rtl
2352endif
2353fpc_install: installclasses
2354include $(INC)/makefile.inc
2355SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
2356include $(PROCINC)/makefile.cpu
2357SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
2358SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
2359$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
2360	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg @rtl.cfg $(SYSTEMUNIT).pp $(REDIR)
2361uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
2362	$(COMPILER) $(INC)/uuchar.pp $(REDIR)
2363objpas$(PPUEXT) : objpas.pp
2364	$(COMPILER) objpas.pp $(REDIR)
2365strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
2366		   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
2367		   $(SYSTEMUNIT)$(PPUEXT)
2368	$(COMPILER) $(INC)/strings.pp $(REDIR)
2369jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
2370dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
2371	       $(SYSTEMUNIT)$(PPUEXT)
2372objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
2373sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
2374		    objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
2375	$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
2376classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
2377		   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT)
2378	$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
2379typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
2380	$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
2381math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
2382	$(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
2383varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
2384		    $(OBJPASDIR)/varutilh.inc varutils.pp
2385	$(COMPILER) -I$(OBJPASDIR) varutils.pp $(REDIR)
2386fmtbcd$(PPUEXT) : $(OBJPASDIR)/fmtbcd.pp objpas$(PPUEXT) sysutils$(PPUEXT) variants$(PPUEXT) classes$(PPUEXT) system$(PPUEXT)
2387	$(COMPILER) $(OBJPASDIR)/fmtbcd.pp
2388types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
2389	$(COMPILER) $(OBJPASDIR)/types.pp
2390rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
2391	$(COMPILER) $(OBJPASDIR)/rtlconsts.pp
2392sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
2393	$(COMPILER) $(OBJPASDIR)/sysconst.pp
2394dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
2395	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
2396macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
2397	$(COMPILER) $(INC)/macpas.pp $(REDIR)
2398ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
2399getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
2400heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
2401	$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
2402charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
2403