From f369069965dc1d6d8c3e2dfb7e7f7720116467ce Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 13 Jun 2012 08:04:44 +0000 Subject: [PATCH] + Add CYCLELEVEL variable, whose value can be from 1 to 3 to be able to modify used options at a specific level, using OPTLEVELX, LOCALOPTLEVELX and RTLOPTLEVELX with X being the current value of CYCLELEVEL. extcycle: Append to value of OPT variable instead of overwriting it. fullcycle: Remove i386 target for x86_64 source cpu as this does not work for windows-64bit. git-svn-id: trunk@21589 - --- compiler/Makefile.fpc | 53 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc index 7b92695a05..8f24b83262 100644 --- a/compiler/Makefile.fpc +++ b/compiler/Makefile.fpc @@ -123,6 +123,33 @@ ifndef RTLOPT RTLOPT:=$(OPT) endif +ifdef CYCLELEVEL +ifeq ($(CYCLELEVEL),1) +LOCALOOPT+=$(OPTLEVEL1) +RTLOPT+=$(OPTLEVEL1) +LOCALOPT+=$(LOCALOPTLEVEL1) +RTLOPT+=$(RTLOPTLEVEL1) +endif +ifeq ($(CYCLELEVEL),2) +LOCALOOPT+=$(OPTLEVEL2) +RTLOPT+=$(OPTLEVEL2) +LOCALOPT+=$(LOCALOPTLEVEL2) +RTLOPT+=$(RTLOPTLEVEL2) +endif +ifeq ($(CYCLELEVEL),3) +LOCALOOPT+=$(OPTLEVEL3) +RTLOPT+=$(OPTLEVEL3) +LOCALOPT+=$(LOCALOPTLEVEL3) +RTLOPT+=$(RTLOPTLEVEL3) +endif +ifeq ($(CYCLELEVEL),4) +LOCALOOPT+=$(OPTLEVEL4) +RTLOPT+=$(OPTLEVEL4) +LOCALOPT+=$(LOCALOPTLEVEL4) +RTLOPT+=$(RTLOPTLEVEL4) +endif +endif + # Make OPT empty. It is copied to LOCALOPT and RTLOPT override OPT= @@ -582,23 +609,23 @@ next : endif $(TEMPNAME1) : - $(MAKE) 'OLDFPC=' next + $(MAKE) 'OLDFPC=' next CYCLELEVEL=1 -$(DEL) $(TEMPNAME1) $(MOVE) $(EXENAME) $(TEMPNAME1) $(TEMPNAME2) : $(TEMPNAME1) - $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME1)' 'OLDFPC=' next + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME1)' 'OLDFPC=' next CYCLELEVEL=2 -$(DEL) $(TEMPNAME2) $(MOVE) $(EXENAME) $(TEMPNAME2) $(TEMPNAME3) : $(TEMPNAME2) - $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME2)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME1)' next + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME2)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME1)' next CYCLELEVEL=3 -$(DEL) $(TEMPNAME3) $(MOVE) $(EXENAME) $(TEMPNAME3) cycle: $(MAKE) tempclean $(TEMPNAME3) - $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next CYCLELEVEL=4 $(DIFF) $(TEMPNAME3) $(EXENAME) $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)' $(MAKE) wpocycle @@ -613,10 +640,10 @@ else cycle: # ppc (source native) $(MAKE) OS_TARGET=$(OS_SOURCE) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl - $(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler + $(MAKE) OS_TARGET=$(OS_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler CYCLELEVEL=1 # ppcross (source native) $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl - $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) EXENAME=$(PPCROSSNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler CYCLELEVEL=2 # ppc (target native) ifndef CROSSINSTALL $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl @@ -624,7 +651,7 @@ ifndef CROSSINSTALL ifneq ($(OS_TARGET),embedded) # building a native compiler for the arm-gba target is not possible ifneq ($(OS_TARGET),gba) - $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler CYCLELEVEL=3 endif endif endif @@ -646,16 +673,16 @@ cycle: # ppc (source native) # Clear detected compiler binary, because it can be existing crosscompiler binary, but we need native compiler here $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl - $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler + $(MAKE) OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) EXENAME=$(TEMPNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler CYCLELEVEL=1 # ppcross (source native) $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 rtlclean rtl - $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME)' OS_TARGET=$(OS_SOURCE) CPU_TARGET=$(CPU_SOURCE) PPC_TARGET=$(CPU_TARGET) EXENAME=$(PPCROSSNAME) CROSSBINDIR= BINUTILSPREFIX= CROSSCYCLEBOOTSTRAP=1 cycleclean compiler CYCLELEVEL=2 # ppc (target native) ifndef CROSSINSTALL $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(RTLOPT) $(CROSSOPT)' rtlclean rtl # building a native compiler for JVM and embedded targets is not possible ifndef NoNativeBinaries - $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(LOCALOPT) $(CROSSOPT)' cycleclean compiler + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(LOCALOPT) $(CROSSOPT)' cycleclean compiler CYCLELEVEL=3 endif endif @@ -665,7 +692,7 @@ cycledep: $(MAKE) cycle USEDEPEND=1 extcycle: - $(MAKE) cycle OPT='-n -OG2p3 -glttt -CRriot -dEXTDEBUG' + $(MAKE) cycle OPT="$(OPT) -n -OG2p3 -glttt -CRriot -dEXTDEBUG" cvstest: $(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPT=-n -Se' @@ -685,7 +712,11 @@ full: fullcycle fullcycle: $(MAKE) cycle $(MAKE) ppuclean +ifneq ($(CPU_SOURCE),x86_64) $(MAKE) $(filter-out $(PPC_TARGET),$(CYCLETARGETS)) 'FPC=$(BASEDIR)/$(EXENAME)' +else + $(MAKE) $(filter-out i386,$(filter-out $(PPC_TARGET),$(CYCLETARGETS))) 'FPC=$(BASEDIR)/$(EXENAME)' +endif ##################################################################### # Docs