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