fpc/tests/Makefile

3035 lines
81 KiB
Makefile

#
# Don't edit, this file is generated by FPCMake Version 2.0.0
#
default: allexectests
MAKEFILETARGETS=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 m68k-sinclairql m68k-human68k 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-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mipsel-ps1 mips64-linux mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-iphonesim aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv32-freertos riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc loongarch64-linux
BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari human68k
OSNeedsComspecToRunBatch = go32v2 watcom
FORCE:
.PHONY: FORCE
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
ifeq ($(PWD),)
$(error You need the GNU utils package to use this Makefile)
else
PWD:=$(firstword $(PWD))
SRCEXEEXT=
endif
else
PWD:=$(firstword $(PWD))
SRCEXEEXT=.exe
endif
ifndef inUnix
ifeq ($(OS),Windows_NT)
inWinNT=1
else
ifdef OS2_SHELL
inOS2=1
endif
endif
else
ifneq ($(findstring cygdrive,$(PATH)),)
inCygWin=1
endif
endif
ifdef inUnix
SRCBATCHEXT=.sh
else
ifdef inOS2
SRCBATCHEXT=.cmd
else
SRCBATCHEXT=.bat
endif
endif
ifdef COMSPEC
ifneq ($(filter $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
ifndef RUNBATCH
RUNBATCH=$(COMSPEC) /C
endif
endif
endif
ifdef inUnix
PATHSEP=/
else
PATHSEP:=$(subst /,\,/)
ifdef inCygWin
PATHSEP=/
endif
endif
ifdef PWD
BASEDIR:=$(subst \,/,$(shell $(PWD)))
ifdef inCygWin
ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
endif
endif
else
BASEDIR=.
endif
ifdef inOS2
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO=echo
else
ECHO:=$(firstword $(ECHO))
endif
else
ECHO:=$(firstword $(ECHO))
endif
endif
export ECHO
endif
override DEFAULT_FPCDIR=..
ifndef FPC
ifdef PP
FPC=$(PP)
endif
endif
ifndef FPC
FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(FPCPROG),)
FPCPROG:=$(firstword $(FPCPROG))
ifneq ($(CPU_TARGET),)
FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
else
FPC:=$(shell $(FPCPROG) -PB)
endif
ifneq ($(findstring Error,$(FPC)),)
override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
else
ifeq ($(strip $(wildcard $(FPC))),)
FPC:=$(firstword $(FPCPROG))
endif
endif
else
override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
endif
endif
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
FOUNDFPC:=$(strip $(wildcard $(FPC)))
ifeq ($(FOUNDFPC),)
FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
ifeq ($(FOUNDFPC),)
$(error Compiler $(FPC) not found)
endif
endif
ifndef FPC_COMPILERINFO
FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
endif
ifndef FPC_VERSION
FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
endif
export FPC FPC_VERSION FPC_COMPILERINFO
unexport CHECKDEPEND ALLDEPENDENCIES
ifndef CPU_TARGET
ifdef CPU_TARGET_DEFAULT
CPU_TARGET=$(CPU_TARGET_DEFAULT)
endif
endif
ifndef OS_TARGET
ifdef OS_TARGET_DEFAULT
OS_TARGET=$(OS_TARGET_DEFAULT)
endif
endif
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
endif
ifndef CPU_TARGET
CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
endif
ifndef OS_SOURCE
OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
endif
ifndef OS_TARGET
OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
endif
CPU_OS_TARGET=$(CPU_TARGET)-$(OS_TARGET)
ifdef SUB_TARGET
L_SUB_TARGET=$(call lc,$(SUB_TARGET))
FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)-$(L_SUB_TARGET)
else
FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)
endif
CPU_OS_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
ifdef SUB_SOURCE
L_SUB_SOURCE=$(call lc,$(SUB_SOURCE))
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)-$(L_SUB_SOURCE)
else
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
endif
ifeq ($(CPU_TARGET),armeb)
ARCH=arm
override FPCOPT+=-Cb
else
ifeq ($(CPU_TARGET),armel)
ARCH=arm
override FPCOPT+=-CaEABI
else
ARCH=$(CPU_TARGET)
endif
endif
ifeq ($(CPU_OS_TARGET),aarch64-embedded)
endif
ifdef SUB_TARGET
FPCOPT+=-t$(SUB_TARGET)
FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
endif
ifeq ($(CPU_OS_TARGET),arm-embedded)
ifeq ($(SUBARCH),)
$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifeq ($(CPU_OS_TARGET),avr-embedded)
ifeq ($(SUBARCH),)
$(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifeq ($(CPU_OS_TARGET),mipsel-embedded)
ifeq ($(SUBARCH),)
$(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifeq ($(CPU_OS_TARGET),xtensa-embedded)
ifeq ($(SUBARCH),)
$(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifeq ($(CPU_OS_TARGET),xtensa-freertos)
ifeq ($(SUBARCH),)
$(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifeq ($(CPU_OS_TARGET),arm-freertos)
ifeq ($(SUBARCH),)
$(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
endif
override FPCOPT+=-Cp$(SUBARCH)
endif
ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
else
ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
else
TARGETSUFFIX=$(FULL_TARGET)
endif
SOURCESUFFIX=$(FULL_SOURCE)
endif
ifneq ($(CPU_OS_TARGET),$(CPU_OS_SOURCE))
CROSSCOMPILE=1
endif
ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
ifeq ($(filter $(CPU_OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
endif
endif
ifneq ($(filter $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
ifndef CROSSCOMPILE
BUILDFULLNATIVE=1
export BUILDFULLNATIVE
endif
ifdef BUILDFULLNATIVE
BUILDNATIVE=1
export BUILDNATIVE
endif
export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE SUB_TARGET SUB_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE CPU_OS_TARGET CPU_OS_SOURCE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
override FPCDIR=wrong
endif
else
override FPCDIR=wrong
endif
ifdef DEFAULT_FPCDIR
ifeq ($(FPCDIR),wrong)
override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
override FPCDIR=wrong
endif
endif
endif
ifeq ($(FPCDIR),wrong)
ifdef inUnix
override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
ifeq ($(wildcard $(FPCDIR)/units),)
override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
endif
else
override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
override FPCDIR:=$(BASEDIR)
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
override FPCDIR=c:/pp
endif
endif
endif
endif
endif
ifndef CROSSBINDIR
CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
endif
ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
ifneq ($(filter $(OS_SOURCE),darwin ios),)
DARWIN2DARWIN=1
endif
endif
ifndef BINUTILSPREFIX
ifndef CROSSBINDIR
ifdef CROSSCOMPILE
ifneq ($(OS_TARGET),msdos)
ifndef DARWIN2DARWIN
ifneq ($(CPU_TARGET),jvm)
BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
ifeq ($(OS_TARGET),android)
ifeq ($(CPU_TARGET),arm)
BINUTILSPREFIX=arm-linux-androideabi-
else
ifeq ($(CPU_TARGET),i386)
BINUTILSPREFIX=i686-linux-android-
else
BINUTILSPREFIX=$(CPU_TARGET)-linux-android-
endif
endif
endif
endif
endif
else
BINUTILSPREFIX=$(OS_TARGET)-
endif
endif
endif
endif
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages)
ifndef FPCFPMAKE
ifdef CROSSCOMPILE
ifeq ($(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR)))),)
FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(FPCPROG),)
FPCPROG:=$(firstword $(FPCPROG))
FPCFPMAKE:=$(shell $(FPCPROG) -PB)
ifeq ($(strip $(wildcard $(FPCFPMAKE))),)
FPCFPMAKE:=$(firstword $(FPCPROG))
endif
else
override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
endif
else
FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPCDIR))))
FPMAKE_SKIP_CONFIG=-n
export FPCFPMAKE
export FPMAKE_SKIP_CONFIG
endif
else
FPMAKE_SKIP_CONFIG=-n
FPCFPMAKE=$(FPC)
endif
endif
ifeq ($(CPU_OS_TARGET),i386-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-go32v2)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-win32)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-os2)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-freebsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-beos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-haiku)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-solaris)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-netware)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-openbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-wdosx)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-darwin)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-emx)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-watcom)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-netwlibc)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-wince)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-symbian)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-nativent)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-iphonesim)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i386-aros)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-amiga)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-atari)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-palmos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),m68k-human68k)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-amiga)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-darwin)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-morphos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-wii)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc-aix)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),sparc-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),sparc-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),sparc-solaris)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),sparc-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-haiku)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-solaris)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-darwin)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-win64)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-aros)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-netbsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-palmos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-wince)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-gba)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-nds)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-symbian)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-aros)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-freertos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),arm-ios)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),powerpc64-aix)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),avr-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),armeb-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),armeb-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mips-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mipsel-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mipsel-ps1)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mips64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),mips64el-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),jvm-java)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),jvm-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i8086-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i8086-msdos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),i8086-win16)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-darwin)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-win64)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-android)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),aarch64-ios)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),wasm32-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),wasm32-wasi)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),sparc64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),riscv32-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),riscv32-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),riscv32-freertos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),riscv64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),riscv64-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),xtensa-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),xtensa-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),xtensa-freertos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),z80-embedded)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),z80-msxdos)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),z80-amstradcpc)
override TARGET_PROGRAMS+=gparmake createlst
endif
ifeq ($(CPU_OS_TARGET),loongarch64-linux)
override TARGET_PROGRAMS+=gparmake createlst
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifneq ($(filter $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
endif
else
ifneq ($(filter $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
endif
endif
ifndef INSTALL_PREFIX
ifdef PREFIX
INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXHier
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=/pp
else
INSTALL_BASEDIR:=/$(PACKAGE_NAME)
endif
endif
endif
export INSTALL_PREFIX
ifdef INSTALL_FPCSUBDIR
export INSTALL_FPCSUBDIR
endif
ifndef DIST_DESTDIR
DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef COMPILER_UNITTARGETDIR
ifdef PACKAGEDIR_MAIN
COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
else
COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
endif
endif
ifndef COMPILER_TARGETDIR
COMPILER_TARGETDIR=.
endif
ifndef INSTALL_BASEDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
endif
else
INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXHier
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
ifdef INSTALL_FPCPACKAGE
ifdef CROSSCOMPILE
ifdef CROSSINSTALL
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
else
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
endif
else
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
endif
endif
endif
endif
ifndef INSTALL_UNITDIR
INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
ifdef INSTALL_FPCPACKAGE
ifdef PACKAGE_NAME
INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXHier
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXHier
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
endif
else
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
else
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
else
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
endif
else
INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXHier
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
else
INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXHier
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
endif
endif
endif
ifndef INSTALL_DATADIR
INSTALL_DATADIR=$(INSTALL_BASEDIR)
endif
ifndef INSTALL_SHAREDDIR
INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
endif
ifdef CROSSCOMPILE
ifndef CROSSBINDIR
CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
ifeq ($(CROSSBINDIR),)
CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
endif
endif
else
CROSSBINDIR=
endif
ifeq ($(OS_SOURCE),linux)
ifndef GCCLIBDIR
ifeq ($(CPU_TARGET),i386)
ifneq ($(filter x86_64,$(shell uname -a)),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
else
CROSSGCCOPT=-m32
endif
endif
endif
ifeq ($(CPU_TARGET),powerpc)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
else
CROSSGCCOPT=-m32
endif
endif
ifeq ($(CPU_TARGET),powerpc64)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
else
CROSSGCCOPT=-m64
endif
endif
ifeq ($(CPU_TARGET),sparc)
ifneq ($(filter sparc64,$(shell uname -a)),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
else
CROSSGCCOPT=-m32
endif
endif
endif
ifneq ($(filter $(CPU_TARGET),mips64 mipsel64),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -mabi=64 -print-libgcc-file-name`)
else
CROSSGCCOPT=-mabi=64
endif
endif
ifneq ($(filter $(CPU_TARGET),mips mipsel),)
ifeq ($(BINUTILSPREFIX),)
GCCLIBDIR:=$(shell dirname `gcc -mabi=32 -print-libgcc-file-name`)
else
CROSSGCCOPT=-mabi=32
endif
endif
ifeq ($(BINUTILSPREFIX),)
ifeq ($(GCCLIBDIR),)
GCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
endif
else
ifeq ($(CROSSGCCOPT),)
CROSSGCCOPT=-g
endif
endif
endif
ifdef FPCFPMAKE
FPCFPMAKE_CPU_TARGET=$(shell $(FPCFPMAKE) -iTP)
ifeq ($(CPU_TARGET),$(FPCFPMAKE_CPU_TARGET))
FPCMAKEGCCLIBDIR:=$(GCCLIBDIR)
else
ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),aarch64 powerpc64 riscv64 sparc64 x86_64 loongarch64),)
FPCMAKE_CROSSGCCOPT=-m64
else
ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),mips64 mips64el),)
FPCMAKE_CROSSGCCOPT=-mabi=64
else
ifneq ($(filter $(FPCFPMAKE_CPU_TARGET),mips mipsel),)
FPCMAKE_CROSSGCCOPT=-mabi=32
else
ifeq ($(FPCFPMAKE_CPU_TARGET),riscv64)
FPCMAKE_CROSSGCCOPT=-mabi=lp64
else
ifeq ($(FPCFPMAKE_CPU_TARGET),riscv32)
FPCMAKE_CROSSGCCOPT=-mabi=ilp32
else
ifeq ($(FPCFPMAKE_CPU_TARGET),loongarch64)
FPCMAKE_CROSSGCCOPT=-mabi=lp64d
else
FPCMAKE_CROSSGCCOPT=-m32
endif
endif
endif
endif
endif
endif
FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`)
endif
endif
ifndef FPCMAKEGCCLIBDIR
FPCMAKEGCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)
endif
ifndef GCCLIBDIR
CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(CROSSGCC),)
GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-file-name`)
endif
endif
endif
ifdef inUnix
ifeq ($(OS_SOURCE),netbsd)
OTHERLIBDIR:=/usr/pkg/lib
endif
export GCCLIBDIR FPCMAKEGCCLIBDIR OTHERLIBDIR
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
PPUEXT=.ppu
OEXT=.o
LTOEXT=.bc
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
SHAREDLIBEXT=.so
SHAREDLIBPREFIX=libfp
STATICLIBPREFIX=libp
IMPORTLIBPREFIX=libimp
RSTEXT=.rst
EXEDBGEXT=.dbg
ifeq ($(OS_TARGET),go32v1)
STATICLIBPREFIX=
SHORTSUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
SHORTSUFFIX=dos
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
SHORTSUFFIX=wat
IMPORTLIBPREFIX=
endif
ifneq ($(CPU_TARGET),jvm)
ifeq ($(OS_TARGET),android)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
ifeq ($(OS_TARGET),dragonfly)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=df
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=fbs
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=nbs
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=obs
endif
ifeq ($(OS_TARGET),win32)
SHAREDLIBEXT=.dll
SHORTSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=os2
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
SHORTSUFFIX=emx
ECHO=echo
IMPORTLIBPREFIX=
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
ifeq ($(OS_TARGET),aros)
EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=aros
endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=mos
endif
ifeq ($(OS_TARGET),atari)
EXEEXT=.ttp
SHORTSUFFIX=ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=be
endif
ifeq ($(OS_TARGET),haiku)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=hai
endif
ifeq ($(OS_TARGET),solaris)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nw
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),netwlibc)
EXEEXT=.nlm
STATICLIBPREFIX=
SHORTSUFFIX=nwl
IMPORTLIBPREFIX=imp
endif
ifeq ($(OS_TARGET),macosclassic)
BATCHEXT=
EXEEXT=
DEBUGSYMEXT=.xcoff
SHORTSUFFIX=mac
IMPORTLIBPREFIX=imp
endif
ifneq ($(filter $(OS_TARGET),darwin iphonesim ios),)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
SHORTSUFFIX=dwn
EXEDBGEXT=.dSYM
endif
ifeq ($(OS_TARGET),gba)
EXEEXT=.gba
SHAREDLIBEXT=.so
SHORTSUFFIX=gba
endif
ifeq ($(OS_TARGET),symbian)
SHAREDLIBEXT=.dll
SHORTSUFFIX=symbian
endif
ifeq ($(OS_TARGET),NativeNT)
SHAREDLIBEXT=.dll
SHORTSUFFIX=nativent
endif
ifeq ($(OS_TARGET),wii)
EXEEXT=.dol
SHAREDLIBEXT=.so
SHORTSUFFIX=wii
endif
ifeq ($(OS_TARGET),aix)
BATCHEXT=.sh
EXEEXT=
SHAREDLIBEXT=.a
SHORTSUFFIX=aix
endif
ifeq ($(OS_TARGET),java)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=java
endif
ifeq ($(CPU_TARGET),jvm)
ifeq ($(OS_TARGET),android)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=android
endif
endif
ifeq ($(OS_TARGET),msdos)
STATICLIBPREFIX=
STATICLIBEXT=.a
SHORTSUFFIX=d16
endif
ifeq ($(OS_TARGET),msxdos)
STATICLIBPREFIX=
STATICLIBEXT=.a
SHORTSUFFIX=msd
endif
ifeq ($(OS_TARGET),embedded)
ifeq ($(CPU_TARGET),i8086)
STATICLIBPREFIX=
STATICLIBEXT=.a
else
EXEEXT=.bin
endif
ifeq ($(CPU_TARGET),z80)
OEXT=.rel
endif
SHORTSUFFIX=emb
endif
ifeq ($(OS_TARGET),win16)
STATICLIBPREFIX=
STATICLIBEXT=.a
SHAREDLIBEXT=.dll
SHORTSUFFIX=w16
endif
ifeq ($(OS_TARGET),zxspectrum)
OEXT=.rel
endif
ifeq ($(OS_TARGET),wasi)
EXEEXT=.wasm
endif
ifneq ($(filter $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
ZIPCROSSPREFIX=
ZIPSOURCESUFFIX=src
ZIPEXAMPLESUFFIX=exm
else
FPCMADE=fpcmade.$(TARGETSUFFIX)
ZIPSOURCESUFFIX=.source
ZIPEXAMPLESUFFIX=.examples
ifdef CROSSCOMPILE
ZIPSUFFIX=.$(SOURCESUFFIX)
ZIPCROSSPREFIX=$(TARGETSUFFIX)-
else
ZIPSUFFIX=.$(TARGETSUFFIX)
ZIPCROSSPREFIX=
endif
endif
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO= __missing_command_ECHO
else
ECHO:=$(firstword $(ECHO))
endif
else
ECHO:=$(firstword $(ECHO))
endif
endif
export ECHO
ifndef DATE
DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE= __missing_command_DATE
else
DATE:=$(firstword $(DATE))
endif
else
DATE:=$(firstword $(DATE))
endif
endif
export DATE
ifndef GINSTALL
GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL= __missing_command_GINSTALL
else
GINSTALL:=$(firstword $(GINSTALL))
endif
else
GINSTALL:=$(firstword $(GINSTALL))
endif
endif
export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG= __missing_command_CPPROG
else
CPPROG:=$(firstword $(CPPROG))
endif
endif
export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG= __missing_command_RMPROG
else
RMPROG:=$(firstword $(RMPROG))
endif
endif
export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG= __missing_command_MVPROG
else
MVPROG:=$(firstword $(MVPROG))
endif
endif
export MVPROG
ifndef MKDIRPROG
MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MKDIRPROG),)
MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MKDIRPROG),)
MKDIRPROG= __missing_command_MKDIRPROG
else
MKDIRPROG:=$(firstword $(MKDIRPROG))
endif
else
MKDIRPROG:=$(firstword $(MKDIRPROG))
endif
endif
export MKDIRPROG
ifndef ECHOREDIR
ifndef inUnix
ECHOREDIR=echo
else
ECHOREDIR=$(ECHO)
endif
endif
ifndef COPY
COPY:=$(CPPROG) -fp
endif
ifndef COPYTREE
COPYTREE:=$(CPPROG) -Rfp
endif
ifndef MKDIRTREE
MKDIRTREE:=$(MKDIRPROG) -p
endif
ifndef MOVE
MOVE:=$(MVPROG) -f
endif
ifndef DEL
DEL:=$(RMPROG) -f
endif
ifndef DELTREE
DELTREE:=$(RMPROG) -rf
endif
ifndef INSTALL
ifdef inUnix
INSTALL:=$(GINSTALL) -c -m 644
else
INSTALL:=$(COPY)
endif
endif
ifndef INSTALLEXE
ifdef inUnix
INSTALLEXE:=$(GINSTALL) -c -m 755
else
INSTALLEXE:=$(COPY)
endif
endif
ifndef MKDIR
MKDIR:=$(GINSTALL) -m 755 -d
endif
export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE= __missing_command_PPUMOVE
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
endif
export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE= __missing_command_FPCMAKE
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
endif
export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG= __missing_command_ZIPPROG
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
endif
export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG= __missing_command_TARPROG
else
TARPROG:=$(firstword $(TARPROG))
endif
else
TARPROG:=$(firstword $(TARPROG))
endif
endif
export TARPROG
ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
NASMNAME=$(BINUTILSPREFIX)nasm
ifndef ASPROG
ifdef CROSSBINDIR
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
else
ASPROG=$(ASNAME)
endif
endif
ifndef LDPROG
ifdef CROSSBINDIR
LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
else
LDPROG=$(LDNAME)
endif
endif
ifndef RCPROG
ifdef CROSSBINDIR
RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
else
RCPROG=$(RCNAME)
endif
endif
ifndef ARPROG
ifdef CROSSBINDIR
ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
else
ARPROG=$(ARNAME)
endif
endif
ifndef NASMPROG
ifdef CROSSBINDIR
NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)
else
NASMPROG=$(NASMNAME)
endif
endif
AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
NASM=$(NASMPROG)
ifdef inUnix
PPAS=./ppas$(SRCBATCHEXT)
else
PPAS=ppas$(SRCBATCHEXT)
endif
ifdef inUnix
LDCONFIG=ldconfig
else
LDCONFIG=
endif
ifdef DATE
DATESTR:=$(shell $(DATE) +%Y%m%d)
else
DATESTR=
endif
ZIPOPT=-9
ZIPEXT=.zip
ifeq ($(USETAR),bz2)
TAROPT=vj
TAREXT=.tar.bz2
else
TAROPT=vz
TAREXT=.tar.gz
endif
override REQUIRE_PACKAGES=rtl
ifeq ($(CPU_OS_TARGET),i386-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-go32v2)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-win32)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-os2)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-freebsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-beos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-haiku)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-solaris)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-netware)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-openbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-wdosx)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-emx)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-watcom)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-netwlibc)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-wince)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-symbian)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-nativent)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-iphonesim)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i386-aros)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-amiga)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-atari)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-palmos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),m68k-human68k)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-amiga)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-morphos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-wii)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc-aix)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),sparc-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),sparc-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),sparc-solaris)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),sparc-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-haiku)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-solaris)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-win64)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-aros)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-netbsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-palmos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-wince)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-gba)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-nds)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-symbian)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-aros)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-freertos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),arm-ios)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),powerpc64-aix)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),avr-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),armeb-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),armeb-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mips-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mipsel-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mipsel-ps1)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mips64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),mips64el-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),jvm-java)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),jvm-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i8086-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i8086-msdos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),i8086-win16)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-darwin)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-win64)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-android)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),aarch64-ios)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),wasm32-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),wasm32-wasi)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),sparc64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),riscv32-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),riscv32-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),riscv32-freertos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),riscv64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),riscv64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),xtensa-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),xtensa-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),xtensa-freertos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),z80-embedded)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),z80-msxdos)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),z80-amstradcpc)
REQUIRE_PACKAGES_RTL=1
endif
ifeq ($(CPU_OS_TARGET),loongarch64-linux)
REQUIRE_PACKAGES_RTL=1
endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
ifeq ($(PACKAGEDIR_RTL),)
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile,,$(strip $(wildcard $(addsuffix /rtl/Makefile,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_RTL),)
PACKAGEDIR_RTL:=$(firstword $(subst /fpmake.pp,,$(strip $(wildcard $(addsuffix /rtl/fpmake.pp,$(PACKAGESDIR))))))
endif
endif
ifneq ($(PACKAGEDIR_RTL),)
ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
else
UNITDIR_RTL=$(PACKAGEDIR_RTL)
endif
ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)),)
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units/$(SOURCESUFFIX)
else
ifneq ($(wildcard $(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)),)
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)/units_bs/$(SOURCESUFFIX)
else
UNITDIR_FPMAKE_RTL=$(PACKAGEDIR_RTL)
endif
endif
ifdef CHECKDEPEND
$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE):
$(MAKE) -C $(PACKAGEDIR_RTL)/$(OS_TARGET) $(FPCMADE)
override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(OS_TARGET)/$(FPCMADE)
endif
else
PACKAGEDIR_RTL=
UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
ifneq ($(UNITDIR_RTL),)
UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
else
UNITDIR_RTL=
endif
endif
ifdef UNITDIR_RTL
override COMPILER_UNITDIR+=$(UNITDIR_RTL)
endif
ifdef UNITDIR_FPMAKE_RTL
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL)
endif
endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET)
endif
ifneq ($(CPU_TARGET),$(CPU_SOURCE))
override FPCOPT+=-P$(ARCH)
endif
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)
override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)
endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-XP$(BINUTILSPREFIX)
ifneq ($(RLINKPATH),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
endif
endif
ifndef CROSSCOMPILE
ifneq ($(BINUTILSPREFIX),)
override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)
override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)
endif
endif
ifdef UNITDIR
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
endif
ifdef LIBDIR
override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
endif
ifdef OBJDIR
override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
endif
ifdef INCDIR
override FPCOPT+=$(addprefix -Fi,$(INCDIR))
endif
ifdef LINKSMART
override FPCOPT+=-XX
endif
ifdef CREATESMART
override FPCOPT+=-CX
endif
ifdef DEBUG
override FPCOPT+=-gl
override FPCOPTDEF+=DEBUG
endif
ifdef RELEASE
FPCCPUOPT:=-O2
override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
ifdef STRIP
override FPCOPT+=-Xs
endif
ifdef OPTIMIZE
override FPCOPT+=-O2
endif
ifdef VERBOSE
override FPCOPT+=-vwni
endif
ifdef COMPILER_OPTIONS
override FPCOPT+=$(COMPILER_OPTIONS)
endif
ifdef COMPILER_UNITDIR
override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
endif
ifdef COMPILER_LIBRARYDIR
override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
endif
ifdef COMPILER_OBJECTDIR
override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
endif
ifdef COMPILER_INCLUDEDIR
override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
endif
ifdef CROSSBINDIR
override FPCOPT+=-FD$(CROSSBINDIR)
endif
ifdef COMPILER_TARGETDIR
override FPCOPT+=-FE$(COMPILER_TARGETDIR)
ifeq ($(COMPILER_TARGETDIR),.)
override TARGETDIRPREFIX=
else
override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
endif
endif
ifdef COMPILER_UNITTARGETDIR
override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
ifeq ($(COMPILER_UNITTARGETDIR),.)
override UNITTARGETDIRPREFIX=
else
override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
endif
else
ifdef COMPILER_TARGETDIR
override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
endif
endif
ifdef SYSROOTPATH
override FPCOPT+=-XR$(SYSROOTPATH)
else
ifeq ($(OS_TARGET),$(OS_SOURCE))
ifeq ($(OS_TARGET),darwin)
ifeq ($(CPU_TARGET),aarch64)
ifneq ($(wildcard /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk),)
override FPCOPT+=-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
endif
endif
endif
endif
endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
ifneq ($(filter $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifneq ($(filter $(CPU_TARGET),x86_64 mips mipsel mips64 mips64el riscv64 powerpc64),)
override FPCOPT+=-Cg
endif
endif
ifneq ($(filter $(CPU_TARGET),z80),)
override FPCOPT+=-CX -XX
endif
ifdef LINKSHARED
endif
ifdef GCCLIBDIR
override FPCOPT+=-Fl$(GCCLIBDIR)
ifdef FPCMAKEGCCLIBDIR
override FPCMAKEOPT+=-Fl$(FPCMAKEGCCLIBDIR)
else
override FPCMAKEOPT+=-Fl$(GCCLIBDIR)
endif
endif
ifdef OTHERLIBDIR
override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
endif
ifdef OPT
override FPCOPT+=$(OPT)
endif
ifdef FPMAKEBUILDOPT
override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)
endif
ifdef FPCOPTDEF
override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
endif
ifdef CFGFILE
override FPCOPT+=@$(CFGFILE)
endif
ifdef USEENV
override FPCEXTCMD:=$(FPCOPT)
override FPCOPT:=!FPCEXTCMD
export FPCEXTCMD
endif
override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
override ACROSSCOMPILE=1
endif
ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
ifneq (,$(filter -sh,$(COMPILER)))
UseEXECPPAS=1
endif
ifneq (,$(filter -s,$(COMPILER)))
ifeq ($(FULL_SOURCE),$(FULL_TARGET))
UseEXECPPAS=1
endif
endif
ifneq ($(UseEXECPPAS),1)
EXECPPAS=
else
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuffix $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
override ALLTARGET+=fpc_exes
override INSTALLEXEFILES+=$(EXEFILES)
override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
override CLEANEXEDBGFILES+=$(EXEDBGFILES)
ifeq ($(OS_TARGET),os2)
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
endif
ifeq ($(OS_TARGET),emx)
override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
endif
endif
endif
fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
endif
.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
@$(ECHOREDIR) Compiled > $(FPCMADE)
fpc_all: $(FPCMADE)
fpc_smart:
$(MAKE) all LINKSMART=1 CREATESMART=1
fpc_debug:
$(MAKE) all DEBUG=1
fpc_release:
$(MAKE) all RELEASE=1
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .rc .res
$(COMPILER_UNITTARGETDIR):
$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
$(COMPILER_TARGETDIR):
$(MKDIRTREE) $(COMPILER_TARGETDIR)
%$(PPUEXT): %.pp
$(COMPILER) $<
$(EXECPPAS)
%$(PPUEXT): %.pas
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.pp
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.pas
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.lpr
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.dpr
$(COMPILER) $<
$(EXECPPAS)
%.res: %.rc
windres -i $< -o $@
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.inc $(COMPILER_INCLUDEDIR)
vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
.PHONY: fpc_shared
override INSTALLTARGET+=fpc_shared_install
ifndef SHARED_LIBVERSION
SHARED_LIBVERSION=$(FPC_VERSION)
endif
ifndef SHARED_LIBNAME
SHARED_LIBNAME=$(PACKAGE_NAME)
endif
ifndef SHARED_FULLNAME
SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
endif
ifndef SHARED_LIBUNITS
SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
endif
fpc_shared:
ifdef HASSHAREDLIB
$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
ifneq ($(SHARED_BUILD),n)
$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)
endif
else
@$(ECHO) Shared Libraries not supported
endif
fpc_shared_install:
ifneq ($(SHARED_BUILD),n)
ifneq ($(SHARED_LIBUNITS),)
ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
endif
endif
endif
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
ifdef INSTALL_UNITS
override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
endif
ifdef INSTALL_BUILDUNIT
override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
endif
ifdef INSTALLPPUFILES
ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICLIBEXT))
override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
else
override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
endif
ifneq ($(UNITTARGETDIRPREFIX),)
override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))
override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))
override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPUFILENAMES))
override INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLPPULINKFILENAMES)))
endif
override INSTALL_CREATEPACKAGEFPC=1
endif
ifdef INSTALLEXEFILES
ifneq ($(TARGETDIRPREFIX),)
override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
endif
endif
fpc_install: all $(INSTALLTARGET)
ifdef INSTALLEXEFILES
$(MKDIR) $(INSTALL_BINDIR)
$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
endif
ifdef INSTALL_CREATEPACKAGEFPC
ifdef FPCMAKE
ifdef PACKAGE_VERSION
ifneq ($(wildcard Makefile.fpc),)
$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
endif
endif
endif
endif
ifdef INSTALLPPUFILES
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
ifneq ($(INSTALLPPULINKFILES),)
$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
endif
ifneq ($(wildcard $(LIB_FULLNAME)),)
$(MKDIR) $(INSTALL_LIBDIR)
$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
ifdef inUnix
ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
endif
endif
endif
ifdef INSTALL_FILES
$(MKDIR) $(INSTALL_DATADIR)
$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
endif
fpc_sourceinstall: distclean
$(MKDIR) $(INSTALL_SOURCEDIR)
$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
ifdef HASEXAMPLES
$(MKDIR) $(INSTALL_EXAMPLEDIR)
endif
ifdef EXAMPLESOURCEFILES
$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
endif
ifdef TARGET_EXAMPLEDIRS
$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
endif
.PHONY: fpc_clean fpc_cleanall fpc_distclean
ifdef EXEFILES
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDBGFILES))
endif
ifdef CLEAN_PROGRAMS
override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEDBGEXT), $(CLEAN_PROGRAMS)))
endif
ifdef CLEAN_UNITS
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
override CLEANPPUFILENAMES:=$(CLEANPPUFILES)
override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILENAMES))
override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)
override CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILENAMES)))
endif
fpc_clean: $(CLEANTARGET)
ifdef CLEANEXEFILES
-$(DEL) $(CLEANEXEFILES)
endif
ifdef CLEANEXEDBGFILES
-$(DELTREE) $(CLEANEXEDBGFILES)
endif
ifdef CLEANPPUFILES
-$(DEL) $(CLEANPPUFILES)
endif
ifneq ($(CLEANPPULINKFILES),)
-$(DEL) $(CLEANPPULINKFILES)
endif
ifdef CLEANRSTFILES
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
endif
ifdef CLEAN_FILES
-$(DEL) $(CLEAN_FILES)
endif
ifdef LIB_NAME
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
-$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)
-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
fpc_cleanall: $(CLEANTARGET)
ifdef CLEANEXEFILES
-$(DEL) $(CLEANEXEFILES)
endif
ifdef COMPILER_UNITTARGETDIR
ifdef CLEANPPUFILES
-$(DEL) $(CLEANPPUFILES)
endif
ifneq ($(CLEANPPULINKFILES),)
-$(DEL) $(CLEANPPULINKFILES)
endif
ifdef CLEANRSTFILES
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
endif
endif
ifdef CLEAN_FILES
-$(DEL) $(CLEAN_FILES)
endif
-$(DELTREE) units
-$(DELTREE) bin
-$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
ifneq ($(PPUEXT),.ppu)
-$(DEL) *.o *.ppu *.a
endif
-$(DELTREE) *$(SMARTEXT)
-$(DEL) fpcmade.* Package.fpc *.fpm
-$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_script.res *_link.res
-$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
ifdef LOCALFPMAKEBIN
-$(DEL) $(LOCALFPMAKEBIN)
-$(DEL) $(FPMAKEBINOBJ)
endif
fpc_distclean: cleanall
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:
@$(ECHO)
@$(ECHO) == Package info ==
@$(ECHO) Package Name..... $(PACKAGE_NAME)
@$(ECHO) Package Version.. $(PACKAGE_VERSION)
@$(ECHO)
@$(ECHO) == Configuration info ==
@$(ECHO)
@$(ECHO) FPC.......... $(FPC)
@$(ECHO) FPC Version.. $(FPC_VERSION)
@$(ECHO) Source CPU... $(CPU_SOURCE)
@$(ECHO) Target CPU... $(CPU_TARGET)
@$(ECHO) Source OS.... $(OS_SOURCE)
@$(ECHO) Target OS.... $(OS_TARGET)
@$(ECHO) Full Source.. $(FULL_SOURCE)
@$(ECHO) Full Target.. $(FULL_TARGET)
@$(ECHO) SourceSuffix. $(SOURCESUFFIX)
@$(ECHO) TargetSuffix. $(TARGETSUFFIX)
@$(ECHO) FPC fpmake... $(FPCFPMAKE)
@$(ECHO)
@$(ECHO) == Directory info ==
@$(ECHO)
@$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
@$(ECHO)
@$(ECHO) Basedir......... $(BASEDIR)
@$(ECHO) FPCDir.......... $(FPCDIR)
@$(ECHO) CrossBinDir..... $(CROSSBINDIR)
@$(ECHO) UnitsDir........ $(UNITSDIR)
@$(ECHO) PackagesDir..... $(PACKAGESDIR)
@$(ECHO)
@$(ECHO) GCC library..... $(GCCLIBDIR)
@$(ECHO) Other library... $(OTHERLIBDIR)
@$(ECHO)
@$(ECHO) == Tools info ==
@$(ECHO)
@$(ECHO) As........ $(AS)
@$(ECHO) Ld........ $(LD)
@$(ECHO) Ar........ $(AR)
@$(ECHO) Rc........ $(RC)
@$(ECHO)
@$(ECHO) Mv........ $(MVPROG)
@$(ECHO) Cp........ $(CPPROG)
@$(ECHO) Rm........ $(RMPROG)
@$(ECHO) GInstall.. $(GINSTALL)
@$(ECHO) Echo...... $(ECHO)
@$(ECHO) Shell..... $(SHELL)
@$(ECHO) Date...... $(DATE)
@$(ECHO) FPCMake... $(FPCMAKE)
@$(ECHO) PPUMove... $(PPUMOVE)
@$(ECHO) Zip....... $(ZIPPROG)
@$(ECHO)
@$(ECHO) == Object info ==
@$(ECHO)
@$(ECHO) Target Loaders........ $(TARGET_LOADERS)
@$(ECHO) Target Units.......... $(TARGET_UNITS)
@$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
@$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
@$(ECHO) Target Dirs........... $(TARGET_DIRS)
@$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
@$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
@$(ECHO)
@$(ECHO) Clean Units......... $(CLEAN_UNITS)
@$(ECHO) Clean Files......... $(CLEAN_FILES)
@$(ECHO)
@$(ECHO) Install Units....... $(INSTALL_UNITS)
@$(ECHO) Install Files....... $(INSTALL_FILES)
@$(ECHO)
@$(ECHO) == Install info ==
@$(ECHO)
@$(ECHO) DateStr.............. $(DATESTR)
@$(ECHO) ZipName.............. $(ZIPNAME)
@$(ECHO) ZipPrefix............ $(ZIPPREFIX)
@$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
@$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
@$(ECHO) FullZipName.......... $(FULLZIPNAME)
@$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
@$(ECHO)
@$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
@$(ECHO) Install binary dir... $(INSTALL_BINDIR)
@$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
@$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
@$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
@$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
@$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
@$(ECHO) Install data dir..... $(INSTALL_DATADIR)
@$(ECHO)
@$(ECHO) Dist destination dir. $(DIST_DESTDIR)
@$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
@$(ECHO)
.PHONY: fpc_info
fpc_info: $(INFORULES)
.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
fpc_makefile_dirs
fpc_makefile:
$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
fpc_makefile_sub1:
ifdef TARGET_DIRS
$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
endif
ifdef TARGET_EXAMPLEDIRS
$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
endif
fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
fpc_makefiles: fpc_makefile fpc_makefile_dirs
debug: fpc_debug
smart: fpc_smart
release: fpc_release
units: fpc_units
examples:
shared: fpc_shared
install: fpc_install
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
distinstall:
zipinstall:
zipsourceinstall:
zipexampleinstall:
zipdistinstall:
cleanall: fpc_cleanall
makefiles: fpc_makefiles
.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall cleanall makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
unexport FPC_VERSION
TEST_HOSTNAME:=$(firstword $(subst ., ,$(shell hostname)))
override TEST_FPC:=$(subst \,/,$(TEST_FPC))
ifndef TEST_FPC
TEST_FPC=$(wildcard $(dir $(CURDIR))compiler/$(notdir $(FPC)))
ifeq ($(TEST_FPC), )
$(error "*** ERROR: TEST_FPC is missing ***")
endif
endif
ifndef TEST_OPT
TEST_OPT=
endif
ifndef TEST_DISABLE_LONGLOG
TEST_USE_LONGLOG=1
endif
override TEST_OPT+=-Fd
ifndef TEST_FPC_VERSION
TEST_FPC_COMPILERINFO:=$(shell $(TEST_FPC) -iVSPTPSOTODW)
TEST_FPC_VERSION:=$(word 1,$(TEST_FPC_COMPILERINFO))
endif
export TEST_FPC TEST_FPC_VERSION TEST_FPC_COMPILERINFO
ifneq ($(words $(TEST_FPC_COMPILERINFO)),7)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSP)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTP)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iSO)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iTO)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iD)
TEST_FPC_COMPILERINFO+=$(shell $(TEST_FPC) -iW)
endif
ifndef TEST_CPU_SOURCE
TEST_CPU_SOURCE:=$(word 2,$(TEST_FPC_COMPILERINFO))
endif
ifndef TEST_CPU_TARGET
TEST_CPU_TARGET:=$(word 3,$(TEST_FPC_COMPILERINFO))
endif
ifndef TEST_OS_SOURCE
TEST_OS_SOURCE:=$(word 4,$(TEST_FPC_COMPILERINFO))
endif
ifndef TEST_OS_TARGET
TEST_OS_TARGET:=$(word 5,$(TEST_FPC_COMPILERINFO))
endif
ifndef TEST_FPC_DATE
TEST_FPC_DATE:=$(word 6,$(TEST_FPC_COMPILERINFO))
endif
ifndef TEST_FPC_FULLVERSION
TEST_FPC_FULLVERSION:=$(word 7,$(TEST_FPC_COMPILERINFO))
endif
TEST_FULL_TARGET=$(TEST_CPU_TARGET)-$(TEST_OS_TARGET)
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TEST_TARGETSUFFIX=$(TEST_OS_TARGET)
else
ifneq ($(findstring $(TEST_OS_TARGET),$(LIMIT83fs)),)
TEST_TARGETSUFFIX=$(TEST_OS_TARGET)
else
TEST_TARGETSUFFIX=$(TEST_FULL_TARGET)
endif
endif
ifndef TEST_CCOMPILER
ifeq ($(CPU_TARGET),$(TEST_CPU_TARGET))
ifeq ($(OS_TARGET),$(TEST_OS_TARGET))
TEST_CCOMPILER:=$(strip $(wildcard $(addsuffix /gcc$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(TEST_CCOMPILER),)
TEST_CCOMPILER:=$(firstword $(TEST_CCOMPILER))
endif
endif
endif
endif
ifeq ($(TEST_OS_TARGET),msdos)
override TEST_OPT+=-XX
endif
TEST_OUTPUTDIR=output/$(TEST_TARGETSUFFIX)
C_SUBDIR=$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)
ifneq ($(DATE),__missing_command_DATE)
TEST_DATETIME:=$(shell $(DATE) -u +%Y%m%d%H%M)
else
TEST_DATETIME="No-date"
endif
ifndef TEST_USER
TEST_USER=$(USER)
ifeq ($(TEST_USER),)
TEST_USER=$(USERNAME)
endif
endif
DB_TARGZ=$(TEST_HOSTNAME)-$(TEST_DATETIME).tar.gz
DB_HOST=fpc@www.freepascal.org
DB_UPLOADDIR=/home/fpc/testsuite/incoming
ifdef inWinNT
inWinDOS=1
endif
ifeq ($(OS_SOURCE),go32v2)
inWinDOS=1
inDOS=1
SINGLEDOTESTRUNS=1
endif
ifndef FAILLIST
export FAILLIST:=$(TEST_OUTPUTDIR)/faillist
endif
export TEST_FAILLIST:=$(TEST_OUTPUTDIR)/faillist
ifndef LONGLOG
export LONGLOG:=$(TEST_OUTPUTDIR)/longlog
endif
export TEST_LONGLOG:=$(TEST_OUTPUTDIR)/longlog
ifndef LOG
export LOG:=$(TEST_OUTPUTDIR)/log
endif
export TEST_LOG:=$(TEST_OUTPUTDIR)/log
ifndef TEST_SEPLOG
ifdef MAKEINC_SEPARATE
export TEST_SEPLOG:=$(TEST_OUTPUTDIR)/seplog
endif
endif
LOGFILES=$(TEST_LOG) $(TEST_LONGLOG) $(TEST_FAILLIST) $(TEST_SEPLOG)
LOGEXT=.testlog .tbslog .tbflog .webtbslog .webtbflog
TESTUNITDIRS=system dos crt objects strings sysutils math sharemem strutils matrix lineinfo ucomplex fpwidestring cpu fmtbcd windows classes character dateutil fpcunit softfpu variants sortbase sortalgs linux unixutil types nullable contnrs convutils
TESTDIRECTDIRS=
TESTSUBDIRS=cg cg/variants cg/cdecl cpu8/avr cpu16 cpu16/i8086 library opt wasm $(addprefix units/,$(TESTUNITDIRS))
TESTPACKAGESDIRS=bzip2 cocoaint fcl-base fcl-db fcl-image fcl-registry fcl-xml hash rtl-objpas univint webtbs win-base zlib
TESTPACKAGESUBDIRS=$(addprefix packages/,$(TESTPACKAGESDIRS))
TESTPACKAGESDIRECTDIRS=rtl-objpas rtl-generics hash regexpr fcl-registry fcl-passrc fcl-json fcl-image pastojs fcl-process
TESTPACKAGESDIRECTSUBDIRS=$(addprefix ../packages/,$(addsuffix /tests,$(TESTPACKAGESDIRECTDIRS)))
ifdef QUICKTEST
export QUICKTEST
else
override TESTSUBDIRS+=$(TESTPACKAGESUBDIRS) alglib
override TESTDIRECTDIRS+=$(TESTPACKAGESDIRECTSUBDIRS)
endif
ifndef CHUNKSIZE
export CHUNKSIZE:=100
endif
TESTDIRS:=test $(addprefix test/,$(TESTSUBDIRS)) $(TESTDIRECTDIRS)
.PHONY: utils tstunits copyfiles testprep
$(TEST_OUTPUTDIR):
$(MKDIRTREE) $(TEST_OUTPUTDIR)
utils:
$(MAKE) -C utils utils
utilsdb:
$(MAKE) -C utils utilsdb
ifndef DIGEST
DIGEST=utils/digest
endif
ifndef DOTEST
DOTEST=utils/dotest
endif
ifndef CONCAT
CONCAT=utils/concat
endif
ifndef GPARMAKE
GPARMAKE=./gparmake$(SRCEXEEXT)
endif
ifndef PREPUP
PREPUP=utils/prepup
endif
ifndef CREATELST
CREATELST=./createlst$(SRCEXEEXT)
endif
tstunits:
ifdef inOS2
$(MAKE) -C tstunits FPC_VERSION= FPC=$(TEST_FPC) NATIVE_FPC=$(FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) "OPT=$(TEST_OPT)" CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX)
else
$(MAKE) -C tstunits FPC_VERSION= FPC=$(TEST_FPC) NATIVE_FPC=$(FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH) 'OPT=$(TEST_OPT)' CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX)
endif
.PHONY: create_c_objects delete_c_objects copyfiles test_c_objects
C_SOURCE_DIR=test/cg/obj
C_SOURCES=ctest.c tcext3.c tcext4.c tcext5.c tcext6.c tcext7.c
CPP_SOURCES=cpptcl1.cpp cpptcl2.cpp
TASM_SOURCES=ttasm1.asm
ifneq ($(TEST_ABI),)
C_OBJECTS_DIR=$(C_SOURCE_DIR)/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)-$(TEST_ABI)
else
C_OBJECTS_DIR=$(C_SOURCE_DIR)/$(TEST_OS_TARGET)/$(TEST_CPU_TARGET)
endif
C_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .c,.o, $(C_SOURCES)))
CPP_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .cpp,.o, $(CPP_SOURCES)))
TASM_OBJECTS=$(addprefix $(C_OBJECTS_DIR)/, $(subst .asm,.obj, $(TASM_SOURCES)))
create_c_objects:
ifneq ($(TEST_CCOMPILER),)
$(MKDIRTREE) $(C_OBJECTS_DIR)
-$(COPY) $(addprefix $(C_SOURCE_DIR)/, $(C_SOURCES)) $(C_OBJECTS_DIR)
$(MAKE) $(C_OBJECTS)
-$(COPY) $(addprefix $(C_SOURCE_DIR)/, $(CPP_SOURCES)) $(C_OBJECTS_DIR)
$(MAKE) $(CPP_OBJECTS)
-$(DEL) $(addprefix $(C_OBJECTS_DIR)/, $(C_SOURCES) $(CPP_SOURCES))
else
$(ECHO) create_c_objects rule needs a valid C compiler in TEST_CCOMPILER variable
$(ECHO) TEST_CFLAGS variable is passed as options is used to compile the objects
endif
delete_c_objects:
ifneq ($(TEST_CCOMPILER),)
-$(DEL) $(C_OBJECTS) $(CPP_OBJECTS)
else
$(ECHO) delete_c_objects rule needs a valid C compiler in TEST_CCOMPILER variable
$(ECHO) to be able to recompile the objects using create_objects rule.
endif
$(C_OBJECTS) : %.o: %.c
$(TEST_CCOMPILER) -c $(TEST_CFLAGS) $< -o $@
$(CPP_OBJECTS) : %.o: %.cpp
$(TEST_CCOMPILER) -c $(TEST_CFLAGS) $< -o $@
copyfiles:
-$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/cg
-$(COPY) $(C_OBJECTS) $(TEST_OUTPUTDIR)/test/cg
-$(COPY) $(CPP_OBJECTS) $(TEST_OUTPUTDIR)/test/cg
ifeq ($(FULL_TARGET),i8086-msdos)
-$(COPY) $(TASM_OBJECTS) $(TEST_OUTPUTDIR)/test/cg
endif
-$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/units/system
testprep: testprep-stamp.$(TEST_FULL_TARGET)
testprep-stamp.$(TEST_FULL_TARGET): utils tstunits copyfiles
$(ECHOREDIR) $(TEST_DATETIME) > testprep-stamp.$(TEST_FULL_TARGET)
ifneq ($(TEST_FPC),ppc386$(EXEEXT))
ifeq ($(findstring -c$(TEST_FPC),$(DOTESTOPT)),)
override DOTESTOPT+=-c$(TEST_FPC)
endif
endif
ifneq ($(FULL_TARGET),$(TEST_FULL_TARGET))
override DOTESTOPT+=-T$(TEST_FULL_TARGET)
endif
ifneq ($(TEST_BINUTILSPREFIX),)
override DOTESTOPT+=-Y-XP$(TEST_BINUTILSPREFIX) -Y-Xd
endif
ifdef inDOS
override DOTESTOPT+=-X
endif
ifdef TEST_RSH
override DOTESTOPT+=-R$(TEST_RSH)
endif
ifdef TEST_SSH
override DOTESTOPT+=-R$(TEST_SSH) -S
endif
ifdef TEST_REMOTEPATH
override DOTESTOPT+=-P$(TEST_REMOTEPATH)
endif
ifdef TEST_DELBEFORE
override DOTESTOPT+=-B
endif
ifdef TEST_DELTEMP
override DOTESTOPT+=-Z
endif
ifdef TEST_TIMEOUT
override DOTESTOPT+=-O
endif
ifdef TEST_VERBOSE
override DOTESTOPT+=-V
endif
ifdef TEST_PARALLEL
override DOTESTOPT+=-L
endif
ifdef TEST_BENCH
override DOTESTOPT+=-D
endif
ifdef V
Q=
QECHO=
else
Q=@
QECHO=@echo $(1)
endif
ifdef TEST_REMOTEOPT
override DOTESTOPT+=-U$(TEST_REMOTEOPT)
endif
ifdef TEST_PUTTY
override DOTESTOPT+=-R$(TEST_PUTTY) -W
endif
ifdef TEST_ADB
override DOTESTOPT+=-ADB -R$(TEST_ADB)
endif
ifdef TEST_OPT
override DOTESTOPT+=$(addprefix -Y, $(TEST_OPT))
endif
ifdef TEST_REMOTEPW
override DOTESTOPT+=-U-pw -U$(TEST_REMOTEPW)
endif
ifdef GRAPH
override DOTESTOPT+=-g
endif
ifdef INTERACTIVE
override DOTESTOPT+=-i
endif
ifdef DOALL
override DOTESTOPT+=-a
endif
ifdef EMULATOR
override DOTESTOPT+=-M$(EMULATOR)
endif
ifdef EMULATOR_OPTS
override DOTESTOPT+=-N$(EMULATOR_OPTS)
endif
ifdef USEENV
override DOTESTENV:=$(DOTESTOPT)
override DOTESTOPT=!DOTESTENV
export DOTESTENV
endif
DIRS=webtbs webtbf tbs tbf $(TESTDIRS)
vpath %.log $(TEST_OUTPUTDIR)
vpath %.elg $(TEST_OUTPUTDIR)
vpath %.o $(C_SUBDIR)
ifdef SINGLEDOTESTRUNS
TBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp)))
TBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp)))
WEBTBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp)))
WEBTBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp)))
TESTREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
else
TBSREQ=$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET)
TBFREQ=$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET)
WEBTBSREQ=$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET)
WEBTBFREQ=$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET)
TESTREQ=$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET)
endif
%.log : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," COMPILE $<")
$(Q)$(DOTEST) $(DOTESTOPT) $<
%.elg : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," EXECUTE $<")
$(Q)$(DOTEST) $(DOTESTOPT) -e $<
ifdef TEST_CCOMPILER
%.o : %.c
$(TEST_CCOMPILER) -c $< -o $(@D)/$(C_SUBDIR)/$(@F)
%.o : %.cc
$(TEST_CCOMPILER) -c $< -o $(@D)/$(C_SUBDIR)/$(@F)
endif
.PHONY: alltbs alltbf allwebtbs allwebtbf alltest alltests
alltbs : testprep $(patsubst %.pp,%.log,$(sort $(wildcard tbs/t*.pp)))
alltbf : testprep $(patsubst %.pp,%.log,$(sort $(wildcard tbf/t*.pp)))
allwebtbs : testprep $(patsubst %.pp,%.log,$(sort $(wildcard webtbs/t*.pp)))
allwebtbf : testprep $(patsubst %.pp,%.log,$(sort $(wildcard webtbf/t*.pp)))
alltest : testprep $(patsubst %.pp,%.log,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))
endif
alltests: alltest alltbs alltbf allwebtbs allwebtbf
test_c_objects: testprep
$(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcalext*.pp))
$(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcalext*.pp))
$(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcppcl*.pp))
$(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcppcl*.pp))
ifdef SINGLEDOTESTRUNS
.PHONY: allexectbs allexectbf allexecwebtbs allexecwebtbf allexectest allexectests
allexectbs: $(addsuffix .tbslog, $(LOGFILES))
allexectbf: $(addsuffix .tbflog, $(LOGFILES))
allexecwebtbs: $(addsuffix .webtbslog, $(LOGFILES))
allexecwebtbf: $(addsuffix .webtbflog, $(LOGFILES))
allexectest: $(addsuffix .testlog, $(LOGFILES))
$(TEST_OUTPUTDIR)/%.mergedlog : $(TEST_OUTPUTDIR)/%.testlog $(TEST_OUTPUTDIR)/%.tbslog $(TEST_OUTPUTDIR)/%.tbflog $(TEST_OUTPUTDIR)/%.webtbslog $(TEST_OUTPUTDIR)/%.webtbflog
$(Q)$(CONCAT) $^ $@
$(Q)$(COPY) $@ $(basename $@)
$(TEST_OUTPUTDIR)/%.tbslog : $(TBSREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.tbslog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.tbslog
$(TEST_OUTPUTDIR)/%.tbflog : $(TBFREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.tbflog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.tbflog
$(TEST_OUTPUTDIR)/%.webtbslog : $(WEBTBSREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.webtbslog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.webtbslog
$(TEST_OUTPUTDIR)/%.webtbflog : $(WEBTBFREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.webtbflog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.webtbflog
$(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.testlog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.testlog
allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog \
$(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog \
$(TEST_OUTPUTDIR)/log.webtbflog \
$(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) \
$(addsuffix .mergedlog, $(LOGFILES))
else
.PHONY: allexectests gparmake_allexectests
MAKEINC=$(TEST_OUTPUTDIR)/MakeChunks-$(TEST_TARGETSUFFIX).inc
$(GPARMAKE): utils/gparmake.pp $(CREATELST)
$(Q)$(MAKE) $(COMPILER_UNITTARGETDIR)
$(FPC) -FE. utils/gparmake.pp $(OPT)
$(CREATELST): utils/createlst.pp
$(Q)$(MAKE) $(COMPILER_UNITTARGETDIR)
$(FPC) -FE. utils/createlst.pp $(OPT)
ifdef MAKEINC_SEPARATE
GPARMAKE_OPT=-f
else
GPARMAKE_OPT=
endif
$(MAKEINC): $(GPARMAKE) $(CREATELST)
$(Q)$(MAKE) $(TEST_OUTPUTDIR)
$(Q)$(CREATELST) filelisttest.lst $(TESTDIRS)
$(Q)$(GPARMAKE) $(GPARMAKE_OPT) $(MAKEINC) test 1 $(CHUNKSIZE) @filelisttest.lst
$(Q)$(CREATELST) filelisttbs.lst tbs
$(Q)$(GPARMAKE) -a $(GPARMAKE_OPT) $(MAKEINC) tbs 10000 $(CHUNKSIZE) @filelisttbs.lst
$(Q)$(CREATELST) filelisttbf.lst tbf
$(Q)$(GPARMAKE) -a $(GPARMAKE_OPT) $(MAKEINC) tbf 15000 $(CHUNKSIZE) @filelisttbf.lst
$(Q)$(CREATELST) filelistwebtbs.lst webtbs
$(Q)$(GPARMAKE) -a $(GPARMAKE_OPT) $(MAKEINC) webtbs 20000 $(CHUNKSIZE) @filelistwebtbs.lst
$(Q)$(CREATELST) filelistwebtbf.lst webtbf
$(Q)$(GPARMAKE) -a $(GPARMAKE_OPT) $(MAKEINC) webtbf 30000 $(CHUNKSIZE) @filelistwebtbf.lst
ifeq (,$(findstring clean,$(firstword $(MAKECMDGOALS))))
ifneq (,$(findstring all,$(MAKECMDGOALS)))
ifneq (,$(wildcard $(MAKEINC)))
include $(TEST_OUTPUTDIR)/MakeChunks-$(TEST_TARGETSUFFIX).inc
endif
endif
endif
allexectests: $(MAKEINC)
$(MAKE) gparmake_allexectests
endif
.PHONY: clean distclean clean_test clean_sources
clean_sources:
-$(DEL) $(wildcard $(patsubst %.pp,%$(PPUEXT),$(wildcard $(addsuffix /*.pp,$(DIRS)))))
clean_test:
-$(DELTREE) $(TEST_OUTPUTDIR)
-$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz$(SRCBATCHEXT)
clean: clean_sources fpc_clean
$(MAKE) clean_test CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH)
$(MAKE) -C tstunits clean CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) SUBARCH=$(TEST_SUBARCH)
-$(DEL) filelisttest.lst filelisttbs.lst filelisttbf.lst filelistwebtbs.lst filelistwebtbf.lst
distclean: clean fpc_distclean
$(DELTREE) output
$(MAKE) -C utils distclean
$(MAKE) -C tstunits distclean
-$(DEL) testprep-stamp.*
.PHONY: all full digest onlyknown onlygraph onlyinteractive
digest : utils
-$(DIGEST) $(LOG)
SVNVERSION:=$(firstword $(wildcard $(addsuffix /svnversion$(SRCEXEEXT),$(SEARCHPATH))))
GIT:=$(firstword $(wildcard $(addsuffix /git$(SRCEXEEXT),$(SEARCHPATH))))
ifneq ($(wildcard ../.git),)
ifneq ($(GIT),)
GIT_GET_HASH=$(GIT) log -1 --format=%h
SVN_TESTS_REV_STR=$(shell $(GIT_GET_HASH) .)
SVN_COMPILER_REV_STR=$(shell $(GIT_GET_HASH) ../compiler)
SVN_RTL_REV_STR=$(shell $(GIT_GET_HASH) ../rtl)
SVN_PACKAGES_REV_STR=$(shell $(GIT_GET_HASH) ../packages)
endif
else
ifneq ($(SVNVERSION),)
SVN_TESTS_REV_STR=$(shell $(SVNVERSION) -c .)
SVN_COMPILER_REV_STR=$(shell $(SVNVERSION) -c ../compiler)
SVN_RTL_REV_STR=$(shell $(SVNVERSION) -c ../rtl)
SVN_PACKAGES_REV_STR=$(shell $(SVNVERSION) -c ../packages)
endif
endif
ifeq ($(TEST_COMMENT),)
TEST_COMMENT=$(TEST_OPT)
endif
$(TEST_OUTPUTDIR)/dbdigest.cfg:
$(ECHOREDIR) OS=$(TEST_OS_TARGET) > $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) CPU=$(TEST_CPU_TARGET) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Version=$(TEST_FPC_VERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) LogFile=log >> $(TEST_OUTPUTDIR)/dbdigest.cfg
ifneq ($(TEST_USE_LONGLOG),)
$(ECHOREDIR) LongLogFile=longlog >> $(TEST_OUTPUTDIR)/dbdigest.cfg
endif
$(ECHOREDIR) Submitter=$(TEST_USER) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Machine=$(TEST_HOSTNAME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Comment=$(TEST_COMMENT) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
ifneq ($(TEST_DATETIME),)
$(ECHOREDIR) Date=$(TEST_DATETIME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
endif
ifneq ($(TEST_FPC_DATE),)
$(ECHOREDIR) CompilerDate=$(TEST_FPC_DATE) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
endif
ifneq ($(TEST_FPC_FULLVERSION),)
$(ECHOREDIR) CompilerFullVersion=$(TEST_FPC_FULLVERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
endif
ifneq ($(SVN_TESTS_REV_STR),)
$(ECHOREDIR) svntestsrevision=$(SVN_TESTS_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) svncompilerrevision=$(SVN_COMPILER_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) svnrtlrevision=$(SVN_RTL_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) svnpackagesrevision=$(SVN_PACKAGES_REV_STR) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
endif
ifeq ($(OS_SOURCE),openbsd)
ifeq ($(TARPROG),$(subst gtar,,$(TARPROG)))
BSD_SYSTEM_TAR=1
endif
endif
ifdef BSD_SYSTEM_TAR
TARFROM=-I tar.lst
else
TARFROM=--files-from=tar.lst
endif
ifneq ($(TEST_USE_LONGLOG),)
PREPUP_OPT=-ll
else
PREPUP_OPT=
endif
ifndef inWinDOS
$(TEST_OUTPUTDIR)/tar.lst:
ifdef inOS2
ifeq ($(TEST_USE_LONGLOG),)
cd $(subst /,\,$(TEST_OUTPUTDIR)) && gnufind . -name "*.log" -o -name "*.elg" > tar.lst
else
$(ECHOREDIR) longlog > $(TEST_OUTPUTDIR)/tar.lst
endif
$(ECHOREDIR) log>> $(TEST_OUTPUTDIR)/tar.lst
$(ECHOREDIR) dbdigest.cfg>> $(TEST_OUTPUTDIR)/tar.lst
else
ifeq ($(TEST_USE_LONGLOG),)
cd $(TEST_OUTPUTDIR) && find . -name '*.log' -o -name '*.elg' > tar.lst
else
$(ECHOREDIR) "longlog" > $(TEST_OUTPUTDIR)/tar.lst
endif
$(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst
$(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst
endif
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inCygWin
dos2unix $(TEST_OUTPUTDIR)/tar.lst
endif
ifdef inOS2
dos2unix $(TEST_OUTPUTDIR)/tar.lst
cd $(subst /,\,$(TEST_OUTPUTDIR)) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
else
cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
endif
else
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inDOS
$(ECHOREDIR) @echo off > dotgz$(SRCBATCHEXT)
$(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz$(SRCBATCHEXT)
$(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $PREPUP_OPT $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
$(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
$(ECHOREDIR) cd $(subst /,\,../../) >> dotgz$(SRCBATCHEXT)
$(RUNBATCH) dotgz$(SRCBATCHEXT)
else
ifdef inOS2
cd "$(subst /,\,$(TEST_OUTPUTDIR))" && "$(subst /,\,../../$(PREPUP))" $PREPUP_OPT $(DB_TARGZ)
else
cd "$(TEST_OUTPUTDIR)" && "../../$(PREPUP)" $PREPUP_OPT $(DB_TARGZ)
endif
endif
endif
ifndef DB_USE_SSH
ifdef inWinDOS
UsePutty=1
endif
endif
uploadrun: $(TEST_OUTPUTDIR)/$(DB_TARGZ)
ifdef UsePutty
pscp -load "fpc@www.freepascal.org" $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part $(SSH_EXTRA)
plink -load "fpc@www.freepascal.org" "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
else
scp $(DB_SSH_EXTRA) $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part
ifdef inOS2
$(ECHOREDIR) . | ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
else
ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
endif
endif
all : allexectests
full :
$(MAKE) clean
$(MAKE) allexectests
$(MAKE) digest
fulldb :
$(MAKE) clean
$(MAKE) allexectests
$(MAKE) digest
$(MAKE) uploadrun
tarfile : $(TEST_OUTPUTDIR)/$(DB_TARGZ)
onlyknown :
$(MAKE) full "DOTESTOPT= $(DOTESTOPT) -k-"
onlygraph :
$(MAKE) full "DOTESTOPT= $(DOTESTOPT) -g-"
onlyinteractive :
$(MAKE) "DOTESTOPT= $(DOTESTOPT) -i-"
info :
@$(ECHO) "This Makefile allows to test the compiler"
@$(ECHO)
@$(ECHO) "Basic Targets:"
@$(ECHO) " all - continue all tests"
@$(ECHO) " full - clean and run all tests"
@$(ECHO) " fulldb - full and upload test results"
@$(ECHO) " digest - compute and print test statistics"
@$(ECHO)
@$(ECHO) "Advanced Targets:"
@$(ECHO) " onlyknown - run only known bugs"
@$(ECHO) " onlygraph - run only graph tests"
@$(ECHO) " onlyinteractive - run only interactive tests"
@$(ECHO)
@$(ECHO) "Host environment:"
@$(ECHO) " $(FULL_TARGET)"
@$(ECHO) " compiler: $(FPC) ver: $(FPC_VERSION)"
@$(ECHO)
@$(ECHO) "Test environment:"
@$(ECHO) " $(TEST_FULL_TARGET)"
@$(ECHO) " compiler: $(TEST_FPC) ver: $(TEST_FPC_VERSION)"
@$(ECHO)
@$(ECHO) "Output settings:"
@$(ECHO) " DateTime : $(TEST_DATETIME)"
@$(ECHO) " Outputdir: $(TEST_OUTPUTDIR)"
@$(ECHO) " Uploaddir: $(DB_UPLOADDIR)"
@$(ECHO) " tar.gz : $(DB_TARGZ)"