mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 13:09:35 +02:00
Refactor setting of NoNativeBinaries:
Added NO_NATIVE_COMPILER_CPU_LIST and NO_NATIVE_COMPILER_OS_LIST Set NoNativeBinaries if target CPU is different from source CPU and target CPU is in NO_NATIVE_COMPILER_CPU_LIST. Set NoNativeBinaries if target OS is different from source OS and target CPU is in NO_NATIVE_COMPILER_CPU_LIST. Add FORCE_NATIVE_BINARIES variable to be able to overrule default behavior of NoNativeBinaries=1 git-svn-id: trunk@47043 -
This commit is contained in:
parent
963fe73d19
commit
399552d350
compiler
@ -352,6 +352,24 @@ override PACKAGE_VERSION=3.3.1
|
||||
unexport FPC_VERSION FPC_COMPILERINFO
|
||||
CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086 aarch64 sparc64 riscv32 riscv64 xtensa z80
|
||||
ALLTARGETS=$(CYCLETARGETS)
|
||||
NO_NATIVE_COMPILER_OS_LIST=amstradcpc embedded freertos gba macosclassic msdos msxdos nds palmos symbian watcom wii win16 zxspectrum
|
||||
NO_NATIVE_COMPILER_CPU_LIST=avr i8086 jvm z80
|
||||
ifneq ($(CPU_SOURCE),$(CPU_TARGET))
|
||||
ifneq ($(findstring $(CPU_TARGET),$(NO_NATIVE_COMPILER_CPU_LIST)),)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
endif
|
||||
ifneq ($(OS_SOURCE),$(OS_TARGET))
|
||||
ifneq ($(findstring $(OS_TARGET),$(NO_NATIVE_COMPILER_OS_LIST)),)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
endif
|
||||
ifndef FORCE_NATIVE_BINARIES
|
||||
ifeq ($(NoNativeBinaries),1)
|
||||
override EXEEXT=$(SRCEXEEXT)
|
||||
CROSSINSTALL=1
|
||||
endif
|
||||
endif
|
||||
ifdef POWERPC
|
||||
PPC_TARGET=powerpc
|
||||
endif
|
||||
@ -613,37 +631,6 @@ OPTWPOPERFORM+=-Owsymbolliveness
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CPU_TARGET),jvm)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),embedded)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),gba)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),msdos)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),nds)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),win16)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),macosclassic)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),freertos)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),zxspectrum)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(NoNativeBinaries),1)
|
||||
override EXEEXT=$(SRCEXEEXT)
|
||||
CROSSINSTALL=1
|
||||
endif
|
||||
ifeq ($(FULL_TARGET),i386-linux)
|
||||
override TARGET_DIRS+=utils
|
||||
endif
|
||||
@ -2725,15 +2712,34 @@ ifneq ($(findstring sparc64,$(shell uname -a)),)
|
||||
ifeq ($(BINUTILSPREFIX),)
|
||||
GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
|
||||
else
|
||||
ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),)
|
||||
CROSSGCCOPT=-mabi=32
|
||||
else
|
||||
CROSSGCCOPT=-m32
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifdef FPCFPMAKE
|
||||
FPCFPMAKE_CPU_TARGET=$(shell $(FPCFPMAKE) -iTP)
|
||||
ifeq ($(CPU_TARGET),$(FPCFPMAKE_CPU_TARGET))
|
||||
FPCMAKEGCCLIBDIR:=$(GCCLIBDIR)
|
||||
else
|
||||
ifneq ($(findstring $(FPCFPMAKE_CPU_TARGET),aarch64 powerpc64 riscv64 sparc64 x86_64),)
|
||||
FPCMAKE_CROSSGCCOPT=-m64
|
||||
else
|
||||
ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips64 mips64el),)
|
||||
FPCMAKE_CROSSGCCOPT=-mabi=64
|
||||
else
|
||||
ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),)
|
||||
FPCMAKE_CROSSGCCOPT=-mabi=32
|
||||
else
|
||||
FPCMAKE_CROSSGCCOPT=-m32
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`)
|
||||
endif
|
||||
endif
|
||||
ifndef FPCMAKEGCCLIBDIR
|
||||
|
@ -37,6 +37,33 @@ CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr
|
||||
# All supported targets used for clean
|
||||
ALLTARGETS=$(CYCLETARGETS)
|
||||
|
||||
# All OS targets that do not support native compiler
|
||||
NO_NATIVE_COMPILER_OS_LIST=amstradcpc embedded freertos gba macosclassic msdos msxdos nds palmos symbian watcom wii win16 zxspectrum
|
||||
# All CPU targets that do not support native compiler
|
||||
NO_NATIVE_COMPILER_CPU_LIST=avr i8086 jvm z80
|
||||
|
||||
# Don't compile a native compiler & utilities for targets
|
||||
# which do not support it
|
||||
ifneq ($(CPU_SOURCE),$(CPU_TARGET))
|
||||
ifneq ($(findstring $(CPU_TARGET),$(NO_NATIVE_COMPILER_CPU_LIST)),)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(OS_SOURCE),$(OS_TARGET))
|
||||
ifneq ($(findstring $(OS_TARGET),$(NO_NATIVE_COMPILER_OS_LIST)),)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef FORCE_NATIVE_BINARIES
|
||||
ifeq ($(NoNativeBinaries),1)
|
||||
override EXEEXT=$(SRCEXEEXT)
|
||||
# In those cases, installation in a cross-installation
|
||||
CROSSINSTALL=1
|
||||
endif
|
||||
endif
|
||||
|
||||
# Allow POWERPC, POWERPC64, M68K, I386, jvm defines for target cpu
|
||||
ifdef POWERPC
|
||||
PPC_TARGET=powerpc
|
||||
@ -380,43 +407,6 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Don't compile a native compiler & utilities for JVM and embedded
|
||||
# targets
|
||||
ifeq ($(CPU_TARGET),jvm)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),embedded)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),gba)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),msdos)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),nds)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),win16)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),macosclassic)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),freertos)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
ifeq ($(OS_TARGET),zxspectrum)
|
||||
NoNativeBinaries=1
|
||||
endif
|
||||
|
||||
# Allow install for jvm
|
||||
ifeq ($(NoNativeBinaries),1)
|
||||
override EXEEXT=$(SRCEXEEXT)
|
||||
# In those cases, installation in a cross-installation
|
||||
CROSSINSTALL=1
|
||||
endif
|
||||
|
||||
[rules]
|
||||
#####################################################################
|
||||
# Setup Targets
|
||||
|
Loading…
Reference in New Issue
Block a user