PageRenderTime 13ms CodeModel.GetById 9ms app.highlight 61ms RepoModel.GetById 1ms app.codeStats 0ms

/packages/zorba/Makefile

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