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