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
332override PACKAGE_NAME=ide
333PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ide/Makefile.fpc,$(PACKAGESDIR))))))
334ifeq ($(FULL_TARGET),i386-linux)
335override TARGET_UNITS+=gdbcon gdbint
336endif
337ifeq ($(FULL_TARGET),i386-go32v2)
338override TARGET_UNITS+=gdbcon gdbint
339endif
340ifeq ($(FULL_TARGET),i386-win32)
341override TARGET_UNITS+=gdbcon gdbint
342endif
343ifeq ($(FULL_TARGET),i386-os2)
344override TARGET_UNITS+=gdbcon gdbint
345endif
346ifeq ($(FULL_TARGET),i386-freebsd)
347override TARGET_UNITS+=gdbcon gdbint
348endif
349ifeq ($(FULL_TARGET),i386-beos)
350override TARGET_UNITS+=gdbcon gdbint
351endif
352ifeq ($(FULL_TARGET),i386-haiku)
353override TARGET_UNITS+=gdbcon gdbint
354endif
355ifeq ($(FULL_TARGET),i386-netbsd)
356override TARGET_UNITS+=gdbcon gdbint
357endif
358ifeq ($(FULL_TARGET),i386-solaris)
359override TARGET_UNITS+=gdbcon gdbint
360endif
361ifeq ($(FULL_TARGET),i386-netware)
362override TARGET_UNITS+=gdbcon gdbint
363endif
364ifeq ($(FULL_TARGET),i386-openbsd)
365override TARGET_UNITS+=gdbcon gdbint
366endif
367ifeq ($(FULL_TARGET),i386-wdosx)
368override TARGET_UNITS+=gdbcon gdbint
369endif
370ifeq ($(FULL_TARGET),i386-darwin)
371override TARGET_UNITS+=gdbcon gdbint
372endif
373ifeq ($(FULL_TARGET),i386-emx)
374override TARGET_UNITS+=gdbcon gdbint
375endif
376ifeq ($(FULL_TARGET),i386-watcom)
377override TARGET_UNITS+=gdbcon gdbint
378endif
379ifeq ($(FULL_TARGET),i386-netwlibc)
380override TARGET_UNITS+=gdbcon gdbint
381endif
382ifeq ($(FULL_TARGET),i386-wince)
383override TARGET_UNITS+=gdbcon gdbint
384endif
385ifeq ($(FULL_TARGET),i386-embedded)
386override TARGET_UNITS+=gdbcon gdbint
387endif
388ifeq ($(FULL_TARGET),i386-symbian)
389override TARGET_UNITS+=gdbcon gdbint
390endif
391ifeq ($(FULL_TARGET),i386-nativent)
392override TARGET_UNITS+=gdbcon gdbint
393endif
394ifeq ($(FULL_TARGET),i386-iphonesim)
395override TARGET_UNITS+=gdbcon gdbint
396endif
397ifeq ($(FULL_TARGET),i386-android)
398override TARGET_UNITS+=gdbcon gdbint
399endif
400ifeq ($(FULL_TARGET),i386-aros)
401override TARGET_UNITS+=gdbcon gdbint
402endif
403ifeq ($(FULL_TARGET),m68k-linux)
404override TARGET_UNITS+=gdbcon gdbint
405endif
406ifeq ($(FULL_TARGET),m68k-netbsd)
407override TARGET_UNITS+=gdbcon gdbint
408endif
409ifeq ($(FULL_TARGET),m68k-amiga)
410override TARGET_UNITS+=gdbcon gdbint
411endif
412ifeq ($(FULL_TARGET),m68k-atari)
413override TARGET_UNITS+=gdbcon gdbint
414endif
415ifeq ($(FULL_TARGET),m68k-palmos)
416override TARGET_UNITS+=gdbcon gdbint
417endif
418ifeq ($(FULL_TARGET),m68k-macosclassic)
419override TARGET_UNITS+=gdbcon gdbint
420endif
421ifeq ($(FULL_TARGET),m68k-embedded)
422override TARGET_UNITS+=gdbcon gdbint
423endif
424ifeq ($(FULL_TARGET),powerpc-linux)
425override TARGET_UNITS+=gdbcon gdbint
426endif
427ifeq ($(FULL_TARGET),powerpc-netbsd)
428override TARGET_UNITS+=gdbcon gdbint
429endif
430ifeq ($(FULL_TARGET),powerpc-amiga)
431override TARGET_UNITS+=gdbcon gdbint
432endif
433ifeq ($(FULL_TARGET),powerpc-macosclassic)
434override TARGET_UNITS+=gdbcon gdbint
435endif
436ifeq ($(FULL_TARGET),powerpc-darwin)
437override TARGET_UNITS+=gdbcon gdbint
438endif
439ifeq ($(FULL_TARGET),powerpc-morphos)
440override TARGET_UNITS+=gdbcon gdbint
441endif
442ifeq ($(FULL_TARGET),powerpc-embedded)
443override TARGET_UNITS+=gdbcon gdbint
444endif
445ifeq ($(FULL_TARGET),powerpc-wii)
446override TARGET_UNITS+=gdbcon gdbint
447endif
448ifeq ($(FULL_TARGET),powerpc-aix)
449override TARGET_UNITS+=gdbcon gdbint
450endif
451ifeq ($(FULL_TARGET),sparc-linux)
452override TARGET_UNITS+=gdbcon gdbint
453endif
454ifeq ($(FULL_TARGET),sparc-netbsd)
455override TARGET_UNITS+=gdbcon gdbint
456endif
457ifeq ($(FULL_TARGET),sparc-solaris)
458override TARGET_UNITS+=gdbcon gdbint
459endif
460ifeq ($(FULL_TARGET),sparc-embedded)
461override TARGET_UNITS+=gdbcon gdbint
462endif
463ifeq ($(FULL_TARGET),x86_64-linux)
464override TARGET_UNITS+=gdbcon gdbint
465endif
466ifeq ($(FULL_TARGET),x86_64-freebsd)
467override TARGET_UNITS+=gdbcon gdbint
468endif
469ifeq ($(FULL_TARGET),x86_64-haiku)
470override TARGET_UNITS+=gdbcon gdbint
471endif
472ifeq ($(FULL_TARGET),x86_64-netbsd)
473override TARGET_UNITS+=gdbcon gdbint
474endif
475ifeq ($(FULL_TARGET),x86_64-solaris)
476override TARGET_UNITS+=gdbcon gdbint
477endif
478ifeq ($(FULL_TARGET),x86_64-openbsd)
479override TARGET_UNITS+=gdbcon gdbint
480endif
481ifeq ($(FULL_TARGET),x86_64-darwin)
482override TARGET_UNITS+=gdbcon gdbint
483endif
484ifeq ($(FULL_TARGET),x86_64-win64)
485override TARGET_UNITS+=gdbcon gdbint
486endif
487ifeq ($(FULL_TARGET),x86_64-embedded)
488override TARGET_UNITS+=gdbcon gdbint
489endif
490ifeq ($(FULL_TARGET),x86_64-iphonesim)
491override TARGET_UNITS+=gdbcon gdbint
492endif
493ifeq ($(FULL_TARGET),x86_64-android)
494override TARGET_UNITS+=gdbcon gdbint
495endif
496ifeq ($(FULL_TARGET),x86_64-aros)
497override TARGET_UNITS+=gdbcon gdbint
498endif
499ifeq ($(FULL_TARGET),x86_64-dragonfly)
500override TARGET_UNITS+=gdbcon gdbint
501endif
502ifeq ($(FULL_TARGET),arm-linux)
503override TARGET_UNITS+=gdbcon gdbint
504endif
505ifeq ($(FULL_TARGET),arm-netbsd)
506override TARGET_UNITS+=gdbcon gdbint
507endif
508ifeq ($(FULL_TARGET),arm-palmos)
509override TARGET_UNITS+=gdbcon gdbint
510endif
511ifeq ($(FULL_TARGET),arm-wince)
512override TARGET_UNITS+=gdbcon gdbint
513endif
514ifeq ($(FULL_TARGET),arm-gba)
515override TARGET_UNITS+=gdbcon gdbint
516endif
517ifeq ($(FULL_TARGET),arm-nds)
518override TARGET_UNITS+=gdbcon gdbint
519endif
520ifeq ($(FULL_TARGET),arm-embedded)
521override TARGET_UNITS+=gdbcon gdbint
522endif
523ifeq ($(FULL_TARGET),arm-symbian)
524override TARGET_UNITS+=gdbcon gdbint
525endif
526ifeq ($(FULL_TARGET),arm-android)
527override TARGET_UNITS+=gdbcon gdbint
528endif
529ifeq ($(FULL_TARGET),arm-aros)
530override TARGET_UNITS+=gdbcon gdbint
531endif
532ifeq ($(FULL_TARGET),arm-ios)
533override TARGET_UNITS+=gdbcon gdbint
534endif
535ifeq ($(FULL_TARGET),powerpc64-linux)
536override TARGET_UNITS+=gdbcon gdbint
537endif
538ifeq ($(FULL_TARGET),powerpc64-darwin)
539override TARGET_UNITS+=gdbcon gdbint
540endif
541ifeq ($(FULL_TARGET),powerpc64-embedded)
542override TARGET_UNITS+=gdbcon gdbint
543endif
544ifeq ($(FULL_TARGET),powerpc64-aix)
545override TARGET_UNITS+=gdbcon gdbint
546endif
547ifeq ($(FULL_TARGET),avr-embedded)
548override TARGET_UNITS+=gdbcon gdbint
549endif
550ifeq ($(FULL_TARGET),armeb-linux)
551override TARGET_UNITS+=gdbcon gdbint
552endif
553ifeq ($(FULL_TARGET),armeb-embedded)
554override TARGET_UNITS+=gdbcon gdbint
555endif
556ifeq ($(FULL_TARGET),mips-linux)
557override TARGET_UNITS+=gdbcon gdbint
558endif
559ifeq ($(FULL_TARGET),mipsel-linux)
560override TARGET_UNITS+=gdbcon gdbint
561endif
562ifeq ($(FULL_TARGET),mipsel-embedded)
563override TARGET_UNITS+=gdbcon gdbint
564endif
565ifeq ($(FULL_TARGET),mipsel-android)
566override TARGET_UNITS+=gdbcon gdbint
567endif
568ifeq ($(FULL_TARGET),jvm-java)
569override TARGET_UNITS+=gdbcon gdbint
570endif
571ifeq ($(FULL_TARGET),jvm-android)
572override TARGET_UNITS+=gdbcon gdbint
573endif
574ifeq ($(FULL_TARGET),i8086-embedded)
575override TARGET_UNITS+=gdbcon gdbint
576endif
577ifeq ($(FULL_TARGET),i8086-msdos)
578override TARGET_UNITS+=gdbcon gdbint
579endif
580ifeq ($(FULL_TARGET),i8086-win16)
581override TARGET_UNITS+=gdbcon gdbint
582endif
583ifeq ($(FULL_TARGET),aarch64-linux)
584override TARGET_UNITS+=gdbcon gdbint
585endif
586ifeq ($(FULL_TARGET),aarch64-darwin)
587override TARGET_UNITS+=gdbcon gdbint
588endif
589ifeq ($(FULL_TARGET),aarch64-android)
590override TARGET_UNITS+=gdbcon gdbint
591endif
592ifeq ($(FULL_TARGET),aarch64-ios)
593override TARGET_UNITS+=gdbcon gdbint
594endif
595ifeq ($(FULL_TARGET),wasm-wasm)
596override TARGET_UNITS+=gdbcon gdbint
597endif
598ifeq ($(FULL_TARGET),sparc64-linux)
599override TARGET_UNITS+=gdbcon gdbint
600endif
601override INSTALL_FPCPACKAGE=y
602ifdef REQUIRE_UNITSDIR
603override UNITSDIR+=$(REQUIRE_UNITSDIR)
604endif
605ifdef REQUIRE_PACKAGESDIR
606override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
607endif
608ifdef ZIPINSTALL
609ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
610UNIXHier=1
611endif
612else
613ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
614UNIXHier=1
615endif
616endif
617ifndef INSTALL_PREFIX
618ifdef PREFIX
619INSTALL_PREFIX=$(PREFIX)
620endif
621endif
622ifndef INSTALL_PREFIX
623ifdef UNIXHier
624INSTALL_PREFIX=/usr/local
625else
626ifdef INSTALL_FPCPACKAGE
627INSTALL_BASEDIR:=/pp
628else
629INSTALL_BASEDIR:=/$(PACKAGE_NAME)
630endif
631endif
632endif
633export INSTALL_PREFIX
634ifdef INSTALL_FPCSUBDIR
635export INSTALL_FPCSUBDIR
636endif
637ifndef DIST_DESTDIR
638DIST_DESTDIR:=$(BASEDIR)
639endif
640export DIST_DESTDIR
641ifndef COMPILER_UNITTARGETDIR
642ifdef PACKAGEDIR_MAIN
643COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
644else
645COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
646endif
647endif
648ifndef COMPILER_TARGETDIR
649COMPILER_TARGETDIR=.
650endif
651ifndef INSTALL_BASEDIR
652ifdef UNIXHier
653ifdef INSTALL_FPCPACKAGE
654INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
655else
656INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
657endif
658else
659INSTALL_BASEDIR:=$(INSTALL_PREFIX)
660endif
661endif
662ifndef INSTALL_BINDIR
663ifdef UNIXHier
664INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
665else
666INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
667ifdef INSTALL_FPCPACKAGE
668ifdef CROSSCOMPILE
669ifdef CROSSINSTALL
670INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
671else
672INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
673endif
674else
675INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
676endif
677endif
678endif
679endif
680ifndef INSTALL_UNITDIR
681INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
682ifdef INSTALL_FPCPACKAGE
683ifdef PACKAGE_NAME
684INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
685endif
686endif
687endif
688ifndef INSTALL_LIBDIR
689ifdef UNIXHier
690INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
691else
692INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
693endif
694endif
695ifndef INSTALL_SOURCEDIR
696ifdef UNIXHier
697ifdef BSDhier
698SRCPREFIXDIR=share/src
699else
700ifdef linuxHier
701SRCPREFIXDIR=share/src
702else
703SRCPREFIXDIR=src
704endif
705endif
706ifdef INSTALL_FPCPACKAGE
707ifdef INSTALL_FPCSUBDIR
708INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
709else
710INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
711endif
712else
713INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
714endif
715else
716ifdef INSTALL_FPCPACKAGE
717ifdef INSTALL_FPCSUBDIR
718INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
719else
720INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
721endif
722else
723INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
724endif
725endif
726endif
727ifndef INSTALL_DOCDIR
728ifdef UNIXHier
729ifdef BSDhier
730DOCPREFIXDIR=share/doc
731else
732ifdef linuxHier
733DOCPREFIXDIR=share/doc
734else
735DOCPREFIXDIR=doc
736endif
737endif
738ifdef INSTALL_FPCPACKAGE
739INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
740else
741INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
742endif
743else
744ifdef INSTALL_FPCPACKAGE
745INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
746else
747INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
748endif
749endif
750endif
751ifndef INSTALL_EXAMPLEDIR
752ifdef UNIXHier
753ifdef INSTALL_FPCPACKAGE
754ifdef BSDhier
755INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
756else
757ifdef linuxHier
758INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
759else
760INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
761endif
762endif
763else
764ifdef BSDhier
765INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
766else
767ifdef linuxHier
768INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
769else
770INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
771endif
772endif
773endif
774else
775ifdef INSTALL_FPCPACKAGE
776INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
777else
778INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
779endif
780endif
781endif
782ifndef INSTALL_DATADIR
783INSTALL_DATADIR=$(INSTALL_BASEDIR)
784endif
785ifndef INSTALL_SHAREDDIR
786INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
787endif
788ifdef CROSSCOMPILE
789ifndef CROSSBINDIR
790CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
791ifeq ($(CROSSBINDIR),)
792CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
793endif
794endif
795else
796CROSSBINDIR=
797endif
798BATCHEXT=.bat
799LOADEREXT=.as
800EXEEXT=.exe
801PPLEXT=.ppl
802PPUEXT=.ppu
803OEXT=.o
804ASMEXT=.s
805SMARTEXT=.sl
806STATICLIBEXT=.a
807SHAREDLIBEXT=.so
808SHAREDLIBPREFIX=libfp
809STATICLIBPREFIX=libp
810IMPORTLIBPREFIX=libimp
811RSTEXT=.rst
812EXEDBGEXT=.dbg
813ifeq ($(OS_TARGET),go32v1)
814STATICLIBPREFIX=
815SHORTSUFFIX=v1
816endif
817ifeq ($(OS_TARGET),go32v2)
818STATICLIBPREFIX=
819SHORTSUFFIX=dos
820IMPORTLIBPREFIX=
821endif
822ifeq ($(OS_TARGET),watcom)
823STATICLIBPREFIX=
824OEXT=.obj
825ASMEXT=.asm
826SHAREDLIBEXT=.dll
827SHORTSUFFIX=wat
828IMPORTLIBPREFIX=
829endif
830ifneq ($(CPU_TARGET),jvm)
831ifeq ($(OS_TARGET),android)
832BATCHEXT=.sh
833EXEEXT=
834HASSHAREDLIB=1
835SHORTSUFFIX=lnx
836endif
837endif
838ifeq ($(OS_TARGET),linux)
839BATCHEXT=.sh
840EXEEXT=
841HASSHAREDLIB=1
842SHORTSUFFIX=lnx
843endif
844ifeq ($(OS_TARGET),dragonfly)
845BATCHEXT=.sh
846EXEEXT=
847HASSHAREDLIB=1
848SHORTSUFFIX=df
849endif
850ifeq ($(OS_TARGET),freebsd)
851BATCHEXT=.sh
852EXEEXT=
853HASSHAREDLIB=1
854SHORTSUFFIX=fbs
855endif
856ifeq ($(OS_TARGET),netbsd)
857BATCHEXT=.sh
858EXEEXT=
859HASSHAREDLIB=1
860SHORTSUFFIX=nbs
861endif
862ifeq ($(OS_TARGET),openbsd)
863BATCHEXT=.sh
864EXEEXT=
865HASSHAREDLIB=1
866SHORTSUFFIX=obs
867endif
868ifeq ($(OS_TARGET),win32)
869SHAREDLIBEXT=.dll
870SHORTSUFFIX=w32
871endif
872ifeq ($(OS_TARGET),os2)
873BATCHEXT=.cmd
874AOUTEXT=.out
875STATICLIBPREFIX=
876SHAREDLIBEXT=.dll
877SHORTSUFFIX=os2
878ECHO=echo
879IMPORTLIBPREFIX=
880endif
881ifeq ($(OS_TARGET),emx)
882BATCHEXT=.cmd
883AOUTEXT=.out
884STATICLIBPREFIX=
885SHAREDLIBEXT=.dll
886SHORTSUFFIX=emx
887ECHO=echo
888IMPORTLIBPREFIX=
889endif
890ifeq ($(OS_TARGET),amiga)
891EXEEXT=
892SHAREDLIBEXT=.library
893SHORTSUFFIX=amg
894endif
895ifeq ($(OS_TARGET),aros)
896EXEEXT=
897SHAREDLIBEXT=.library
898SHORTSUFFIX=aros
899endif
900ifeq ($(OS_TARGET),morphos)
901EXEEXT=
902SHAREDLIBEXT=.library
903SHORTSUFFIX=mos
904endif
905ifeq ($(OS_TARGET),atari)
906EXEEXT=.ttp
907SHORTSUFFIX=ata
908endif
909ifeq ($(OS_TARGET),beos)
910BATCHEXT=.sh
911EXEEXT=
912SHORTSUFFIX=be
913endif
914ifeq ($(OS_TARGET),haiku)
915BATCHEXT=.sh
916EXEEXT=
917SHORTSUFFIX=hai
918endif
919ifeq ($(OS_TARGET),solaris)
920BATCHEXT=.sh
921EXEEXT=
922SHORTSUFFIX=sun
923endif
924ifeq ($(OS_TARGET),qnx)
925BATCHEXT=.sh
926EXEEXT=
927SHORTSUFFIX=qnx
928endif
929ifeq ($(OS_TARGET),netware)
930EXEEXT=.nlm
931STATICLIBPREFIX=
932SHORTSUFFIX=nw
933IMPORTLIBPREFIX=imp
934endif
935ifeq ($(OS_TARGET),netwlibc)
936EXEEXT=.nlm
937STATICLIBPREFIX=
938SHORTSUFFIX=nwl
939IMPORTLIBPREFIX=imp
940endif
941ifeq ($(OS_TARGET),macosclassic)
942BATCHEXT=
943EXEEXT=
944DEBUGSYMEXT=.xcoff
945SHORTSUFFIX=mac
946IMPORTLIBPREFIX=imp
947endif
948ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
949BATCHEXT=.sh
950EXEEXT=
951HASSHAREDLIB=1
952SHORTSUFFIX=dwn
953EXEDBGEXT=.dSYM
954endif
955ifeq ($(OS_TARGET),gba)
956EXEEXT=.gba
957SHAREDLIBEXT=.so
958SHORTSUFFIX=gba
959endif
960ifeq ($(OS_TARGET),symbian)
961SHAREDLIBEXT=.dll
962SHORTSUFFIX=symbian
963endif
964ifeq ($(OS_TARGET),NativeNT)
965SHAREDLIBEXT=.dll
966SHORTSUFFIX=nativent
967endif
968ifeq ($(OS_TARGET),wii)
969EXEEXT=.dol
970SHAREDLIBEXT=.so
971SHORTSUFFIX=wii
972endif
973ifeq ($(OS_TARGET),aix)
974BATCHEXT=.sh
975EXEEXT=
976SHAREDLIBEXT=.a
977SHORTSUFFIX=aix
978endif
979ifeq ($(OS_TARGET),java)
980OEXT=.class
981ASMEXT=.j
982SHAREDLIBEXT=.jar
983SHORTSUFFIX=java
984endif
985ifeq ($(CPU_TARGET),jvm)
986ifeq ($(OS_TARGET),android)
987OEXT=.class
988ASMEXT=.j
989SHAREDLIBEXT=.jar
990SHORTSUFFIX=android
991endif
992endif
993ifeq ($(OS_TARGET),msdos)
994STATICLIBPREFIX=
995STATICLIBEXT=.a
996SHORTSUFFIX=d16
997endif
998ifeq ($(OS_TARGET),embedded)
999ifeq ($(CPU_TARGET),i8086)
1000STATICLIBPREFIX=
1001STATICLIBEXT=.a
1002else
1003EXEEXT=.bin
1004endif
1005SHORTSUFFIX=emb
1006endif
1007ifeq ($(OS_TARGET),win16)
1008STATICLIBPREFIX=
1009STATICLIBEXT=.a
1010SHAREDLIBEXT=.dll
1011SHORTSUFFIX=w16
1012endif
1013ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
1014FPCMADE=fpcmade.$(SHORTSUFFIX)
1015ZIPSUFFIX=$(SHORTSUFFIX)
1016ZIPCROSSPREFIX=
1017ZIPSOURCESUFFIX=src
1018ZIPEXAMPLESUFFIX=exm
1019else
1020FPCMADE=fpcmade.$(TARGETSUFFIX)
1021ZIPSOURCESUFFIX=.source
1022ZIPEXAMPLESUFFIX=.examples
1023ifdef CROSSCOMPILE
1024ZIPSUFFIX=.$(SOURCESUFFIX)
1025ZIPCROSSPREFIX=$(TARGETSUFFIX)-
1026else
1027ZIPSUFFIX=.$(TARGETSUFFIX)
1028ZIPCROSSPREFIX=
1029endif
1030endif
1031ifndef ECHO
1032ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
1033ifeq ($(ECHO),)
1034ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
1035ifeq ($(ECHO),)
1036ECHO= __missing_command_ECHO
1037else
1038ECHO:=$(firstword $(ECHO))
1039endif
1040else
1041ECHO:=$(firstword $(ECHO))
1042endif
1043endif
1044export ECHO
1045ifndef DATE
1046DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
1047ifeq ($(DATE),)
1048DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
1049ifeq ($(DATE),)
1050DATE= __missing_command_DATE
1051else
1052DATE:=$(firstword $(DATE))
1053endif
1054else
1055DATE:=$(firstword $(DATE))
1056endif
1057endif
1058export DATE
1059ifndef GINSTALL
1060GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
1061ifeq ($(GINSTALL),)
1062GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
1063ifeq ($(GINSTALL),)
1064GINSTALL= __missing_command_GINSTALL
1065else
1066GINSTALL:=$(firstword $(GINSTALL))
1067endif
1068else
1069GINSTALL:=$(firstword $(GINSTALL))
1070endif
1071endif
1072export GINSTALL
1073ifndef CPPROG
1074CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
1075ifeq ($(CPPROG),)
1076CPPROG= __missing_command_CPPROG
1077else
1078CPPROG:=$(firstword $(CPPROG))
1079endif
1080endif
1081export CPPROG
1082ifndef RMPROG
1083RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
1084ifeq ($(RMPROG),)
1085RMPROG= __missing_command_RMPROG
1086else
1087RMPROG:=$(firstword $(RMPROG))
1088endif
1089endif
1090export RMPROG
1091ifndef MVPROG
1092MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
1093ifeq ($(MVPROG),)
1094MVPROG= __missing_command_MVPROG
1095else
1096MVPROG:=$(firstword $(MVPROG))
1097endif
1098endif
1099export MVPROG
1100ifndef MKDIRPROG
1101MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
1102ifeq ($(MKDIRPROG),)
1103MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
1104ifeq ($(MKDIRPROG),)
1105MKDIRPROG= __missing_command_MKDIRPROG
1106else
1107MKDIRPROG:=$(firstword $(MKDIRPROG))
1108endif
1109else
1110MKDIRPROG:=$(firstword $(MKDIRPROG))
1111endif
1112endif
1113export MKDIRPROG
1114ifndef ECHOREDIR
1115ifndef inUnix
1116ECHOREDIR=echo
1117else
1118ECHOREDIR=$(ECHO)
1119endif
1120endif
1121ifndef COPY
1122COPY:=$(CPPROG) -fp
1123endif
1124ifndef COPYTREE
1125COPYTREE:=$(CPPROG) -Rfp
1126endif
1127ifndef MKDIRTREE
1128MKDIRTREE:=$(MKDIRPROG) -p
1129endif
1130ifndef MOVE
1131MOVE:=$(MVPROG) -f
1132endif
1133ifndef DEL
1134DEL:=$(RMPROG) -f
1135endif
1136ifndef DELTREE
1137DELTREE:=$(RMPROG) -rf
1138endif
1139ifndef INSTALL
1140ifdef inUnix
1141INSTALL:=$(GINSTALL) -c -m 644
1142else
1143INSTALL:=$(COPY)
1144endif
1145endif
1146ifndef INSTALLEXE
1147ifdef inUnix
1148INSTALLEXE:=$(GINSTALL) -c -m 755
1149else
1150INSTALLEXE:=$(COPY)
1151endif
1152endif
1153ifndef MKDIR
1154MKDIR:=$(GINSTALL) -m 755 -d
1155endif
1156export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
1157ifndef PPUMOVE
1158PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
1159ifeq ($(PPUMOVE),)
1160PPUMOVE= __missing_command_PPUMOVE
1161else
1162PPUMOVE:=$(firstword $(PPUMOVE))
1163endif
1164endif
1165export PPUMOVE
1166ifndef FPCMAKE
1167FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
1168ifeq ($(FPCMAKE),)
1169FPCMAKE= __missing_command_FPCMAKE
1170else
1171FPCMAKE:=$(firstword $(FPCMAKE))
1172endif
1173endif
1174export FPCMAKE
1175ifndef ZIPPROG
1176ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
1177ifeq ($(ZIPPROG),)
1178ZIPPROG= __missing_command_ZIPPROG
1179else
1180ZIPPROG:=$(firstword $(ZIPPROG))
1181endif
1182endif
1183export ZIPPROG
1184ifndef TARPROG
1185TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
1186ifeq ($(TARPROG),)
1187TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
1188ifeq ($(TARPROG),)
1189TARPROG= __missing_command_TARPROG
1190else
1191TARPROG:=$(firstword $(TARPROG))
1192endif
1193else
1194TARPROG:=$(firstword $(TARPROG))
1195endif
1196endif
1197export TARPROG
1198ASNAME=$(BINUTILSPREFIX)as
1199LDNAME=$(BINUTILSPREFIX)ld
1200ARNAME=$(BINUTILSPREFIX)ar
1201RCNAME=$(BINUTILSPREFIX)rc
1202NASMNAME=$(BINUTILSPREFIX)nasm
1203ifndef ASPROG
1204ifdef CROSSBINDIR
1205ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
1206else
1207ASPROG=$(ASNAME)
1208endif
1209endif
1210ifndef LDPROG
1211ifdef CROSSBINDIR
1212LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
1213else
1214LDPROG=$(LDNAME)
1215endif
1216endif
1217ifndef RCPROG
1218ifdef CROSSBINDIR
1219RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
1220else
1221RCPROG=$(RCNAME)
1222endif
1223endif
1224ifndef ARPROG
1225ifdef CROSSBINDIR
1226ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
1227else
1228ARPROG=$(ARNAME)
1229endif
1230endif
1231ifndef NASMPROG
1232ifdef CROSSBINDIR
1233NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
1234else
1235NASMPROG=$(NASMNAME)
1236endif
1237endif
1238AS=$(ASPROG)
1239LD=$(LDPROG)
1240RC=$(RCPROG)
1241AR=$(ARPROG)
1242NASM=$(NASMPROG)
1243ifdef inUnix
1244PPAS=./ppas$(SRCBATCHEXT)
1245else
1246PPAS=ppas$(SRCBATCHEXT)
1247endif
1248ifdef inUnix
1249LDCONFIG=ldconfig
1250else
1251LDCONFIG=
1252endif
1253ifdef DATE
1254DATESTR:=$(shell $(DATE) +%Y%m%d)
1255else
1256DATESTR=
1257endif
1258ZIPOPT=-9
1259ZIPEXT=.zip
1260ifeq ($(USETAR),bz2)
1261TAROPT=vj
1262TAREXT=.tar.bz2
1263else
1264TAROPT=vz
1265TAREXT=.tar.gz
1266endif
1267override REQUIRE_PACKAGES=rtl rtl
1268ifeq ($(FULL_TARGET),i386-linux)
1269REQUIRE_PACKAGES_RTL=1
1270endif
1271ifeq ($(FULL_TARGET),i386-go32v2)
1272REQUIRE_PACKAGES_RTL=1
1273endif
1274ifeq ($(FULL_TARGET),i386-win32)
1275REQUIRE_PACKAGES_RTL=1
1276endif
1277ifeq ($(FULL_TARGET),i386-os2)
1278REQUIRE_PACKAGES_RTL=1
1279endif
1280ifeq ($(FULL_TARGET),i386-freebsd)
1281REQUIRE_PACKAGES_RTL=1
1282endif
1283ifeq ($(FULL_TARGET),i386-beos)
1284REQUIRE_PACKAGES_RTL=1
1285endif
1286ifeq ($(FULL_TARGET),i386-haiku)
1287REQUIRE_PACKAGES_RTL=1
1288endif
1289ifeq ($(FULL_TARGET),i386-netbsd)
1290REQUIRE_PACKAGES_RTL=1
1291endif
1292ifeq ($(FULL_TARGET),i386-solaris)
1293REQUIRE_PACKAGES_RTL=1
1294endif
1295ifeq ($(FULL_TARGET),i386-netware)
1296REQUIRE_PACKAGES_RTL=1
1297endif
1298ifeq ($(FULL_TARGET),i386-openbsd)
1299REQUIRE_PACKAGES_RTL=1
1300endif
1301ifeq ($(FULL_TARGET),i386-wdosx)
1302REQUIRE_PACKAGES_RTL=1
1303endif
1304ifeq ($(FULL_TARGET),i386-darwin)
1305REQUIRE_PACKAGES_RTL=1
1306endif
1307ifeq ($(FULL_TARGET),i386-emx)
1308REQUIRE_PACKAGES_RTL=1
1309endif
1310ifeq ($(FULL_TARGET),i386-watcom)
1311REQUIRE_PACKAGES_RTL=1
1312endif
1313ifeq ($(FULL_TARGET),i386-netwlibc)
1314REQUIRE_PACKAGES_RTL=1
1315endif
1316ifeq ($(FULL_TARGET),i386-wince)
1317REQUIRE_PACKAGES_RTL=1
1318endif
1319ifeq ($(FULL_TARGET),i386-embedded)
1320REQUIRE_PACKAGES_RTL=1
1321endif
1322ifeq ($(FULL_TARGET),i386-symbian)
1323REQUIRE_PACKAGES_RTL=1
1324endif
1325ifeq ($(FULL_TARGET),i386-nativent)
1326REQUIRE_PACKAGES_RTL=1
1327endif
1328ifeq ($(FULL_TARGET),i386-iphonesim)
1329REQUIRE_PACKAGES_RTL=1
1330endif
1331ifeq ($(FULL_TARGET),i386-android)
1332REQUIRE_PACKAGES_RTL=1
1333endif
1334ifeq ($(FULL_TARGET),i386-aros)
1335REQUIRE_PACKAGES_RTL=1
1336endif
1337ifeq ($(FULL_TARGET),m68k-linux)
1338REQUIRE_PACKAGES_RTL=1
1339endif
1340ifeq ($(FULL_TARGET),m68k-netbsd)
1341REQUIRE_PACKAGES_RTL=1
1342endif
1343ifeq ($(FULL_TARGET),m68k-amiga)
1344REQUIRE_PACKAGES_RTL=1
1345endif
1346ifeq ($(FULL_TARGET),m68k-atari)
1347REQUIRE_PACKAGES_RTL=1
1348endif
1349ifeq ($(FULL_TARGET),m68k-palmos)
1350REQUIRE_PACKAGES_RTL=1
1351endif
1352ifeq ($(FULL_TARGET),m68k-macosclassic)
1353REQUIRE_PACKAGES_RTL=1
1354endif
1355ifeq ($(FULL_TARGET),m68k-embedded)
1356REQUIRE_PACKAGES_RTL=1
1357endif
1358ifeq ($(FULL_TARGET),powerpc-linux)
1359REQUIRE_PACKAGES_RTL=1
1360endif
1361ifeq ($(FULL_TARGET),powerpc-netbsd)
1362REQUIRE_PACKAGES_RTL=1
1363endif
1364ifeq ($(FULL_TARGET),powerpc-amiga)
1365REQUIRE_PACKAGES_RTL=1
1366endif
1367ifeq ($(FULL_TARGET),powerpc-macosclassic)
1368REQUIRE_PACKAGES_RTL=1
1369endif
1370ifeq ($(FULL_TARGET),powerpc-darwin)
1371REQUIRE_PACKAGES_RTL=1
1372endif
1373ifeq ($(FULL_TARGET),powerpc-morphos)
1374REQUIRE_PACKAGES_RTL=1
1375endif
1376ifeq ($(FULL_TARGET),powerpc-embedded)
1377REQUIRE_PACKAGES_RTL=1
1378endif
1379ifeq ($(FULL_TARGET),powerpc-wii)
1380REQUIRE_PACKAGES_RTL=1
1381endif
1382ifeq ($(FULL_TARGET),powerpc-aix)
1383REQUIRE_PACKAGES_RTL=1
1384endif
1385ifeq ($(FULL_TARGET),sparc-linux)
1386REQUIRE_PACKAGES_RTL=1
1387endif
1388ifeq ($(FULL_TARGET),sparc-netbsd)
1389REQUIRE_PACKAGES_RTL=1
1390endif
1391ifeq ($(FULL_TARGET),sparc-solaris)
1392REQUIRE_PACKAGES_RTL=1
1393endif
1394ifeq ($(FULL_TARGET),sparc-embedded)
1395REQUIRE_PACKAGES_RTL=1
1396endif
1397ifeq ($(FULL_TARGET),x86_64-linux)
1398REQUIRE_PACKAGES_RTL=1
1399endif
1400ifeq ($(FULL_TARGET),x86_64-freebsd)
1401REQUIRE_PACKAGES_RTL=1
1402endif
1403ifeq ($(FULL_TARGET),x86_64-haiku)
1404REQUIRE_PACKAGES_RTL=1
1405endif
1406ifeq ($(FULL_TARGET),x86_64-netbsd)
1407REQUIRE_PACKAGES_RTL=1
1408endif
1409ifeq ($(FULL_TARGET),x86_64-solaris)
1410REQUIRE_PACKAGES_RTL=1
1411endif
1412ifeq ($(FULL_TARGET),x86_64-openbsd)
1413REQUIRE_PACKAGES_RTL=1
1414endif
1415ifeq ($(FULL_TARGET),x86_64-darwin)
1416REQUIRE_PACKAGES_RTL=1
1417endif
1418ifeq ($(FULL_TARGET),x86_64-win64)
1419REQUIRE_PACKAGES_RTL=1
1420endif
1421ifeq ($(FULL_TARGET),x86_64-embedded)
1422REQUIRE_PACKAGES_RTL=1
1423endif
1424ifeq ($(FULL_TARGET),x86_64-iphonesim)
1425REQUIRE_PACKAGES_RTL=1
1426endif
1427ifeq ($(FULL_TARGET),x86_64-android)
1428REQUIRE_PACKAGES_RTL=1
1429endif
1430ifeq ($(FULL_TARGET),x86_64-aros)
1431REQUIRE_PACKAGES_RTL=1
1432endif
1433ifeq ($(FULL_TARGET),x86_64-dragonfly)
1434REQUIRE_PACKAGES_RTL=1
1435endif
1436ifeq ($(FULL_TARGET),arm-linux)
1437REQUIRE_PACKAGES_RTL=1
1438endif
1439ifeq ($(FULL_TARGET),arm-netbsd)
1440REQUIRE_PACKAGES_RTL=1
1441endif
1442ifeq ($(FULL_TARGET),arm-palmos)
1443REQUIRE_PACKAGES_RTL=1
1444endif
1445ifeq ($(FULL_TARGET),arm-wince)
1446REQUIRE_PACKAGES_RTL=1
1447endif
1448ifeq ($(FULL_TARGET),arm-gba)
1449REQUIRE_PACKAGES_RTL=1
1450endif
1451ifeq ($(FULL_TARGET),arm-nds)
1452REQUIRE_PACKAGES_RTL=1
1453endif
1454ifeq ($(FULL_TARGET),arm-embedded)
1455REQUIRE_PACKAGES_RTL=1
1456endif
1457ifeq ($(FULL_TARGET),arm-symbian)
1458REQUIRE_PACKAGES_RTL=1
1459endif
1460ifeq ($(FULL_TARGET),arm-android)
1461REQUIRE_PACKAGES_RTL=1
1462endif
1463ifeq ($(FULL_TARGET),arm-aros)
1464REQUIRE_PACKAGES_RTL=1
1465endif
1466ifeq ($(FULL_TARGET),arm-ios)
1467REQUIRE_PACKAGES_RTL=1
1468endif
1469ifeq ($(FULL_TARGET),powerpc64-linux)
1470REQUIRE_PACKAGES_RTL=1
1471endif
1472ifeq ($(FULL_TARGET),powerpc64-darwin)
1473REQUIRE_PACKAGES_RTL=1
1474endif
1475ifeq ($(FULL_TARGET),powerpc64-embedded)
1476REQUIRE_PACKAGES_RTL=1
1477endif
1478ifeq ($(FULL_TARGET),powerpc64-aix)
1479REQUIRE_PACKAGES_RTL=1
1480endif
1481ifeq ($(FULL_TARGET),avr-embedded)
1482REQUIRE_PACKAGES_RTL=1
1483endif
1484ifeq ($(FULL_TARGET),armeb-linux)
1485REQUIRE_PACKAGES_RTL=1
1486endif
1487ifeq ($(FULL_TARGET),armeb-embedded)
1488REQUIRE_PACKAGES_RTL=1
1489endif
1490ifeq ($(FULL_TARGET),mips-linux)
1491REQUIRE_PACKAGES_RTL=1
1492endif
1493ifeq ($(FULL_TARGET),mipsel-linux)
1494REQUIRE_PACKAGES_RTL=1
1495endif
1496ifeq ($(FULL_TARGET),mipsel-embedded)
1497REQUIRE_PACKAGES_RTL=1
1498endif
1499ifeq ($(FULL_TARGET),mipsel-android)
1500REQUIRE_PACKAGES_RTL=1
1501endif
1502ifeq ($(FULL_TARGET),jvm-java)
1503REQUIRE_PACKAGES_RTL=1
1504endif
1505ifeq ($(FULL_TARGET),jvm-android)
1506REQUIRE_PACKAGES_RTL=1
1507endif
1508ifeq ($(FULL_TARGET),i8086-embedded)
1509REQUIRE_PACKAGES_RTL=1
1510endif
1511ifeq ($(FULL_TARGET),i8086-msdos)
1512REQUIRE_PACKAGES_RTL=1
1513endif
1514ifeq ($(FULL_TARGET),i8086-win16)
1515REQUIRE_PACKAGES_RTL=1
1516endif
1517ifeq ($(FULL_TARGET),aarch64-linux)
1518REQUIRE_PACKAGES_RTL=1
1519endif
1520ifeq ($(FULL_TARGET),aarch64-darwin)
1521REQUIRE_PACKAGES_RTL=1
1522endif
1523ifeq ($(FULL_TARGET),aarch64-android)
1524REQUIRE_PACKAGES_RTL=1
1525endif
1526ifeq ($(FULL_TARGET),aarch64-ios)
1527REQUIRE_PACKAGES_RTL=1
1528endif
1529ifeq ($(FULL_TARGET),wasm-wasm)
1530REQUIRE_PACKAGES_RTL=1
1531endif
1532ifeq ($(FULL_TARGET),sparc64-linux)
1533REQUIRE_PACKAGES_RTL=1
1534endif
1535ifdef REQUIRE_PACKAGES_RTL
1536PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
1537ifneq ($(PACKAGEDIR_RTL),)
1538ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
1539UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
1540else
1541UNITDIR_RTL=$(PACKAGEDIR_RTL)
1542endif
1543ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
1544UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
1545else
1546ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
1547UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
1548else
1549UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
1550endif
1551endif
1552ifdef CHECKDEPEND
1553$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
1554	$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
1555override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
1556endif
1557else
1558PACKAGEDIR_RTL=
1559UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
1560ifneq ($(UNITDIR_RTL),)
1561UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
1562else
1563UNITDIR_RTL=
1564endif
1565endif
1566ifdef UNITDIR_RTL
1567override COMPILER_UNITDIR+=$(UNITDIR_RTL)
1568endif
1569ifdef UNITDIR_FPMAKE_RTL
1570override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
1571endif
1572endif
1573ifndef NOCPUDEF
1574override FPCOPTDEF=$(ARCH)
1575endif
1576ifneq ($(OS_TARGET),$(OS_SOURCE))
1577override FPCOPT+=-T$(OS_TARGET)
1578endif
1579ifneq ($(CPU_TARGET),$(CPU_SOURCE))
1580override FPCOPT+=-P$(ARCH)
1581endif
1582ifeq ($(OS_SOURCE),openbsd)
1583override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
1584override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
1585override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
1586endif
1587ifndef CROSSBOOTSTRAP
1588ifneq ($(BINUTILSPREFIX),)
1589override FPCOPT+=-XP$(BINUTILSPREFIX)
1590endif
1591ifneq ($(BINUTILSPREFIX),)
1592override FPCOPT+=-Xr$(RLINKPATH)
1593endif
1594endif
1595ifndef CROSSCOMPILE
1596ifneq ($(BINUTILSPREFIX),)
1597override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
1598override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
1599endif
1600endif
1601ifdef UNITDIR
1602override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
1603endif
1604ifdef LIBDIR
1605override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
1606endif
1607ifdef OBJDIR
1608override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
1609endif
1610ifdef INCDIR
1611override FPCOPT+=$(addprefix -Fi,$(INCDIR))
1612endif
1613ifdef LINKSMART
1614override FPCOPT+=-XX
1615endif
1616ifdef CREATESMART
1617override FPCOPT+=-CX
1618endif
1619ifdef DEBUG
1620override FPCOPT+=-gl
1621override FPCOPTDEF+=DEBUG
1622endif
1623ifdef RELEASE
1624FPCCPUOPT:=-O2
1625override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
1626override FPCOPTDEF+=RELEASE
1627endif
1628ifdef STRIP
1629override FPCOPT+=-Xs
1630endif
1631ifdef OPTIMIZE
1632override FPCOPT+=-O2
1633endif
1634ifdef VERBOSE
1635override FPCOPT+=-vwni
1636endif
1637ifdef COMPILER_OPTIONS
1638override FPCOPT+=$(COMPILER_OPTIONS)
1639endif
1640ifdef COMPILER_UNITDIR
1641override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
1642endif
1643ifdef COMPILER_LIBRARYDIR
1644override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
1645endif
1646ifdef COMPILER_OBJECTDIR
1647override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
1648endif
1649ifdef COMPILER_INCLUDEDIR
1650override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
1651endif
1652ifdef CROSSBINDIR
1653override FPCOPT+=-FD$(CROSSBINDIR)
1654endif
1655ifdef COMPILER_TARGETDIR
1656override FPCOPT+=-FE$(COMPILER_TARGETDIR)
1657ifeq ($(COMPILER_TARGETDIR),.)
1658override TARGETDIRPREFIX=
1659else
1660override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
1661endif
1662endif
1663ifdef COMPILER_UNITTARGETDIR
1664override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
1665ifeq ($(COMPILER_UNITTARGETDIR),.)
1666override UNITTARGETDIRPREFIX=
1667else
1668override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
1669endif
1670else
1671ifdef COMPILER_TARGETDIR
1672override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
1673override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
1674endif
1675endif
1676ifdef CREATESHARED
1677override FPCOPT+=-Cg
1678endif
1679ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
1680ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
1681override FPCOPT+=-Cg
1682endif
1683endif
1684ifdef LINKSHARED
1685endif
1686ifdef OPT
1687override FPCOPT+=$(OPT)
1688endif
1689ifdef FPMAKEBUILDOPT
1690override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
1691endif
1692ifdef FPCOPTDEF
1693override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
1694endif
1695ifdef CFGFILE
1696override FPCOPT+=@$(CFGFILE)
1697endif
1698ifdef USEENV
1699override FPCEXTCMD:=$(FPCOPT)
1700override FPCOPT:=!FPCEXTCMD
1701export FPCEXTCMD
1702endif
1703override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
1704override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
1705ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
1706override ACROSSCOMPILE=1
1707endif
1708ifdef ACROSSCOMPILE
1709override FPCOPT+=$(CROSSOPT)
1710endif
1711override COMPILER:=$(strip $(FPC) $(FPCOPT))
1712ifneq (,$(findstring -sh ,$(COMPILER)))
1713UseEXECPPAS=1
1714endif
1715ifneq (,$(findstring -s ,$(COMPILER)))
1716ifeq ($(FULL_SOURCE),$(FULL_TARGET))
1717UseEXECPPAS=1
1718endif
1719endif
1720ifneq ($(UseEXECPPAS),1)
1721EXECPPAS=
1722else
1723ifdef RUNBATCH
1724EXECPPAS:=@$(RUNBATCH) $(PPAS)
1725else
1726EXECPPAS:=@$(PPAS)
1727endif
1728endif
1729.PHONY: fpc_units
1730ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
1731override ALLTARGET+=fpc_units
1732override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
1733override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
1734override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
1735override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
1736endif
1737fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
1738ifdef TARGET_RSTS
1739override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
1740override CLEANRSTFILES+=$(RSTFILES)
1741endif
1742.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
1743$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
1744	@$(ECHOREDIR) Compiled > $(FPCMADE)
1745fpc_all: $(FPCMADE)
1746fpc_smart:
1747	$(MAKE) all LINKSMART=1 CREATESMART=1
1748fpc_debug:
1749	$(MAKE) all DEBUG=1
1750fpc_release:
1751	$(MAKE) all RELEASE=1
1752.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
1753$(COMPILER_UNITTARGETDIR):
1754	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
1755$(COMPILER_TARGETDIR):
1756	$(MKDIRTREE) $(COMPILER_TARGETDIR)
1757%$(PPUEXT): %.pp
1758	$(COMPILER) $<
1759	$(EXECPPAS)
1760%$(PPUEXT): %.pas
1761	$(COMPILER) $<
1762	$(EXECPPAS)
1763%$(EXEEXT): %.pp
1764	$(COMPILER) $<
1765	$(EXECPPAS)
1766%$(EXEEXT): %.pas
1767	$(COMPILER) $<
1768	$(EXECPPAS)
1769%$(EXEEXT): %.lpr
1770	$(COMPILER) $<
1771	$(EXECPPAS)
1772%$(EXEEXT): %.dpr
1773	$(COMPILER) $<
1774	$(EXECPPAS)
1775%.res: %.rc
1776	windres -i $< -o $@
1777vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
1778vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
1779vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
1780vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
1781vpath %.inc $(COMPILER_INCLUDEDIR)
1782vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
1783vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
1784.PHONY: fpc_shared
1785override INSTALLTARGET+=fpc_shared_install
1786ifndef SHARED_LIBVERSION
1787SHARED_LIBVERSION=$(FPC_VERSION)
1788endif
1789ifndef SHARED_LIBNAME
1790SHARED_LIBNAME=$(PACKAGE_NAME)
1791endif
1792ifndef SHARED_FULLNAME
1793SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
1794endif
1795ifndef SHARED_LIBUNITS
1796SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
1797override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
1798endif
1799fpc_shared:
1800ifdef HASSHAREDLIB
1801	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
1802ifneq ($(SHARED_BUILD),n)
1803	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
1804endif
1805else
1806	@$(ECHO) Shared Libraries not supported
1807endif
1808fpc_shared_install:
1809ifneq ($(SHARED_BUILD),n)
1810ifneq ($(SHARED_LIBUNITS),)
1811ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
1812	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
1813endif
1814endif
1815endif
1816.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
1817ifdef INSTALL_UNITS
1818override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
1819endif
1820ifdef INSTALL_BUILDUNIT
1821override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
1822endif
1823ifdef INSTALLPPUFILES
1824ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
1825override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
1826else
1827override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
1828endif
1829ifneq ($(UNITTARGETDIRPREFIX),)
1830override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
1831override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
1832endif
1833override INSTALL_CREATEPACKAGEFPC=1
1834endif
1835ifdef INSTALLEXEFILES
1836ifneq ($(TARGETDIRPREFIX),)
1837override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
1838endif
1839endif
1840fpc_install: all $(INSTALLTARGET)
1841ifdef INSTALLEXEFILES
1842	$(MKDIR) $(INSTALL_BINDIR)
1843	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
1844endif
1845ifdef INSTALL_CREATEPACKAGEFPC
1846ifdef FPCMAKE
1847ifdef PACKAGE_VERSION
1848ifneq ($(wildcard Makefile.fpc),)
1849	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
1850	$(MKDIR) $(INSTALL_UNITDIR)
1851	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
1852endif
1853endif
1854endif
1855endif
1856ifdef INSTALLPPUFILES
1857	$(MKDIR) $(INSTALL_UNITDIR)
1858	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
1859ifneq ($(INSTALLPPULINKFILES),)
1860	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
1861endif
1862ifneq ($(wildcard $(LIB_FULLNAME)),)
1863	$(MKDIR) $(INSTALL_LIBDIR)
1864	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
1865ifdef inUnix
1866	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
1867endif
1868endif
1869endif
1870ifdef INSTALL_FILES
1871	$(MKDIR) $(INSTALL_DATADIR)
1872	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
1873endif
1874fpc_sourceinstall: distclean
1875	$(MKDIR) $(INSTALL_SOURCEDIR)
1876	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
1877fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
1878ifdef HASEXAMPLES
1879	$(MKDIR) $(INSTALL_EXAMPLEDIR)
1880endif
1881ifdef EXAMPLESOURCEFILES
1882	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
1883endif
1884ifdef TARGET_EXAMPLEDIRS
1885	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
1886endif
1887.PHONY: fpc_clean fpc_cleanall fpc_distclean
1888ifdef EXEFILES
1889override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
1890override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
1891endif
1892ifdef CLEAN_PROGRAMS
1893override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
1894override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
1895endif
1896ifdef CLEAN_UNITS
1897override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
1898endif
1899ifdef CLEANPPUFILES
1900override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
1901ifdef DEBUGSYMEXT
1902override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
1903endif
1904override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
1905override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
1906endif
1907fpc_clean: $(CLEANTARGET)
1908ifdef CLEANEXEFILES
1909	-$(DEL) $(CLEANEXEFILES)
1910endif
1911ifdef CLEANEXEDBGFILES
1912	-$(DELTREE) $(CLEANEXEDBGFILES)
1913endif
1914ifdef CLEANPPUFILES
1915	-$(DEL) $(CLEANPPUFILES)
1916endif
1917ifneq ($(CLEANPPULINKFILES),)
1918	-$(DEL) $(CLEANPPULINKFILES)
1919endif
1920ifdef CLEANRSTFILES
1921	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
1922endif
1923ifdef CLEAN_FILES
1924	-$(DEL) $(CLEAN_FILES)
1925endif
1926ifdef LIB_NAME
1927	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
1928endif
1929	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
1930	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
1931fpc_cleanall: $(CLEANTARGET)
1932ifdef CLEANEXEFILES
1933	-$(DEL) $(CLEANEXEFILES)
1934endif
1935ifdef COMPILER_UNITTARGETDIR
1936ifdef CLEANPPUFILES
1937	-$(DEL) $(CLEANPPUFILES)
1938endif
1939ifneq ($(CLEANPPULINKFILES),)
1940	-$(DEL) $(CLEANPPULINKFILES)
1941endif
1942ifdef CLEANRSTFILES
1943	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
1944endif
1945endif
1946ifdef CLEAN_FILES
1947	-$(DEL) $(CLEAN_FILES)
1948endif
1949	-$(DELTREE) units
1950	-$(DELTREE) bin
1951	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
1952ifneq ($(PPUEXT),.ppu)
1953	-$(DEL) *.o *.ppu *.a
1954endif
1955	-$(DELTREE) *$(SMARTEXT)
1956	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
1957	-$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
1958ifdef AOUTEXT
1959	-$(DEL) *$(AOUTEXT)
1960endif
1961ifdef DEBUGSYMEXT
1962	-$(DEL) *$(DEBUGSYMEXT)
1963endif
1964ifdef LOCALFPMAKEBIN
1965	-$(DEL) $(LOCALFPMAKEBIN)
1966	-$(DEL) $(FPMAKEBINOBJ)
1967endif
1968fpc_distclean: cleanall
1969.PHONY: fpc_baseinfo
1970override INFORULES+=fpc_baseinfo
1971fpc_baseinfo:
1972	@$(ECHO)
1973	@$(ECHO)  == Package info ==
1974	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
1975	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
1976	@$(ECHO)
1977	@$(ECHO)  == Configuration info ==
1978	@$(ECHO)
1979	@$(ECHO)  FPC.......... $(FPC)
1980	@$(ECHO)  FPC Version.. $(FPC_VERSION)
1981	@$(ECHO)  Source CPU... $(CPU_SOURCE)
1982	@$(ECHO)  Target CPU... $(CPU_TARGET)
1983	@$(ECHO)  Source OS.... $(OS_SOURCE)
1984	@$(ECHO)  Target OS.... $(OS_TARGET)
1985	@$(ECHO)  Full Source.. $(FULL_SOURCE)
1986	@$(ECHO)  Full Target.. $(FULL_TARGET)
1987	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
1988	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
1989	@$(ECHO)  FPC fpmake... $(FPCFPMAKE)
1990	@$(ECHO)
1991	@$(ECHO)  == Directory info ==
1992	@$(ECHO)
1993	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
1994	@$(ECHO)
1995	@$(ECHO)  Basedir......... $(BASEDIR)
1996	@$(ECHO)  FPCDir.......... $(FPCDIR)
1997	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
1998	@$(ECHO)  UnitsDir........ $(UNITSDIR)
1999	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
2000	@$(ECHO)
2001	@$(ECHO)  GCC library..... $(GCCLIBDIR)
2002	@$(ECHO)  Other library... $(OTHERLIBDIR)
2003	@$(ECHO)
2004	@$(ECHO)  == Tools info ==
2005	@$(ECHO)
2006	@$(ECHO)  As........ $(AS)
2007	@$(ECHO)  Ld........ $(LD)
2008	@$(ECHO)  Ar........ $(AR)
2009	@$(ECHO)  Rc........ $(RC)
2010	@$(ECHO)
2011	@$(ECHO)  Mv........ $(MVPROG)
2012	@$(ECHO)  Cp........ $(CPPROG)
2013	@$(ECHO)  Rm........ $(RMPROG)
2014	@$(ECHO)  GInstall.. $(GINSTALL)
2015	@$(ECHO)  Echo...... $(ECHO)
2016	@$(ECHO)  Shell..... $(SHELL)
2017	@$(ECHO)  Date...... $(DATE)
2018	@$(ECHO)  FPCMake... $(FPCMAKE)
2019	@$(ECHO)  PPUMove... $(PPUMOVE)
2020	@$(ECHO)  Zip....... $(ZIPPROG)
2021	@$(ECHO)
2022	@$(ECHO)  == Object info ==
2023	@$(ECHO)
2024	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
2025	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
2026	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
2027	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
2028	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
2029	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
2030	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
2031	@$(ECHO)
2032	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
2033	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
2034	@$(ECHO)
2035	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
2036	@$(ECHO)  Install Files....... $(INSTALL_FILES)
2037	@$(ECHO)
2038	@$(ECHO)  == Install info ==
2039	@$(ECHO)
2040	@$(ECHO)  DateStr.............. $(DATESTR)
2041	@$(ECHO)  ZipName.............. $(ZIPNAME)
2042	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
2043	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
2044	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
2045	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
2046	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
2047	@$(ECHO)
2048	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
2049	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
2050	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
2051	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
2052	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
2053	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
2054	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
2055	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
2056	@$(ECHO)
2057	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
2058	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
2059	@$(ECHO)
2060.PHONY: fpc_info
2061fpc_info: $(INFORULES)
2062.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
2063	fpc_makefile_dirs
2064fpc_makefile:
2065	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
2066fpc_makefile_sub1:
2067ifdef TARGET_DIRS
2068	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
2069endif
2070ifdef TARGET_EXAMPLEDIRS
2071	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
2072endif
2073fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
2074fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
2075fpc_makefiles: fpc_makefile fpc_makefile_dirs
2076all: fpc_all
2077debug: fpc_debug
2078smart: fpc_smart
2079release: fpc_release
2080units: fpc_units
2081examples:
2082shared: fpc_shared
2083install: fpc_install
2084sourceinstall: fpc_sourceinstall
2085exampleinstall: fpc_exampleinstall
2086distinstall:
2087zipinstall:
2088zipsourceinstall:
2089zipexampleinstall:
2090zipdistinstall:
2091clean: fpc_clean
2092distclean: fpc_distclean
2093cleanall: fpc_cleanall
2094info: fpc_info
2095makefiles: fpc_makefiles
2096.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
2097ifneq ($(wildcard fpcmake.loc),)
2098include fpcmake.loc
2099endif
2100gdbint$(PPUEXT): gdbint.pas
2101gdbcon$(PPUEXT): gdbcon.pas gdbint$(PPUEXT)
2102