1# 2# Don't edit, this file is generated by FPCMake Version 2.0.0 3# 4default: allexectests 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 TARGET_PROGRAMS+=gparmake createlst 334endif 335ifeq ($(FULL_TARGET),i386-go32v2) 336override TARGET_PROGRAMS+=gparmake createlst 337endif 338ifeq ($(FULL_TARGET),i386-win32) 339override TARGET_PROGRAMS+=gparmake createlst 340endif 341ifeq ($(FULL_TARGET),i386-os2) 342override TARGET_PROGRAMS+=gparmake createlst 343endif 344ifeq ($(FULL_TARGET),i386-freebsd) 345override TARGET_PROGRAMS+=gparmake createlst 346endif 347ifeq ($(FULL_TARGET),i386-beos) 348override TARGET_PROGRAMS+=gparmake createlst 349endif 350ifeq ($(FULL_TARGET),i386-haiku) 351override TARGET_PROGRAMS+=gparmake createlst 352endif 353ifeq ($(FULL_TARGET),i386-netbsd) 354override TARGET_PROGRAMS+=gparmake createlst 355endif 356ifeq ($(FULL_TARGET),i386-solaris) 357override TARGET_PROGRAMS+=gparmake createlst 358endif 359ifeq ($(FULL_TARGET),i386-netware) 360override TARGET_PROGRAMS+=gparmake createlst 361endif 362ifeq ($(FULL_TARGET),i386-openbsd) 363override TARGET_PROGRAMS+=gparmake createlst 364endif 365ifeq ($(FULL_TARGET),i386-wdosx) 366override TARGET_PROGRAMS+=gparmake createlst 367endif 368ifeq ($(FULL_TARGET),i386-darwin) 369override TARGET_PROGRAMS+=gparmake createlst 370endif 371ifeq ($(FULL_TARGET),i386-emx) 372override TARGET_PROGRAMS+=gparmake createlst 373endif 374ifeq ($(FULL_TARGET),i386-watcom) 375override TARGET_PROGRAMS+=gparmake createlst 376endif 377ifeq ($(FULL_TARGET),i386-netwlibc) 378override TARGET_PROGRAMS+=gparmake createlst 379endif 380ifeq ($(FULL_TARGET),i386-wince) 381override TARGET_PROGRAMS+=gparmake createlst 382endif 383ifeq ($(FULL_TARGET),i386-embedded) 384override TARGET_PROGRAMS+=gparmake createlst 385endif 386ifeq ($(FULL_TARGET),i386-symbian) 387override TARGET_PROGRAMS+=gparmake createlst 388endif 389ifeq ($(FULL_TARGET),i386-nativent) 390override TARGET_PROGRAMS+=gparmake createlst 391endif 392ifeq ($(FULL_TARGET),i386-iphonesim) 393override TARGET_PROGRAMS+=gparmake createlst 394endif 395ifeq ($(FULL_TARGET),i386-android) 396override TARGET_PROGRAMS+=gparmake createlst 397endif 398ifeq ($(FULL_TARGET),i386-aros) 399override TARGET_PROGRAMS+=gparmake createlst 400endif 401ifeq ($(FULL_TARGET),m68k-linux) 402override TARGET_PROGRAMS+=gparmake createlst 403endif 404ifeq ($(FULL_TARGET),m68k-netbsd) 405override TARGET_PROGRAMS+=gparmake createlst 406endif 407ifeq ($(FULL_TARGET),m68k-amiga) 408override TARGET_PROGRAMS+=gparmake createlst 409endif 410ifeq ($(FULL_TARGET),m68k-atari) 411override TARGET_PROGRAMS+=gparmake createlst 412endif 413ifeq ($(FULL_TARGET),m68k-palmos) 414override TARGET_PROGRAMS+=gparmake createlst 415endif 416ifeq ($(FULL_TARGET),m68k-macosclassic) 417override TARGET_PROGRAMS+=gparmake createlst 418endif 419ifeq ($(FULL_TARGET),m68k-embedded) 420override TARGET_PROGRAMS+=gparmake createlst 421endif 422ifeq ($(FULL_TARGET),powerpc-linux) 423override TARGET_PROGRAMS+=gparmake createlst 424endif 425ifeq ($(FULL_TARGET),powerpc-netbsd) 426override TARGET_PROGRAMS+=gparmake createlst 427endif 428ifeq ($(FULL_TARGET),powerpc-amiga) 429override TARGET_PROGRAMS+=gparmake createlst 430endif 431ifeq ($(FULL_TARGET),powerpc-macosclassic) 432override TARGET_PROGRAMS+=gparmake createlst 433endif 434ifeq ($(FULL_TARGET),powerpc-darwin) 435override TARGET_PROGRAMS+=gparmake createlst 436endif 437ifeq ($(FULL_TARGET),powerpc-morphos) 438override TARGET_PROGRAMS+=gparmake createlst 439endif 440ifeq ($(FULL_TARGET),powerpc-embedded) 441override TARGET_PROGRAMS+=gparmake createlst 442endif 443ifeq ($(FULL_TARGET),powerpc-wii) 444override TARGET_PROGRAMS+=gparmake createlst 445endif 446ifeq ($(FULL_TARGET),powerpc-aix) 447override TARGET_PROGRAMS+=gparmake createlst 448endif 449ifeq ($(FULL_TARGET),sparc-linux) 450override TARGET_PROGRAMS+=gparmake createlst 451endif 452ifeq ($(FULL_TARGET),sparc-netbsd) 453override TARGET_PROGRAMS+=gparmake createlst 454endif 455ifeq ($(FULL_TARGET),sparc-solaris) 456override TARGET_PROGRAMS+=gparmake createlst 457endif 458ifeq ($(FULL_TARGET),sparc-embedded) 459override TARGET_PROGRAMS+=gparmake createlst 460endif 461ifeq ($(FULL_TARGET),x86_64-linux) 462override TARGET_PROGRAMS+=gparmake createlst 463endif 464ifeq ($(FULL_TARGET),x86_64-freebsd) 465override TARGET_PROGRAMS+=gparmake createlst 466endif 467ifeq ($(FULL_TARGET),x86_64-haiku) 468override TARGET_PROGRAMS+=gparmake createlst 469endif 470ifeq ($(FULL_TARGET),x86_64-netbsd) 471override TARGET_PROGRAMS+=gparmake createlst 472endif 473ifeq ($(FULL_TARGET),x86_64-solaris) 474override TARGET_PROGRAMS+=gparmake createlst 475endif 476ifeq ($(FULL_TARGET),x86_64-openbsd) 477override TARGET_PROGRAMS+=gparmake createlst 478endif 479ifeq ($(FULL_TARGET),x86_64-darwin) 480override TARGET_PROGRAMS+=gparmake createlst 481endif 482ifeq ($(FULL_TARGET),x86_64-win64) 483override TARGET_PROGRAMS+=gparmake createlst 484endif 485ifeq ($(FULL_TARGET),x86_64-embedded) 486override TARGET_PROGRAMS+=gparmake createlst 487endif 488ifeq ($(FULL_TARGET),x86_64-iphonesim) 489override TARGET_PROGRAMS+=gparmake createlst 490endif 491ifeq ($(FULL_TARGET),x86_64-android) 492override TARGET_PROGRAMS+=gparmake createlst 493endif 494ifeq ($(FULL_TARGET),x86_64-aros) 495override TARGET_PROGRAMS+=gparmake createlst 496endif 497ifeq ($(FULL_TARGET),x86_64-dragonfly) 498override TARGET_PROGRAMS+=gparmake createlst 499endif 500ifeq ($(FULL_TARGET),arm-linux) 501override TARGET_PROGRAMS+=gparmake createlst 502endif 503ifeq ($(FULL_TARGET),arm-netbsd) 504override TARGET_PROGRAMS+=gparmake createlst 505endif 506ifeq ($(FULL_TARGET),arm-palmos) 507override TARGET_PROGRAMS+=gparmake createlst 508endif 509ifeq ($(FULL_TARGET),arm-wince) 510override TARGET_PROGRAMS+=gparmake createlst 511endif 512ifeq ($(FULL_TARGET),arm-gba) 513override TARGET_PROGRAMS+=gparmake createlst 514endif 515ifeq ($(FULL_TARGET),arm-nds) 516override TARGET_PROGRAMS+=gparmake createlst 517endif 518ifeq ($(FULL_TARGET),arm-embedded) 519override TARGET_PROGRAMS+=gparmake createlst 520endif 521ifeq ($(FULL_TARGET),arm-symbian) 522override TARGET_PROGRAMS+=gparmake createlst 523endif 524ifeq ($(FULL_TARGET),arm-android) 525override TARGET_PROGRAMS+=gparmake createlst 526endif 527ifeq ($(FULL_TARGET),arm-aros) 528override TARGET_PROGRAMS+=gparmake createlst 529endif 530ifeq ($(FULL_TARGET),arm-ios) 531override TARGET_PROGRAMS+=gparmake createlst 532endif 533ifeq ($(FULL_TARGET),powerpc64-linux) 534override TARGET_PROGRAMS+=gparmake createlst 535endif 536ifeq ($(FULL_TARGET),powerpc64-darwin) 537override TARGET_PROGRAMS+=gparmake createlst 538endif 539ifeq ($(FULL_TARGET),powerpc64-embedded) 540override TARGET_PROGRAMS+=gparmake createlst 541endif 542ifeq ($(FULL_TARGET),powerpc64-aix) 543override TARGET_PROGRAMS+=gparmake createlst 544endif 545ifeq ($(FULL_TARGET),avr-embedded) 546override TARGET_PROGRAMS+=gparmake createlst 547endif 548ifeq ($(FULL_TARGET),armeb-linux) 549override TARGET_PROGRAMS+=gparmake createlst 550endif 551ifeq ($(FULL_TARGET),armeb-embedded) 552override TARGET_PROGRAMS+=gparmake createlst 553endif 554ifeq ($(FULL_TARGET),mips-linux) 555override TARGET_PROGRAMS+=gparmake createlst 556endif 557ifeq ($(FULL_TARGET),mipsel-linux) 558override TARGET_PROGRAMS+=gparmake createlst 559endif 560ifeq ($(FULL_TARGET),mipsel-embedded) 561override TARGET_PROGRAMS+=gparmake createlst 562endif 563ifeq ($(FULL_TARGET),mipsel-android) 564override TARGET_PROGRAMS+=gparmake createlst 565endif 566ifeq ($(FULL_TARGET),jvm-java) 567override TARGET_PROGRAMS+=gparmake createlst 568endif 569ifeq ($(FULL_TARGET),jvm-android) 570override TARGET_PROGRAMS+=gparmake createlst 571endif 572ifeq ($(FULL_TARGET),i8086-embedded) 573override TARGET_PROGRAMS+=gparmake createlst 574endif 575ifeq ($(FULL_TARGET),i8086-msdos) 576override TARGET_PROGRAMS+=gparmake createlst 577endif 578ifeq ($(FULL_TARGET),i8086-win16) 579override TARGET_PROGRAMS+=gparmake createlst 580endif 581ifeq ($(FULL_TARGET),aarch64-linux) 582override TARGET_PROGRAMS+=gparmake createlst 583endif 584ifeq ($(FULL_TARGET),aarch64-darwin) 585override TARGET_PROGRAMS+=gparmake createlst 586endif 587ifeq ($(FULL_TARGET),aarch64-android) 588override TARGET_PROGRAMS+=gparmake createlst 589endif 590ifeq ($(FULL_TARGET),aarch64-ios) 591override TARGET_PROGRAMS+=gparmake createlst 592endif 593ifeq ($(FULL_TARGET),wasm-wasm) 594override TARGET_PROGRAMS+=gparmake createlst 595endif 596ifeq ($(FULL_TARGET),sparc64-linux) 597override TARGET_PROGRAMS+=gparmake createlst 598endif 599override INSTALL_FPCPACKAGE=y 600ifdef REQUIRE_UNITSDIR 601override UNITSDIR+=$(REQUIRE_UNITSDIR) 602endif 603ifdef REQUIRE_PACKAGESDIR 604override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR) 605endif 606ifdef ZIPINSTALL 607ifneq ($(findstring $(OS_TARGET),$(UNIXs)),) 608UNIXHier=1 609endif 610else 611ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),) 612UNIXHier=1 613endif 614endif 615ifndef INSTALL_PREFIX 616ifdef PREFIX 617INSTALL_PREFIX=$(PREFIX) 618endif 619endif 620ifndef INSTALL_PREFIX 621ifdef UNIXHier 622INSTALL_PREFIX=/usr/local 623else 624ifdef INSTALL_FPCPACKAGE 625INSTALL_BASEDIR:=/pp 626else 627INSTALL_BASEDIR:=/$(PACKAGE_NAME) 628endif 629endif 630endif 631export INSTALL_PREFIX 632ifdef INSTALL_FPCSUBDIR 633export INSTALL_FPCSUBDIR 634endif 635ifndef DIST_DESTDIR 636DIST_DESTDIR:=$(BASEDIR) 637endif 638export DIST_DESTDIR 639ifndef COMPILER_UNITTARGETDIR 640ifdef PACKAGEDIR_MAIN 641COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX) 642else 643COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX) 644endif 645endif 646ifndef COMPILER_TARGETDIR 647COMPILER_TARGETDIR=. 648endif 649ifndef INSTALL_BASEDIR 650ifdef UNIXHier 651ifdef INSTALL_FPCPACKAGE 652INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION) 653else 654INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME) 655endif 656else 657INSTALL_BASEDIR:=$(INSTALL_PREFIX) 658endif 659endif 660ifndef INSTALL_BINDIR 661ifdef UNIXHier 662INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin 663else 664INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin 665ifdef INSTALL_FPCPACKAGE 666ifdef CROSSCOMPILE 667ifdef CROSSINSTALL 668INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX) 669else 670INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) 671endif 672else 673INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX) 674endif 675endif 676endif 677endif 678ifndef INSTALL_UNITDIR 679INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX) 680ifdef INSTALL_FPCPACKAGE 681ifdef PACKAGE_NAME 682INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME) 683endif 684endif 685endif 686ifndef INSTALL_LIBDIR 687ifdef UNIXHier 688INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib 689else 690INSTALL_LIBDIR:=$(INSTALL_UNITDIR) 691endif 692endif 693ifndef INSTALL_SOURCEDIR 694ifdef UNIXHier 695ifdef BSDhier 696SRCPREFIXDIR=share/src 697else 698ifdef linuxHier 699SRCPREFIXDIR=share/src 700else 701SRCPREFIXDIR=src 702endif 703endif 704ifdef INSTALL_FPCPACKAGE 705ifdef INSTALL_FPCSUBDIR 706INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) 707else 708INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) 709endif 710else 711INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) 712endif 713else 714ifdef INSTALL_FPCPACKAGE 715ifdef INSTALL_FPCSUBDIR 716INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME) 717else 718INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME) 719endif 720else 721INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source 722endif 723endif 724endif 725ifndef INSTALL_DOCDIR 726ifdef UNIXHier 727ifdef BSDhier 728DOCPREFIXDIR=share/doc 729else 730ifdef linuxHier 731DOCPREFIXDIR=share/doc 732else 733DOCPREFIXDIR=doc 734endif 735endif 736ifdef INSTALL_FPCPACKAGE 737INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) 738else 739INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) 740endif 741else 742ifdef INSTALL_FPCPACKAGE 743INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME) 744else 745INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc 746endif 747endif 748endif 749ifndef INSTALL_EXAMPLEDIR 750ifdef UNIXHier 751ifdef INSTALL_FPCPACKAGE 752ifdef BSDhier 753INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME) 754else 755ifdef linuxHier 756INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples 757else 758INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME) 759endif 760endif 761else 762ifdef BSDhier 763INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) 764else 765ifdef linuxHier 766INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION) 767else 768INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION) 769endif 770endif 771endif 772else 773ifdef INSTALL_FPCPACKAGE 774INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME) 775else 776INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples 777endif 778endif 779endif 780ifndef INSTALL_DATADIR 781INSTALL_DATADIR=$(INSTALL_BASEDIR) 782endif 783ifndef INSTALL_SHAREDDIR 784INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib 785endif 786ifdef CROSSCOMPILE 787ifndef CROSSBINDIR 788CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX)) 789ifeq ($(CROSSBINDIR),) 790CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE)) 791endif 792endif 793else 794CROSSBINDIR= 795endif 796BATCHEXT=.bat 797LOADEREXT=.as 798EXEEXT=.exe 799PPLEXT=.ppl 800PPUEXT=.ppu 801OEXT=.o 802ASMEXT=.s 803SMARTEXT=.sl 804STATICLIBEXT=.a 805SHAREDLIBEXT=.so 806SHAREDLIBPREFIX=libfp 807STATICLIBPREFIX=libp 808IMPORTLIBPREFIX=libimp 809RSTEXT=.rst 810EXEDBGEXT=.dbg 811ifeq ($(OS_TARGET),go32v1) 812STATICLIBPREFIX= 813SHORTSUFFIX=v1 814endif 815ifeq ($(OS_TARGET),go32v2) 816STATICLIBPREFIX= 817SHORTSUFFIX=dos 818IMPORTLIBPREFIX= 819endif 820ifeq ($(OS_TARGET),watcom) 821STATICLIBPREFIX= 822OEXT=.obj 823ASMEXT=.asm 824SHAREDLIBEXT=.dll 825SHORTSUFFIX=wat 826IMPORTLIBPREFIX= 827endif 828ifneq ($(CPU_TARGET),jvm) 829ifeq ($(OS_TARGET),android) 830BATCHEXT=.sh 831EXEEXT= 832HASSHAREDLIB=1 833SHORTSUFFIX=lnx 834endif 835endif 836ifeq ($(OS_TARGET),linux) 837BATCHEXT=.sh 838EXEEXT= 839HASSHAREDLIB=1 840SHORTSUFFIX=lnx 841endif 842ifeq ($(OS_TARGET),dragonfly) 843BATCHEXT=.sh 844EXEEXT= 845HASSHAREDLIB=1 846SHORTSUFFIX=df 847endif 848ifeq ($(OS_TARGET),freebsd) 849BATCHEXT=.sh 850EXEEXT= 851HASSHAREDLIB=1 852SHORTSUFFIX=fbs 853endif 854ifeq ($(OS_TARGET),netbsd) 855BATCHEXT=.sh 856EXEEXT= 857HASSHAREDLIB=1 858SHORTSUFFIX=nbs 859endif 860ifeq ($(OS_TARGET),openbsd) 861BATCHEXT=.sh 862EXEEXT= 863HASSHAREDLIB=1 864SHORTSUFFIX=obs 865endif 866ifeq ($(OS_TARGET),win32) 867SHAREDLIBEXT=.dll 868SHORTSUFFIX=w32 869endif 870ifeq ($(OS_TARGET),os2) 871BATCHEXT=.cmd 872AOUTEXT=.out 873STATICLIBPREFIX= 874SHAREDLIBEXT=.dll 875SHORTSUFFIX=os2 876ECHO=echo 877IMPORTLIBPREFIX= 878endif 879ifeq ($(OS_TARGET),emx) 880BATCHEXT=.cmd 881AOUTEXT=.out 882STATICLIBPREFIX= 883SHAREDLIBEXT=.dll 884SHORTSUFFIX=emx 885ECHO=echo 886IMPORTLIBPREFIX= 887endif 888ifeq ($(OS_TARGET),amiga) 889EXEEXT= 890SHAREDLIBEXT=.library 891SHORTSUFFIX=amg 892endif 893ifeq ($(OS_TARGET),aros) 894EXEEXT= 895SHAREDLIBEXT=.library 896SHORTSUFFIX=aros 897endif 898ifeq ($(OS_TARGET),morphos) 899EXEEXT= 900SHAREDLIBEXT=.library 901SHORTSUFFIX=mos 902endif 903ifeq ($(OS_TARGET),atari) 904EXEEXT=.ttp 905SHORTSUFFIX=ata 906endif 907ifeq ($(OS_TARGET),beos) 908BATCHEXT=.sh 909EXEEXT= 910SHORTSUFFIX=be 911endif 912ifeq ($(OS_TARGET),haiku) 913BATCHEXT=.sh 914EXEEXT= 915SHORTSUFFIX=hai 916endif 917ifeq ($(OS_TARGET),solaris) 918BATCHEXT=.sh 919EXEEXT= 920SHORTSUFFIX=sun 921endif 922ifeq ($(OS_TARGET),qnx) 923BATCHEXT=.sh 924EXEEXT= 925SHORTSUFFIX=qnx 926endif 927ifeq ($(OS_TARGET),netware) 928EXEEXT=.nlm 929STATICLIBPREFIX= 930SHORTSUFFIX=nw 931IMPORTLIBPREFIX=imp 932endif 933ifeq ($(OS_TARGET),netwlibc) 934EXEEXT=.nlm 935STATICLIBPREFIX= 936SHORTSUFFIX=nwl 937IMPORTLIBPREFIX=imp 938endif 939ifeq ($(OS_TARGET),macosclassic) 940BATCHEXT= 941EXEEXT= 942DEBUGSYMEXT=.xcoff 943SHORTSUFFIX=mac 944IMPORTLIBPREFIX=imp 945endif 946ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),) 947BATCHEXT=.sh 948EXEEXT= 949HASSHAREDLIB=1 950SHORTSUFFIX=dwn 951EXEDBGEXT=.dSYM 952endif 953ifeq ($(OS_TARGET),gba) 954EXEEXT=.gba 955SHAREDLIBEXT=.so 956SHORTSUFFIX=gba 957endif 958ifeq ($(OS_TARGET),symbian) 959SHAREDLIBEXT=.dll 960SHORTSUFFIX=symbian 961endif 962ifeq ($(OS_TARGET),NativeNT) 963SHAREDLIBEXT=.dll 964SHORTSUFFIX=nativent 965endif 966ifeq ($(OS_TARGET),wii) 967EXEEXT=.dol 968SHAREDLIBEXT=.so 969SHORTSUFFIX=wii 970endif 971ifeq ($(OS_TARGET),aix) 972BATCHEXT=.sh 973EXEEXT= 974SHAREDLIBEXT=.a 975SHORTSUFFIX=aix 976endif 977ifeq ($(OS_TARGET),java) 978OEXT=.class 979ASMEXT=.j 980SHAREDLIBEXT=.jar 981SHORTSUFFIX=java 982endif 983ifeq ($(CPU_TARGET),jvm) 984ifeq ($(OS_TARGET),android) 985OEXT=.class 986ASMEXT=.j 987SHAREDLIBEXT=.jar 988SHORTSUFFIX=android 989endif 990endif 991ifeq ($(OS_TARGET),msdos) 992STATICLIBPREFIX= 993STATICLIBEXT=.a 994SHORTSUFFIX=d16 995endif 996ifeq ($(OS_TARGET),embedded) 997ifeq ($(CPU_TARGET),i8086) 998STATICLIBPREFIX= 999STATICLIBEXT=.a 1000else 1001EXEEXT=.bin 1002endif 1003SHORTSUFFIX=emb 1004endif 1005ifeq ($(OS_TARGET),win16) 1006STATICLIBPREFIX= 1007STATICLIBEXT=.a 1008SHAREDLIBEXT=.dll 1009SHORTSUFFIX=w16 1010endif 1011ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) 1012FPCMADE=fpcmade.$(SHORTSUFFIX) 1013ZIPSUFFIX=$(SHORTSUFFIX) 1014ZIPCROSSPREFIX= 1015ZIPSOURCESUFFIX=src 1016ZIPEXAMPLESUFFIX=exm 1017else 1018FPCMADE=fpcmade.$(TARGETSUFFIX) 1019ZIPSOURCESUFFIX=.source 1020ZIPEXAMPLESUFFIX=.examples 1021ifdef CROSSCOMPILE 1022ZIPSUFFIX=.$(SOURCESUFFIX) 1023ZIPCROSSPREFIX=$(TARGETSUFFIX)- 1024else 1025ZIPSUFFIX=.$(TARGETSUFFIX) 1026ZIPCROSSPREFIX= 1027endif 1028endif 1029ifndef ECHO 1030ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH)))) 1031ifeq ($(ECHO),) 1032ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))) 1033ifeq ($(ECHO),) 1034ECHO= __missing_command_ECHO 1035else 1036ECHO:=$(firstword $(ECHO)) 1037endif 1038else 1039ECHO:=$(firstword $(ECHO)) 1040endif 1041endif 1042export ECHO 1043ifndef DATE 1044DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH)))) 1045ifeq ($(DATE),) 1046DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH)))) 1047ifeq ($(DATE),) 1048DATE= __missing_command_DATE 1049else 1050DATE:=$(firstword $(DATE)) 1051endif 1052else 1053DATE:=$(firstword $(DATE)) 1054endif 1055endif 1056export DATE 1057ifndef GINSTALL 1058GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH)))) 1059ifeq ($(GINSTALL),) 1060GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH)))) 1061ifeq ($(GINSTALL),) 1062GINSTALL= __missing_command_GINSTALL 1063else 1064GINSTALL:=$(firstword $(GINSTALL)) 1065endif 1066else 1067GINSTALL:=$(firstword $(GINSTALL)) 1068endif 1069endif 1070export GINSTALL 1071ifndef CPPROG 1072CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH)))) 1073ifeq ($(CPPROG),) 1074CPPROG= __missing_command_CPPROG 1075else 1076CPPROG:=$(firstword $(CPPROG)) 1077endif 1078endif 1079export CPPROG 1080ifndef RMPROG 1081RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH)))) 1082ifeq ($(RMPROG),) 1083RMPROG= __missing_command_RMPROG 1084else 1085RMPROG:=$(firstword $(RMPROG)) 1086endif 1087endif 1088export RMPROG 1089ifndef MVPROG 1090MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH)))) 1091ifeq ($(MVPROG),) 1092MVPROG= __missing_command_MVPROG 1093else 1094MVPROG:=$(firstword $(MVPROG)) 1095endif 1096endif 1097export MVPROG 1098ifndef MKDIRPROG 1099MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH)))) 1100ifeq ($(MKDIRPROG),) 1101MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH)))) 1102ifeq ($(MKDIRPROG),) 1103MKDIRPROG= __missing_command_MKDIRPROG 1104else 1105MKDIRPROG:=$(firstword $(MKDIRPROG)) 1106endif 1107else 1108MKDIRPROG:=$(firstword $(MKDIRPROG)) 1109endif 1110endif 1111export MKDIRPROG 1112ifndef ECHOREDIR 1113ifndef inUnix 1114ECHOREDIR=echo 1115else 1116ECHOREDIR=$(ECHO) 1117endif 1118endif 1119ifndef COPY 1120COPY:=$(CPPROG) -fp 1121endif 1122ifndef COPYTREE 1123COPYTREE:=$(CPPROG) -Rfp 1124endif 1125ifndef MKDIRTREE 1126MKDIRTREE:=$(MKDIRPROG) -p 1127endif 1128ifndef MOVE 1129MOVE:=$(MVPROG) -f 1130endif 1131ifndef DEL 1132DEL:=$(RMPROG) -f 1133endif 1134ifndef DELTREE 1135DELTREE:=$(RMPROG) -rf 1136endif 1137ifndef INSTALL 1138ifdef inUnix 1139INSTALL:=$(GINSTALL) -c -m 644 1140else 1141INSTALL:=$(COPY) 1142endif 1143endif 1144ifndef INSTALLEXE 1145ifdef inUnix 1146INSTALLEXE:=$(GINSTALL) -c -m 755 1147else 1148INSTALLEXE:=$(COPY) 1149endif 1150endif 1151ifndef MKDIR 1152MKDIR:=$(GINSTALL) -m 755 -d 1153endif 1154export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR 1155ifndef PPUMOVE 1156PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH)))) 1157ifeq ($(PPUMOVE),) 1158PPUMOVE= __missing_command_PPUMOVE 1159else 1160PPUMOVE:=$(firstword $(PPUMOVE)) 1161endif 1162endif 1163export PPUMOVE 1164ifndef FPCMAKE 1165FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH)))) 1166ifeq ($(FPCMAKE),) 1167FPCMAKE= __missing_command_FPCMAKE 1168else 1169FPCMAKE:=$(firstword $(FPCMAKE)) 1170endif 1171endif 1172export FPCMAKE 1173ifndef ZIPPROG 1174ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH)))) 1175ifeq ($(ZIPPROG),) 1176ZIPPROG= __missing_command_ZIPPROG 1177else 1178ZIPPROG:=$(firstword $(ZIPPROG)) 1179endif 1180endif 1181export ZIPPROG 1182ifndef TARPROG 1183TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH)))) 1184ifeq ($(TARPROG),) 1185TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH)))) 1186ifeq ($(TARPROG),) 1187TARPROG= __missing_command_TARPROG 1188else 1189TARPROG:=$(firstword $(TARPROG)) 1190endif 1191else 1192TARPROG:=$(firstword $(TARPROG)) 1193endif 1194endif 1195export TARPROG 1196ASNAME=$(BINUTILSPREFIX)as 1197LDNAME=$(BINUTILSPREFIX)ld 1198ARNAME=$(BINUTILSPREFIX)ar 1199RCNAME=$(BINUTILSPREFIX)rc 1200NASMNAME=$(BINUTILSPREFIX)nasm 1201ifndef ASPROG 1202ifdef CROSSBINDIR 1203ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT) 1204else 1205ASPROG=$(ASNAME) 1206endif 1207endif 1208ifndef LDPROG 1209ifdef CROSSBINDIR 1210LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT) 1211else 1212LDPROG=$(LDNAME) 1213endif 1214endif 1215ifndef RCPROG 1216ifdef CROSSBINDIR 1217RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT) 1218else 1219RCPROG=$(RCNAME) 1220endif 1221endif 1222ifndef ARPROG 1223ifdef CROSSBINDIR 1224ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT) 1225else 1226ARPROG=$(ARNAME) 1227endif 1228endif 1229ifndef NASMPROG 1230ifdef CROSSBINDIR 1231NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT) 1232else 1233NASMPROG=$(NASMNAME) 1234endif 1235endif 1236AS=$(ASPROG) 1237LD=$(LDPROG) 1238RC=$(RCPROG) 1239AR=$(ARPROG) 1240NASM=$(NASMPROG) 1241ifdef inUnix 1242PPAS=./ppas$(SRCBATCHEXT) 1243else 1244PPAS=ppas$(SRCBATCHEXT) 1245endif 1246ifdef inUnix 1247LDCONFIG=ldconfig 1248else 1249LDCONFIG= 1250endif 1251ifdef DATE 1252DATESTR:=$(shell $(DATE) +%Y%m%d) 1253else 1254DATESTR= 1255endif 1256ZIPOPT=-9 1257ZIPEXT=.zip 1258ifeq ($(USETAR),bz2) 1259TAROPT=vj 1260TAREXT=.tar.bz2 1261else 1262TAROPT=vz 1263TAREXT=.tar.gz 1264endif 1265override REQUIRE_PACKAGES=rtl 1266ifeq ($(FULL_TARGET),i386-linux) 1267REQUIRE_PACKAGES_RTL=1 1268endif 1269ifeq ($(FULL_TARGET),i386-go32v2) 1270REQUIRE_PACKAGES_RTL=1 1271endif 1272ifeq ($(FULL_TARGET),i386-win32) 1273REQUIRE_PACKAGES_RTL=1 1274endif 1275ifeq ($(FULL_TARGET),i386-os2) 1276REQUIRE_PACKAGES_RTL=1 1277endif 1278ifeq ($(FULL_TARGET),i386-freebsd) 1279REQUIRE_PACKAGES_RTL=1 1280endif 1281ifeq ($(FULL_TARGET),i386-beos) 1282REQUIRE_PACKAGES_RTL=1 1283endif 1284ifeq ($(FULL_TARGET),i386-haiku) 1285REQUIRE_PACKAGES_RTL=1 1286endif 1287ifeq ($(FULL_TARGET),i386-netbsd) 1288REQUIRE_PACKAGES_RTL=1 1289endif 1290ifeq ($(FULL_TARGET),i386-solaris) 1291REQUIRE_PACKAGES_RTL=1 1292endif 1293ifeq ($(FULL_TARGET),i386-netware) 1294REQUIRE_PACKAGES_RTL=1 1295endif 1296ifeq ($(FULL_TARGET),i386-openbsd) 1297REQUIRE_PACKAGES_RTL=1 1298endif 1299ifeq ($(FULL_TARGET),i386-wdosx) 1300REQUIRE_PACKAGES_RTL=1 1301endif 1302ifeq ($(FULL_TARGET),i386-darwin) 1303REQUIRE_PACKAGES_RTL=1 1304endif 1305ifeq ($(FULL_TARGET),i386-emx) 1306REQUIRE_PACKAGES_RTL=1 1307endif 1308ifeq ($(FULL_TARGET),i386-watcom) 1309REQUIRE_PACKAGES_RTL=1 1310endif 1311ifeq ($(FULL_TARGET),i386-netwlibc) 1312REQUIRE_PACKAGES_RTL=1 1313endif 1314ifeq ($(FULL_TARGET),i386-wince) 1315REQUIRE_PACKAGES_RTL=1 1316endif 1317ifeq ($(FULL_TARGET),i386-embedded) 1318REQUIRE_PACKAGES_RTL=1 1319endif 1320ifeq ($(FULL_TARGET),i386-symbian) 1321REQUIRE_PACKAGES_RTL=1 1322endif 1323ifeq ($(FULL_TARGET),i386-nativent) 1324REQUIRE_PACKAGES_RTL=1 1325endif 1326ifeq ($(FULL_TARGET),i386-iphonesim) 1327REQUIRE_PACKAGES_RTL=1 1328endif 1329ifeq ($(FULL_TARGET),i386-android) 1330REQUIRE_PACKAGES_RTL=1 1331endif 1332ifeq ($(FULL_TARGET),i386-aros) 1333REQUIRE_PACKAGES_RTL=1 1334endif 1335ifeq ($(FULL_TARGET),m68k-linux) 1336REQUIRE_PACKAGES_RTL=1 1337endif 1338ifeq ($(FULL_TARGET),m68k-netbsd) 1339REQUIRE_PACKAGES_RTL=1 1340endif 1341ifeq ($(FULL_TARGET),m68k-amiga) 1342REQUIRE_PACKAGES_RTL=1 1343endif 1344ifeq ($(FULL_TARGET),m68k-atari) 1345REQUIRE_PACKAGES_RTL=1 1346endif 1347ifeq ($(FULL_TARGET),m68k-palmos) 1348REQUIRE_PACKAGES_RTL=1 1349endif 1350ifeq ($(FULL_TARGET),m68k-macosclassic) 1351REQUIRE_PACKAGES_RTL=1 1352endif 1353ifeq ($(FULL_TARGET),m68k-embedded) 1354REQUIRE_PACKAGES_RTL=1 1355endif 1356ifeq ($(FULL_TARGET),powerpc-linux) 1357REQUIRE_PACKAGES_RTL=1 1358endif 1359ifeq ($(FULL_TARGET),powerpc-netbsd) 1360REQUIRE_PACKAGES_RTL=1 1361endif 1362ifeq ($(FULL_TARGET),powerpc-amiga) 1363REQUIRE_PACKAGES_RTL=1 1364endif 1365ifeq ($(FULL_TARGET),powerpc-macosclassic) 1366REQUIRE_PACKAGES_RTL=1 1367endif 1368ifeq ($(FULL_TARGET),powerpc-darwin) 1369REQUIRE_PACKAGES_RTL=1 1370endif 1371ifeq ($(FULL_TARGET),powerpc-morphos) 1372REQUIRE_PACKAGES_RTL=1 1373endif 1374ifeq ($(FULL_TARGET),powerpc-embedded) 1375REQUIRE_PACKAGES_RTL=1 1376endif 1377ifeq ($(FULL_TARGET),powerpc-wii) 1378REQUIRE_PACKAGES_RTL=1 1379endif 1380ifeq ($(FULL_TARGET),powerpc-aix) 1381REQUIRE_PACKAGES_RTL=1 1382endif 1383ifeq ($(FULL_TARGET),sparc-linux) 1384REQUIRE_PACKAGES_RTL=1 1385endif 1386ifeq ($(FULL_TARGET),sparc-netbsd) 1387REQUIRE_PACKAGES_RTL=1 1388endif 1389ifeq ($(FULL_TARGET),sparc-solaris) 1390REQUIRE_PACKAGES_RTL=1 1391endif 1392ifeq ($(FULL_TARGET),sparc-embedded) 1393REQUIRE_PACKAGES_RTL=1 1394endif 1395ifeq ($(FULL_TARGET),x86_64-linux) 1396REQUIRE_PACKAGES_RTL=1 1397endif 1398ifeq ($(FULL_TARGET),x86_64-freebsd) 1399REQUIRE_PACKAGES_RTL=1 1400endif 1401ifeq ($(FULL_TARGET),x86_64-haiku) 1402REQUIRE_PACKAGES_RTL=1 1403endif 1404ifeq ($(FULL_TARGET),x86_64-netbsd) 1405REQUIRE_PACKAGES_RTL=1 1406endif 1407ifeq ($(FULL_TARGET),x86_64-solaris) 1408REQUIRE_PACKAGES_RTL=1 1409endif 1410ifeq ($(FULL_TARGET),x86_64-openbsd) 1411REQUIRE_PACKAGES_RTL=1 1412endif 1413ifeq ($(FULL_TARGET),x86_64-darwin) 1414REQUIRE_PACKAGES_RTL=1 1415endif 1416ifeq ($(FULL_TARGET),x86_64-win64) 1417REQUIRE_PACKAGES_RTL=1 1418endif 1419ifeq ($(FULL_TARGET),x86_64-embedded) 1420REQUIRE_PACKAGES_RTL=1 1421endif 1422ifeq ($(FULL_TARGET),x86_64-iphonesim) 1423REQUIRE_PACKAGES_RTL=1 1424endif 1425ifeq ($(FULL_TARGET),x86_64-android) 1426REQUIRE_PACKAGES_RTL=1 1427endif 1428ifeq ($(FULL_TARGET),x86_64-aros) 1429REQUIRE_PACKAGES_RTL=1 1430endif 1431ifeq ($(FULL_TARGET),x86_64-dragonfly) 1432REQUIRE_PACKAGES_RTL=1 1433endif 1434ifeq ($(FULL_TARGET),arm-linux) 1435REQUIRE_PACKAGES_RTL=1 1436endif 1437ifeq ($(FULL_TARGET),arm-netbsd) 1438REQUIRE_PACKAGES_RTL=1 1439endif 1440ifeq ($(FULL_TARGET),arm-palmos) 1441REQUIRE_PACKAGES_RTL=1 1442endif 1443ifeq ($(FULL_TARGET),arm-wince) 1444REQUIRE_PACKAGES_RTL=1 1445endif 1446ifeq ($(FULL_TARGET),arm-gba) 1447REQUIRE_PACKAGES_RTL=1 1448endif 1449ifeq ($(FULL_TARGET),arm-nds) 1450REQUIRE_PACKAGES_RTL=1 1451endif 1452ifeq ($(FULL_TARGET),arm-embedded) 1453REQUIRE_PACKAGES_RTL=1 1454endif 1455ifeq ($(FULL_TARGET),arm-symbian) 1456REQUIRE_PACKAGES_RTL=1 1457endif 1458ifeq ($(FULL_TARGET),arm-android) 1459REQUIRE_PACKAGES_RTL=1 1460endif 1461ifeq ($(FULL_TARGET),arm-aros) 1462REQUIRE_PACKAGES_RTL=1 1463endif 1464ifeq ($(FULL_TARGET),arm-ios) 1465REQUIRE_PACKAGES_RTL=1 1466endif 1467ifeq ($(FULL_TARGET),powerpc64-linux) 1468REQUIRE_PACKAGES_RTL=1 1469endif 1470ifeq ($(FULL_TARGET),powerpc64-darwin) 1471REQUIRE_PACKAGES_RTL=1 1472endif 1473ifeq ($(FULL_TARGET),powerpc64-embedded) 1474REQUIRE_PACKAGES_RTL=1 1475endif 1476ifeq ($(FULL_TARGET),powerpc64-aix) 1477REQUIRE_PACKAGES_RTL=1 1478endif 1479ifeq ($(FULL_TARGET),avr-embedded) 1480REQUIRE_PACKAGES_RTL=1 1481endif 1482ifeq ($(FULL_TARGET),armeb-linux) 1483REQUIRE_PACKAGES_RTL=1 1484endif 1485ifeq ($(FULL_TARGET),armeb-embedded) 1486REQUIRE_PACKAGES_RTL=1 1487endif 1488ifeq ($(FULL_TARGET),mips-linux) 1489REQUIRE_PACKAGES_RTL=1 1490endif 1491ifeq ($(FULL_TARGET),mipsel-linux) 1492REQUIRE_PACKAGES_RTL=1 1493endif 1494ifeq ($(FULL_TARGET),mipsel-embedded) 1495REQUIRE_PACKAGES_RTL=1 1496endif 1497ifeq ($(FULL_TARGET),mipsel-android) 1498REQUIRE_PACKAGES_RTL=1 1499endif 1500ifeq ($(FULL_TARGET),jvm-java) 1501REQUIRE_PACKAGES_RTL=1 1502endif 1503ifeq ($(FULL_TARGET),jvm-android) 1504REQUIRE_PACKAGES_RTL=1 1505endif 1506ifeq ($(FULL_TARGET),i8086-embedded) 1507REQUIRE_PACKAGES_RTL=1 1508endif 1509ifeq ($(FULL_TARGET),i8086-msdos) 1510REQUIRE_PACKAGES_RTL=1 1511endif 1512ifeq ($(FULL_TARGET),i8086-win16) 1513REQUIRE_PACKAGES_RTL=1 1514endif 1515ifeq ($(FULL_TARGET),aarch64-linux) 1516REQUIRE_PACKAGES_RTL=1 1517endif 1518ifeq ($(FULL_TARGET),aarch64-darwin) 1519REQUIRE_PACKAGES_RTL=1 1520endif 1521ifeq ($(FULL_TARGET),aarch64-android) 1522REQUIRE_PACKAGES_RTL=1 1523endif 1524ifeq ($(FULL_TARGET),aarch64-ios) 1525REQUIRE_PACKAGES_RTL=1 1526endif 1527ifeq ($(FULL_TARGET),wasm-wasm) 1528REQUIRE_PACKAGES_RTL=1 1529endif 1530ifeq ($(FULL_TARGET),sparc64-linux) 1531REQUIRE_PACKAGES_RTL=1 1532endif 1533ifdef REQUIRE_PACKAGES_RTL 1534PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) 1535ifneq ($(PACKAGEDIR_RTL),) 1536ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),) 1537UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX) 1538else 1539UNITDIR_RTL=$(PACKAGEDIR_RTL) 1540endif 1541ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),) 1542UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX) 1543else 1544ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),) 1545UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX) 1546else 1547UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL) 1548endif 1549endif 1550ifdef CHECKDEPEND 1551$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE): 1552 $(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE) 1553override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE) 1554endif 1555else 1556PACKAGEDIR_RTL= 1557UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR))))) 1558ifneq ($(UNITDIR_RTL),) 1559UNITDIR_RTL:=$(firstword $(UNITDIR_RTL)) 1560else 1561UNITDIR_RTL= 1562endif 1563endif 1564ifdef UNITDIR_RTL 1565override COMPILER_UNITDIR+=$(UNITDIR_RTL) 1566endif 1567ifdef UNITDIR_FPMAKE_RTL 1568override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL) 1569endif 1570endif 1571ifndef NOCPUDEF 1572override FPCOPTDEF=$(ARCH) 1573endif 1574ifneq ($(OS_TARGET),$(OS_SOURCE)) 1575override FPCOPT+=-T$(OS_TARGET) 1576endif 1577ifneq ($(CPU_TARGET),$(CPU_SOURCE)) 1578override FPCOPT+=-P$(ARCH) 1579endif 1580ifeq ($(OS_SOURCE),openbsd) 1581override FPCOPT+=-FD$(NEW_BINUTILS_PATH) 1582override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH) 1583override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH) 1584endif 1585ifndef CROSSBOOTSTRAP 1586ifneq ($(BINUTILSPREFIX),) 1587override FPCOPT+=-XP$(BINUTILSPREFIX) 1588endif 1589ifneq ($(BINUTILSPREFIX),) 1590override FPCOPT+=-Xr$(RLINKPATH) 1591endif 1592endif 1593ifndef CROSSCOMPILE 1594ifneq ($(BINUTILSPREFIX),) 1595override FPCMAKEOPT+=-XP$(BINUTILSPREFIX) 1596override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX) 1597endif 1598endif 1599ifdef UNITDIR 1600override FPCOPT+=$(addprefix -Fu,$(UNITDIR)) 1601endif 1602ifdef LIBDIR 1603override FPCOPT+=$(addprefix -Fl,$(LIBDIR)) 1604endif 1605ifdef OBJDIR 1606override FPCOPT+=$(addprefix -Fo,$(OBJDIR)) 1607endif 1608ifdef INCDIR 1609override FPCOPT+=$(addprefix -Fi,$(INCDIR)) 1610endif 1611ifdef LINKSMART 1612override FPCOPT+=-XX 1613endif 1614ifdef CREATESMART 1615override FPCOPT+=-CX 1616endif 1617ifdef DEBUG 1618override FPCOPT+=-gl 1619override FPCOPTDEF+=DEBUG 1620endif 1621ifdef RELEASE 1622FPCCPUOPT:=-O2 1623override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n 1624override FPCOPTDEF+=RELEASE 1625endif 1626ifdef STRIP 1627override FPCOPT+=-Xs 1628endif 1629ifdef OPTIMIZE 1630override FPCOPT+=-O2 1631endif 1632ifdef VERBOSE 1633override FPCOPT+=-vwni 1634endif 1635ifdef COMPILER_OPTIONS 1636override FPCOPT+=$(COMPILER_OPTIONS) 1637endif 1638ifdef COMPILER_UNITDIR 1639override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR)) 1640endif 1641ifdef COMPILER_LIBRARYDIR 1642override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR)) 1643endif 1644ifdef COMPILER_OBJECTDIR 1645override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR)) 1646endif 1647ifdef COMPILER_INCLUDEDIR 1648override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR)) 1649endif 1650ifdef CROSSBINDIR 1651override FPCOPT+=-FD$(CROSSBINDIR) 1652endif 1653ifdef COMPILER_TARGETDIR 1654override FPCOPT+=-FE$(COMPILER_TARGETDIR) 1655ifeq ($(COMPILER_TARGETDIR),.) 1656override TARGETDIRPREFIX= 1657else 1658override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/ 1659endif 1660endif 1661ifdef COMPILER_UNITTARGETDIR 1662override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR) 1663ifeq ($(COMPILER_UNITTARGETDIR),.) 1664override UNITTARGETDIRPREFIX= 1665else 1666override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/ 1667endif 1668else 1669ifdef COMPILER_TARGETDIR 1670override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR) 1671override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX) 1672endif 1673endif 1674ifdef CREATESHARED 1675override FPCOPT+=-Cg 1676endif 1677ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),) 1678ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),) 1679override FPCOPT+=-Cg 1680endif 1681endif 1682ifdef LINKSHARED 1683endif 1684ifdef OPT 1685override FPCOPT+=$(OPT) 1686endif 1687ifdef FPMAKEBUILDOPT 1688override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT) 1689endif 1690ifdef FPCOPTDEF 1691override FPCOPT+=$(addprefix -d,$(FPCOPTDEF)) 1692endif 1693ifdef CFGFILE 1694override FPCOPT+=@$(CFGFILE) 1695endif 1696ifdef USEENV 1697override FPCEXTCMD:=$(FPCOPT) 1698override FPCOPT:=!FPCEXTCMD 1699export FPCEXTCMD 1700endif 1701override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET) 1702override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE) 1703ifneq ($(AFULL_TARGET),$(AFULL_SOURCE)) 1704override ACROSSCOMPILE=1 1705endif 1706ifdef ACROSSCOMPILE 1707override FPCOPT+=$(CROSSOPT) 1708endif 1709override COMPILER:=$(strip $(FPC) $(FPCOPT)) 1710ifneq (,$(findstring -sh ,$(COMPILER))) 1711UseEXECPPAS=1 1712endif 1713ifneq (,$(findstring -s ,$(COMPILER))) 1714ifeq ($(FULL_SOURCE),$(FULL_TARGET)) 1715UseEXECPPAS=1 1716endif 1717endif 1718ifneq ($(UseEXECPPAS),1) 1719EXECPPAS= 1720else 1721ifdef RUNBATCH 1722EXECPPAS:=@$(RUNBATCH) $(PPAS) 1723else 1724EXECPPAS:=@$(PPAS) 1725endif 1726endif 1727.PHONY: fpc_exes 1728ifndef CROSSINSTALL 1729ifneq ($(TARGET_PROGRAMS),) 1730override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS)) 1731override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) 1732override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS)) 1733override ALLTARGET+=fpc_exes 1734override INSTALLEXEFILES+=$(EXEFILES) 1735override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES) 1736override CLEANEXEDBGFILES+=$(EXEDBGFILES) 1737ifeq ($(OS_TARGET),os2) 1738override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS)) 1739endif 1740ifeq ($(OS_TARGET),emx) 1741override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS)) 1742endif 1743endif 1744endif 1745fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES) 1746ifdef TARGET_RSTS 1747override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS)) 1748override CLEANRSTFILES+=$(RSTFILES) 1749endif 1750.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared 1751$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET) 1752 @$(ECHOREDIR) Compiled > $(FPCMADE) 1753fpc_all: $(FPCMADE) 1754fpc_smart: 1755 $(MAKE) all LINKSMART=1 CREATESMART=1 1756fpc_debug: 1757 $(MAKE) all DEBUG=1 1758fpc_release: 1759 $(MAKE) all RELEASE=1 1760.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res 1761$(COMPILER_UNITTARGETDIR): 1762 $(MKDIRTREE) $(COMPILER_UNITTARGETDIR) 1763$(COMPILER_TARGETDIR): 1764 $(MKDIRTREE) $(COMPILER_TARGETDIR) 1765%$(PPUEXT): %.pp 1766 $(COMPILER) $< 1767 $(EXECPPAS) 1768%$(PPUEXT): %.pas 1769 $(COMPILER) $< 1770 $(EXECPPAS) 1771%$(EXEEXT): %.pp 1772 $(COMPILER) $< 1773 $(EXECPPAS) 1774%$(EXEEXT): %.pas 1775 $(COMPILER) $< 1776 $(EXECPPAS) 1777%$(EXEEXT): %.lpr 1778 $(COMPILER) $< 1779 $(EXECPPAS) 1780%$(EXEEXT): %.dpr 1781 $(COMPILER) $< 1782 $(EXECPPAS) 1783%.res: %.rc 1784 windres -i $< -o $@ 1785vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) 1786vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) 1787vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) 1788vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR) 1789vpath %.inc $(COMPILER_INCLUDEDIR) 1790vpath %$(OEXT) $(COMPILER_UNITTARGETDIR) 1791vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR) 1792.PHONY: fpc_shared 1793override INSTALLTARGET+=fpc_shared_install 1794ifndef SHARED_LIBVERSION 1795SHARED_LIBVERSION=$(FPC_VERSION) 1796endif 1797ifndef SHARED_LIBNAME 1798SHARED_LIBNAME=$(PACKAGE_NAME) 1799endif 1800ifndef SHARED_FULLNAME 1801SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT) 1802endif 1803ifndef SHARED_LIBUNITS 1804SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS) 1805override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS)) 1806endif 1807fpc_shared: 1808ifdef HASSHAREDLIB 1809 $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1 1810ifneq ($(SHARED_BUILD),n) 1811 $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) 1812endif 1813else 1814 @$(ECHO) Shared Libraries not supported 1815endif 1816fpc_shared_install: 1817ifneq ($(SHARED_BUILD),n) 1818ifneq ($(SHARED_LIBUNITS),) 1819ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),) 1820 $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR) 1821endif 1822endif 1823endif 1824.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall 1825ifdef INSTALL_UNITS 1826override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS)) 1827endif 1828ifdef INSTALL_BUILDUNIT 1829override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES)) 1830endif 1831ifdef INSTALLPPUFILES 1832ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT)) 1833override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) 1834else 1835override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) 1836endif 1837ifneq ($(UNITTARGETDIRPREFIX),) 1838override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES))) 1839override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES)))) 1840endif 1841override INSTALL_CREATEPACKAGEFPC=1 1842endif 1843ifdef INSTALLEXEFILES 1844ifneq ($(TARGETDIRPREFIX),) 1845override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES))) 1846endif 1847endif 1848fpc_install: all $(INSTALLTARGET) 1849ifdef INSTALLEXEFILES 1850 $(MKDIR) $(INSTALL_BINDIR) 1851 $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR) 1852endif 1853ifdef INSTALL_CREATEPACKAGEFPC 1854ifdef FPCMAKE 1855ifdef PACKAGE_VERSION 1856ifneq ($(wildcard Makefile.fpc),) 1857 $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc 1858 $(MKDIR) $(INSTALL_UNITDIR) 1859 $(INSTALL) Package.fpc $(INSTALL_UNITDIR) 1860endif 1861endif 1862endif 1863endif 1864ifdef INSTALLPPUFILES 1865 $(MKDIR) $(INSTALL_UNITDIR) 1866 $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR) 1867ifneq ($(INSTALLPPULINKFILES),) 1868 $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR) 1869endif 1870ifneq ($(wildcard $(LIB_FULLNAME)),) 1871 $(MKDIR) $(INSTALL_LIBDIR) 1872 $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR) 1873ifdef inUnix 1874 ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME) 1875endif 1876endif 1877endif 1878ifdef INSTALL_FILES 1879 $(MKDIR) $(INSTALL_DATADIR) 1880 $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR) 1881endif 1882fpc_sourceinstall: distclean 1883 $(MKDIR) $(INSTALL_SOURCEDIR) 1884 $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR) 1885fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS)) 1886ifdef HASEXAMPLES 1887 $(MKDIR) $(INSTALL_EXAMPLEDIR) 1888endif 1889ifdef EXAMPLESOURCEFILES 1890 $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR) 1891endif 1892ifdef TARGET_EXAMPLEDIRS 1893 $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR) 1894endif 1895.PHONY: fpc_clean fpc_cleanall fpc_distclean 1896ifdef EXEFILES 1897override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES)) 1898override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES)) 1899endif 1900ifdef CLEAN_PROGRAMS 1901override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS))) 1902override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS))) 1903endif 1904ifdef CLEAN_UNITS 1905override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS)) 1906endif 1907ifdef CLEANPPUFILES 1908override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) 1909ifdef DEBUGSYMEXT 1910override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES)) 1911endif 1912override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES)) 1913override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES))) 1914endif 1915fpc_clean: $(CLEANTARGET) 1916ifdef CLEANEXEFILES 1917 -$(DEL) $(CLEANEXEFILES) 1918endif 1919ifdef CLEANEXEDBGFILES 1920 -$(DELTREE) $(CLEANEXEDBGFILES) 1921endif 1922ifdef CLEANPPUFILES 1923 -$(DEL) $(CLEANPPUFILES) 1924endif 1925ifneq ($(CLEANPPULINKFILES),) 1926 -$(DEL) $(CLEANPPULINKFILES) 1927endif 1928ifdef CLEANRSTFILES 1929 -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) 1930endif 1931ifdef CLEAN_FILES 1932 -$(DEL) $(CLEAN_FILES) 1933endif 1934ifdef LIB_NAME 1935 -$(DEL) $(LIB_NAME) $(LIB_FULLNAME) 1936endif 1937 -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) 1938 -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT) 1939fpc_cleanall: $(CLEANTARGET) 1940ifdef CLEANEXEFILES 1941 -$(DEL) $(CLEANEXEFILES) 1942endif 1943ifdef COMPILER_UNITTARGETDIR 1944ifdef CLEANPPUFILES 1945 -$(DEL) $(CLEANPPUFILES) 1946endif 1947ifneq ($(CLEANPPULINKFILES),) 1948 -$(DEL) $(CLEANPPULINKFILES) 1949endif 1950ifdef CLEANRSTFILES 1951 -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES)) 1952endif 1953endif 1954ifdef CLEAN_FILES 1955 -$(DEL) $(CLEAN_FILES) 1956endif 1957 -$(DELTREE) units 1958 -$(DELTREE) bin 1959 -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT) 1960ifneq ($(PPUEXT),.ppu) 1961 -$(DEL) *.o *.ppu *.a 1962endif 1963 -$(DELTREE) *$(SMARTEXT) 1964 -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE) 1965 -$(DEL) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT) 1966ifdef AOUTEXT 1967 -$(DEL) *$(AOUTEXT) 1968endif 1969ifdef DEBUGSYMEXT 1970 -$(DEL) *$(DEBUGSYMEXT) 1971endif 1972ifdef LOCALFPMAKEBIN 1973 -$(DEL) $(LOCALFPMAKEBIN) 1974 -$(DEL) $(FPMAKEBINOBJ) 1975endif 1976fpc_distclean: cleanall 1977.PHONY: fpc_baseinfo 1978override INFORULES+=fpc_baseinfo 1979fpc_baseinfo: 1980 @$(ECHO) 1981 @$(ECHO) == Package info == 1982 @$(ECHO) Package Name..... $(PACKAGE_NAME) 1983 @$(ECHO) Package Version.. $(PACKAGE_VERSION) 1984 @$(ECHO) 1985 @$(ECHO) == Configuration info == 1986 @$(ECHO) 1987 @$(ECHO) FPC.......... $(FPC) 1988 @$(ECHO) FPC Version.. $(FPC_VERSION) 1989 @$(ECHO) Source CPU... $(CPU_SOURCE) 1990 @$(ECHO) Target CPU... $(CPU_TARGET) 1991 @$(ECHO) Source OS.... $(OS_SOURCE) 1992 @$(ECHO) Target OS.... $(OS_TARGET) 1993 @$(ECHO) Full Source.. $(FULL_SOURCE) 1994 @$(ECHO) Full Target.. $(FULL_TARGET) 1995 @$(ECHO) SourceSuffix. $(SOURCESUFFIX) 1996 @$(ECHO) TargetSuffix. $(TARGETSUFFIX) 1997 @$(ECHO) FPC fpmake... $(FPCFPMAKE) 1998 @$(ECHO) 1999 @$(ECHO) == Directory info == 2000 @$(ECHO) 2001 @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES) 2002 @$(ECHO) 2003 @$(ECHO) Basedir......... $(BASEDIR) 2004 @$(ECHO) FPCDir.......... $(FPCDIR) 2005 @$(ECHO) CrossBinDir..... $(CROSSBINDIR) 2006 @$(ECHO) UnitsDir........ $(UNITSDIR) 2007 @$(ECHO) PackagesDir..... $(PACKAGESDIR) 2008 @$(ECHO) 2009 @$(ECHO) GCC library..... $(GCCLIBDIR) 2010 @$(ECHO) Other library... $(OTHERLIBDIR) 2011 @$(ECHO) 2012 @$(ECHO) == Tools info == 2013 @$(ECHO) 2014 @$(ECHO) As........ $(AS) 2015 @$(ECHO) Ld........ $(LD) 2016 @$(ECHO) Ar........ $(AR) 2017 @$(ECHO) Rc........ $(RC) 2018 @$(ECHO) 2019 @$(ECHO) Mv........ $(MVPROG) 2020 @$(ECHO) Cp........ $(CPPROG) 2021 @$(ECHO) Rm........ $(RMPROG) 2022 @$(ECHO) GInstall.. $(GINSTALL) 2023 @$(ECHO) Echo...... $(ECHO) 2024 @$(ECHO) Shell..... $(SHELL) 2025 @$(ECHO) Date...... $(DATE) 2026 @$(ECHO) FPCMake... $(FPCMAKE) 2027 @$(ECHO) PPUMove... $(PPUMOVE) 2028 @$(ECHO) Zip....... $(ZIPPROG) 2029 @$(ECHO) 2030 @$(ECHO) == Object info == 2031 @$(ECHO) 2032 @$(ECHO) Target Loaders........ $(TARGET_LOADERS) 2033 @$(ECHO) Target Units.......... $(TARGET_UNITS) 2034 @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS) 2035 @$(ECHO) Target Programs....... $(TARGET_PROGRAMS) 2036 @$(ECHO) Target Dirs........... $(TARGET_DIRS) 2037 @$(ECHO) Target Examples....... $(TARGET_EXAMPLES) 2038 @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS) 2039 @$(ECHO) 2040 @$(ECHO) Clean Units......... $(CLEAN_UNITS) 2041 @$(ECHO) Clean Files......... $(CLEAN_FILES) 2042 @$(ECHO) 2043 @$(ECHO) Install Units....... $(INSTALL_UNITS) 2044 @$(ECHO) Install Files....... $(INSTALL_FILES) 2045 @$(ECHO) 2046 @$(ECHO) == Install info == 2047 @$(ECHO) 2048 @$(ECHO) DateStr.............. $(DATESTR) 2049 @$(ECHO) ZipName.............. $(ZIPNAME) 2050 @$(ECHO) ZipPrefix............ $(ZIPPREFIX) 2051 @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX) 2052 @$(ECHO) ZipSuffix............ $(ZIPSUFFIX) 2053 @$(ECHO) FullZipName.......... $(FULLZIPNAME) 2054 @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE) 2055 @$(ECHO) 2056 @$(ECHO) Install base dir..... $(INSTALL_BASEDIR) 2057 @$(ECHO) Install binary dir... $(INSTALL_BINDIR) 2058 @$(ECHO) Install library dir.. $(INSTALL_LIBDIR) 2059 @$(ECHO) Install units dir.... $(INSTALL_UNITDIR) 2060 @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR) 2061 @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR) 2062 @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR) 2063 @$(ECHO) Install data dir..... $(INSTALL_DATADIR) 2064 @$(ECHO) 2065 @$(ECHO) Dist destination dir. $(DIST_DESTDIR) 2066 @$(ECHO) Dist zip name........ $(DIST_ZIPNAME) 2067 @$(ECHO) 2068.PHONY: fpc_info 2069fpc_info: $(INFORULES) 2070.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \ 2071 fpc_makefile_dirs 2072fpc_makefile: 2073 $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc 2074fpc_makefile_sub1: 2075ifdef TARGET_DIRS 2076 $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS)) 2077endif 2078ifdef TARGET_EXAMPLEDIRS 2079 $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS)) 2080endif 2081fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS)) 2082fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2 2083fpc_makefiles: fpc_makefile fpc_makefile_dirs 2084debug: fpc_debug 2085smart: fpc_smart 2086release: fpc_release 2087units: fpc_units 2088examples: 2089shared: fpc_shared 2090install: fpc_install 2091sourceinstall: fpc_sourceinstall 2092exampleinstall: fpc_exampleinstall 2093distinstall: 2094zipinstall: 2095zipsourceinstall: 2096zipexampleinstall: 2097zipdistinstall: 2098cleanall: fpc_cleanall 2099makefiles: fpc_makefiles 2100.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall makefiles 2101ifneq ($(wildcard fpcmake.loc),) 2102include fpcmake.loc 2103endif 2104unexport FPC_VERSION 2105TEST_HOSTNAME:=$(firstword $(subst ., ,$(shell hostname))) 2106override TEST_FPC:=$(subst \,/,$(TEST_FPC)) 2107ifndef TEST_FPC 2108TEST_FPC=$(wildcard $(dir $(CURDIR))compiler/$(notdir $(FPC))) 2109ifeq ($(TEST_FPC), ) 2110$(error "*** ERROR: TEST_FPC is missing ***") 2111endif 2112endif 2113ifndef TEST_OPT 2114TEST_OPT= 2115endif 2116override TEST_OPT+=-Fd 2117ifndef TEST_FPC_VERSION 2118TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTODW) 2119TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO)) 2120endif 2121export TEST_FPC TEST_FPC_VERSION TEST_FPC_COMPILERINFO 2122ifneq ($(words $(TEST_FPC_COMPILERINFO)),7) 2123TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSP) 2124TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTP) 2125TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSO) 2126TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTO) 2127TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iD) 2128TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iW) 2129endif 2130ifndef TEST_CPU_SOURCE 2131TEST_CPU_SOURCE:=$(word 2,$(TEST_FPC_COMPILERINFO)) 2132endif 2133ifndef TEST_CPU_TARGET 2134TEST_CPU_TARGET:=$(word 3,$(TEST_FPC_COMPILERINFO)) 2135endif 2136ifndef TEST_OS_SOURCE 2137TEST_OS_SOURCE:=$(word 4,$(TEST_FPC_COMPILERINFO)) 2138endif 2139ifndef TEST_OS_TARGET 2140TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO)) 2141endif 2142ifndef TEST_FPC_DATE 2143TEST_FPC_DATE:=$(word 6,$(TEST_FPC_COMPILERINFO)) 2144endif 2145ifndef TEST_FPC_FULLVERSION 2146TEST_FPC_FULLVERSION:=$(word 7,$(TEST_FPC_COMPILERINFO)) 2147endif 2148TEST_FULL_TARGET=$(TEST_CPU_TARGET)-$(TEST_OS_TARGET) 2149ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),) 2150TEST_TARGETSUFFIX=$(TEST_OS_TARGET) 2151else 2152ifneq ($(findstring $(TEST_OS_TARGET),$(LIMIT83fs)),) 2153TEST_TARGETSUFFIX=$(TEST_OS_TARGET) 2154else 2155TEST_TARGETSUFFIX=$(TEST_FULL_TARGET) 2156endif 2157endif 2158ifndef TEST_CCOMPILER 2159ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET)) 2160ifeq ($(OS_TARGET),$(TEST_OS_TARGET)) 2161TEST_CCOMPILER:=$(strip $(wildcard $(addsuffix /gcc$(SRCEXEEXT),$(SEARCHPATH)))) 2162ifneq ($(TEST_CCOMPILER),) 2163TEST_CCOMPILER:=$(firstword $(TEST_CCOMPILER)) 2164endif 2165endif 2166endif 2167endif 2168ifeq ($(TEST_OS_TARGET),msdos) 2169override TEST_OPT+=-XX 2170endif 2171TEST_OUTPUTDIR=output/$(TEST_TARGETSUFFIX) 2172C_SUBDIR=$(TEST_OS_TARGET)/$(TEST_CPU_TARGET) 2173ifneq ($(DATE),__missing_command_DATE) 2174TEST_DATETIME:=$(shell $(DATE) +%Y%m%d%H%M) 2175else 2176TEST_DATETIME="No-date" 2177endif 2178ifndef TEST_USER 2179TEST_USER=$(USER) 2180ifeq ($(TEST_USER),) 2181TEST_USER=$(USERNAME) 2182endif 2183endif 2184DB_TARGZ=$(TEST_HOSTNAME)-$(TEST_DATETIME).tar.gz 2185DB_HOST=fpc@www.freepascal.org 2186DB_UPLOADDIR=/home/fpc/testsuite/incoming 2187ifdef inWinNT 2188inWinDOS=1 2189endif 2190ifeq ($(OS_SOURCE),go32v2) 2191inWinDOS=1 2192inDOS=1 2193SINGLEDOTESTRUNS=1 2194endif 2195ifndef FAILLIST 2196export FAILLIST:=$(TEST_OUTPUTDIR)/faillist 2197endif 2198ifndef LONGLOG 2199export LONGLOG:=$(TEST_OUTPUTDIR)/longlog 2200endif 2201ifndef LOG 2202export LOG:=$(TEST_OUTPUTDIR)/log 2203endif 2204LOGFILES=$(TEST_OUTPUTDIR)/log $(TEST_OUTPUTDIR)/longlog $(TEST_OUTPUTDIR)/faillist 2205LOGEXT=.testlog .tbslog .tbflog .webtbslog .webtbflog 2206TESTUNITDIRS=system dos crt objects strings sysutils math sharemem strutils matrix lineinfo ucomplex fpwidestring cpu fmtbcd windows 2207TESTDIRECTDIRS= 2208TESTSUBDIRS=cg cg/variants cg/cdecl cpu16 cpu16/i8086 library opt $(addprefix units/,$(TESTUNITDIRS)) 2209TESTPACKAGESDIRS=win-base webtbs hash fcl-registry fcl-process zlib fcl-db fcl-xml cocoaint bzip2 2210TESTPACKAGESUBDIRS=$(addprefix packages/,$(TESTPACKAGESDIRS)) 2211TESTPACKAGESDIRECTDIRS=rtl-objpas rtl-generics 2212TESTPACKAGESDIRECTSUBDIRS=$(addprefix ../packages/,$(addsuffix /tests,$(TESTPACKAGESDIRECTDIRS))) 2213ifdef QUICKTEST 2214export QUICKTEST 2215else 2216override TESTSUBDIRS+=$(TESTPACKAGESUBDIRS) alglib 2217override TESTDIRECTDIRS+=$(TESTPACKAGESDIRECTSUBDIRS) 2218endif 2219ifndef CHUNKSIZE 2220export CHUNKSIZE:=100 2221endif 2222TESTDIRS:=test $(addprefix test/,$(TESTSUBDIRS)) $(TESTDIRECTDIRS) 2223.PHONY: utils tstunits copyfiles testprep 2224$(TEST_OUTPUTDIR): 2225 $(MKDIRTREE) $(TEST_OUTPUTDIR) 2226utils: 2227 $(MAKE) -C utils utils 2228utilsdb: 2229 $(MAKE) -C utils utilsdb 2230ifndef DIGEST 2231DIGEST=utils/digest 2232endif 2233ifndef DOTEST 2234DOTEST=utils/dotest 2235endif 2236ifndef CONCAT 2237CONCAT=utils/concat 2238endif 2239ifndef GPARMAKE 2240GPARMAKE=./gparmake$(EXEEXT) 2241endif 2242ifndef PREPUP 2243PREPUP=utils/prepup 2244endif 2245ifndef CREATELST 2246CREATELST=./createlst$(EXEEXT) 2247endif 2248tstunits: 2249ifdef inOS2 2250 $(MAKE) -C tstunits FPC_VERSION= FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) "OPT=$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX) 2251else 2252 $(MAKE) -C tstunits FPC_VERSION= FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) 'OPT=$(TEST_OPT)' CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX) 2253endif 2254.PHONY: create_c_objects delete_c_objects copyfiles test_c_objects 2255C_SOURCE_DIR=test/cg/obj 2256C_SOURCES=ctest.c tcext3.c tcext4.c tcext5.c tcext6.c 2257CPP_SOURCES=cpptcl1.cpp cpptcl2.cpp 2258TASM_SOURCES=ttasm1.asm 2259ifneq ($(TEST_ABI),) 2260C_OBJECTS_DIR=$(C_SOURCE_DIR)/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)-$(TEST_ABI) 2261else 2262C_OBJECTS_DIR=$(C_SOURCE_DIR)/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET) 2263endif 2264C_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .c,.o, $(C_SOURCES))) 2265CPP_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .cpp,.o, $(CPP_SOURCES))) 2266TASM_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .asm,.obj, $(TASM_SOURCES))) 2267create_c_objects: 2268ifneq ($(TEST_CCOMPILER),) 2269 -$(COPY) $(addprefix $(C_SOURCE_DIR)/, $(C_SOURCES)) $(C_OBJECTS_DIR) 2270 $(MAKE) $(C_OBJECTS) 2271 -$(COPY) $(addprefix $(C_SOURCE_DIR)/, $(CPP_SOURCES)) $(C_OBJECTS_DIR) 2272 $(MAKE) $(CPP_OBJECTS) 2273 -$(DEL) $(addprefix $(C_OBJECTS_DIR)/, $(C_SOURCES) $(CPP_SOURCES)) 2274else 2275 $(ECHO) create_c_objects rule needs a valid C compiler in TEST_CCOMPILER variable 2276 $(ECHO) TEST_CFLAGS variable is passed as options is used to compile the objects 2277endif 2278delete_c_objects: 2279ifneq ($(TEST_CCOMPILER),) 2280 -$(DEL) $(C_OBJECTS) $(CPP_OBJECTS) 2281else 2282 $(ECHO) delete_c_objects rule needs a valid C compiler in TEST_CCOMPILER variable 2283 $(ECHO) to be able to recompile the objects using create_objects rule. 2284endif 2285$(C_OBJECTS) : %.o: %.c 2286 $(TEST_CCOMPILER) -c $(TEST_CFLAGS) $< -o $@ 2287$(CPP_OBJECTS) : %.o: %.cpp 2288 $(TEST_CCOMPILER) -c $(TEST_CFLAGS) $< -o $@ 2289copyfiles: 2290 -$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/cg 2291 -$(COPY) $(C_OBJECTS) $(TEST_OUTPUTDIR)/test/cg 2292 -$(COPY) $(CPP_OBJECTS) $(TEST_OUTPUTDIR)/test/cg 2293 -$(COPY) $(TASM_OBJECTS) $(TEST_OUTPUTDIR)/test/cg 2294 -$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/units/system 2295testprep: testprep-stamp.$(TEST_FULL_TARGET) 2296testprep-stamp.$(TEST_FULL_TARGET): utils tstunits copyfiles 2297 $(ECHOREDIR) $(DATE) > testprep-stamp.$(TEST_FULL_TARGET) 2298ifneq ($(TEST_FPC),ppc386$(EXEEXT)) 2299ifeq ($(findstring -c$(TEST_FPC),$(DOTESTOPT)),) 2300override DOTESTOPT+=-c$(TEST_FPC) 2301endif 2302endif 2303ifneq ($(FULL_TARGET),$(TEST_FULL_TARGET)) 2304override DOTESTOPT+=-T$(TEST_FULL_TARGET) 2305endif 2306ifneq ($(TEST_BINUTILSPREFIX),) 2307override DOTESTOPT+=-Y-XP$(TEST_BINUTILSPREFIX) -Y-Xd 2308endif 2309ifdef inDOS 2310override DOTESTOPT+=-X 2311endif 2312ifdef TEST_RSH 2313override DOTESTOPT+=-R$(TEST_RSH) 2314endif 2315ifdef TEST_SSH 2316override DOTESTOPT+=-R$(TEST_SSH) -S 2317endif 2318ifdef TEST_REMOTEPATH 2319override DOTESTOPT+=-P$(TEST_REMOTEPATH) 2320endif 2321ifdef TEST_DELBEFORE 2322override DOTESTOPT+=-B 2323endif 2324ifdef TEST_DELTEMP 2325override DOTESTOPT+=-Z 2326endif 2327ifdef TEST_TIMEOUT 2328override DOTESTOPT+=-O 2329endif 2330ifdef TEST_VERBOSE 2331override DOTESTOPT+=-V 2332endif 2333ifdef TEST_BENCH 2334override DOTESTOPT+=-D 2335endif 2336ifdef V 2337Q= 2338QECHO= 2339else 2340Q=@ 2341QECHO=@echo $(1) 2342endif 2343ifdef TEST_REMOTEOPT 2344override DOTESTOPT+=-U$(TEST_REMOTEOPT) 2345endif 2346ifdef TEST_PUTTY 2347override DOTESTOPT+=-R$(TEST_PUTTY) -W 2348endif 2349ifdef TEST_ADB 2350override DOTESTOPT+=-ADB -R$(TEST_ADB) 2351endif 2352ifdef TEST_OPT 2353override DOTESTOPT+=$(addprefix -Y, $(TEST_OPT)) 2354endif 2355ifdef TEST_REMOTEPW 2356override DOTESTOPT+=-U-pw -U$(TEST_REMOTEPW) 2357endif 2358ifdef GRAPH 2359override DOTESTOPT+=-g 2360endif 2361ifdef INTERACTIVE 2362override DOTESTOPT+=-i 2363endif 2364ifdef DOALL 2365override DOTESTOPT+=-a 2366endif 2367ifdef EMULATOR 2368override DOTESTOPT+=-M$(EMULATOR) 2369endif 2370ifdef USEENV 2371override DOTESTENV:=$(DOTESTOPT) 2372override DOTESTOPT=!DOTESTENV 2373export DOTESTENV 2374endif 2375DIRS=webtbs webtbf tbs tbf $(TESTDIRS) 2376vpath %.log $(TEST_OUTPUTDIR) 2377vpath %.elg $(TEST_OUTPUTDIR) 2378vpath %.o $(C_SUBDIR) 2379ifdef SINGLEDOTESTRUNS 2380TBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp))) 2381TBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp))) 2382WEBTBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp))) 2383WEBTBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp))) 2384TESTREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))) 2385else 2386TBSREQ=$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET) 2387TBFREQ=$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET) 2388WEBTBSREQ=$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET) 2389WEBTBFREQ=$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET) 2390TESTREQ=$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET) 2391endif 2392%.log : %.pp testprep-stamp.$(TEST_FULL_TARGET) 2393 $(call QECHO," COMPILE $<") 2394 $(Q)$(DOTEST) $(DOTESTOPT) $< 2395%.elg : %.pp testprep-stamp.$(TEST_FULL_TARGET) 2396 $(call QECHO," EXECUTE $<") 2397 $(Q)$(DOTEST) $(DOTESTOPT) -e $< 2398ifdef TEST_CCOMPILER 2399%.o : %.c 2400 $(TEST_CCOMPILER) -c $< -o $(@D)/$(C_SUBDIR)/$(@F) 2401%.o : %.cc 2402 $(TEST_CCOMPILER) -c $< -o $(@D)/$(C_SUBDIR)/$(@F) 2403endif 2404.PHONY: alltbs alltbf allwebtbs allwebtbf alltest alltests 2405alltbs : testprep $(patsubst %.pp,%.log,$(sort $(wildcard tbs/t*.pp))) 2406alltbf : testprep $(patsubst %.pp,%.log,$(sort $(wildcard tbf/t*.pp))) 2407allwebtbs : testprep $(patsubst %.pp,%.log,$(sort $(wildcard webtbs/t*.pp))) 2408allwebtbf : testprep $(patsubst %.pp,%.log,$(sort $(wildcard webtbf/t*.pp))) 2409alltest : testprep $(patsubst %.pp,%.log,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))) 2410ifndef SINGLEDOTESTRUNS 2411 $(Q)$(DOTEST) $(DOTESTOPT) -e $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))) 2412endif 2413alltests: alltest alltbs alltbf allwebtbs allwebtbf 2414test_c_objects: testprep 2415 $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcalext*.pp))) 2416 $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcalext*.pp))) 2417 $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcppcl*.pp))) 2418 $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcppcl*.pp))) 2419ifdef SINGLEDOTESTRUNS 2420.PHONY: allexectbs allexectbf allexecwebtbs allexecwebtbf allexectest allexectests 2421allexectbs: $(addsuffix .tbslog, $(LOGFILES)) 2422allexectbf: $(addsuffix .tbflog, $(LOGFILES)) 2423allexecwebtbs: $(addsuffix .webtbslog, $(LOGFILES)) 2424allexecwebtbf: $(addsuffix .webtbflog, $(LOGFILES)) 2425allexectest: $(addsuffix .testlog, $(LOGFILES)) 2426$(TEST_OUTPUTDIR)/%.mergedlog : $(TEST_OUTPUTDIR)/%.testlog $(TEST_OUTPUTDIR)/%.tbslog $(TEST_OUTPUTDIR)/%.tbflog $(TEST_OUTPUTDIR)/%.webtbslog $(TEST_OUTPUTDIR)/%.webtbflog 2427 $(Q)$(CONCAT) $^ $@ 2428 $(Q)$(COPY) $@ $(basename $@) 2429$(TEST_OUTPUTDIR)/%.tbslog : $(TBSREQ) 2430 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.tbslog 2431 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.tbslog 2432$(TEST_OUTPUTDIR)/%.tbflog : $(TBFREQ) 2433 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.tbflog 2434 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.tbflog 2435$(TEST_OUTPUTDIR)/%.webtbslog : $(WEBTBSREQ) 2436 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.webtbslog 2437 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.webtbslog 2438$(TEST_OUTPUTDIR)/%.webtbflog : $(WEBTBFREQ) 2439 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.webtbflog 2440 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.webtbflog 2441$(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ) 2442 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.testlog 2443 $(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.testlog 2444allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog \ 2445 $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog \ 2446 $(TEST_OUTPUTDIR)/log.webtbflog \ 2447 $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) \ 2448 $(addsuffix .mergedlog, $(LOGFILES)) 2449else 2450.PHONY: allexectests gparmake_allexectests 2451MAKEINC=$(TEST_OUTPUTDIR)/MakeChunks-$(TEST_TARGETSUFFIX).inc 2452$(GPARMAKE): utils/gparmake.pp $(CREATELST) 2453 $(Q)$(MAKE) $(COMPILER_UNITTARGETDIR) 2454 $(FPC) -FE. utils/gparmake.pp $(OPT) 2455$(CREATELST): utils/createlst.pp 2456 $(Q)$(MAKE) $(COMPILER_UNITTARGETDIR) 2457 $(FPC) -FE. utils/createlst.pp $(OPT) 2458$(MAKEINC): $(GPARMAKE) $(CREATELST) 2459 $(Q)$(MAKE) $(TEST_OUTPUTDIR) 2460 $(Q)$(CREATELST) filelisttest.lst $(TESTDIRS) 2461 $(Q)$(GPARMAKE) $(MAKEINC) test 1 $(CHUNKSIZE) @filelisttest.lst 2462 $(Q)$(CREATELST) filelisttbs.lst tbs 2463 $(Q)$(GPARMAKE) -a $(MAKEINC) tbs 10000 $(CHUNKSIZE) @filelisttbs.lst 2464 $(Q)$(CREATELST) filelisttbf.lst tbf 2465 $(Q)$(GPARMAKE) -a $(MAKEINC) tbf 15000 $(CHUNKSIZE) @filelisttbf.lst 2466 $(Q)$(CREATELST) filelistwebtbs.lst webtbs 2467 $(Q)$(GPARMAKE) -a $(MAKEINC) webtbs 20000 $(CHUNKSIZE) @filelistwebtbs.lst 2468 $(Q)$(CREATELST) filelistwebtbf.lst webtbf 2469 $(Q)$(GPARMAKE) -a $(MAKEINC) webtbf 30000 $(CHUNKSIZE) @filelistwebtbf.lst 2470ifeq (,$(findstring clean,$(firstword $(MAKECMDGOALS)))) 2471ifneq (,$(findstring all,$(MAKECMDGOALS))) 2472ifneq (,$(wildcard $(MAKEINC))) 2473include $(TEST_OUTPUTDIR)/MakeChunks-$(TEST_TARGETSUFFIX).inc 2474endif 2475endif 2476endif 2477allexectests: $(MAKEINC) 2478 $(MAKE) gparmake_allexectests 2479endif 2480.PHONY: clean distclean clean_test clean_sources 2481clean_sources: 2482 -$(DEL) $(wildcard $(patsubst %.pp,%$(PPUEXT),$(wildcard $(addsuffix /*.pp,$(DIRS))))) 2483clean_test: 2484 -$(DELTREE) $(TEST_OUTPUTDIR) 2485 -$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz$(SRCBATCHEXT) 2486clean: clean_sources fpc_clean 2487 $(MAKE) clean_test CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) 2488 $(MAKE) -C tstunits clean CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) 2489 -$(DEL) filelisttest.lst filelisttbs.lst filelisttbf.lst filelistwebtbs.lst filelistwebtbf.lst 2490distclean: clean fpc_distclean 2491 $(DELTREE) output 2492 $(MAKE) -C utils distclean 2493 $(MAKE) -C tstunits distclean 2494 -$(DEL) testprep-stamp.* 2495.PHONY: all full digest onlyknown onlygraph onlyinteractive 2496digest : utils 2497 -$(DIGEST) $(LOG) 2498SVNVERSION:=$(firstword $(wildcard $(addsuffix /svnversion$(SRCEXEEXT),$(SEARCHPATH)))) 2499ifneq ($(SVNVERSION),) 2500SVN_TESTS_REV_STR=$(shell $(SVNVERSION) -c .) 2501SVN_COMPILER_REV_STR=$(shell $(SVNVERSION) -c ../compiler) 2502SVN_RTL_REV_STR=$(shell $(SVNVERSION) -c ../rtl) 2503SVN_PACKAGES_REV_STR=$(shell $(SVNVERSION) -c ../packages) 2504endif 2505$(TEST_OUTPUTDIR)/dbdigest.cfg: 2506 $(ECHOREDIR) OS=$(TEST_OS_TARGET) > $(TEST_OUTPUTDIR)/dbdigest.cfg 2507 $(ECHOREDIR) CPU=$(TEST_CPU_TARGET) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2508 $(ECHOREDIR) Version=$(TEST_FPC_VERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2509 $(ECHOREDIR) LogFile=log >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2510ifneq ($(TEST_USE_LONGLOG),) 2511 $(ECHOREDIR) LongLogFile=longlog >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2512endif 2513 $(ECHOREDIR) Submitter=$(TEST_USER) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2514 $(ECHOREDIR) Machine=$(TEST_HOSTNAME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2515 $(ECHOREDIR) Comment=$(TEST_OPT) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2516ifneq ($(TEST_DATETIME),) 2517 $(ECHOREDIR) Date=$(TEST_DATETIME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2518endif 2519ifneq ($(TEST_FPC_DATE),) 2520 $(ECHOREDIR) CompilerDate=$(TEST_FPC_DATE) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2521endif 2522ifneq ($(TEST_FPC_FULLVERSION),) 2523 $(ECHOREDIR) CompilerFullVersion=$(TEST_FPC_FULLVERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2524endif 2525ifneq ($(SVNVERSION),) 2526 $(ECHOREDIR) svntestsrevision=$(SVN_TESTS_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2527 $(ECHOREDIR) svncompilerrevision=$(SVN_COMPILER_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2528 $(ECHOREDIR) svnrtlrevision=$(SVN_RTL_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2529 $(ECHOREDIR) svnpackagesrevision=$(SVN_PACKAGES_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg 2530endif 2531ifeq ($(OS_SOURCE),openbsd) 2532ifeq ($(TARPROG),$(subst gtar,,$(TARPROG))) 2533 BSD_SYSTEM_TAR=1 2534endif 2535endif 2536ifdef BSD_SYSTEM_TAR 2537TARFROM=-I tar.lst 2538else 2539TARFROM=--files-from=tar.lst 2540endif 2541ifneq ($(TEST_USE_LONGLOG),) 2542PREPUP_OPT=-ll 2543else 2544PREPUP_OPT= 2545endif 2546ifndef inWinDOS 2547$(TEST_OUTPUTDIR)/tar.lst: 2548ifdef inOS2 2549 cd $(subst /,\,$(TEST_OUTPUTDIR)) && gnufind . -name "*.log" -o -name "*.elg" > tar.lst 2550 $(ECHOREDIR) log>> $(TEST_OUTPUTDIR)/tar.lst 2551 $(ECHOREDIR) dbdigest.cfg>> $(TEST_OUTPUTDIR)/tar.lst 2552else 2553ifeq ($(TEST_USE_LONGLOG),) 2554 cd $(TEST_OUTPUTDIR) && find . -name '*.log' -o -name '*.elg' > tar.lst 2555else 2556 $(ECHOREDIR) "longlog" > $(TEST_OUTPUTDIR)/tar.lst 2557endif 2558 $(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst 2559 $(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst 2560endif 2561$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg 2562ifdef inCygWin 2563 dos2unix $(TEST_OUTPUTDIR)/tar.lst 2564endif 2565ifdef inOS2 2566 dos2unix $(TEST_OUTPUTDIR)/tar.lst 2567 cd $(subst /,\,$(TEST_OUTPUTDIR)) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM) 2568else 2569 cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM) 2570endif 2571else 2572$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg 2573ifdef inDOS 2574 $(ECHOREDIR) @echo off > dotgz$(SRCBATCHEXT) 2575 $(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz$(SRCBATCHEXT) 2576 $(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT) 2577 $(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT) 2578 $(ECHOREDIR) cd $(subst /,\,../../) >> dotgz$(SRCBATCHEXT) 2579 $(RUNBATCH) dotgz$(SRCBATCHEXT) 2580else 2581ifdef inOS2 2582 cd "$(subst /,\,$(TEST_OUTPUTDIR))" && "..\..\$(PREPUP)" $(DB_TARGZ) 2583else 2584 cd "$(TEST_OUTPUTDIR)" && "../../$(PREPUP)" $(DB_TARGZ) 2585endif 2586endif 2587endif 2588ifndef DB_USE_SSH 2589ifdef inWinDOS 2590UsePutty=1 2591endif 2592endif 2593uploadrun: $(TEST_OUTPUTDIR)/$(DB_TARGZ) 2594ifdef UsePutty 2595 pscp -load "fpc@www.freepascal.org" $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part $(SSH_EXTRA) 2596 plink -load "fpc@www.freepascal.org" "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)" 2597else 2598 scp $(DB_SSH_EXTRA) $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part 2599ifdef inOS2 2600 $(ECHOREDIR) . | ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)" 2601else 2602 ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)" 2603endif 2604endif 2605all : allexectests 2606full : 2607 $(MAKE) clean 2608 $(MAKE) allexectests 2609 $(MAKE) digest 2610fulldb : 2611 $(MAKE) clean 2612 $(MAKE) allexectests 2613 $(MAKE) digest 2614 $(MAKE) uploadrun 2615tarfile : $(TEST_OUTPUTDIR)/$(DB_TARGZ) 2616onlyknown : 2617 $(MAKE) full "DOTESTOPT= $(DOTESTOPT) -k-" 2618onlygraph : 2619 $(MAKE) full "DOTESTOPT= $(DOTESTOPT) -g-" 2620onlyinteractive : 2621 $(MAKE) "DOTESTOPT= $(DOTESTOPT) -i-" 2622info : 2623 @$(ECHO) "This Makefile allows to test the compiler" 2624 @$(ECHO) 2625 @$(ECHO) "Basic Targets:" 2626 @$(ECHO) " all - continue all tests" 2627 @$(ECHO) " full - clean and run all tests" 2628 @$(ECHO) " fulldb - full and upload test results" 2629 @$(ECHO) " digest - compute and print test statistics" 2630 @$(ECHO) 2631 @$(ECHO) "Advanced Targets:" 2632 @$(ECHO) " onlyknown - run only known bugs" 2633 @$(ECHO) " onlygraph - run only graph tests" 2634 @$(ECHO) " onlyinteractive - run only interactive tests" 2635 @$(ECHO) 2636 @$(ECHO) "Host environment:" 2637 @$(ECHO) " $(FULL_TARGET)" 2638 @$(ECHO) " compiler: $(FPC) ver: $(FPC_VERSION)" 2639 @$(ECHO) 2640 @$(ECHO) "Test environment:" 2641 @$(ECHO) " $(TEST_FULL_TARGET)" 2642 @$(ECHO) " compiler: $(TEST_FPC) ver: $(TEST_FPC_VERSION)" 2643 @$(ECHO) 2644 @$(ECHO) "Output settings:" 2645 @$(ECHO) " DateTime : $(TEST_DATETIME)" 2646 @$(ECHO) " Outputdir: $(TEST_OUTPUTDIR)" 2647 @$(ECHO) " Uploaddir: $(DB_UPLOADDIR)" 2648 @$(ECHO) " tar.gz : $(DB_TARGZ)" 2649