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