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 m68k-sinclairql 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-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
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
103ifndef FPC
104ifdef PP
105FPC=$(PP)
106endif
107endif
108ifndef FPC
109FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
110ifneq ($(FPCPROG),)
111FPCPROG:=$(firstword $(FPCPROG))
112ifneq ($(CPU_TARGET),)
113FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
114else
115FPC:=$(shell $(FPCPROG) -PB)
116endif
117ifneq ($(findstring Error,$(FPC)),)
118override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
119else
120ifeq ($(strip $(wildcard $(FPC))),)
121FPC:=$(firstword $(FPCPROG))
122endif
123endif
124else
125override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
126endif
127endif
128override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
129override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
130FOUNDFPC:=$(strip $(wildcard $(FPC)))
131ifeq ($(FOUNDFPC),)
132FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
133ifeq ($(FOUNDFPC),)
134$(error Compiler $(FPC) not found)
135endif
136endif
137ifndef FPC_COMPILERINFO
138FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
139endif
140ifndef FPC_VERSION
141FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
142endif
143export FPC FPC_VERSION FPC_COMPILERINFO
144unexport CHECKDEPEND ALLDEPENDENCIES
145ifndef CPU_TARGET
146ifdef CPU_TARGET_DEFAULT
147CPU_TARGET=$(CPU_TARGET_DEFAULT)
148endif
149endif
150ifndef OS_TARGET
151ifdef OS_TARGET_DEFAULT
152OS_TARGET=$(OS_TARGET_DEFAULT)
153endif
154endif
155ifndef CPU_SOURCE
156CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
157endif
158ifndef CPU_TARGET
159CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
160endif
161ifndef OS_SOURCE
162OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
163endif
164ifndef OS_TARGET
165OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
166endif
167FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
168FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
169ifeq ($(CPU_TARGET),armeb)
170ARCH=arm
171override FPCOPT+=-Cb
172else
173ifeq ($(CPU_TARGET),armel)
174ARCH=arm
175override FPCOPT+=-CaEABI
176else
177ARCH=$(CPU_TARGET)
178endif
179endif
180ifeq ($(FULL_TARGET),arm-embedded)
181ifeq ($(SUBARCH),)
182$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
183endif
184override FPCOPT+=-Cp$(SUBARCH)
185endif
186ifeq ($(FULL_TARGET),avr-embedded)
187ifeq ($(SUBARCH),)
188$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
189endif
190override FPCOPT+=-Cp$(SUBARCH)
191endif
192ifeq ($(FULL_TARGET),mipsel-embedded)
193ifeq ($(SUBARCH),)
194$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
195endif
196override FPCOPT+=-Cp$(SUBARCH)
197endif
198ifeq ($(FULL_TARGET),xtensa-embedded)
199ifeq ($(SUBARCH),)
200$(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
201endif
202override FPCOPT+=-Cp$(SUBARCH)
203endif
204ifeq ($(FULL_TARGET),xtensa-freertos)
205ifeq ($(SUBARCH),)
206$(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
207endif
208override FPCOPT+=-Cp$(SUBARCH)
209endif
210ifeq ($(FULL_TARGET),arm-freertos)
211ifeq ($(SUBARCH),)
212$(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
213endif
214override FPCOPT+=-Cp$(SUBARCH)
215endif
216ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
217TARGETSUFFIX=$(OS_TARGET)
218SOURCESUFFIX=$(OS_SOURCE)
219else
220ifneq ($(findstring $(OS_TARGET),$(LIMIT83fs)),)
221TARGETSUFFIX=$(OS_TARGET)
222else
223TARGETSUFFIX=$(FULL_TARGET)
224endif
225SOURCESUFFIX=$(FULL_SOURCE)
226endif
227ifneq ($(FULL_TARGET),$(FULL_SOURCE))
228CROSSCOMPILE=1
229endif
230ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
231ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
232$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
233endif
234endif
235ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
236BSDhier=1
237endif
238ifeq ($(OS_TARGET),linux)
239linuxHier=1
240endif
241ifndef CROSSCOMPILE
242BUILDFULLNATIVE=1
243export BUILDFULLNATIVE
244endif
245ifdef BUILDFULLNATIVE
246BUILDNATIVE=1
247export BUILDNATIVE
248endif
249export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
250ifdef FPCDIR
251override FPCDIR:=$(subst \,/,$(FPCDIR))
252ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
253override FPCDIR=wrong
254endif
255else
256override FPCDIR=wrong
257endif
258ifdef DEFAULT_FPCDIR
259ifeq ($(FPCDIR),wrong)
260override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
261ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
262override FPCDIR=wrong
263endif
264endif
265endif
266ifeq ($(FPCDIR),wrong)
267ifdef inUnix
268override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
269ifeq ($(wildcard $(FPCDIR)/units),)
270override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
271endif
272else
273override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
274override FPCDIR:=$(FPCDIR)/..
275ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
276override FPCDIR:=$(FPCDIR)/..
277ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
278override FPCDIR:=$(BASEDIR)
279ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
280override FPCDIR=c:/pp
281endif
282endif
283endif
284endif
285endif
286ifndef CROSSBINDIR
287CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
288endif
289ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
290ifneq ($(findstring $(OS_SOURCE),darwin ios),)
291DARWIN2DARWIN=1
292endif
293endif
294ifndef BINUTILSPREFIX
295ifndef CROSSBINDIR
296ifdef CROSSCOMPILE
297ifneq ($(OS_TARGET),msdos)
298ifndef DARWIN2DARWIN
299ifneq ($(CPU_TARGET),jvm)
300BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
301ifeq ($(OS_TARGET),android)
302ifeq ($(CPU_TARGET),arm)
303BINUTILSPREFIX=arm-linux-androideabi-
304else
305ifeq ($(CPU_TARGET),i386)
306BINUTILSPREFIX=i686-linux-android-
307else
308BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
309endif
310endif
311endif
312endif
313endif
314else
315BINUTILSPREFIX=$(OS_TARGET)-
316endif
317endif
318endif
319endif
320UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
321ifeq ($(UNITSDIR),)
322UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
323endif
324PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
325ifndef FPCFPMAKE
326ifdef CROSSCOMPILE
327ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
328FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
329ifneq ($(FPCPROG),)
330FPCPROG:=$(firstword $(FPCPROG))
331FPCFPMAKE:=$(shell $(FPCPROG) -PB)
332ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
333FPCFPMAKE:=$(firstword $(FPCPROG))
334endif
335else
336override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
337endif
338else
339FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
340FPMAKE_SKIP_CONFIG=-n
341export FPCFPMAKE
342export FPMAKE_SKIP_CONFIG
343endif
344else
345FPMAKE_SKIP_CONFIG=-n
346FPCFPMAKE=$(FPC)
347endif
348endif
349override PACKAGE_NAME=lazarus
350override PACKAGE_VERSION=$(IDEVERSION)
351RCPP?=$(strip $(firstword cpp$(SRCEXEEXT)))
352ifndef LAZARUS_INSTALL_DIR
353LAZARUS_INSTALL_DIR=$(INSTALL_PREFIX)/share/lazarus
354INSTALL_MAN_DIR=$(INSTALL_PREFIX)/share/man
355ifneq ($(findstring $(OS_TARGET),win32 win64),)
356LAZARUS_INSTALL_DIR=C:\lazarus
357endif
358ifneq ($(findstring $(OS_TARGET),freebsd),)
359LAZARUS_INSTALL_DIR=$(INSTALL_PREFIX)/local/lazarus
360endif
361endif
362ifndef INSTALL_MAN_DIR
363INSTALL_MAN_DIR=$(INSTALL_PREFIX)/share/man
364endif
365ifneq ($(findstring $(OS_TARGET),win32 win64),)
366IDEVERSION=$(shell .\tools\install\get_lazarus_version.bat)
367else
368IDEVERSION=$(shell ./tools/install/get_lazarus_version.sh)
369endif
370ifeq ($(FULL_TARGET),i386-linux)
371override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
372endif
373ifeq ($(FULL_TARGET),i386-go32v2)
374override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
375endif
376ifeq ($(FULL_TARGET),i386-win32)
377override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
378endif
379ifeq ($(FULL_TARGET),i386-os2)
380override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
381endif
382ifeq ($(FULL_TARGET),i386-freebsd)
383override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
384endif
385ifeq ($(FULL_TARGET),i386-beos)
386override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
387endif
388ifeq ($(FULL_TARGET),i386-haiku)
389override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
390endif
391ifeq ($(FULL_TARGET),i386-netbsd)
392override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
393endif
394ifeq ($(FULL_TARGET),i386-solaris)
395override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
396endif
397ifeq ($(FULL_TARGET),i386-netware)
398override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
399endif
400ifeq ($(FULL_TARGET),i386-openbsd)
401override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
402endif
403ifeq ($(FULL_TARGET),i386-wdosx)
404override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
405endif
406ifeq ($(FULL_TARGET),i386-darwin)
407override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
408endif
409ifeq ($(FULL_TARGET),i386-emx)
410override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
411endif
412ifeq ($(FULL_TARGET),i386-watcom)
413override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
414endif
415ifeq ($(FULL_TARGET),i386-netwlibc)
416override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
417endif
418ifeq ($(FULL_TARGET),i386-wince)
419override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
420endif
421ifeq ($(FULL_TARGET),i386-embedded)
422override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
423endif
424ifeq ($(FULL_TARGET),i386-symbian)
425override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
426endif
427ifeq ($(FULL_TARGET),i386-nativent)
428override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
429endif
430ifeq ($(FULL_TARGET),i386-iphonesim)
431override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
432endif
433ifeq ($(FULL_TARGET),i386-android)
434override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
435endif
436ifeq ($(FULL_TARGET),i386-aros)
437override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
438endif
439ifeq ($(FULL_TARGET),m68k-linux)
440override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
441endif
442ifeq ($(FULL_TARGET),m68k-netbsd)
443override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
444endif
445ifeq ($(FULL_TARGET),m68k-amiga)
446override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
447endif
448ifeq ($(FULL_TARGET),m68k-atari)
449override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
450endif
451ifeq ($(FULL_TARGET),m68k-palmos)
452override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
453endif
454ifeq ($(FULL_TARGET),m68k-macosclassic)
455override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
456endif
457ifeq ($(FULL_TARGET),m68k-embedded)
458override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
459endif
460ifeq ($(FULL_TARGET),m68k-sinclairql)
461override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
462endif
463ifeq ($(FULL_TARGET),powerpc-linux)
464override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
465endif
466ifeq ($(FULL_TARGET),powerpc-netbsd)
467override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
468endif
469ifeq ($(FULL_TARGET),powerpc-amiga)
470override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
471endif
472ifeq ($(FULL_TARGET),powerpc-macosclassic)
473override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
474endif
475ifeq ($(FULL_TARGET),powerpc-darwin)
476override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
477endif
478ifeq ($(FULL_TARGET),powerpc-morphos)
479override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
480endif
481ifeq ($(FULL_TARGET),powerpc-embedded)
482override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
483endif
484ifeq ($(FULL_TARGET),powerpc-wii)
485override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
486endif
487ifeq ($(FULL_TARGET),powerpc-aix)
488override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
489endif
490ifeq ($(FULL_TARGET),sparc-linux)
491override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
492endif
493ifeq ($(FULL_TARGET),sparc-netbsd)
494override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
495endif
496ifeq ($(FULL_TARGET),sparc-solaris)
497override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
498endif
499ifeq ($(FULL_TARGET),sparc-embedded)
500override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
501endif
502ifeq ($(FULL_TARGET),x86_64-linux)
503override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
504endif
505ifeq ($(FULL_TARGET),x86_64-freebsd)
506override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
507endif
508ifeq ($(FULL_TARGET),x86_64-haiku)
509override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
510endif
511ifeq ($(FULL_TARGET),x86_64-netbsd)
512override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
513endif
514ifeq ($(FULL_TARGET),x86_64-solaris)
515override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
516endif
517ifeq ($(FULL_TARGET),x86_64-openbsd)
518override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
519endif
520ifeq ($(FULL_TARGET),x86_64-darwin)
521override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
522endif
523ifeq ($(FULL_TARGET),x86_64-win64)
524override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
525endif
526ifeq ($(FULL_TARGET),x86_64-embedded)
527override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
528endif
529ifeq ($(FULL_TARGET),x86_64-iphonesim)
530override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
531endif
532ifeq ($(FULL_TARGET),x86_64-android)
533override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
534endif
535ifeq ($(FULL_TARGET),x86_64-aros)
536override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
537endif
538ifeq ($(FULL_TARGET),x86_64-dragonfly)
539override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
540endif
541ifeq ($(FULL_TARGET),arm-linux)
542override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
543endif
544ifeq ($(FULL_TARGET),arm-netbsd)
545override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
546endif
547ifeq ($(FULL_TARGET),arm-palmos)
548override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
549endif
550ifeq ($(FULL_TARGET),arm-wince)
551override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
552endif
553ifeq ($(FULL_TARGET),arm-gba)
554override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
555endif
556ifeq ($(FULL_TARGET),arm-nds)
557override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
558endif
559ifeq ($(FULL_TARGET),arm-embedded)
560override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
561endif
562ifeq ($(FULL_TARGET),arm-symbian)
563override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
564endif
565ifeq ($(FULL_TARGET),arm-android)
566override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
567endif
568ifeq ($(FULL_TARGET),arm-aros)
569override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
570endif
571ifeq ($(FULL_TARGET),arm-freertos)
572override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
573endif
574ifeq ($(FULL_TARGET),arm-ios)
575override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
576endif
577ifeq ($(FULL_TARGET),powerpc64-linux)
578override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
579endif
580ifeq ($(FULL_TARGET),powerpc64-darwin)
581override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
582endif
583ifeq ($(FULL_TARGET),powerpc64-embedded)
584override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
585endif
586ifeq ($(FULL_TARGET),powerpc64-aix)
587override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
588endif
589ifeq ($(FULL_TARGET),avr-embedded)
590override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
591endif
592ifeq ($(FULL_TARGET),armeb-linux)
593override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
594endif
595ifeq ($(FULL_TARGET),armeb-embedded)
596override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
597endif
598ifeq ($(FULL_TARGET),mips-linux)
599override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
600endif
601ifeq ($(FULL_TARGET),mipsel-linux)
602override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
603endif
604ifeq ($(FULL_TARGET),mipsel-embedded)
605override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
606endif
607ifeq ($(FULL_TARGET),mipsel-android)
608override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
609endif
610ifeq ($(FULL_TARGET),mips64el-linux)
611override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
612endif
613ifeq ($(FULL_TARGET),jvm-java)
614override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
615endif
616ifeq ($(FULL_TARGET),jvm-android)
617override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
618endif
619ifeq ($(FULL_TARGET),i8086-embedded)
620override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
621endif
622ifeq ($(FULL_TARGET),i8086-msdos)
623override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
624endif
625ifeq ($(FULL_TARGET),i8086-win16)
626override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
627endif
628ifeq ($(FULL_TARGET),aarch64-linux)
629override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
630endif
631ifeq ($(FULL_TARGET),aarch64-freebsd)
632override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
633endif
634ifeq ($(FULL_TARGET),aarch64-darwin)
635override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
636endif
637ifeq ($(FULL_TARGET),aarch64-win64)
638override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
639endif
640ifeq ($(FULL_TARGET),aarch64-android)
641override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
642endif
643ifeq ($(FULL_TARGET),aarch64-ios)
644override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
645endif
646ifeq ($(FULL_TARGET),wasm32-embedded)
647override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
648endif
649ifeq ($(FULL_TARGET),wasm32-wasi)
650override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
651endif
652ifeq ($(FULL_TARGET),sparc64-linux)
653override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
654endif
655ifeq ($(FULL_TARGET),riscv32-linux)
656override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
657endif
658ifeq ($(FULL_TARGET),riscv32-embedded)
659override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
660endif
661ifeq ($(FULL_TARGET),riscv64-linux)
662override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
663endif
664ifeq ($(FULL_TARGET),riscv64-embedded)
665override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
666endif
667ifeq ($(FULL_TARGET),xtensa-linux)
668override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
669endif
670ifeq ($(FULL_TARGET),xtensa-embedded)
671override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
672endif
673ifeq ($(FULL_TARGET),xtensa-freertos)
674override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
675endif
676ifeq ($(FULL_TARGET),z80-embedded)
677override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
678endif
679ifeq ($(FULL_TARGET),z80-zxspectrum)
680override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
681endif
682ifeq ($(FULL_TARGET),z80-msxdos)
683override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
684endif
685ifeq ($(FULL_TARGET),z80-amstradcpc)
686override TARGET_PROGRAMS+=lazarus startlazarus lazbuild
687endif
688ifeq ($(FULL_TARGET),i386-linux)
689override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
690endif
691ifeq ($(FULL_TARGET),i386-go32v2)
692override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
693endif
694ifeq ($(FULL_TARGET),i386-win32)
695override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
696endif
697ifeq ($(FULL_TARGET),i386-os2)
698override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
699endif
700ifeq ($(FULL_TARGET),i386-freebsd)
701override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
702endif
703ifeq ($(FULL_TARGET),i386-beos)
704override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
705endif
706ifeq ($(FULL_TARGET),i386-haiku)
707override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
708endif
709ifeq ($(FULL_TARGET),i386-netbsd)
710override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
711endif
712ifeq ($(FULL_TARGET),i386-solaris)
713override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
714endif
715ifeq ($(FULL_TARGET),i386-netware)
716override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
717endif
718ifeq ($(FULL_TARGET),i386-openbsd)
719override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
720endif
721ifeq ($(FULL_TARGET),i386-wdosx)
722override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
723endif
724ifeq ($(FULL_TARGET),i386-darwin)
725override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
726endif
727ifeq ($(FULL_TARGET),i386-emx)
728override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
729endif
730ifeq ($(FULL_TARGET),i386-watcom)
731override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
732endif
733ifeq ($(FULL_TARGET),i386-netwlibc)
734override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
735endif
736ifeq ($(FULL_TARGET),i386-wince)
737override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
738endif
739ifeq ($(FULL_TARGET),i386-embedded)
740override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
741endif
742ifeq ($(FULL_TARGET),i386-symbian)
743override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
744endif
745ifeq ($(FULL_TARGET),i386-nativent)
746override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
747endif
748ifeq ($(FULL_TARGET),i386-iphonesim)
749override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
750endif
751ifeq ($(FULL_TARGET),i386-android)
752override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
753endif
754ifeq ($(FULL_TARGET),i386-aros)
755override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
756endif
757ifeq ($(FULL_TARGET),m68k-linux)
758override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
759endif
760ifeq ($(FULL_TARGET),m68k-netbsd)
761override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
762endif
763ifeq ($(FULL_TARGET),m68k-amiga)
764override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
765endif
766ifeq ($(FULL_TARGET),m68k-atari)
767override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
768endif
769ifeq ($(FULL_TARGET),m68k-palmos)
770override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
771endif
772ifeq ($(FULL_TARGET),m68k-macosclassic)
773override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
774endif
775ifeq ($(FULL_TARGET),m68k-embedded)
776override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
777endif
778ifeq ($(FULL_TARGET),m68k-sinclairql)
779override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
780endif
781ifeq ($(FULL_TARGET),powerpc-linux)
782override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
783endif
784ifeq ($(FULL_TARGET),powerpc-netbsd)
785override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
786endif
787ifeq ($(FULL_TARGET),powerpc-amiga)
788override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
789endif
790ifeq ($(FULL_TARGET),powerpc-macosclassic)
791override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
792endif
793ifeq ($(FULL_TARGET),powerpc-darwin)
794override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
795endif
796ifeq ($(FULL_TARGET),powerpc-morphos)
797override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
798endif
799ifeq ($(FULL_TARGET),powerpc-embedded)
800override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
801endif
802ifeq ($(FULL_TARGET),powerpc-wii)
803override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
804endif
805ifeq ($(FULL_TARGET),powerpc-aix)
806override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
807endif
808ifeq ($(FULL_TARGET),sparc-linux)
809override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
810endif
811ifeq ($(FULL_TARGET),sparc-netbsd)
812override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
813endif
814ifeq ($(FULL_TARGET),sparc-solaris)
815override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
816endif
817ifeq ($(FULL_TARGET),sparc-embedded)
818override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
819endif
820ifeq ($(FULL_TARGET),x86_64-linux)
821override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
822endif
823ifeq ($(FULL_TARGET),x86_64-freebsd)
824override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
825endif
826ifeq ($(FULL_TARGET),x86_64-haiku)
827override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
828endif
829ifeq ($(FULL_TARGET),x86_64-netbsd)
830override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
831endif
832ifeq ($(FULL_TARGET),x86_64-solaris)
833override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
834endif
835ifeq ($(FULL_TARGET),x86_64-openbsd)
836override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
837endif
838ifeq ($(FULL_TARGET),x86_64-darwin)
839override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
840endif
841ifeq ($(FULL_TARGET),x86_64-win64)
842override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
843endif
844ifeq ($(FULL_TARGET),x86_64-embedded)
845override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
846endif
847ifeq ($(FULL_TARGET),x86_64-iphonesim)
848override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
849endif
850ifeq ($(FULL_TARGET),x86_64-android)
851override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
852endif
853ifeq ($(FULL_TARGET),x86_64-aros)
854override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
855endif
856ifeq ($(FULL_TARGET),x86_64-dragonfly)
857override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
858endif
859ifeq ($(FULL_TARGET),arm-linux)
860override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
861endif
862ifeq ($(FULL_TARGET),arm-netbsd)
863override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
864endif
865ifeq ($(FULL_TARGET),arm-palmos)
866override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
867endif
868ifeq ($(FULL_TARGET),arm-wince)
869override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
870endif
871ifeq ($(FULL_TARGET),arm-gba)
872override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
873endif
874ifeq ($(FULL_TARGET),arm-nds)
875override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
876endif
877ifeq ($(FULL_TARGET),arm-embedded)
878override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
879endif
880ifeq ($(FULL_TARGET),arm-symbian)
881override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
882endif
883ifeq ($(FULL_TARGET),arm-android)
884override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
885endif
886ifeq ($(FULL_TARGET),arm-aros)
887override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
888endif
889ifeq ($(FULL_TARGET),arm-freertos)
890override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
891endif
892ifeq ($(FULL_TARGET),arm-ios)
893override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
894endif
895ifeq ($(FULL_TARGET),powerpc64-linux)
896override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
897endif
898ifeq ($(FULL_TARGET),powerpc64-darwin)
899override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
900endif
901ifeq ($(FULL_TARGET),powerpc64-embedded)
902override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
903endif
904ifeq ($(FULL_TARGET),powerpc64-aix)
905override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
906endif
907ifeq ($(FULL_TARGET),avr-embedded)
908override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
909endif
910ifeq ($(FULL_TARGET),armeb-linux)
911override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
912endif
913ifeq ($(FULL_TARGET),armeb-embedded)
914override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
915endif
916ifeq ($(FULL_TARGET),mips-linux)
917override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
918endif
919ifeq ($(FULL_TARGET),mipsel-linux)
920override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
921endif
922ifeq ($(FULL_TARGET),mipsel-embedded)
923override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
924endif
925ifeq ($(FULL_TARGET),mipsel-android)
926override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
927endif
928ifeq ($(FULL_TARGET),mips64el-linux)
929override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
930endif
931ifeq ($(FULL_TARGET),jvm-java)
932override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
933endif
934ifeq ($(FULL_TARGET),jvm-android)
935override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
936endif
937ifeq ($(FULL_TARGET),i8086-embedded)
938override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
939endif
940ifeq ($(FULL_TARGET),i8086-msdos)
941override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
942endif
943ifeq ($(FULL_TARGET),i8086-win16)
944override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
945endif
946ifeq ($(FULL_TARGET),aarch64-linux)
947override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
948endif
949ifeq ($(FULL_TARGET),aarch64-freebsd)
950override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
951endif
952ifeq ($(FULL_TARGET),aarch64-darwin)
953override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
954endif
955ifeq ($(FULL_TARGET),aarch64-win64)
956override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
957endif
958ifeq ($(FULL_TARGET),aarch64-android)
959override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
960endif
961ifeq ($(FULL_TARGET),aarch64-ios)
962override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
963endif
964ifeq ($(FULL_TARGET),wasm32-embedded)
965override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
966endif
967ifeq ($(FULL_TARGET),wasm32-wasi)
968override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
969endif
970ifeq ($(FULL_TARGET),sparc64-linux)
971override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
972endif
973ifeq ($(FULL_TARGET),riscv32-linux)
974override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
975endif
976ifeq ($(FULL_TARGET),riscv32-embedded)
977override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
978endif
979ifeq ($(FULL_TARGET),riscv64-linux)
980override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
981endif
982ifeq ($(FULL_TARGET),riscv64-embedded)
983override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
984endif
985ifeq ($(FULL_TARGET),xtensa-linux)
986override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
987endif
988ifeq ($(FULL_TARGET),xtensa-embedded)
989override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
990endif
991ifeq ($(FULL_TARGET),xtensa-freertos)
992override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
993endif
994ifeq ($(FULL_TARGET),z80-embedded)
995override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
996endif
997ifeq ($(FULL_TARGET),z80-zxspectrum)
998override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
999endif
1000ifeq ($(FULL_TARGET),z80-msxdos)
1001override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
1002endif
1003ifeq ($(FULL_TARGET),z80-amstradcpc)
1004override CLEAN_FILES+=$(wildcard *$(OEXT)) $(wildcard *$(PPUEXT)) $(wildcard *$(RSTEXT)) $(wildcard *.lfm)
1005endif
1006override INSTALL_BASEDIR=share/lazarus
1007override INSTALL_FPCPACKAGE=n
1008override DIST_DESTDIR=$(BASEDIR)/dist
1009ifdef REQUIRE_UNITSDIR
1010override UNITSDIR+=$(REQUIRE_UNITSDIR)
1011endif
1012ifdef REQUIRE_PACKAGESDIR
1013override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
1014endif
1015ifdef ZIPINSTALL
1016ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
1017UNIXHier=1
1018endif
1019else
1020ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
1021UNIXHier=1
1022endif
1023endif
1024ifndef INSTALL_PREFIX
1025ifdef PREFIX
1026INSTALL_PREFIX=$(PREFIX)
1027endif
1028endif
1029ifndef INSTALL_PREFIX
1030ifdef UNIXHier
1031INSTALL_PREFIX=/usr/local
1032else
1033ifdef INSTALL_FPCPACKAGE
1034INSTALL_BASEDIR:=/pp
1035else
1036INSTALL_BASEDIR:=/$(PACKAGE_NAME)
1037endif
1038endif
1039endif
1040export INSTALL_PREFIX
1041ifdef INSTALL_FPCSUBDIR
1042export INSTALL_FPCSUBDIR
1043endif
1044ifndef DIST_DESTDIR
1045DIST_DESTDIR:=$(BASEDIR)
1046endif
1047export DIST_DESTDIR
1048ifndef COMPILER_UNITTARGETDIR
1049ifdef PACKAGEDIR_MAIN
1050COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
1051else
1052COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
1053endif
1054endif
1055ifndef COMPILER_TARGETDIR
1056COMPILER_TARGETDIR=.
1057endif
1058ifndef INSTALL_BASEDIR
1059ifdef UNIXHier
1060ifdef INSTALL_FPCPACKAGE
1061INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
1062else
1063INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
1064endif
1065else
1066INSTALL_BASEDIR:=$(INSTALL_PREFIX)
1067endif
1068endif
1069ifndef INSTALL_BINDIR
1070ifdef UNIXHier
1071INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
1072else
1073INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
1074ifdef INSTALL_FPCPACKAGE
1075ifdef CROSSCOMPILE
1076ifdef CROSSINSTALL
1077INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
1078else
1079INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1080endif
1081else
1082INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
1083endif
1084endif
1085endif
1086endif
1087ifndef INSTALL_UNITDIR
1088INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
1089ifdef INSTALL_FPCPACKAGE
1090ifdef PACKAGE_NAME
1091INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
1092endif
1093endif
1094endif
1095ifndef INSTALL_LIBDIR
1096ifdef UNIXHier
1097INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
1098else
1099INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
1100endif
1101endif
1102ifndef INSTALL_SOURCEDIR
1103ifdef UNIXHier
1104ifdef BSDhier
1105SRCPREFIXDIR=share/src
1106else
1107ifdef linuxHier
1108SRCPREFIXDIR=share/src
1109else
1110SRCPREFIXDIR=src
1111endif
1112endif
1113ifdef INSTALL_FPCPACKAGE
1114ifdef INSTALL_FPCSUBDIR
1115INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1116else
1117INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1118endif
1119else
1120INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1121endif
1122else
1123ifdef INSTALL_FPCPACKAGE
1124ifdef INSTALL_FPCSUBDIR
1125INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
1126else
1127INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
1128endif
1129else
1130INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
1131endif
1132endif
1133endif
1134ifndef INSTALL_DOCDIR
1135ifdef UNIXHier
1136ifdef BSDhier
1137DOCPREFIXDIR=share/doc
1138else
1139ifdef linuxHier
1140DOCPREFIXDIR=share/doc
1141else
1142DOCPREFIXDIR=doc
1143endif
1144endif
1145ifdef INSTALL_FPCPACKAGE
1146INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1147else
1148INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1149endif
1150else
1151ifdef INSTALL_FPCPACKAGE
1152INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
1153else
1154INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
1155endif
1156endif
1157endif
1158ifndef INSTALL_EXAMPLEDIR
1159ifdef UNIXHier
1160ifdef INSTALL_FPCPACKAGE
1161ifdef BSDhier
1162INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
1163else
1164ifdef linuxHier
1165INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
1166else
1167INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
1168endif
1169endif
1170else
1171ifdef BSDhier
1172INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1173else
1174ifdef linuxHier
1175INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1176else
1177INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
1178endif
1179endif
1180endif
1181else
1182ifdef INSTALL_FPCPACKAGE
1183INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
1184else
1185INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
1186endif
1187endif
1188endif
1189ifndef INSTALL_DATADIR
1190INSTALL_DATADIR=$(INSTALL_BASEDIR)
1191endif
1192ifndef INSTALL_SHAREDDIR
1193INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
1194endif
1195ifdef CROSSCOMPILE
1196ifndef CROSSBINDIR
1197CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
1198ifeq ($(CROSSBINDIR),)
1199CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
1200endif
1201endif
1202else
1203CROSSBINDIR=
1204endif
1205ifeq ($(OS_SOURCE),linux)
1206ifndef GCCLIBDIR
1207ifeq ($(CPU_TARGET),i386)
1208ifneq ($(findstring x86_64,$(shell uname -a)),)
1209ifeq ($(BINUTILSPREFIX),)
1210GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
1211else
1212CROSSGCCOPT=-m32
1213endif
1214endif
1215endif
1216ifeq ($(CPU_TARGET),powerpc)
1217ifeq ($(BINUTILSPREFIX),)
1218GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
1219else
1220CROSSGCCOPT=-m32
1221endif
1222endif
1223ifeq ($(CPU_TARGET),powerpc64)
1224ifeq ($(BINUTILSPREFIX),)
1225GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
1226else
1227CROSSGCCOPT=-m64
1228endif
1229endif
1230ifeq ($(CPU_TARGET),sparc)
1231ifneq ($(findstring sparc64,$(shell uname -a)),)
1232ifeq ($(BINUTILSPREFIX),)
1233GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
1234else
1235ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),)
1236CROSSGCCOPT=-mabi=32
1237else
1238CROSSGCCOPT=-m32
1239endif
1240endif
1241endif
1242endif
1243endif
1244ifdef FPCFPMAKE
1245FPCFPMAKE_CPU_TARGET=$(shell $(FPCFPMAKE) -iTP)
1246ifeq ($(CPU_TARGET),$(FPCFPMAKE_CPU_TARGET))
1247FPCMAKEGCCLIBDIR:=$(GCCLIBDIR)
1248else
1249ifneq ($(findstring $(FPCFPMAKE_CPU_TARGET),aarch64 powerpc64 riscv64 sparc64 x86_64),)
1250FPCMAKE_CROSSGCCOPT=-m64
1251else
1252ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips64 mips64el),)
1253FPCMAKE_CROSSGCCOPT=-mabi=64
1254else
1255ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),)
1256FPCMAKE_CROSSGCCOPT=-mabi=32
1257else
1258ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),)
1259FPCMAKE_CROSSGCCOPT=-mabi=lp64
1260else
1261ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),)
1262FPCMAKE_CROSSGCCOPT=-mabi=ilp32
1263else
1264FPCMAKE_CROSSGCCOPT=-m32
1265endif
1266endif
1267endif
1268endif
1269endif
1270FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`)
1271endif
1272endif
1273ifndef FPCMAKEGCCLIBDIR
1274FPCMAKEGCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
1275endif
1276ifndef GCCLIBDIR
1277CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
1278ifneq ($(CROSSGCC),)
1279GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-file-name`)
1280endif
1281endif
1282endif
1283ifdef inUnix
1284ifeq ($(OS_SOURCE),netbsd)
1285OTHERLIBDIR:=/usr/pkg/lib
1286endif
1287export GCCLIBDIR FPCMAKEGCCLIBDIR OTHERLIBDIR
1288endif
1289BATCHEXT=.bat
1290LOADEREXT=.as
1291EXEEXT=.exe
1292PPLEXT=.ppl
1293PPUEXT=.ppu
1294OEXT=.o
1295LTOEXT=.bc
1296ASMEXT=.s
1297SMARTEXT=.sl
1298STATICLIBEXT=.a
1299SHAREDLIBEXT=.so
1300SHAREDLIBPREFIX=libfp
1301STATICLIBPREFIX=libp
1302IMPORTLIBPREFIX=libimp
1303RSTEXT=.rst
1304EXEDBGEXT=.dbg
1305ifeq ($(OS_TARGET),go32v1)
1306STATICLIBPREFIX=
1307SHORTSUFFIX=v1
1308endif
1309ifeq ($(OS_TARGET),go32v2)
1310STATICLIBPREFIX=
1311SHORTSUFFIX=dos
1312IMPORTLIBPREFIX=
1313endif
1314ifeq ($(OS_TARGET),watcom)
1315STATICLIBPREFIX=
1316OEXT=.obj
1317ASMEXT=.asm
1318SHAREDLIBEXT=.dll
1319SHORTSUFFIX=wat
1320IMPORTLIBPREFIX=
1321endif
1322ifneq ($(CPU_TARGET),jvm)
1323ifeq ($(OS_TARGET),android)
1324BATCHEXT=.sh
1325EXEEXT=
1326HASSHAREDLIB=1
1327SHORTSUFFIX=lnx
1328endif
1329endif
1330ifeq ($(OS_TARGET),linux)
1331BATCHEXT=.sh
1332EXEEXT=
1333HASSHAREDLIB=1
1334SHORTSUFFIX=lnx
1335endif
1336ifeq ($(OS_TARGET),dragonfly)
1337BATCHEXT=.sh
1338EXEEXT=
1339HASSHAREDLIB=1
1340SHORTSUFFIX=df
1341endif
1342ifeq ($(OS_TARGET),freebsd)
1343BATCHEXT=.sh
1344EXEEXT=
1345HASSHAREDLIB=1
1346SHORTSUFFIX=fbs
1347endif
1348ifeq ($(OS_TARGET),netbsd)
1349BATCHEXT=.sh
1350EXEEXT=
1351HASSHAREDLIB=1
1352SHORTSUFFIX=nbs
1353endif
1354ifeq ($(OS_TARGET),openbsd)
1355BATCHEXT=.sh
1356EXEEXT=
1357HASSHAREDLIB=1
1358SHORTSUFFIX=obs
1359endif
1360ifeq ($(OS_TARGET),win32)
1361SHAREDLIBEXT=.dll
1362SHORTSUFFIX=w32
1363endif
1364ifeq ($(OS_TARGET),os2)
1365BATCHEXT=.cmd
1366AOUTEXT=.out
1367STATICLIBPREFIX=
1368SHAREDLIBEXT=.dll
1369SHORTSUFFIX=os2
1370ECHO=echo
1371IMPORTLIBPREFIX=
1372endif
1373ifeq ($(OS_TARGET),emx)
1374BATCHEXT=.cmd
1375AOUTEXT=.out
1376STATICLIBPREFIX=
1377SHAREDLIBEXT=.dll
1378SHORTSUFFIX=emx
1379ECHO=echo
1380IMPORTLIBPREFIX=
1381endif
1382ifeq ($(OS_TARGET),amiga)
1383EXEEXT=
1384SHAREDLIBEXT=.library
1385SHORTSUFFIX=amg
1386endif
1387ifeq ($(OS_TARGET),aros)
1388EXEEXT=
1389SHAREDLIBEXT=.library
1390SHORTSUFFIX=aros
1391endif
1392ifeq ($(OS_TARGET),morphos)
1393EXEEXT=
1394SHAREDLIBEXT=.library
1395SHORTSUFFIX=mos
1396endif
1397ifeq ($(OS_TARGET),atari)
1398EXEEXT=.ttp
1399SHORTSUFFIX=ata
1400endif
1401ifeq ($(OS_TARGET),beos)
1402BATCHEXT=.sh
1403EXEEXT=
1404SHORTSUFFIX=be
1405endif
1406ifeq ($(OS_TARGET),haiku)
1407BATCHEXT=.sh
1408EXEEXT=
1409SHORTSUFFIX=hai
1410endif
1411ifeq ($(OS_TARGET),solaris)
1412BATCHEXT=.sh
1413EXEEXT=
1414SHORTSUFFIX=sun
1415endif
1416ifeq ($(OS_TARGET),qnx)
1417BATCHEXT=.sh
1418EXEEXT=
1419SHORTSUFFIX=qnx
1420endif
1421ifeq ($(OS_TARGET),netware)
1422EXEEXT=.nlm
1423STATICLIBPREFIX=
1424SHORTSUFFIX=nw
1425IMPORTLIBPREFIX=imp
1426endif
1427ifeq ($(OS_TARGET),netwlibc)
1428EXEEXT=.nlm
1429STATICLIBPREFIX=
1430SHORTSUFFIX=nwl
1431IMPORTLIBPREFIX=imp
1432endif
1433ifeq ($(OS_TARGET),macosclassic)
1434BATCHEXT=
1435EXEEXT=
1436DEBUGSYMEXT=.xcoff
1437SHORTSUFFIX=mac
1438IMPORTLIBPREFIX=imp
1439endif
1440ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)
1441BATCHEXT=.sh
1442EXEEXT=
1443HASSHAREDLIB=1
1444SHORTSUFFIX=dwn
1445EXEDBGEXT=.dSYM
1446endif
1447ifeq ($(OS_TARGET),gba)
1448EXEEXT=.gba
1449SHAREDLIBEXT=.so
1450SHORTSUFFIX=gba
1451endif
1452ifeq ($(OS_TARGET),symbian)
1453SHAREDLIBEXT=.dll
1454SHORTSUFFIX=symbian
1455endif
1456ifeq ($(OS_TARGET),NativeNT)
1457SHAREDLIBEXT=.dll
1458SHORTSUFFIX=nativent
1459endif
1460ifeq ($(OS_TARGET),wii)
1461EXEEXT=.dol
1462SHAREDLIBEXT=.so
1463SHORTSUFFIX=wii
1464endif
1465ifeq ($(OS_TARGET),aix)
1466BATCHEXT=.sh
1467EXEEXT=
1468SHAREDLIBEXT=.a
1469SHORTSUFFIX=aix
1470endif
1471ifeq ($(OS_TARGET),java)
1472OEXT=.class
1473ASMEXT=.j
1474SHAREDLIBEXT=.jar
1475SHORTSUFFIX=java
1476endif
1477ifeq ($(CPU_TARGET),jvm)
1478ifeq ($(OS_TARGET),android)
1479OEXT=.class
1480ASMEXT=.j
1481SHAREDLIBEXT=.jar
1482SHORTSUFFIX=android
1483endif
1484endif
1485ifeq ($(OS_TARGET),msdos)
1486STATICLIBPREFIX=
1487STATICLIBEXT=.a
1488SHORTSUFFIX=d16
1489endif
1490ifeq ($(OS_TARGET),msxdos)
1491STATICLIBPREFIX=
1492STATICLIBEXT=.a
1493SHORTSUFFIX=msd
1494endif
1495ifeq ($(OS_TARGET),embedded)
1496ifeq ($(CPU_TARGET),i8086)
1497STATICLIBPREFIX=
1498STATICLIBEXT=.a
1499else
1500EXEEXT=.bin
1501endif
1502ifeq ($(CPU_TARGET),z80)
1503OEXT=.rel
1504endif
1505SHORTSUFFIX=emb
1506endif
1507ifeq ($(OS_TARGET),win16)
1508STATICLIBPREFIX=
1509STATICLIBEXT=.a
1510SHAREDLIBEXT=.dll
1511SHORTSUFFIX=w16
1512endif
1513ifeq ($(OS_TARGET),zxspectrum)
1514OEXT=.rel
1515endif
1516ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
1517FPCMADE=fpcmade.$(SHORTSUFFIX)
1518ZIPSUFFIX=$(SHORTSUFFIX)
1519ZIPCROSSPREFIX=
1520ZIPSOURCESUFFIX=src
1521ZIPEXAMPLESUFFIX=exm
1522else
1523FPCMADE=fpcmade.$(TARGETSUFFIX)
1524ZIPSOURCESUFFIX=.source
1525ZIPEXAMPLESUFFIX=.examples
1526ifdef CROSSCOMPILE
1527ZIPSUFFIX=.$(SOURCESUFFIX)
1528ZIPCROSSPREFIX=$(TARGETSUFFIX)-
1529else
1530ZIPSUFFIX=.$(TARGETSUFFIX)
1531ZIPCROSSPREFIX=
1532endif
1533endif
1534ifndef ECHO
1535ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
1536ifeq ($(ECHO),)
1537ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
1538ifeq ($(ECHO),)
1539ECHO= __missing_command_ECHO
1540else
1541ECHO:=$(firstword $(ECHO))
1542endif
1543else
1544ECHO:=$(firstword $(ECHO))
1545endif
1546endif
1547export ECHO
1548ifndef DATE
1549DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
1550ifeq ($(DATE),)
1551DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
1552ifeq ($(DATE),)
1553DATE= __missing_command_DATE
1554else
1555DATE:=$(firstword $(DATE))
1556endif
1557else
1558DATE:=$(firstword $(DATE))
1559endif
1560endif
1561export DATE
1562ifndef GINSTALL
1563GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
1564ifeq ($(GINSTALL),)
1565GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
1566ifeq ($(GINSTALL),)
1567GINSTALL= __missing_command_GINSTALL
1568else
1569GINSTALL:=$(firstword $(GINSTALL))
1570endif
1571else
1572GINSTALL:=$(firstword $(GINSTALL))
1573endif
1574endif
1575export GINSTALL
1576ifndef CPPROG
1577CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
1578ifeq ($(CPPROG),)
1579CPPROG= __missing_command_CPPROG
1580else
1581CPPROG:=$(firstword $(CPPROG))
1582endif
1583endif
1584export CPPROG
1585ifndef RMPROG
1586RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
1587ifeq ($(RMPROG),)
1588RMPROG= __missing_command_RMPROG
1589else
1590RMPROG:=$(firstword $(RMPROG))
1591endif
1592endif
1593export RMPROG
1594ifndef MVPROG
1595MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
1596ifeq ($(MVPROG),)
1597MVPROG= __missing_command_MVPROG
1598else
1599MVPROG:=$(firstword $(MVPROG))
1600endif
1601endif
1602export MVPROG
1603ifndef MKDIRPROG
1604MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
1605ifeq ($(MKDIRPROG),)
1606MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
1607ifeq ($(MKDIRPROG),)
1608MKDIRPROG= __missing_command_MKDIRPROG
1609else
1610MKDIRPROG:=$(firstword $(MKDIRPROG))
1611endif
1612else
1613MKDIRPROG:=$(firstword $(MKDIRPROG))
1614endif
1615endif
1616export MKDIRPROG
1617ifndef ECHOREDIR
1618ifndef inUnix
1619ECHOREDIR=echo
1620else
1621ECHOREDIR=$(ECHO)
1622endif
1623endif
1624ifndef COPY
1625COPY:=$(CPPROG) -fp
1626endif
1627ifndef COPYTREE
1628COPYTREE:=$(CPPROG) -Rfp
1629endif
1630ifndef MKDIRTREE
1631MKDIRTREE:=$(MKDIRPROG) -p
1632endif
1633ifndef MOVE
1634MOVE:=$(MVPROG) -f
1635endif
1636ifndef DEL
1637DEL:=$(RMPROG) -f
1638endif
1639ifndef DELTREE
1640DELTREE:=$(RMPROG) -rf
1641endif
1642ifndef INSTALL
1643ifdef inUnix
1644INSTALL:=$(GINSTALL) -c -m 644
1645else
1646INSTALL:=$(COPY)
1647endif
1648endif
1649ifndef INSTALLEXE
1650ifdef inUnix
1651INSTALLEXE:=$(GINSTALL) -c -m 755
1652else
1653INSTALLEXE:=$(COPY)
1654endif
1655endif
1656ifndef MKDIR
1657MKDIR:=$(GINSTALL) -m 755 -d
1658endif
1659export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
1660ifndef PPUMOVE
1661PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
1662ifeq ($(PPUMOVE),)
1663PPUMOVE= __missing_command_PPUMOVE
1664else
1665PPUMOVE:=$(firstword $(PPUMOVE))
1666endif
1667endif
1668export PPUMOVE
1669ifndef FPCMAKE
1670FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
1671ifeq ($(FPCMAKE),)
1672FPCMAKE= __missing_command_FPCMAKE
1673else
1674FPCMAKE:=$(firstword $(FPCMAKE))
1675endif
1676endif
1677export FPCMAKE
1678ifndef ZIPPROG
1679ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
1680ifeq ($(ZIPPROG),)
1681ZIPPROG= __missing_command_ZIPPROG
1682else
1683ZIPPROG:=$(firstword $(ZIPPROG))
1684endif
1685endif
1686export ZIPPROG
1687ifndef TARPROG
1688TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
1689ifeq ($(TARPROG),)
1690TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
1691ifeq ($(TARPROG),)
1692TARPROG= __missing_command_TARPROG
1693else
1694TARPROG:=$(firstword $(TARPROG))
1695endif
1696else
1697TARPROG:=$(firstword $(TARPROG))
1698endif
1699endif
1700export TARPROG
1701ASNAME=$(BINUTILSPREFIX)as
1702LDNAME=$(BINUTILSPREFIX)ld
1703ARNAME=$(BINUTILSPREFIX)ar
1704RCNAME=$(BINUTILSPREFIX)rc
1705NASMNAME=$(BINUTILSPREFIX)nasm
1706ifndef ASPROG
1707ifdef CROSSBINDIR
1708ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
1709else
1710ASPROG=$(ASNAME)
1711endif
1712endif
1713ifndef LDPROG
1714ifdef CROSSBINDIR
1715LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
1716else
1717LDPROG=$(LDNAME)
1718endif
1719endif
1720ifndef RCPROG
1721ifdef CROSSBINDIR
1722RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
1723else
1724RCPROG=$(RCNAME)
1725endif
1726endif
1727ifndef ARPROG
1728ifdef CROSSBINDIR
1729ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
1730else
1731ARPROG=$(ARNAME)
1732endif
1733endif
1734ifndef NASMPROG
1735ifdef CROSSBINDIR
1736NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
1737else
1738NASMPROG=$(NASMNAME)
1739endif
1740endif
1741AS=$(ASPROG)
1742LD=$(LDPROG)
1743RC=$(RCPROG)
1744AR=$(ARPROG)
1745NASM=$(NASMPROG)
1746ifdef inUnix
1747PPAS=./ppas$(SRCBATCHEXT)
1748else
1749PPAS=ppas$(SRCBATCHEXT)
1750endif
1751ifdef inUnix
1752LDCONFIG=ldconfig
1753else
1754LDCONFIG=
1755endif
1756ifdef DATE
1757DATESTR:=$(shell $(DATE) +%Y%m%d)
1758else
1759DATESTR=
1760endif
1761ZIPOPT=-9
1762ZIPEXT=.zip
1763ifeq ($(USETAR),bz2)
1764TAROPT=vj
1765TAREXT=.tar.bz2
1766else
1767TAROPT=vz
1768TAREXT=.tar.gz
1769endif
1770override REQUIRE_PACKAGES=rtl regexpr
1771ifeq ($(FULL_TARGET),i386-linux)
1772REQUIRE_PACKAGES_RTL=1
1773REQUIRE_PACKAGES_PASZLIB=1
1774REQUIRE_PACKAGES_FCL-PROCESS=1
1775REQUIRE_PACKAGES_HASH=1
1776REQUIRE_PACKAGES_LIBTAR=1
1777REQUIRE_PACKAGES_FPMKUNIT=1
1778REQUIRE_PACKAGES_REGEXPR=1
1779endif
1780ifeq ($(FULL_TARGET),i386-go32v2)
1781REQUIRE_PACKAGES_RTL=1
1782REQUIRE_PACKAGES_PASZLIB=1
1783REQUIRE_PACKAGES_FCL-PROCESS=1
1784REQUIRE_PACKAGES_HASH=1
1785REQUIRE_PACKAGES_LIBTAR=1
1786REQUIRE_PACKAGES_FPMKUNIT=1
1787REQUIRE_PACKAGES_REGEXPR=1
1788endif
1789ifeq ($(FULL_TARGET),i386-win32)
1790REQUIRE_PACKAGES_RTL=1
1791REQUIRE_PACKAGES_PASZLIB=1
1792REQUIRE_PACKAGES_FCL-PROCESS=1
1793REQUIRE_PACKAGES_HASH=1
1794REQUIRE_PACKAGES_LIBTAR=1
1795REQUIRE_PACKAGES_FPMKUNIT=1
1796REQUIRE_PACKAGES_REGEXPR=1
1797endif
1798ifeq ($(FULL_TARGET),i386-os2)
1799REQUIRE_PACKAGES_RTL=1
1800REQUIRE_PACKAGES_PASZLIB=1
1801REQUIRE_PACKAGES_FCL-PROCESS=1
1802REQUIRE_PACKAGES_HASH=1
1803REQUIRE_PACKAGES_LIBTAR=1
1804REQUIRE_PACKAGES_FPMKUNIT=1
1805REQUIRE_PACKAGES_REGEXPR=1
1806endif
1807ifeq ($(FULL_TARGET),i386-freebsd)
1808REQUIRE_PACKAGES_RTL=1
1809REQUIRE_PACKAGES_PASZLIB=1
1810REQUIRE_PACKAGES_FCL-PROCESS=1
1811REQUIRE_PACKAGES_HASH=1
1812REQUIRE_PACKAGES_LIBTAR=1
1813REQUIRE_PACKAGES_FPMKUNIT=1
1814REQUIRE_PACKAGES_REGEXPR=1
1815endif
1816ifeq ($(FULL_TARGET),i386-beos)
1817REQUIRE_PACKAGES_RTL=1
1818REQUIRE_PACKAGES_PASZLIB=1
1819REQUIRE_PACKAGES_FCL-PROCESS=1
1820REQUIRE_PACKAGES_HASH=1
1821REQUIRE_PACKAGES_LIBTAR=1
1822REQUIRE_PACKAGES_FPMKUNIT=1
1823REQUIRE_PACKAGES_REGEXPR=1
1824endif
1825ifeq ($(FULL_TARGET),i386-haiku)
1826REQUIRE_PACKAGES_RTL=1
1827REQUIRE_PACKAGES_PASZLIB=1
1828REQUIRE_PACKAGES_FCL-PROCESS=1
1829REQUIRE_PACKAGES_HASH=1
1830REQUIRE_PACKAGES_LIBTAR=1
1831REQUIRE_PACKAGES_FPMKUNIT=1
1832REQUIRE_PACKAGES_REGEXPR=1
1833endif
1834ifeq ($(FULL_TARGET),i386-netbsd)
1835REQUIRE_PACKAGES_RTL=1
1836REQUIRE_PACKAGES_PASZLIB=1
1837REQUIRE_PACKAGES_FCL-PROCESS=1
1838REQUIRE_PACKAGES_HASH=1
1839REQUIRE_PACKAGES_LIBTAR=1
1840REQUIRE_PACKAGES_FPMKUNIT=1
1841REQUIRE_PACKAGES_REGEXPR=1
1842endif
1843ifeq ($(FULL_TARGET),i386-solaris)
1844REQUIRE_PACKAGES_RTL=1
1845REQUIRE_PACKAGES_PASZLIB=1
1846REQUIRE_PACKAGES_FCL-PROCESS=1
1847REQUIRE_PACKAGES_HASH=1
1848REQUIRE_PACKAGES_LIBTAR=1
1849REQUIRE_PACKAGES_FPMKUNIT=1
1850REQUIRE_PACKAGES_REGEXPR=1
1851endif
1852ifeq ($(FULL_TARGET),i386-netware)
1853REQUIRE_PACKAGES_RTL=1
1854REQUIRE_PACKAGES_PASZLIB=1
1855REQUIRE_PACKAGES_FCL-PROCESS=1
1856REQUIRE_PACKAGES_HASH=1
1857REQUIRE_PACKAGES_LIBTAR=1
1858REQUIRE_PACKAGES_FPMKUNIT=1
1859REQUIRE_PACKAGES_REGEXPR=1
1860endif
1861ifeq ($(FULL_TARGET),i386-openbsd)
1862REQUIRE_PACKAGES_RTL=1
1863REQUIRE_PACKAGES_PASZLIB=1
1864REQUIRE_PACKAGES_FCL-PROCESS=1
1865REQUIRE_PACKAGES_HASH=1
1866REQUIRE_PACKAGES_LIBTAR=1
1867REQUIRE_PACKAGES_FPMKUNIT=1
1868REQUIRE_PACKAGES_REGEXPR=1
1869endif
1870ifeq ($(FULL_TARGET),i386-wdosx)
1871REQUIRE_PACKAGES_RTL=1
1872REQUIRE_PACKAGES_PASZLIB=1
1873REQUIRE_PACKAGES_FCL-PROCESS=1
1874REQUIRE_PACKAGES_HASH=1
1875REQUIRE_PACKAGES_LIBTAR=1
1876REQUIRE_PACKAGES_FPMKUNIT=1
1877REQUIRE_PACKAGES_REGEXPR=1
1878endif
1879ifeq ($(FULL_TARGET),i386-darwin)
1880REQUIRE_PACKAGES_RTL=1
1881REQUIRE_PACKAGES_PASZLIB=1
1882REQUIRE_PACKAGES_FCL-PROCESS=1
1883REQUIRE_PACKAGES_HASH=1
1884REQUIRE_PACKAGES_LIBTAR=1
1885REQUIRE_PACKAGES_FPMKUNIT=1
1886REQUIRE_PACKAGES_REGEXPR=1
1887endif
1888ifeq ($(FULL_TARGET),i386-emx)
1889REQUIRE_PACKAGES_RTL=1
1890REQUIRE_PACKAGES_PASZLIB=1
1891REQUIRE_PACKAGES_FCL-PROCESS=1
1892REQUIRE_PACKAGES_HASH=1
1893REQUIRE_PACKAGES_LIBTAR=1
1894REQUIRE_PACKAGES_FPMKUNIT=1
1895REQUIRE_PACKAGES_REGEXPR=1
1896endif
1897ifeq ($(FULL_TARGET),i386-watcom)
1898REQUIRE_PACKAGES_RTL=1
1899REQUIRE_PACKAGES_PASZLIB=1
1900REQUIRE_PACKAGES_FCL-PROCESS=1
1901REQUIRE_PACKAGES_HASH=1
1902REQUIRE_PACKAGES_LIBTAR=1
1903REQUIRE_PACKAGES_FPMKUNIT=1
1904REQUIRE_PACKAGES_REGEXPR=1
1905endif
1906ifeq ($(FULL_TARGET),i386-netwlibc)
1907REQUIRE_PACKAGES_RTL=1
1908REQUIRE_PACKAGES_PASZLIB=1
1909REQUIRE_PACKAGES_FCL-PROCESS=1
1910REQUIRE_PACKAGES_HASH=1
1911REQUIRE_PACKAGES_LIBTAR=1
1912REQUIRE_PACKAGES_FPMKUNIT=1
1913REQUIRE_PACKAGES_REGEXPR=1
1914endif
1915ifeq ($(FULL_TARGET),i386-wince)
1916REQUIRE_PACKAGES_RTL=1
1917REQUIRE_PACKAGES_PASZLIB=1
1918REQUIRE_PACKAGES_FCL-PROCESS=1
1919REQUIRE_PACKAGES_HASH=1
1920REQUIRE_PACKAGES_LIBTAR=1
1921REQUIRE_PACKAGES_FPMKUNIT=1
1922REQUIRE_PACKAGES_REGEXPR=1
1923endif
1924ifeq ($(FULL_TARGET),i386-embedded)
1925REQUIRE_PACKAGES_RTL=1
1926REQUIRE_PACKAGES_PASZLIB=1
1927REQUIRE_PACKAGES_FCL-PROCESS=1
1928REQUIRE_PACKAGES_HASH=1
1929REQUIRE_PACKAGES_LIBTAR=1
1930REQUIRE_PACKAGES_FPMKUNIT=1
1931REQUIRE_PACKAGES_REGEXPR=1
1932endif
1933ifeq ($(FULL_TARGET),i386-symbian)
1934REQUIRE_PACKAGES_RTL=1
1935REQUIRE_PACKAGES_PASZLIB=1
1936REQUIRE_PACKAGES_FCL-PROCESS=1
1937REQUIRE_PACKAGES_HASH=1
1938REQUIRE_PACKAGES_LIBTAR=1
1939REQUIRE_PACKAGES_FPMKUNIT=1
1940REQUIRE_PACKAGES_REGEXPR=1
1941endif
1942ifeq ($(FULL_TARGET),i386-nativent)
1943REQUIRE_PACKAGES_RTL=1
1944REQUIRE_PACKAGES_PASZLIB=1
1945REQUIRE_PACKAGES_FCL-PROCESS=1
1946REQUIRE_PACKAGES_HASH=1
1947REQUIRE_PACKAGES_LIBTAR=1
1948REQUIRE_PACKAGES_FPMKUNIT=1
1949REQUIRE_PACKAGES_REGEXPR=1
1950endif
1951ifeq ($(FULL_TARGET),i386-iphonesim)
1952REQUIRE_PACKAGES_RTL=1
1953REQUIRE_PACKAGES_PASZLIB=1
1954REQUIRE_PACKAGES_FCL-PROCESS=1
1955REQUIRE_PACKAGES_HASH=1
1956REQUIRE_PACKAGES_LIBTAR=1
1957REQUIRE_PACKAGES_FPMKUNIT=1
1958REQUIRE_PACKAGES_REGEXPR=1
1959endif
1960ifeq ($(FULL_TARGET),i386-android)
1961REQUIRE_PACKAGES_RTL=1
1962REQUIRE_PACKAGES_PASZLIB=1
1963REQUIRE_PACKAGES_FCL-PROCESS=1
1964REQUIRE_PACKAGES_HASH=1
1965REQUIRE_PACKAGES_LIBTAR=1
1966REQUIRE_PACKAGES_FPMKUNIT=1
1967REQUIRE_PACKAGES_REGEXPR=1
1968endif
1969ifeq ($(FULL_TARGET),i386-aros)
1970REQUIRE_PACKAGES_RTL=1
1971REQUIRE_PACKAGES_PASZLIB=1
1972REQUIRE_PACKAGES_FCL-PROCESS=1
1973REQUIRE_PACKAGES_HASH=1
1974REQUIRE_PACKAGES_LIBTAR=1
1975REQUIRE_PACKAGES_FPMKUNIT=1
1976REQUIRE_PACKAGES_REGEXPR=1
1977endif
1978ifeq ($(FULL_TARGET),m68k-linux)
1979REQUIRE_PACKAGES_RTL=1
1980REQUIRE_PACKAGES_PASZLIB=1
1981REQUIRE_PACKAGES_FCL-PROCESS=1
1982REQUIRE_PACKAGES_HASH=1
1983REQUIRE_PACKAGES_LIBTAR=1
1984REQUIRE_PACKAGES_FPMKUNIT=1
1985REQUIRE_PACKAGES_REGEXPR=1
1986endif
1987ifeq ($(FULL_TARGET),m68k-netbsd)
1988REQUIRE_PACKAGES_RTL=1
1989REQUIRE_PACKAGES_PASZLIB=1
1990REQUIRE_PACKAGES_FCL-PROCESS=1
1991REQUIRE_PACKAGES_HASH=1
1992REQUIRE_PACKAGES_LIBTAR=1
1993REQUIRE_PACKAGES_FPMKUNIT=1
1994REQUIRE_PACKAGES_REGEXPR=1
1995endif
1996ifeq ($(FULL_TARGET),m68k-amiga)
1997REQUIRE_PACKAGES_RTL=1
1998REQUIRE_PACKAGES_PASZLIB=1
1999REQUIRE_PACKAGES_FCL-PROCESS=1
2000REQUIRE_PACKAGES_HASH=1
2001REQUIRE_PACKAGES_LIBTAR=1
2002REQUIRE_PACKAGES_FPMKUNIT=1
2003REQUIRE_PACKAGES_REGEXPR=1
2004endif
2005ifeq ($(FULL_TARGET),m68k-atari)
2006REQUIRE_PACKAGES_RTL=1
2007REQUIRE_PACKAGES_PASZLIB=1
2008REQUIRE_PACKAGES_FCL-PROCESS=1
2009REQUIRE_PACKAGES_HASH=1
2010REQUIRE_PACKAGES_LIBTAR=1
2011REQUIRE_PACKAGES_FPMKUNIT=1
2012REQUIRE_PACKAGES_REGEXPR=1
2013endif
2014ifeq ($(FULL_TARGET),m68k-palmos)
2015REQUIRE_PACKAGES_RTL=1
2016REQUIRE_PACKAGES_PASZLIB=1
2017REQUIRE_PACKAGES_FCL-PROCESS=1
2018REQUIRE_PACKAGES_HASH=1
2019REQUIRE_PACKAGES_LIBTAR=1
2020REQUIRE_PACKAGES_FPMKUNIT=1
2021REQUIRE_PACKAGES_REGEXPR=1
2022endif
2023ifeq ($(FULL_TARGET),m68k-macosclassic)
2024REQUIRE_PACKAGES_RTL=1
2025REQUIRE_PACKAGES_PASZLIB=1
2026REQUIRE_PACKAGES_FCL-PROCESS=1
2027REQUIRE_PACKAGES_HASH=1
2028REQUIRE_PACKAGES_LIBTAR=1
2029REQUIRE_PACKAGES_FPMKUNIT=1
2030REQUIRE_PACKAGES_REGEXPR=1
2031endif
2032ifeq ($(FULL_TARGET),m68k-embedded)
2033REQUIRE_PACKAGES_RTL=1
2034REQUIRE_PACKAGES_PASZLIB=1
2035REQUIRE_PACKAGES_FCL-PROCESS=1
2036REQUIRE_PACKAGES_HASH=1
2037REQUIRE_PACKAGES_LIBTAR=1
2038REQUIRE_PACKAGES_FPMKUNIT=1
2039REQUIRE_PACKAGES_REGEXPR=1
2040endif
2041ifeq ($(FULL_TARGET),m68k-sinclairql)
2042REQUIRE_PACKAGES_RTL=1
2043REQUIRE_PACKAGES_PASZLIB=1
2044REQUIRE_PACKAGES_FCL-PROCESS=1
2045REQUIRE_PACKAGES_HASH=1
2046REQUIRE_PACKAGES_LIBTAR=1
2047REQUIRE_PACKAGES_FPMKUNIT=1
2048REQUIRE_PACKAGES_REGEXPR=1
2049endif
2050ifeq ($(FULL_TARGET),powerpc-linux)
2051REQUIRE_PACKAGES_RTL=1
2052REQUIRE_PACKAGES_PASZLIB=1
2053REQUIRE_PACKAGES_FCL-PROCESS=1
2054REQUIRE_PACKAGES_HASH=1
2055REQUIRE_PACKAGES_LIBTAR=1
2056REQUIRE_PACKAGES_FPMKUNIT=1
2057REQUIRE_PACKAGES_REGEXPR=1
2058endif
2059ifeq ($(FULL_TARGET),powerpc-netbsd)
2060REQUIRE_PACKAGES_RTL=1
2061REQUIRE_PACKAGES_PASZLIB=1
2062REQUIRE_PACKAGES_FCL-PROCESS=1
2063REQUIRE_PACKAGES_HASH=1
2064REQUIRE_PACKAGES_LIBTAR=1
2065REQUIRE_PACKAGES_FPMKUNIT=1
2066REQUIRE_PACKAGES_REGEXPR=1
2067endif
2068ifeq ($(FULL_TARGET),powerpc-amiga)
2069REQUIRE_PACKAGES_RTL=1
2070REQUIRE_PACKAGES_PASZLIB=1
2071REQUIRE_PACKAGES_FCL-PROCESS=1
2072REQUIRE_PACKAGES_HASH=1
2073REQUIRE_PACKAGES_LIBTAR=1
2074REQUIRE_PACKAGES_FPMKUNIT=1
2075REQUIRE_PACKAGES_REGEXPR=1
2076endif
2077ifeq ($(FULL_TARGET),powerpc-macosclassic)
2078REQUIRE_PACKAGES_RTL=1
2079REQUIRE_PACKAGES_PASZLIB=1
2080REQUIRE_PACKAGES_FCL-PROCESS=1
2081REQUIRE_PACKAGES_HASH=1
2082REQUIRE_PACKAGES_LIBTAR=1
2083REQUIRE_PACKAGES_FPMKUNIT=1
2084REQUIRE_PACKAGES_REGEXPR=1
2085endif
2086ifeq ($(FULL_TARGET),powerpc-darwin)
2087REQUIRE_PACKAGES_RTL=1
2088REQUIRE_PACKAGES_PASZLIB=1
2089REQUIRE_PACKAGES_FCL-PROCESS=1
2090REQUIRE_PACKAGES_HASH=1
2091REQUIRE_PACKAGES_LIBTAR=1
2092REQUIRE_PACKAGES_FPMKUNIT=1
2093REQUIRE_PACKAGES_REGEXPR=1
2094endif
2095ifeq ($(FULL_TARGET),powerpc-morphos)
2096REQUIRE_PACKAGES_RTL=1
2097REQUIRE_PACKAGES_PASZLIB=1
2098REQUIRE_PACKAGES_FCL-PROCESS=1
2099REQUIRE_PACKAGES_HASH=1
2100REQUIRE_PACKAGES_LIBTAR=1
2101REQUIRE_PACKAGES_FPMKUNIT=1
2102REQUIRE_PACKAGES_REGEXPR=1
2103endif
2104ifeq ($(FULL_TARGET),powerpc-embedded)
2105REQUIRE_PACKAGES_RTL=1
2106REQUIRE_PACKAGES_PASZLIB=1
2107REQUIRE_PACKAGES_FCL-PROCESS=1
2108REQUIRE_PACKAGES_HASH=1
2109REQUIRE_PACKAGES_LIBTAR=1
2110REQUIRE_PACKAGES_FPMKUNIT=1
2111REQUIRE_PACKAGES_REGEXPR=1
2112endif
2113ifeq ($(FULL_TARGET),powerpc-wii)
2114REQUIRE_PACKAGES_RTL=1
2115REQUIRE_PACKAGES_PASZLIB=1
2116REQUIRE_PACKAGES_FCL-PROCESS=1
2117REQUIRE_PACKAGES_HASH=1
2118REQUIRE_PACKAGES_LIBTAR=1
2119REQUIRE_PACKAGES_FPMKUNIT=1
2120REQUIRE_PACKAGES_REGEXPR=1
2121endif
2122ifeq ($(FULL_TARGET),powerpc-aix)
2123REQUIRE_PACKAGES_RTL=1
2124REQUIRE_PACKAGES_PASZLIB=1
2125REQUIRE_PACKAGES_FCL-PROCESS=1
2126REQUIRE_PACKAGES_HASH=1
2127REQUIRE_PACKAGES_LIBTAR=1
2128REQUIRE_PACKAGES_FPMKUNIT=1
2129REQUIRE_PACKAGES_REGEXPR=1
2130endif
2131ifeq ($(FULL_TARGET),sparc-linux)
2132REQUIRE_PACKAGES_RTL=1
2133REQUIRE_PACKAGES_PASZLIB=1
2134REQUIRE_PACKAGES_FCL-PROCESS=1
2135REQUIRE_PACKAGES_HASH=1
2136REQUIRE_PACKAGES_LIBTAR=1
2137REQUIRE_PACKAGES_FPMKUNIT=1
2138REQUIRE_PACKAGES_REGEXPR=1
2139endif
2140ifeq ($(FULL_TARGET),sparc-netbsd)
2141REQUIRE_PACKAGES_RTL=1
2142REQUIRE_PACKAGES_PASZLIB=1
2143REQUIRE_PACKAGES_FCL-PROCESS=1
2144REQUIRE_PACKAGES_HASH=1
2145REQUIRE_PACKAGES_LIBTAR=1
2146REQUIRE_PACKAGES_FPMKUNIT=1
2147REQUIRE_PACKAGES_REGEXPR=1
2148endif
2149ifeq ($(FULL_TARGET),sparc-solaris)
2150REQUIRE_PACKAGES_RTL=1
2151REQUIRE_PACKAGES_PASZLIB=1
2152REQUIRE_PACKAGES_FCL-PROCESS=1
2153REQUIRE_PACKAGES_HASH=1
2154REQUIRE_PACKAGES_LIBTAR=1
2155REQUIRE_PACKAGES_FPMKUNIT=1
2156REQUIRE_PACKAGES_REGEXPR=1
2157endif
2158ifeq ($(FULL_TARGET),sparc-embedded)
2159REQUIRE_PACKAGES_RTL=1
2160REQUIRE_PACKAGES_PASZLIB=1
2161REQUIRE_PACKAGES_FCL-PROCESS=1
2162REQUIRE_PACKAGES_HASH=1
2163REQUIRE_PACKAGES_LIBTAR=1
2164REQUIRE_PACKAGES_FPMKUNIT=1
2165REQUIRE_PACKAGES_REGEXPR=1
2166endif
2167ifeq ($(FULL_TARGET),x86_64-linux)
2168REQUIRE_PACKAGES_RTL=1
2169REQUIRE_PACKAGES_PASZLIB=1
2170REQUIRE_PACKAGES_FCL-PROCESS=1
2171REQUIRE_PACKAGES_HASH=1
2172REQUIRE_PACKAGES_LIBTAR=1
2173REQUIRE_PACKAGES_FPMKUNIT=1
2174REQUIRE_PACKAGES_REGEXPR=1
2175endif
2176ifeq ($(FULL_TARGET),x86_64-freebsd)
2177REQUIRE_PACKAGES_RTL=1
2178REQUIRE_PACKAGES_PASZLIB=1
2179REQUIRE_PACKAGES_FCL-PROCESS=1
2180REQUIRE_PACKAGES_HASH=1
2181REQUIRE_PACKAGES_LIBTAR=1
2182REQUIRE_PACKAGES_FPMKUNIT=1
2183REQUIRE_PACKAGES_REGEXPR=1
2184endif
2185ifeq ($(FULL_TARGET),x86_64-haiku)
2186REQUIRE_PACKAGES_RTL=1
2187REQUIRE_PACKAGES_PASZLIB=1
2188REQUIRE_PACKAGES_FCL-PROCESS=1
2189REQUIRE_PACKAGES_HASH=1
2190REQUIRE_PACKAGES_LIBTAR=1
2191REQUIRE_PACKAGES_FPMKUNIT=1
2192REQUIRE_PACKAGES_REGEXPR=1
2193endif
2194ifeq ($(FULL_TARGET),x86_64-netbsd)
2195REQUIRE_PACKAGES_RTL=1
2196REQUIRE_PACKAGES_PASZLIB=1
2197REQUIRE_PACKAGES_FCL-PROCESS=1
2198REQUIRE_PACKAGES_HASH=1
2199REQUIRE_PACKAGES_LIBTAR=1
2200REQUIRE_PACKAGES_FPMKUNIT=1
2201REQUIRE_PACKAGES_REGEXPR=1
2202endif
2203ifeq ($(FULL_TARGET),x86_64-solaris)
2204REQUIRE_PACKAGES_RTL=1
2205REQUIRE_PACKAGES_PASZLIB=1
2206REQUIRE_PACKAGES_FCL-PROCESS=1
2207REQUIRE_PACKAGES_HASH=1
2208REQUIRE_PACKAGES_LIBTAR=1
2209REQUIRE_PACKAGES_FPMKUNIT=1
2210REQUIRE_PACKAGES_REGEXPR=1
2211endif
2212ifeq ($(FULL_TARGET),x86_64-openbsd)
2213REQUIRE_PACKAGES_RTL=1
2214REQUIRE_PACKAGES_PASZLIB=1
2215REQUIRE_PACKAGES_FCL-PROCESS=1
2216REQUIRE_PACKAGES_HASH=1
2217REQUIRE_PACKAGES_LIBTAR=1
2218REQUIRE_PACKAGES_FPMKUNIT=1
2219REQUIRE_PACKAGES_REGEXPR=1
2220endif
2221ifeq ($(FULL_TARGET),x86_64-darwin)
2222REQUIRE_PACKAGES_RTL=1
2223REQUIRE_PACKAGES_PASZLIB=1
2224REQUIRE_PACKAGES_FCL-PROCESS=1
2225REQUIRE_PACKAGES_HASH=1
2226REQUIRE_PACKAGES_LIBTAR=1
2227REQUIRE_PACKAGES_FPMKUNIT=1
2228REQUIRE_PACKAGES_REGEXPR=1
2229endif
2230ifeq ($(FULL_TARGET),x86_64-win64)
2231REQUIRE_PACKAGES_RTL=1
2232REQUIRE_PACKAGES_PASZLIB=1
2233REQUIRE_PACKAGES_FCL-PROCESS=1
2234REQUIRE_PACKAGES_HASH=1
2235REQUIRE_PACKAGES_LIBTAR=1
2236REQUIRE_PACKAGES_FPMKUNIT=1
2237REQUIRE_PACKAGES_REGEXPR=1
2238endif
2239ifeq ($(FULL_TARGET),x86_64-embedded)
2240REQUIRE_PACKAGES_RTL=1
2241REQUIRE_PACKAGES_PASZLIB=1
2242REQUIRE_PACKAGES_FCL-PROCESS=1
2243REQUIRE_PACKAGES_HASH=1
2244REQUIRE_PACKAGES_LIBTAR=1
2245REQUIRE_PACKAGES_FPMKUNIT=1
2246REQUIRE_PACKAGES_REGEXPR=1
2247endif
2248ifeq ($(FULL_TARGET),x86_64-iphonesim)
2249REQUIRE_PACKAGES_RTL=1
2250REQUIRE_PACKAGES_PASZLIB=1
2251REQUIRE_PACKAGES_FCL-PROCESS=1
2252REQUIRE_PACKAGES_HASH=1
2253REQUIRE_PACKAGES_LIBTAR=1
2254REQUIRE_PACKAGES_FPMKUNIT=1
2255REQUIRE_PACKAGES_REGEXPR=1
2256endif
2257ifeq ($(FULL_TARGET),x86_64-android)
2258REQUIRE_PACKAGES_RTL=1
2259REQUIRE_PACKAGES_PASZLIB=1
2260REQUIRE_PACKAGES_FCL-PROCESS=1
2261REQUIRE_PACKAGES_HASH=1
2262REQUIRE_PACKAGES_LIBTAR=1
2263REQUIRE_PACKAGES_FPMKUNIT=1
2264REQUIRE_PACKAGES_REGEXPR=1
2265endif
2266ifeq ($(FULL_TARGET),x86_64-aros)
2267REQUIRE_PACKAGES_RTL=1
2268REQUIRE_PACKAGES_PASZLIB=1
2269REQUIRE_PACKAGES_FCL-PROCESS=1
2270REQUIRE_PACKAGES_HASH=1
2271REQUIRE_PACKAGES_LIBTAR=1
2272REQUIRE_PACKAGES_FPMKUNIT=1
2273REQUIRE_PACKAGES_REGEXPR=1
2274endif
2275ifeq ($(FULL_TARGET),x86_64-dragonfly)
2276REQUIRE_PACKAGES_RTL=1
2277REQUIRE_PACKAGES_PASZLIB=1
2278REQUIRE_PACKAGES_FCL-PROCESS=1
2279REQUIRE_PACKAGES_HASH=1
2280REQUIRE_PACKAGES_LIBTAR=1
2281REQUIRE_PACKAGES_FPMKUNIT=1
2282REQUIRE_PACKAGES_REGEXPR=1
2283endif
2284ifeq ($(FULL_TARGET),arm-linux)
2285REQUIRE_PACKAGES_RTL=1
2286REQUIRE_PACKAGES_PASZLIB=1
2287REQUIRE_PACKAGES_FCL-PROCESS=1
2288REQUIRE_PACKAGES_HASH=1
2289REQUIRE_PACKAGES_LIBTAR=1
2290REQUIRE_PACKAGES_FPMKUNIT=1
2291REQUIRE_PACKAGES_REGEXPR=1
2292endif
2293ifeq ($(FULL_TARGET),arm-netbsd)
2294REQUIRE_PACKAGES_RTL=1
2295REQUIRE_PACKAGES_PASZLIB=1
2296REQUIRE_PACKAGES_FCL-PROCESS=1
2297REQUIRE_PACKAGES_HASH=1
2298REQUIRE_PACKAGES_LIBTAR=1
2299REQUIRE_PACKAGES_FPMKUNIT=1
2300REQUIRE_PACKAGES_REGEXPR=1
2301endif
2302ifeq ($(FULL_TARGET),arm-palmos)
2303REQUIRE_PACKAGES_RTL=1
2304REQUIRE_PACKAGES_PASZLIB=1
2305REQUIRE_PACKAGES_FCL-PROCESS=1
2306REQUIRE_PACKAGES_HASH=1
2307REQUIRE_PACKAGES_LIBTAR=1
2308REQUIRE_PACKAGES_FPMKUNIT=1
2309REQUIRE_PACKAGES_REGEXPR=1
2310endif
2311ifeq ($(FULL_TARGET),arm-wince)
2312REQUIRE_PACKAGES_RTL=1
2313REQUIRE_PACKAGES_PASZLIB=1
2314REQUIRE_PACKAGES_FCL-PROCESS=1
2315REQUIRE_PACKAGES_HASH=1
2316REQUIRE_PACKAGES_LIBTAR=1
2317REQUIRE_PACKAGES_FPMKUNIT=1
2318REQUIRE_PACKAGES_REGEXPR=1
2319endif
2320ifeq ($(FULL_TARGET),arm-gba)
2321REQUIRE_PACKAGES_RTL=1
2322REQUIRE_PACKAGES_PASZLIB=1
2323REQUIRE_PACKAGES_FCL-PROCESS=1
2324REQUIRE_PACKAGES_HASH=1
2325REQUIRE_PACKAGES_LIBTAR=1
2326REQUIRE_PACKAGES_FPMKUNIT=1
2327REQUIRE_PACKAGES_REGEXPR=1
2328endif
2329ifeq ($(FULL_TARGET),arm-nds)
2330REQUIRE_PACKAGES_RTL=1
2331REQUIRE_PACKAGES_PASZLIB=1
2332REQUIRE_PACKAGES_FCL-PROCESS=1
2333REQUIRE_PACKAGES_HASH=1
2334REQUIRE_PACKAGES_LIBTAR=1
2335REQUIRE_PACKAGES_FPMKUNIT=1
2336REQUIRE_PACKAGES_REGEXPR=1
2337endif
2338ifeq ($(FULL_TARGET),arm-embedded)
2339REQUIRE_PACKAGES_RTL=1
2340REQUIRE_PACKAGES_PASZLIB=1
2341REQUIRE_PACKAGES_FCL-PROCESS=1
2342REQUIRE_PACKAGES_HASH=1
2343REQUIRE_PACKAGES_LIBTAR=1
2344REQUIRE_PACKAGES_FPMKUNIT=1
2345REQUIRE_PACKAGES_REGEXPR=1
2346endif
2347ifeq ($(FULL_TARGET),arm-symbian)
2348REQUIRE_PACKAGES_RTL=1
2349REQUIRE_PACKAGES_PASZLIB=1
2350REQUIRE_PACKAGES_FCL-PROCESS=1
2351REQUIRE_PACKAGES_HASH=1
2352REQUIRE_PACKAGES_LIBTAR=1
2353REQUIRE_PACKAGES_FPMKUNIT=1
2354REQUIRE_PACKAGES_REGEXPR=1
2355endif
2356ifeq ($(FULL_TARGET),arm-android)
2357REQUIRE_PACKAGES_RTL=1
2358REQUIRE_PACKAGES_PASZLIB=1
2359REQUIRE_PACKAGES_FCL-PROCESS=1
2360REQUIRE_PACKAGES_HASH=1
2361REQUIRE_PACKAGES_LIBTAR=1
2362REQUIRE_PACKAGES_FPMKUNIT=1
2363REQUIRE_PACKAGES_REGEXPR=1
2364endif
2365ifeq ($(FULL_TARGET),arm-aros)
2366REQUIRE_PACKAGES_RTL=1
2367REQUIRE_PACKAGES_PASZLIB=1
2368REQUIRE_PACKAGES_FCL-PROCESS=1
2369REQUIRE_PACKAGES_HASH=1
2370REQUIRE_PACKAGES_LIBTAR=1
2371REQUIRE_PACKAGES_FPMKUNIT=1
2372REQUIRE_PACKAGES_REGEXPR=1
2373endif
2374ifeq ($(FULL_TARGET),arm-freertos)
2375REQUIRE_PACKAGES_RTL=1
2376REQUIRE_PACKAGES_PASZLIB=1
2377REQUIRE_PACKAGES_FCL-PROCESS=1
2378REQUIRE_PACKAGES_HASH=1
2379REQUIRE_PACKAGES_LIBTAR=1
2380REQUIRE_PACKAGES_FPMKUNIT=1
2381REQUIRE_PACKAGES_REGEXPR=1
2382endif
2383ifeq ($(FULL_TARGET),arm-ios)
2384REQUIRE_PACKAGES_RTL=1
2385REQUIRE_PACKAGES_PASZLIB=1
2386REQUIRE_PACKAGES_FCL-PROCESS=1
2387REQUIRE_PACKAGES_HASH=1
2388REQUIRE_PACKAGES_LIBTAR=1
2389REQUIRE_PACKAGES_FPMKUNIT=1
2390REQUIRE_PACKAGES_REGEXPR=1
2391endif
2392ifeq ($(FULL_TARGET),powerpc64-linux)
2393REQUIRE_PACKAGES_RTL=1
2394REQUIRE_PACKAGES_PASZLIB=1
2395REQUIRE_PACKAGES_FCL-PROCESS=1
2396REQUIRE_PACKAGES_HASH=1
2397REQUIRE_PACKAGES_LIBTAR=1
2398REQUIRE_PACKAGES_FPMKUNIT=1
2399REQUIRE_PACKAGES_REGEXPR=1
2400endif
2401ifeq ($(FULL_TARGET),powerpc64-darwin)
2402REQUIRE_PACKAGES_RTL=1
2403REQUIRE_PACKAGES_PASZLIB=1
2404REQUIRE_PACKAGES_FCL-PROCESS=1
2405REQUIRE_PACKAGES_HASH=1
2406REQUIRE_PACKAGES_LIBTAR=1
2407REQUIRE_PACKAGES_FPMKUNIT=1
2408REQUIRE_PACKAGES_REGEXPR=1
2409endif
2410ifeq ($(FULL_TARGET),powerpc64-embedded)
2411REQUIRE_PACKAGES_RTL=1
2412REQUIRE_PACKAGES_PASZLIB=1
2413REQUIRE_PACKAGES_FCL-PROCESS=1
2414REQUIRE_PACKAGES_HASH=1
2415REQUIRE_PACKAGES_LIBTAR=1
2416REQUIRE_PACKAGES_FPMKUNIT=1
2417REQUIRE_PACKAGES_REGEXPR=1
2418endif
2419ifeq ($(FULL_TARGET),powerpc64-aix)
2420REQUIRE_PACKAGES_RTL=1
2421REQUIRE_PACKAGES_PASZLIB=1
2422REQUIRE_PACKAGES_FCL-PROCESS=1
2423REQUIRE_PACKAGES_HASH=1
2424REQUIRE_PACKAGES_LIBTAR=1
2425REQUIRE_PACKAGES_FPMKUNIT=1
2426REQUIRE_PACKAGES_REGEXPR=1
2427endif
2428ifeq ($(FULL_TARGET),avr-embedded)
2429REQUIRE_PACKAGES_RTL=1
2430REQUIRE_PACKAGES_PASZLIB=1
2431REQUIRE_PACKAGES_FCL-PROCESS=1
2432REQUIRE_PACKAGES_HASH=1
2433REQUIRE_PACKAGES_LIBTAR=1
2434REQUIRE_PACKAGES_FPMKUNIT=1
2435REQUIRE_PACKAGES_REGEXPR=1
2436endif
2437ifeq ($(FULL_TARGET),armeb-linux)
2438REQUIRE_PACKAGES_RTL=1
2439REQUIRE_PACKAGES_PASZLIB=1
2440REQUIRE_PACKAGES_FCL-PROCESS=1
2441REQUIRE_PACKAGES_HASH=1
2442REQUIRE_PACKAGES_LIBTAR=1
2443REQUIRE_PACKAGES_FPMKUNIT=1
2444REQUIRE_PACKAGES_REGEXPR=1
2445endif
2446ifeq ($(FULL_TARGET),armeb-embedded)
2447REQUIRE_PACKAGES_RTL=1
2448REQUIRE_PACKAGES_PASZLIB=1
2449REQUIRE_PACKAGES_FCL-PROCESS=1
2450REQUIRE_PACKAGES_HASH=1
2451REQUIRE_PACKAGES_LIBTAR=1
2452REQUIRE_PACKAGES_FPMKUNIT=1
2453REQUIRE_PACKAGES_REGEXPR=1
2454endif
2455ifeq ($(FULL_TARGET),mips-linux)
2456REQUIRE_PACKAGES_RTL=1
2457REQUIRE_PACKAGES_PASZLIB=1
2458REQUIRE_PACKAGES_FCL-PROCESS=1
2459REQUIRE_PACKAGES_HASH=1
2460REQUIRE_PACKAGES_LIBTAR=1
2461REQUIRE_PACKAGES_FPMKUNIT=1
2462REQUIRE_PACKAGES_REGEXPR=1
2463endif
2464ifeq ($(FULL_TARGET),mipsel-linux)
2465REQUIRE_PACKAGES_RTL=1
2466REQUIRE_PACKAGES_PASZLIB=1
2467REQUIRE_PACKAGES_FCL-PROCESS=1
2468REQUIRE_PACKAGES_HASH=1
2469REQUIRE_PACKAGES_LIBTAR=1
2470REQUIRE_PACKAGES_FPMKUNIT=1
2471REQUIRE_PACKAGES_REGEXPR=1
2472endif
2473ifeq ($(FULL_TARGET),mipsel-embedded)
2474REQUIRE_PACKAGES_RTL=1
2475REQUIRE_PACKAGES_PASZLIB=1
2476REQUIRE_PACKAGES_FCL-PROCESS=1
2477REQUIRE_PACKAGES_HASH=1
2478REQUIRE_PACKAGES_LIBTAR=1
2479REQUIRE_PACKAGES_FPMKUNIT=1
2480REQUIRE_PACKAGES_REGEXPR=1
2481endif
2482ifeq ($(FULL_TARGET),mipsel-android)
2483REQUIRE_PACKAGES_RTL=1
2484REQUIRE_PACKAGES_PASZLIB=1
2485REQUIRE_PACKAGES_FCL-PROCESS=1
2486REQUIRE_PACKAGES_HASH=1
2487REQUIRE_PACKAGES_LIBTAR=1
2488REQUIRE_PACKAGES_FPMKUNIT=1
2489REQUIRE_PACKAGES_REGEXPR=1
2490endif
2491ifeq ($(FULL_TARGET),mips64el-linux)
2492REQUIRE_PACKAGES_RTL=1
2493REQUIRE_PACKAGES_PASZLIB=1
2494REQUIRE_PACKAGES_FCL-PROCESS=1
2495REQUIRE_PACKAGES_HASH=1
2496REQUIRE_PACKAGES_LIBTAR=1
2497REQUIRE_PACKAGES_FPMKUNIT=1
2498REQUIRE_PACKAGES_REGEXPR=1
2499endif
2500ifeq ($(FULL_TARGET),jvm-java)
2501REQUIRE_PACKAGES_RTL=1
2502REQUIRE_PACKAGES_PASZLIB=1
2503REQUIRE_PACKAGES_FCL-PROCESS=1
2504REQUIRE_PACKAGES_HASH=1
2505REQUIRE_PACKAGES_LIBTAR=1
2506REQUIRE_PACKAGES_FPMKUNIT=1
2507REQUIRE_PACKAGES_REGEXPR=1
2508endif
2509ifeq ($(FULL_TARGET),jvm-android)
2510REQUIRE_PACKAGES_RTL=1
2511REQUIRE_PACKAGES_PASZLIB=1
2512REQUIRE_PACKAGES_FCL-PROCESS=1
2513REQUIRE_PACKAGES_HASH=1
2514REQUIRE_PACKAGES_LIBTAR=1
2515REQUIRE_PACKAGES_FPMKUNIT=1
2516REQUIRE_PACKAGES_REGEXPR=1
2517endif
2518ifeq ($(FULL_TARGET),i8086-embedded)
2519REQUIRE_PACKAGES_RTL=1
2520REQUIRE_PACKAGES_PASZLIB=1
2521REQUIRE_PACKAGES_FCL-PROCESS=1
2522REQUIRE_PACKAGES_HASH=1
2523REQUIRE_PACKAGES_LIBTAR=1
2524REQUIRE_PACKAGES_FPMKUNIT=1
2525REQUIRE_PACKAGES_REGEXPR=1
2526endif
2527ifeq ($(FULL_TARGET),i8086-msdos)
2528REQUIRE_PACKAGES_RTL=1
2529REQUIRE_PACKAGES_PASZLIB=1
2530REQUIRE_PACKAGES_FCL-PROCESS=1
2531REQUIRE_PACKAGES_HASH=1
2532REQUIRE_PACKAGES_LIBTAR=1
2533REQUIRE_PACKAGES_FPMKUNIT=1
2534REQUIRE_PACKAGES_REGEXPR=1
2535endif
2536ifeq ($(FULL_TARGET),i8086-win16)
2537REQUIRE_PACKAGES_RTL=1
2538REQUIRE_PACKAGES_PASZLIB=1
2539REQUIRE_PACKAGES_FCL-PROCESS=1
2540REQUIRE_PACKAGES_HASH=1
2541REQUIRE_PACKAGES_LIBTAR=1
2542REQUIRE_PACKAGES_FPMKUNIT=1
2543REQUIRE_PACKAGES_REGEXPR=1
2544endif
2545ifeq ($(FULL_TARGET),aarch64-linux)
2546REQUIRE_PACKAGES_RTL=1
2547REQUIRE_PACKAGES_PASZLIB=1
2548REQUIRE_PACKAGES_FCL-PROCESS=1
2549REQUIRE_PACKAGES_HASH=1
2550REQUIRE_PACKAGES_LIBTAR=1
2551REQUIRE_PACKAGES_FPMKUNIT=1
2552REQUIRE_PACKAGES_REGEXPR=1
2553endif
2554ifeq ($(FULL_TARGET),aarch64-freebsd)
2555REQUIRE_PACKAGES_RTL=1
2556REQUIRE_PACKAGES_PASZLIB=1
2557REQUIRE_PACKAGES_FCL-PROCESS=1
2558REQUIRE_PACKAGES_HASH=1
2559REQUIRE_PACKAGES_LIBTAR=1
2560REQUIRE_PACKAGES_FPMKUNIT=1
2561REQUIRE_PACKAGES_REGEXPR=1
2562endif
2563ifeq ($(FULL_TARGET),aarch64-darwin)
2564REQUIRE_PACKAGES_RTL=1
2565REQUIRE_PACKAGES_PASZLIB=1
2566REQUIRE_PACKAGES_FCL-PROCESS=1
2567REQUIRE_PACKAGES_HASH=1
2568REQUIRE_PACKAGES_LIBTAR=1
2569REQUIRE_PACKAGES_FPMKUNIT=1
2570REQUIRE_PACKAGES_REGEXPR=1
2571endif
2572ifeq ($(FULL_TARGET),aarch64-win64)
2573REQUIRE_PACKAGES_RTL=1
2574REQUIRE_PACKAGES_PASZLIB=1
2575REQUIRE_PACKAGES_FCL-PROCESS=1
2576REQUIRE_PACKAGES_HASH=1
2577REQUIRE_PACKAGES_LIBTAR=1
2578REQUIRE_PACKAGES_FPMKUNIT=1
2579REQUIRE_PACKAGES_REGEXPR=1
2580endif
2581ifeq ($(FULL_TARGET),aarch64-android)
2582REQUIRE_PACKAGES_RTL=1
2583REQUIRE_PACKAGES_PASZLIB=1
2584REQUIRE_PACKAGES_FCL-PROCESS=1
2585REQUIRE_PACKAGES_HASH=1
2586REQUIRE_PACKAGES_LIBTAR=1
2587REQUIRE_PACKAGES_FPMKUNIT=1
2588REQUIRE_PACKAGES_REGEXPR=1
2589endif
2590ifeq ($(FULL_TARGET),aarch64-ios)
2591REQUIRE_PACKAGES_RTL=1
2592REQUIRE_PACKAGES_PASZLIB=1
2593REQUIRE_PACKAGES_FCL-PROCESS=1
2594REQUIRE_PACKAGES_HASH=1
2595REQUIRE_PACKAGES_LIBTAR=1
2596REQUIRE_PACKAGES_FPMKUNIT=1
2597REQUIRE_PACKAGES_REGEXPR=1
2598endif
2599ifeq ($(FULL_TARGET),wasm32-embedded)
2600REQUIRE_PACKAGES_RTL=1
2601REQUIRE_PACKAGES_PASZLIB=1
2602REQUIRE_PACKAGES_FCL-PROCESS=1
2603REQUIRE_PACKAGES_HASH=1
2604REQUIRE_PACKAGES_LIBTAR=1
2605REQUIRE_PACKAGES_FPMKUNIT=1
2606REQUIRE_PACKAGES_REGEXPR=1
2607endif
2608ifeq ($(FULL_TARGET),wasm32-wasi)
2609REQUIRE_PACKAGES_RTL=1
2610REQUIRE_PACKAGES_PASZLIB=1
2611REQUIRE_PACKAGES_FCL-PROCESS=1
2612REQUIRE_PACKAGES_HASH=1
2613REQUIRE_PACKAGES_LIBTAR=1
2614REQUIRE_PACKAGES_FPMKUNIT=1
2615REQUIRE_PACKAGES_REGEXPR=1
2616endif
2617ifeq ($(FULL_TARGET),sparc64-linux)
2618REQUIRE_PACKAGES_RTL=1
2619REQUIRE_PACKAGES_PASZLIB=1
2620REQUIRE_PACKAGES_FCL-PROCESS=1
2621REQUIRE_PACKAGES_HASH=1
2622REQUIRE_PACKAGES_LIBTAR=1
2623REQUIRE_PACKAGES_FPMKUNIT=1
2624REQUIRE_PACKAGES_REGEXPR=1
2625endif
2626ifeq ($(FULL_TARGET),riscv32-linux)
2627REQUIRE_PACKAGES_RTL=1
2628REQUIRE_PACKAGES_PASZLIB=1
2629REQUIRE_PACKAGES_FCL-PROCESS=1
2630REQUIRE_PACKAGES_HASH=1
2631REQUIRE_PACKAGES_LIBTAR=1
2632REQUIRE_PACKAGES_FPMKUNIT=1
2633REQUIRE_PACKAGES_REGEXPR=1
2634endif
2635ifeq ($(FULL_TARGET),riscv32-embedded)
2636REQUIRE_PACKAGES_RTL=1
2637REQUIRE_PACKAGES_PASZLIB=1
2638REQUIRE_PACKAGES_FCL-PROCESS=1
2639REQUIRE_PACKAGES_HASH=1
2640REQUIRE_PACKAGES_LIBTAR=1
2641REQUIRE_PACKAGES_FPMKUNIT=1
2642REQUIRE_PACKAGES_REGEXPR=1
2643endif
2644ifeq ($(FULL_TARGET),riscv64-linux)
2645REQUIRE_PACKAGES_RTL=1
2646REQUIRE_PACKAGES_PASZLIB=1
2647REQUIRE_PACKAGES_FCL-PROCESS=1
2648REQUIRE_PACKAGES_HASH=1
2649REQUIRE_PACKAGES_LIBTAR=1
2650REQUIRE_PACKAGES_FPMKUNIT=1
2651REQUIRE_PACKAGES_REGEXPR=1
2652endif
2653ifeq ($(FULL_TARGET),riscv64-embedded)
2654REQUIRE_PACKAGES_RTL=1
2655REQUIRE_PACKAGES_PASZLIB=1
2656REQUIRE_PACKAGES_FCL-PROCESS=1
2657REQUIRE_PACKAGES_HASH=1
2658REQUIRE_PACKAGES_LIBTAR=1
2659REQUIRE_PACKAGES_FPMKUNIT=1
2660REQUIRE_PACKAGES_REGEXPR=1
2661endif
2662ifeq ($(FULL_TARGET),xtensa-linux)
2663REQUIRE_PACKAGES_RTL=1
2664REQUIRE_PACKAGES_PASZLIB=1
2665REQUIRE_PACKAGES_FCL-PROCESS=1
2666REQUIRE_PACKAGES_HASH=1
2667REQUIRE_PACKAGES_LIBTAR=1
2668REQUIRE_PACKAGES_FPMKUNIT=1
2669REQUIRE_PACKAGES_REGEXPR=1
2670endif
2671ifeq ($(FULL_TARGET),xtensa-embedded)
2672REQUIRE_PACKAGES_RTL=1
2673REQUIRE_PACKAGES_PASZLIB=1
2674REQUIRE_PACKAGES_FCL-PROCESS=1
2675REQUIRE_PACKAGES_HASH=1
2676REQUIRE_PACKAGES_LIBTAR=1
2677REQUIRE_PACKAGES_FPMKUNIT=1
2678REQUIRE_PACKAGES_REGEXPR=1
2679endif
2680ifeq ($(FULL_TARGET),xtensa-freertos)
2681REQUIRE_PACKAGES_RTL=1
2682REQUIRE_PACKAGES_PASZLIB=1
2683REQUIRE_PACKAGES_FCL-PROCESS=1
2684REQUIRE_PACKAGES_HASH=1
2685REQUIRE_PACKAGES_LIBTAR=1
2686REQUIRE_PACKAGES_FPMKUNIT=1
2687REQUIRE_PACKAGES_REGEXPR=1
2688endif
2689ifeq ($(FULL_TARGET),z80-embedded)
2690REQUIRE_PACKAGES_RTL=1
2691REQUIRE_PACKAGES_PASZLIB=1
2692REQUIRE_PACKAGES_FCL-PROCESS=1
2693REQUIRE_PACKAGES_HASH=1
2694REQUIRE_PACKAGES_LIBTAR=1
2695REQUIRE_PACKAGES_FPMKUNIT=1
2696REQUIRE_PACKAGES_REGEXPR=1
2697endif
2698ifeq ($(FULL_TARGET),z80-zxspectrum)
2699REQUIRE_PACKAGES_RTL=1
2700REQUIRE_PACKAGES_PASZLIB=1
2701REQUIRE_PACKAGES_FCL-PROCESS=1
2702REQUIRE_PACKAGES_HASH=1
2703REQUIRE_PACKAGES_LIBTAR=1
2704REQUIRE_PACKAGES_FPMKUNIT=1
2705REQUIRE_PACKAGES_REGEXPR=1
2706endif
2707ifeq ($(FULL_TARGET),z80-msxdos)
2708REQUIRE_PACKAGES_RTL=1
2709REQUIRE_PACKAGES_PASZLIB=1
2710REQUIRE_PACKAGES_FCL-PROCESS=1
2711REQUIRE_PACKAGES_HASH=1
2712REQUIRE_PACKAGES_LIBTAR=1
2713REQUIRE_PACKAGES_FPMKUNIT=1
2714REQUIRE_PACKAGES_REGEXPR=1
2715endif
2716ifeq ($(FULL_TARGET),z80-amstradcpc)
2717REQUIRE_PACKAGES_RTL=1
2718REQUIRE_PACKAGES_PASZLIB=1
2719REQUIRE_PACKAGES_FCL-PROCESS=1
2720REQUIRE_PACKAGES_HASH=1
2721REQUIRE_PACKAGES_LIBTAR=1
2722REQUIRE_PACKAGES_FPMKUNIT=1
2723REQUIRE_PACKAGES_REGEXPR=1
2724endif
2725ifdef REQUIRE_PACKAGES_RTL
2726PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
2727ifneq ($(PACKAGEDIR_RTL),)
2728ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
2729UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
2730else
2731UNITDIR_RTL=$(PACKAGEDIR_RTL)
2732endif
2733ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
2734UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
2735else
2736ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
2737UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
2738else
2739UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
2740endif
2741endif
2742ifdef CHECKDEPEND
2743$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
2744	$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
2745override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
2746endif
2747else
2748PACKAGEDIR_RTL=
2749UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
2750ifneq ($(UNITDIR_RTL),)
2751UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
2752else
2753UNITDIR_RTL=
2754endif
2755endif
2756ifdef UNITDIR_RTL
2757override COMPILER_UNITDIR+=$(UNITDIR_RTL)
2758endif
2759ifdef UNITDIR_FPMAKE_RTL
2760override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
2761endif
2762endif
2763ifdef REQUIRE_PACKAGES_PASZLIB
2764PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
2765ifneq ($(PACKAGEDIR_PASZLIB),)
2766ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)),)
2767UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)
2768else
2769UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
2770endif
2771ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)),)
2772UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(SOURCESUFFIX)
2773else
2774ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)),)
2775UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)/units_bs/$(SOURCESUFFIX)
2776else
2777UNITDIR_FPMAKE_PASZLIB=$(PACKAGEDIR_PASZLIB)
2778endif
2779endif
2780ifdef CHECKDEPEND
2781$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
2782	$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
2783override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(FPCMADE)
2784endif
2785else
2786PACKAGEDIR_PASZLIB=
2787UNITDIR_PASZLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Package.fpc,$(UNITSDIR)))))
2788ifneq ($(UNITDIR_PASZLIB),)
2789UNITDIR_PASZLIB:=$(firstword $(UNITDIR_PASZLIB))
2790else
2791UNITDIR_PASZLIB=
2792endif
2793endif
2794ifdef UNITDIR_PASZLIB
2795override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
2796endif
2797ifdef UNITDIR_FPMAKE_PASZLIB
2798override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_PASZLIB)
2799endif
2800endif
2801ifdef REQUIRE_PACKAGES_FCL-PROCESS
2802PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
2803ifneq ($(PACKAGEDIR_FCL-PROCESS),)
2804ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)),)
2805UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)
2806else
2807UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
2808endif
2809ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)),)
2810UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(SOURCESUFFIX)
2811else
2812ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)),)
2813UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units_bs/$(SOURCESUFFIX)
2814else
2815UNITDIR_FPMAKE_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
2816endif
2817endif
2818ifdef CHECKDEPEND
2819$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
2820	$(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
2821override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE)
2822endif
2823else
2824PACKAGEDIR_FCL-PROCESS=
2825UNITDIR_FCL-PROCESS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Package.fpc,$(UNITSDIR)))))
2826ifneq ($(UNITDIR_FCL-PROCESS),)
2827UNITDIR_FCL-PROCESS:=$(firstword $(UNITDIR_FCL-PROCESS))
2828else
2829UNITDIR_FCL-PROCESS=
2830endif
2831endif
2832ifdef UNITDIR_FCL-PROCESS
2833override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
2834endif
2835ifdef UNITDIR_FPMAKE_FCL-PROCESS
2836override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-PROCESS)
2837endif
2838endif
2839ifdef REQUIRE_PACKAGES_HASH
2840PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR))))))
2841ifneq ($(PACKAGEDIR_HASH),)
2842ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)),)
2843UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)
2844else
2845UNITDIR_HASH=$(PACKAGEDIR_HASH)
2846endif
2847ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)),)
2848UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units/$(SOURCESUFFIX)
2849else
2850ifneq ($(wildcard $(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)),)
2851UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)/units_bs/$(SOURCESUFFIX)
2852else
2853UNITDIR_FPMAKE_HASH=$(PACKAGEDIR_HASH)
2854endif
2855endif
2856ifdef CHECKDEPEND
2857$(PACKAGEDIR_HASH)/$(FPCMADE):
2858	$(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE)
2859override ALLDEPENDENCIES+=$(PACKAGEDIR_HASH)/$(FPCMADE)
2860endif
2861else
2862PACKAGEDIR_HASH=
2863UNITDIR_HASH:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /hash/Package.fpc,$(UNITSDIR)))))
2864ifneq ($(UNITDIR_HASH),)
2865UNITDIR_HASH:=$(firstword $(UNITDIR_HASH))
2866else
2867UNITDIR_HASH=
2868endif
2869endif
2870ifdef UNITDIR_HASH
2871override COMPILER_UNITDIR+=$(UNITDIR_HASH)
2872endif
2873ifdef UNITDIR_FPMAKE_HASH
2874override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_HASH)
2875endif
2876endif
2877ifdef REQUIRE_PACKAGES_LIBTAR
2878PACKAGEDIR_LIBTAR:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libtar/Makefile.fpc,$(PACKAGESDIR))))))
2879ifneq ($(PACKAGEDIR_LIBTAR),)
2880ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units/$(TARGETSUFFIX)),)
2881UNITDIR_LIBTAR=$(PACKAGEDIR_LIBTAR)/units/$(TARGETSUFFIX)
2882else
2883UNITDIR_LIBTAR=$(PACKAGEDIR_LIBTAR)
2884endif
2885ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units/$(SOURCESUFFIX)),)
2886UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)/units/$(SOURCESUFFIX)
2887else
2888ifneq ($(wildcard $(PACKAGEDIR_LIBTAR)/units_bs/$(SOURCESUFFIX)),)
2889UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)/units_bs/$(SOURCESUFFIX)
2890else
2891UNITDIR_FPMAKE_LIBTAR=$(PACKAGEDIR_LIBTAR)
2892endif
2893endif
2894ifdef CHECKDEPEND
2895$(PACKAGEDIR_LIBTAR)/$(FPCMADE):
2896	$(MAKE) -C $(PACKAGEDIR_LIBTAR) $(FPCMADE)
2897override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBTAR)/$(FPCMADE)
2898endif
2899else
2900PACKAGEDIR_LIBTAR=
2901UNITDIR_LIBTAR:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libtar/Package.fpc,$(UNITSDIR)))))
2902ifneq ($(UNITDIR_LIBTAR),)
2903UNITDIR_LIBTAR:=$(firstword $(UNITDIR_LIBTAR))
2904else
2905UNITDIR_LIBTAR=
2906endif
2907endif
2908ifdef UNITDIR_LIBTAR
2909override COMPILER_UNITDIR+=$(UNITDIR_LIBTAR)
2910endif
2911ifdef UNITDIR_FPMAKE_LIBTAR
2912override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBTAR)
2913endif
2914endif
2915ifdef REQUIRE_PACKAGES_FPMKUNIT
2916PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))
2917ifneq ($(PACKAGEDIR_FPMKUNIT),)
2918ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units/$(TARGETSUFFIX)),)
2919UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(TARGETSUFFIX)
2920else
2921UNITDIR_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
2922endif
2923ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)),)
2924UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units/$(SOURCESUFFIX)
2925else
2926ifneq ($(wildcard $(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)),)
2927UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX)
2928else
2929UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)
2930endif
2931endif
2932ifdef CHECKDEPEND
2933$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE):
2934	$(MAKE) -C $(PACKAGEDIR_FPMKUNIT) $(FPCMADE)
2935override ALLDEPENDENCIES+=$(PACKAGEDIR_FPMKUNIT)/$(FPCMADE)
2936endif
2937else
2938PACKAGEDIR_FPMKUNIT=
2939UNITDIR_FPMKUNIT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Package.fpc,$(UNITSDIR)))))
2940ifneq ($(UNITDIR_FPMKUNIT),)
2941UNITDIR_FPMKUNIT:=$(firstword $(UNITDIR_FPMKUNIT))
2942else
2943UNITDIR_FPMKUNIT=
2944endif
2945endif
2946ifdef UNITDIR_FPMKUNIT
2947override COMPILER_UNITDIR+=$(UNITDIR_FPMKUNIT)
2948endif
2949ifdef UNITDIR_FPMAKE_FPMKUNIT
2950override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
2951endif
2952endif
2953ifdef REQUIRE_PACKAGES_REGEXPR
2954PACKAGEDIR_REGEXPR:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /regexpr/Makefile.fpc,$(PACKAGESDIR))))))
2955ifneq ($(PACKAGEDIR_REGEXPR),)
2956ifneq ($(wildcard $(PACKAGEDIR_REGEXPR)/units/$(TARGETSUFFIX)),)
2957UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)/units/$(TARGETSUFFIX)
2958else
2959UNITDIR_REGEXPR=$(PACKAGEDIR_REGEXPR)
2960endif
2961ifneq ($(wildcard $(PACKAGEDIR_REGEXPR)/units/$(SOURCESUFFIX)),)
2962UNITDIR_FPMAKE_REGEXPR=$(PACKAGEDIR_REGEXPR)/units/$(SOURCESUFFIX)
2963else
2964ifneq ($(wildcard $(PACKAGEDIR_REGEXPR)/units_bs/$(SOURCESUFFIX)),)
2965UNITDIR_FPMAKE_REGEXPR=$(PACKAGEDIR_REGEXPR)/units_bs/$(SOURCESUFFIX)
2966else
2967UNITDIR_FPMAKE_REGEXPR=$(PACKAGEDIR_REGEXPR)
2968endif
2969endif
2970ifdef CHECKDEPEND
2971$(PACKAGEDIR_REGEXPR)/$(FPCMADE):
2972	$(MAKE) -C $(PACKAGEDIR_REGEXPR) $(FPCMADE)
2973override ALLDEPENDENCIES+=$(PACKAGEDIR_REGEXPR)/$(FPCMADE)
2974endif
2975else
2976PACKAGEDIR_REGEXPR=
2977UNITDIR_REGEXPR:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /regexpr/Package.fpc,$(UNITSDIR)))))
2978ifneq ($(UNITDIR_REGEXPR),)
2979UNITDIR_REGEXPR:=$(firstword $(UNITDIR_REGEXPR))
2980else
2981UNITDIR_REGEXPR=
2982endif
2983endif
2984ifdef UNITDIR_REGEXPR
2985override COMPILER_UNITDIR+=$(UNITDIR_REGEXPR)
2986endif
2987ifdef UNITDIR_FPMAKE_REGEXPR
2988override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_REGEXPR)
2989endif
2990endif
2991ifndef NOCPUDEF
2992override FPCOPTDEF=$(ARCH)
2993endif
2994ifneq ($(OS_TARGET),$(OS_SOURCE))
2995override FPCOPT+=-T$(OS_TARGET)
2996endif
2997ifneq ($(CPU_TARGET),$(CPU_SOURCE))
2998override FPCOPT+=-P$(ARCH)
2999endif
3000ifeq ($(OS_SOURCE),openbsd)
3001override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
3002override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
3003override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
3004endif
3005ifndef CROSSBOOTSTRAP
3006ifneq ($(BINUTILSPREFIX),)
3007override FPCOPT+=-XP$(BINUTILSPREFIX)
3008ifneq ($(RLINKPATH),)
3009override FPCOPT+=-Xr$(RLINKPATH)
3010endif
3011endif
3012endif
3013ifndef CROSSCOMPILE
3014ifneq ($(BINUTILSPREFIX),)
3015override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
3016override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
3017endif
3018endif
3019ifdef UNITDIR
3020override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
3021endif
3022ifdef LIBDIR
3023override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
3024endif
3025ifdef OBJDIR
3026override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
3027endif
3028ifdef INCDIR
3029override FPCOPT+=$(addprefix -Fi,$(INCDIR))
3030endif
3031ifdef LINKSMART
3032override FPCOPT+=-XX
3033endif
3034ifdef CREATESMART
3035override FPCOPT+=-CX
3036endif
3037ifdef DEBUG
3038override FPCOPT+=-gl
3039override FPCOPTDEF+=DEBUG
3040endif
3041ifdef RELEASE
3042FPCCPUOPT:=-O2
3043override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
3044override FPCOPTDEF+=RELEASE
3045endif
3046ifdef STRIP
3047override FPCOPT+=-Xs
3048endif
3049ifdef OPTIMIZE
3050override FPCOPT+=-O2
3051endif
3052ifdef VERBOSE
3053override FPCOPT+=-vwni
3054endif
3055ifdef COMPILER_OPTIONS
3056override FPCOPT+=$(COMPILER_OPTIONS)
3057endif
3058ifdef COMPILER_UNITDIR
3059override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
3060endif
3061ifdef COMPILER_LIBRARYDIR
3062override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
3063endif
3064ifdef COMPILER_OBJECTDIR
3065override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
3066endif
3067ifdef COMPILER_INCLUDEDIR
3068override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
3069endif
3070ifdef CROSSBINDIR
3071override FPCOPT+=-FD$(CROSSBINDIR)
3072endif
3073ifdef COMPILER_TARGETDIR
3074override FPCOPT+=-FE$(COMPILER_TARGETDIR)
3075ifeq ($(COMPILER_TARGETDIR),.)
3076override TARGETDIRPREFIX=
3077else
3078override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
3079endif
3080endif
3081ifdef COMPILER_UNITTARGETDIR
3082override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
3083ifeq ($(COMPILER_UNITTARGETDIR),.)
3084override UNITTARGETDIRPREFIX=
3085else
3086override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
3087endif
3088else
3089ifdef COMPILER_TARGETDIR
3090override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
3091override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
3092endif
3093endif
3094ifdef SYSROOTPATH
3095override FPCOPT+=-XR$(SYSROOTPATH)
3096else
3097ifeq ($(OS_TARGET),$(OS_SOURCE))
3098ifneq ($(findstring $(OS_TARGET),darwin),)
3099ifneq ($(findstring $(CPU_TARGET),aarch64),)
3100ifneq ($(wildcard /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk),)
3101override FPCOPT+=-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
3102endif
3103endif
3104endif
3105endif
3106endif
3107ifdef CREATESHARED
3108override FPCOPT+=-Cg
3109endif
3110ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
3111ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),)
3112override FPCOPT+=-Cg
3113endif
3114endif
3115ifdef LINKSHARED
3116endif
3117ifdef GCCLIBDIR
3118override FPCOPT+=-Fl$(GCCLIBDIR)
3119ifdef FPCMAKEGCCLIBDIR
3120override FPCMAKEOPT+=-Fl$(FPCMAKEGCCLIBDIR)
3121else
3122override FPCMAKEOPT+=-Fl$(GCCLIBDIR)
3123endif
3124endif
3125ifdef OTHERLIBDIR
3126override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
3127endif
3128ifdef OPT
3129override FPCOPT+=$(OPT)
3130endif
3131ifdef FPMAKEBUILDOPT
3132override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
3133endif
3134ifdef FPCOPTDEF
3135override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
3136endif
3137ifdef CFGFILE
3138override FPCOPT+=@$(CFGFILE)
3139endif
3140ifdef USEENV
3141override FPCEXTCMD:=$(FPCOPT)
3142override FPCOPT:=!FPCEXTCMD
3143export FPCEXTCMD
3144endif
3145override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
3146override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
3147ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
3148override ACROSSCOMPILE=1
3149endif
3150ifdef ACROSSCOMPILE
3151override FPCOPT+=$(CROSSOPT)
3152endif
3153override COMPILER:=$(strip $(FPC) $(FPCOPT))
3154ifneq (,$(findstring -sh ,$(COMPILER)))
3155UseEXECPPAS=1
3156endif
3157ifneq (,$(findstring -s ,$(COMPILER)))
3158ifeq ($(FULL_SOURCE),$(FULL_TARGET))
3159UseEXECPPAS=1
3160endif
3161endif
3162ifneq ($(UseEXECPPAS),1)
3163EXECPPAS=
3164else
3165ifdef RUNBATCH
3166EXECPPAS:=@$(RUNBATCH) $(PPAS)
3167else
3168EXECPPAS:=@$(PPAS)
3169endif
3170endif
3171.PHONY: fpc_exes
3172ifndef CROSSINSTALL
3173ifneq ($(TARGET_PROGRAMS),)
3174override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
3175override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuffix $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
3176override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
3177override ALLTARGET+=fpc_exes
3178override INSTALLEXEFILES+=$(EXEFILES)
3179override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
3180override CLEANEXEDBGFILES+=$(EXEDBGFILES)
3181ifeq ($(OS_TARGET),os2)
3182override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
3183endif
3184ifeq ($(OS_TARGET),emx)
3185override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
3186endif
3187endif
3188endif
3189fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
3190ifdef TARGET_RSTS
3191override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
3192override CLEANRSTFILES+=$(RSTFILES)
3193endif
3194.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
3195$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
3196	@$(ECHOREDIR) Compiled > $(FPCMADE)
3197fpc_all: $(FPCMADE)
3198fpc_smart:
3199	$(MAKE) all LINKSMART=1 CREATESMART=1
3200fpc_debug:
3201	$(MAKE) all DEBUG=1
3202fpc_release:
3203	$(MAKE) all RELEASE=1
3204.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .rc .res
3205$(COMPILER_UNITTARGETDIR):
3206	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
3207$(COMPILER_TARGETDIR):
3208	$(MKDIRTREE) $(COMPILER_TARGETDIR)
3209%$(PPUEXT): %.pp
3210	$(COMPILER) $<
3211	$(EXECPPAS)
3212%$(PPUEXT): %.pas
3213	$(COMPILER) $<
3214	$(EXECPPAS)
3215%$(EXEEXT): %.pp
3216	$(COMPILER) $<
3217	$(EXECPPAS)
3218%$(EXEEXT): %.pas
3219	$(COMPILER) $<
3220	$(EXECPPAS)
3221%$(EXEEXT): %.lpr
3222	$(COMPILER) $<
3223	$(EXECPPAS)
3224%$(EXEEXT): %.dpr
3225	$(COMPILER) $<
3226	$(EXECPPAS)
3227%.res: %.rc
3228	windres -i $< -o $@
3229vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
3230vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
3231vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
3232vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
3233vpath %.inc $(COMPILER_INCLUDEDIR)
3234vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
3235vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)
3236vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
3237.PHONY: fpc_shared
3238override INSTALLTARGET+=fpc_shared_install
3239ifndef SHARED_LIBVERSION
3240SHARED_LIBVERSION=$(FPC_VERSION)
3241endif
3242ifndef SHARED_LIBNAME
3243SHARED_LIBNAME=$(PACKAGE_NAME)
3244endif
3245ifndef SHARED_FULLNAME
3246SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
3247endif
3248ifndef SHARED_LIBUNITS
3249SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
3250override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
3251endif
3252fpc_shared:
3253ifdef HASSHAREDLIB
3254	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
3255ifneq ($(SHARED_BUILD),n)
3256	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)
3257endif
3258else
3259	@$(ECHO) Shared Libraries not supported
3260endif
3261fpc_shared_install:
3262ifneq ($(SHARED_BUILD),n)
3263ifneq ($(SHARED_LIBUNITS),)
3264ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
3265	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
3266endif
3267endif
3268endif
3269.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
3270ifdef INSTALL_UNITS
3271override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
3272endif
3273ifdef INSTALL_BUILDUNIT
3274override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
3275endif
3276ifdef INSTALLPPUFILES
3277ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
3278override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
3279else
3280override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
3281endif
3282ifneq ($(UNITTARGETDIRPREFIX),)
3283override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
3284override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
3285override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
3286override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
3287endif
3288override INSTALL_CREATEPACKAGEFPC=1
3289endif
3290ifdef INSTALLEXEFILES
3291ifneq ($(TARGETDIRPREFIX),)
3292override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
3293endif
3294endif
3295fpc_install: all $(INSTALLTARGET)
3296ifdef INSTALLEXEFILES
3297	$(MKDIR) $(INSTALL_BINDIR)
3298	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
3299endif
3300ifdef INSTALL_CREATEPACKAGEFPC
3301ifdef FPCMAKE
3302ifdef PACKAGE_VERSION
3303ifneq ($(wildcard Makefile.fpc),)
3304	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
3305	$(MKDIR) $(INSTALL_UNITDIR)
3306	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
3307endif
3308endif
3309endif
3310endif
3311ifdef INSTALLPPUFILES
3312	$(MKDIR) $(INSTALL_UNITDIR)
3313	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
3314ifneq ($(INSTALLPPULINKFILES),)
3315	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
3316endif
3317ifneq ($(wildcard $(LIB_FULLNAME)),)
3318	$(MKDIR) $(INSTALL_LIBDIR)
3319	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
3320ifdef inUnix
3321	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
3322endif
3323endif
3324endif
3325ifdef INSTALL_FILES
3326	$(MKDIR) $(INSTALL_DATADIR)
3327	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
3328endif
3329fpc_sourceinstall: distclean
3330	$(MKDIR) $(INSTALL_SOURCEDIR)
3331	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
3332fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
3333ifdef HASEXAMPLES
3334	$(MKDIR) $(INSTALL_EXAMPLEDIR)
3335endif
3336ifdef EXAMPLESOURCEFILES
3337	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
3338endif
3339ifdef TARGET_EXAMPLEDIRS
3340	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
3341endif
3342.PHONY: fpc_distinstall
3343fpc_distinstall: install exampleinstall
3344.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
3345ifndef PACKDIR
3346ifndef inUnix
3347PACKDIR=$(BASEDIR)/../fpc-pack
3348else
3349PACKDIR=/tmp/fpc-pack
3350endif
3351endif
3352ifndef ZIPNAME
3353ifdef DIST_ZIPNAME
3354ZIPNAME=$(DIST_ZIPNAME)
3355else
3356ZIPNAME=$(PACKAGE_NAME)
3357endif
3358endif
3359ifndef FULLZIPNAME
3360FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
3361endif
3362ifndef ZIPTARGET
3363ifdef DIST_ZIPTARGET
3364ZIPTARGET=DIST_ZIPTARGET
3365else
3366ZIPTARGET=install
3367endif
3368endif
3369ifndef USEZIP
3370ifdef inUnix
3371USETAR=1
3372endif
3373endif
3374ifndef inUnix
3375USEZIPWRAPPER=1
3376endif
3377ifdef USEZIPWRAPPER
3378ZIPPATHSEP=$(PATHSEP)
3379ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
3380else
3381ZIPPATHSEP=/
3382endif
3383ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
3384ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
3385ifdef USETAR
3386ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
3387ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE) *
3388else
3389ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
3390ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
3391endif
3392fpc_zipinstall:
3393	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
3394	$(MKDIR) $(DIST_DESTDIR)
3395	$(DEL) $(ZIPDESTFILE)
3396ifdef USEZIPWRAPPER
3397ifneq ($(ECHOREDIR),echo)
3398	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
3399	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
3400	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
3401else
3402	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
3403	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
3404	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
3405endif
3406ifdef inUnix
3407	/bin/sh $(ZIPWRAPPER)
3408else
3409ifdef RUNBATCH
3410	$(RUNBATCH) $(ZIPWRAPPER)
3411else
3412	$(ZIPWRAPPER)
3413endif
3414endif
3415	$(DEL) $(ZIPWRAPPER)
3416else
3417	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
3418endif
3419	$(DELTREE) $(PACKDIR)
3420fpc_zipsourceinstall:
3421	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
3422fpc_zipexampleinstall:
3423ifdef HASEXAMPLES
3424	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
3425endif
3426fpc_zipdistinstall:
3427	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
3428.PHONY: fpc_clean fpc_cleanall fpc_distclean
3429ifdef EXEFILES
3430override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
3431override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
3432endif
3433ifdef CLEAN_PROGRAMS
3434override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
3435override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
3436endif
3437ifdef CLEAN_UNITS
3438override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
3439endif
3440ifdef CLEANPPUFILES
3441override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
3442ifdef DEBUGSYMEXT
3443override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
3444endif
3445override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
3446override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
3447override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
3448override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
3449endif
3450fpc_clean: $(CLEANTARGET)
3451ifdef CLEANEXEFILES
3452	-$(DEL) $(CLEANEXEFILES)
3453endif
3454ifdef CLEANEXEDBGFILES
3455	-$(DELTREE) $(CLEANEXEDBGFILES)
3456endif
3457ifdef CLEANPPUFILES
3458	-$(DEL) $(CLEANPPUFILES)
3459endif
3460ifneq ($(CLEANPPULINKFILES),)
3461	-$(DEL) $(CLEANPPULINKFILES)
3462endif
3463ifdef CLEANRSTFILES
3464	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
3465endif
3466ifdef CLEAN_FILES
3467	-$(DEL) $(CLEAN_FILES)
3468endif
3469ifdef LIB_NAME
3470	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
3471endif
3472	-$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
3473	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
3474	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
3475fpc_cleanall: $(CLEANTARGET)
3476ifdef CLEANEXEFILES
3477	-$(DEL) $(CLEANEXEFILES)
3478endif
3479ifdef COMPILER_UNITTARGETDIR
3480ifdef CLEANPPUFILES
3481	-$(DEL) $(CLEANPPUFILES)
3482endif
3483ifneq ($(CLEANPPULINKFILES),)
3484	-$(DEL) $(CLEANPPULINKFILES)
3485endif
3486ifdef CLEANRSTFILES
3487	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
3488endif
3489endif
3490ifdef CLEAN_FILES
3491	-$(DEL) $(CLEAN_FILES)
3492endif
3493	-$(DELTREE) units
3494	-$(DELTREE) bin
3495	-$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
3496ifneq ($(PPUEXT),.ppu)
3497	-$(DEL) *.o *.ppu *.a
3498endif
3499	-$(DELTREE) *$(SMARTEXT)
3500	-$(DEL) fpcmade.* Package.fpc *.fpm
3501	-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
3502	-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
3503ifdef AOUTEXT
3504	-$(DEL) *$(AOUTEXT)
3505endif
3506ifdef DEBUGSYMEXT
3507	-$(DEL) *$(DEBUGSYMEXT)
3508endif
3509ifdef LOCALFPMAKEBIN
3510	-$(DEL) $(LOCALFPMAKEBIN)
3511	-$(DEL) $(FPMAKEBINOBJ)
3512endif
3513fpc_distclean: cleanall
3514.PHONY: fpc_baseinfo
3515override INFORULES+=fpc_baseinfo
3516fpc_baseinfo:
3517	@$(ECHO)
3518	@$(ECHO)  == Package info ==
3519	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
3520	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
3521	@$(ECHO)
3522	@$(ECHO)  == Configuration info ==
3523	@$(ECHO)
3524	@$(ECHO)  FPC.......... $(FPC)
3525	@$(ECHO)  FPC Version.. $(FPC_VERSION)
3526	@$(ECHO)  Source CPU... $(CPU_SOURCE)
3527	@$(ECHO)  Target CPU... $(CPU_TARGET)
3528	@$(ECHO)  Source OS.... $(OS_SOURCE)
3529	@$(ECHO)  Target OS.... $(OS_TARGET)
3530	@$(ECHO)  Full Source.. $(FULL_SOURCE)
3531	@$(ECHO)  Full Target.. $(FULL_TARGET)
3532	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
3533	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
3534	@$(ECHO)  FPC fpmake... $(FPCFPMAKE)
3535	@$(ECHO)
3536	@$(ECHO)  == Directory info ==
3537	@$(ECHO)
3538	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
3539	@$(ECHO)
3540	@$(ECHO)  Basedir......... $(BASEDIR)
3541	@$(ECHO)  FPCDir.......... $(FPCDIR)
3542	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
3543	@$(ECHO)  UnitsDir........ $(UNITSDIR)
3544	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
3545	@$(ECHO)
3546	@$(ECHO)  GCC library..... $(GCCLIBDIR)
3547	@$(ECHO)  Other library... $(OTHERLIBDIR)
3548	@$(ECHO)
3549	@$(ECHO)  == Tools info ==
3550	@$(ECHO)
3551	@$(ECHO)  As........ $(AS)
3552	@$(ECHO)  Ld........ $(LD)
3553	@$(ECHO)  Ar........ $(AR)
3554	@$(ECHO)  Rc........ $(RC)
3555	@$(ECHO)
3556	@$(ECHO)  Mv........ $(MVPROG)
3557	@$(ECHO)  Cp........ $(CPPROG)
3558	@$(ECHO)  Rm........ $(RMPROG)
3559	@$(ECHO)  GInstall.. $(GINSTALL)
3560	@$(ECHO)  Echo...... $(ECHO)
3561	@$(ECHO)  Shell..... $(SHELL)
3562	@$(ECHO)  Date...... $(DATE)
3563	@$(ECHO)  FPCMake... $(FPCMAKE)
3564	@$(ECHO)  PPUMove... $(PPUMOVE)
3565	@$(ECHO)  Zip....... $(ZIPPROG)
3566	@$(ECHO)
3567	@$(ECHO)  == Object info ==
3568	@$(ECHO)
3569	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
3570	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
3571	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
3572	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
3573	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
3574	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
3575	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
3576	@$(ECHO)
3577	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
3578	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
3579	@$(ECHO)
3580	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
3581	@$(ECHO)  Install Files....... $(INSTALL_FILES)
3582	@$(ECHO)
3583	@$(ECHO)  == Install info ==
3584	@$(ECHO)
3585	@$(ECHO)  DateStr.............. $(DATESTR)
3586	@$(ECHO)  ZipName.............. $(ZIPNAME)
3587	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
3588	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
3589	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
3590	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
3591	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
3592	@$(ECHO)
3593	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
3594	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
3595	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
3596	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
3597	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
3598	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
3599	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
3600	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
3601	@$(ECHO)
3602	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
3603	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
3604	@$(ECHO)
3605.PHONY: fpc_info
3606fpc_info: $(INFORULES)
3607.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
3608	fpc_makefile_dirs
3609fpc_makefile:
3610	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
3611fpc_makefile_sub1:
3612ifdef TARGET_DIRS
3613	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
3614endif
3615ifdef TARGET_EXAMPLEDIRS
3616	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
3617endif
3618fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
3619fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
3620fpc_makefiles: fpc_makefile fpc_makefile_dirs
3621debug: fpc_debug
3622smart: fpc_smart
3623release: fpc_release
3624units: fpc_units
3625shared: fpc_shared
3626sourceinstall: fpc_sourceinstall
3627exampleinstall: fpc_exampleinstall
3628distinstall: fpc_distinstall
3629zipinstall: fpc_zipinstall
3630zipsourceinstall: fpc_zipsourceinstall
3631zipexampleinstall: fpc_zipexampleinstall
3632zipdistinstall: fpc_zipdistinstall
3633info: fpc_info
3634makefiles: fpc_makefiles
3635.PHONY: debug smart release units shared sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
3636ifneq ($(wildcard fpcmake.loc),)
3637include fpcmake.loc
3638endif
3639.PHONY: help registration lazutils codetools tools lcl basecomponents bigidecomponents lazbuild ide idepkg idebig cleanide bigide useride starter lhelp all clean purge distclean install
3640help:
3641	@$(ECHO)
3642	@$(ECHO) " Main targets"
3643	@$(ECHO) "                  Without any target, target 'all' will be invoked."
3644	@$(ECHO) "   all            build all needed, i.e. minimal IDE, lazbuild, startlazarus."
3645	@$(ECHO) "   clean          deletes files that 'bigide' creates. It does not clean up all possible"
3646	@$(ECHO) "                  targets. Clean other target: make clean LCL_PLATFORM=qt"
3647	@$(ECHO) "   distclean      Clean all targets and common leftovers."
3648	@$(ECHO) "   lazbuild       build lazbuild and lcl with nogui widgetset"
3649	@$(ECHO) "   bigide         as all, except that the IDE is built with a lot of extra packages"
3650	@$(ECHO) "   useride        calls lazbuild to build an IDE with your active profile, requires lazbuild"
3651	@$(ECHO) "   install        installs Lazarus under $(LAZARUS_INSTALL_DIR)"
3652	@$(ECHO) "                  You can change the directory by appending INSTALL_PREFIX=/some/path"
3653	@$(ECHO)
3654	@$(ECHO) " Sub targets"
3655	@$(ECHO) "   registration   build package FCL"
3656	@$(ECHO) "   lazutils       build package LazUtils, requires registration"
3657	@$(ECHO) "   codetools      build package CodeTools, requires lazutils"
3658	@$(ECHO) "   lcl            build package FreeType, LCLBase and LCL, requires lazutils"
3659	@$(ECHO) "   tools          build lazres, svn2revisioninc, updatepofiles, lrstolfm,"
3660	@$(ECHO) "                  requires LCL with nogui widgetset"
3661	@$(ECHO) "   basecomponents build buildintf, lazcontrols, ideintf, synedit, debuggerintf, lazdebuggergdbmi"
3662	@$(ECHO) "                  for the LCL_PLATFORM, requires lcl"
3663	@$(ECHO) "   bigidecomponents build many extra packages for the LCL_PLATFORM, requires basecomponents"
3664	@$(ECHO) "   lhelp          build lhelp, requires bigidecomponents"
3665	@$(ECHO) "   starter        build startlazarus, requires basecomponents"
3666	@$(ECHO) "   examples       build basic examples, requires basecomponents"
3667	@$(ECHO) "                  Note: There are more examples having their own directory"
3668	@$(ECHO)
3669	@$(ECHO) " Flags:"
3670	@$(ECHO) "   PP=/path/to/fpc        use another compiler"
3671	@$(ECHO) "   USESVN2REVISIONINC=0   do not update ide/revision.inc"
3672	@$(ECHO) "   INSTALL_PREFIX=/usr    used by 'install' as path prefix"
3673	@$(ECHO) "   FPC_DIR=/usr/share/fpcsrc/3.0.4   used by fpcmake when regenerating Makefiles"
3674	@$(ECHO) "   OPT='-vwnbq -gh'       append these options when calling the compiler"
3675	@$(ECHO)
3676	@$(ECHO) " Usage examples:"
3677	@$(ECHO)
3678	@$(ECHO) " Updating svn and build a minimal IDE, startlazarus and lazbuild:"
3679	@$(ECHO) "   make clean"
3680	@$(ECHO) "   svn up"
3681	@$(ECHO) "   make clean all"
3682	@$(ECHO)
3683	@$(ECHO) " Note: You can start lazarus with 'startlazarus'"
3684	@$(ECHO) " Note: Use the IDE or lazbuild to compile your projects/packages."
3685	@$(ECHO)
3686	@$(ECHO) " Updating svn and build an IDE with your last set of packages:"
3687	@$(ECHO) "   make clean"
3688	@$(ECHO) "   svn up"
3689	@$(ECHO) "   make clean lazbuild useride"
3690	@$(ECHO)
3691	@$(ECHO) " Clean up:"
3692	@$(ECHO) "  svn cleanup --remove-unversioned"
3693	@$(ECHO) "  If the above is not supported by your svn"
3694	@$(ECHO) "  you can use the following command under Linux/OS X:"
3695	@$(ECHO) "  svn status | grep '\?' | sed -e 's/\? *//' | xargs rm -r"
3696	@$(ECHO)
3697	@$(ECHO) "  Another possibility is to create a clean copy via the "svn export" command."
3698	@$(ECHO)
3699	@$(ECHO) " Install:"
3700	@$(ECHO) "   Note: You can use Lazarus without installing. Just start the lazarus executable."
3701	@$(ECHO) "   1. Build Lazarus as normal user with one of the above commands."
3702	@$(ECHO) "   2. Install as root into /usr"
3703	@$(ECHO) "          sudo make install"
3704	@$(ECHO) "      This installs startlazarus, lazarus-ide, lazbuild under /usr/bin"
3705	@$(ECHO) "      and copies the whole lazarus source directory to /usr/share/lazarus"
3706	@$(ECHO)
3707	@exit
3708registration:
3709	$(MAKE) -C packager/registration
3710lazutils:
3711	$(MAKE) -C components/lazutils
3712codetools:
3713	$(MAKE) -C components/codetools
3714lcl:
3715	$(MAKE) -C components/freetype
3716	$(MAKE) -C lcl
3717basecomponents:
3718	$(MAKE) -C components/buildintf
3719	$(MAKE) -C components/debuggerintf
3720	$(MAKE) -C components/lazcontrols
3721	$(MAKE) -C components/ideintf
3722	$(MAKE) -C components/synedit
3723	$(MAKE) -C components/lazdebuggergdbmi
3724	$(MAKE) -C components/lazcontrols/design
3725bigidecomponents:
3726	$(MAKE) -C components bigide
3727tools:
3728	$(MAKE) -C tools
3729revisioninc:
3730	$(MAKE) -C ide revisioninc
3731ide:
3732	$(MAKE) -C ide ide
3733idebig:
3734	$(MAKE) -C ide bigide
3735idepkg:
3736	$(MAKE) -C ide idepkg
3737useride:
3738ifdef LAZBUILDJOBS
3739ifdef LCL_PLATFORM
3740	./lazbuild$(SRCEXEEXT) --max-process-count=$(LAZBUILDJOBS) --lazarusdir=. --build-ide= --ws=$(LCL_PLATFORM)
3741else
3742	./lazbuild$(SRCEXEEXT) --max-process-count=$(LAZBUILDJOBS) --lazarusdir=. --build-ide=
3743endif
3744else
3745ifdef LCL_PLATFORM
3746	./lazbuild$(SRCEXEEXT) --lazarusdir=. --build-ide= --ws=$(LCL_PLATFORM)
3747else
3748	./lazbuild$(SRCEXEEXT) --lazarusdir=. --build-ide=
3749endif
3750endif
3751starter:
3752	$(MAKE) -C ide starter
3753lazbuild: registration lazutils codetools
3754	$(MAKE) -C components/freetype
3755	$(MAKE) -C lcl LCL_PLATFORM=nogui
3756	$(MAKE) -C tools
3757	$(MAKE) -C components/debuggerintf LCL_PLATFORM=nogui
3758	$(MAKE) -C components/lazcontrols LCL_PLATFORM=nogui
3759	$(MAKE) -C components/synedit LCL_PLATFORM=nogui
3760	$(MAKE) -C components/buildintf
3761	$(MAKE) -C components/ideintf LCL_PLATFORM=nogui
3762	$(MAKE) -C components/lazdebuggergdbmi LCL_PLATFORM=nogui
3763	$(MAKE) -C ide lazbuilder LCL_PLATFORM=nogui
3764lhelp:
3765	$(MAKE) -C components/chmhelp/lhelp
3766examples:
3767	$(MAKE) -C examples
3768all: lazbuild lcl basecomponents ide starter
3769bigide: lazbuild lcl basecomponents bigidecomponents idebig starter lhelp
3770cleanide:
3771	$(MAKE) -C ide cleanide
3772cleanlaz: cleanide
3773	$(MAKE) -C packager/registration clean
3774	$(MAKE) -C lcl cleanall
3775	$(MAKE) -C components clean
3776clean: cleanlaz
3777	$(MAKE) -C . cleanlaz LCL_PLATFORM=nogui
3778	$(MAKE) -C tools clean
3779	$(MAKE) -C components/chmhelp/lhelp clean
3780cleanbigide: clean
3781purge:
3782	$(MAKE) -C ide distclean
3783	$(MAKE) -C packager/registration distclean
3784	$(MAKE) -C lcl distclean
3785	$(MAKE) -C components distclean
3786	$(MAKE) -C tools distclean
3787	$(MAKE) -C components/chmhelp/lhelp distclean
3788	$(MAKE) -C examples clean
3789cleanall: purge
3790distclean: purge
3791installbase:
3792ifneq ($(findstring $(OS_TARGET),win32 win64),)
3793else
3794	$(MKDIR) $(INSTALL_PREFIX)/share
3795	$(MKDIR) $(INSTALL_PREFIX)/share/lazarus
3796	$(MKDIR) $(INSTALL_PREFIX)/share/applications
3797	$(MKDIR) $(INSTALL_PREFIX)/share/pixmaps
3798	$(MKDIR) $(INSTALL_PREFIX)/share/mime/packages
3799	$(MKDIR) $(INSTALL_PREFIX)/share/icons/hicolor/48x48/mimetypes
3800	$(MKDIR) $(INSTALL_BINDIR)
3801	$(MKDIR) $(INSTALL_MAN_DIR)
3802	$(MKDIR) $(INSTALL_MAN_DIR)/man1
3803endif
3804install: installbase
3805	$(COPYTREE) packager debugger designer converter ide images languages lazarus.app units $(LAZARUS_INSTALL_DIR)
3806	$(COPYTREE) components docs doceditor examples lcl test tools $(LAZARUS_INSTALL_DIR)
3807	$(COPYTREE) Makefile* *.txt $(LAZARUS_INSTALL_DIR)
3808ifneq ($(findstring $(OS_TARGET),win32 win64),)
3809	$(COPYTREE) lazarus$(SRCEXEEXT) startlazarus$(SRCEXEEXT) lazbuild$(SRCEXEEXT) $(LAZARUS_INSTALL_DIR)
3810else
3811	$(INSTALLEXE) lazarus$(SRCEXEEXT) startlazarus$(SRCEXEEXT) lazbuild$(SRCEXEEXT) $(LAZARUS_INSTALL_DIR)
3812	ln -sf ../$(INSTALL_BASEDIR)/lazarus$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/lazarus-ide$(SRCEXEEXT)
3813	ln -sf ../$(INSTALL_BASEDIR)/startlazarus$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/startlazarus$(SRCEXEEXT)
3814	ln -sf ../$(INSTALL_BASEDIR)/lazbuild$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/lazbuild$(SRCEXEEXT)
3815	ln -sf ../$(INSTALL_BASEDIR)/tools/lazres$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/lazres$(SRCEXEEXT)
3816	ln -sf ../$(INSTALL_BASEDIR)/tools/lrstolfm$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/lrstolfm$(SRCEXEEXT)
3817	ln -sf ../$(INSTALL_BASEDIR)/tools/updatepofiles$(SRCEXEEXT) $(INSTALL_PREFIX)/bin/updatepofiles$(SRCEXEEXT)
3818	$(MAKE) -C install/man install PREFIX=$(INSTALL_PREFIX) GINSTALL=$(GINSTALL)
3819	$(INSTALL) install/lazarus.desktop $(INSTALL_PREFIX)/share/applications/lazarus.desktop
3820	$(INSTALL) images/icons/lazarus128x128.png $(INSTALL_PREFIX)/share/pixmaps/lazarus.png
3821	$(INSTALL) install/lazarus-mime.xml $(INSTALL_PREFIX)/share/mime/packages/lazarus.xml
3822	$(INSTALL) images/mimetypes/*.png $(INSTALL_PREFIX)/share/icons/hicolor/48x48/mimetypes/
3823	$(MKDIR) $(LAZARUS_INSTALL_DIR)/units/$(FULL_TARGET)/nogui
3824	$(MKDIR) $(LAZARUS_INSTALL_DIR)/units/$(FULL_TARGET)/gtk
3825	$(MKDIR) $(LAZARUS_INSTALL_DIR)/units/$(FULL_TARGET)/gtk2
3826	$(MKDIR) $(LAZARUS_INSTALL_DIR)/units/$(FULL_TARGET)/qt
3827	$(MKDIR) $(LAZARUS_INSTALL_DIR)/components/synedit/design/languages
3828endif
3829ifndef BUILDDIR
3830BUILDDIR=$(BASEDIR)/build
3831endif
3832ifeq ($(OS_TARGET),linux)
3833ifndef DEBDIR
3834DEBDIR=debian
3835endif
3836ifdef LINKISCOPY
3837ifndef LINKTREE
3838LINKTREE:=$(CPPROG) -Rfpl
3839endif
3840else
3841ifndef LINKTREE
3842LINKTREE:=$(CPPROG) -Rfpl
3843endif
3844endif
3845ifneq ($(wildcard ${DEBDIR}/changelog),)
3846.PHONY: debcopy deb
3847DEBPACKAGEVERSION:=$(shell head -n 1 ${DEBDIR}/changelog | awk '{ print $$2 }' | tr -d '[()]')
3848DEBVERSION=$(firstword $(subst -, ,${DEBPACKAGEVERSION}))
3849DEBBUILD=$(lastword $(subst -, ,${DEBPACKAGEVERSION}))
3850DEBSRC=${PACKAGE_NAME}-${DEBVERSION}
3851DEBSRCDIR=${BUILDDIR}/${DEBSRC}
3852DEBSRC_ORIG=${PACKAGE_NAME}_${DEBVERSION}.orig
3853BUILDDATE=$(shell /bin/date --utc +%Y%m%d)
3854ifdef MENTORS
3855DEB_BUILDPKG_OPT=-sa
3856else
3857DEB_BUILDPKG_OPT=
3858endif
3859ifeq (${DEBBUILD},0)
3860DEBUSESVN=1
3861endif
3862ifeq (${DEBBUILD},1)
3863DEBUSESVN=1
3864endif
3865ifdef SNAPSHOT
3866DEBUSESVN=1
3867endif
3868ifndef SIGN
3869DEB_BUILDPKG_OPT+= -us -uc
3870endif
3871debcheck:
3872ifneq ($(DEBVERSION),$(PACKAGE_VERSION))
3873	! ${ECHO} "Debian version ($(DEBVERSION)) is not correct, expect $(PACKAGE_VERSION)"
3874endif
3875ifeq ($(wildcard ${DEBSRC_ORIG}.tar.gz),)
3876ifndef DEBUSESVN
3877	! ${ECHO} 'Need "${DEBSRC_ORIG}.tar.gz" to build for DEBBUILD = "${DEBBUILD}" > 1'
3878endif
3879endif
3880debcopy: distclean
3881	${DELTREE} ${BUILDDIR}
3882	${MKDIRTREE} ${DEBSRCDIR}
3883ifdef DEBUSESVN
3884	$(LINKTREE) -t $(DEBSRCDIR) \
3885		Makefile.fpc COPYING.* README.txt \
3886		components \
3887		converter \
3888		debugger \
3889		designer \
3890		doceditor \
3891		docs \
3892		install \
3893		examples \
3894		ide \
3895		images \
3896		languages \
3897		lazarus.app \
3898		lcl \
3899		packager \
3900		test \
3901		tools
3902	echo "const RevisionStr = '${SVNVERSION}';" > $(DEBSRCDIR)/ide/revision.inc
3903else
3904	tar -C ${BUILDDIR} -zxf ${DEBSRC_ORIG}.tar.gz ${DEBSRC}
3905	${DELTREE} $(DEBSRCDIR)/debian
3906endif
3907debsetup:
3908	$(COPYTREE) ${DEBDIR} $(DEBSRCDIR)/debian
3909ifdef SNAPSHOT
3910	sed -e 's/${DEBPACKAGEVERSION}/${DEBPACKAGEVERSION}~${BUILDDATE}/' -i $(DEBSRCDIR)/debian/changelog
3911endif
3912	chmod 755 $(DEBSRCDIR)/debian/rules
3913	find $(DEBSRCDIR) -name '.svn' | xargs ${DELTREE}
3914debbuild:
3915	cd ${DEBSRCDIR} ; dpkg-buildpackage ${DEB_BUILDPKG_OPT}
3916debcheckpolicy:
3917ifdef LINTIAN
3918	cd ${DEBSRCDIR} ; lintian -I -i ../*.changes
3919endif
3920debclean:
3921ifndef DEBUSESVN
3922	${DEL} ${BUILDDIR}/${DEBSRC_ORIG}.tar.gz
3923endif
3924	mv -v -t . \
3925	$(DEBSRCDIR)/../*.changes \
3926	$(DEBSRCDIR)/../*.deb \
3927	$(DEBSRCDIR)/../*.dsc \
3928	$(DEBSRCDIR)/../*.gz
3929	${DELTREE} $(DEBSRCDIR)
3930	rmdir $(BUILDDIR)
3931deb: debcheck debcopy deborigtargz debsetup debbuild debcheckpolicy debclean
3932deborigtargz:
3933ifdef DEBUSESVN
3934	tar -C ${BUILDDIR} -zcf ${BUILDDIR}/${DEBSRC_ORIG}.tar.gz --exclude-vcs ${DEBSRC}
3935else
3936	${LINKTREE} ${DEBSRC_ORIG}.tar.gz ${BUILDDIR}/${DEBSRC_ORIG}.tar.gz
3937endif
3938endif   # changelog found
3939endif
3940