diff options
author | root <root@rshg054.dnsready.net> | 2011-08-09 23:14:31 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2011-08-09 23:14:31 +0000 |
commit | a306c2530354c1c02351c4cc02eefa53c8d23eac (patch) | |
tree | 85f473f0abb92a80a4a400a7c07eed79d83880bd /community/fpc/Makefile-mk382.diff | |
parent | 5135b52f901206bbb365152084e82e92c120e0be (diff) |
Tue Aug 9 23:14:31 UTC 2011
Diffstat (limited to 'community/fpc/Makefile-mk382.diff')
-rw-r--r-- | community/fpc/Makefile-mk382.diff | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/community/fpc/Makefile-mk382.diff b/community/fpc/Makefile-mk382.diff new file mode 100644 index 000000000..00909766d --- /dev/null +++ b/community/fpc/Makefile-mk382.diff @@ -0,0 +1,174 @@ +--- Makefile.fpc.orig 2011-04-02 01:15:34.000000000 +0400 ++++ Makefile.fpc 2011-08-05 22:29:44.000000000 +0400 +@@ -4,7 +4,7 @@ + + [package] + name=compiler +-version=2.4.4 ++version=2.5.1 + + [target] + programs=pp +@@ -32,7 +32,7 @@ + unexport FPC_VERSION FPC_COMPILERINFO + + # Which platforms are ready for inclusion in the cycle +-CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb # mipsel mips ++CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr + + # All supported targets used for clean + ALLTARGETS=$(CYCLETARGETS) +@@ -148,6 +148,12 @@ + ifeq ($(CPC_TARGET),arm) + CPUSUF=arm + endif ++ifeq ($(CPC_TARGET),mips) ++CPUSUF=mips ++endif ++ifeq ($(CPC_TARGET),mipsel) ++CPUSUF=mipsel ++endif + + # Do not define the default -d$(CPU_TARGET) because that + # will conflict with our -d$(CPC_TARGET) +@@ -224,12 +230,39 @@ + override LOCALOPT+= + endif + ++# mipsel specific ++ifeq ($(PPC_TARGET),mipsel) ++override LOCALOPT+=-Fumips ++endif ++ ++ ++OPTWPOCOLLECT=-OWdevirtcalls,optvmts -FW$(BASEDIR)/pp1.wpo ++OPTWPOPERFORM=-Owdevirtcalls,optvmts -Fw$(BASEDIR)/pp1.wpo ++# symbol liveness WPO requires nm, smart linking and no stripping (the latter ++# is forced by the Makefile when necessary) ++ifneq ($(findstring $(OS_TARGET),darwin linux freebsd solaris),) ++ifdef LINKSMART ++ifdef CREATESMART ++OPTWPOCOLLECT+=-OWsymbolliveness -Xs- ++OPTWPOPERFORM+=-Owsymbolliveness ++endif ++endif ++endif ++ ++ + [rules] + ##################################################################### + # Setup Targets + ##################################################################### + + ifeq ($(OS_TARGET),win32) ++USE_CMP_FOR_DIFF=1 ++endif ++ifeq ($(OS_TARGET),win64) ++USE_CMP_FOR_DIFF=1 ++endif ++ ++ifdef USE_CMP_FOR_DIFF + ifdef CMP + override DIFF:=$(CMP) -i218 + endif +@@ -267,6 +300,8 @@ + TEMPNAME1=ppc1$(EXEEXT) + TEMPNAME2=ppc2$(EXEEXT) + TEMPNAME3=ppc3$(EXEEXT) ++TEMPWPONAME1=ppcwpo1$(EXEEXT) ++TEMPWPONAME2=ppcwpo2$(EXEEXT) + MAKEDEP=ppdep$(EXEEXT) + MSG2INC=./msg2inc$(EXEEXT) + ifdef CROSSINSTALL +@@ -327,15 +362,15 @@ + -$(DEL) $(addsuffix /*$(PPUEXT),$(COMPILERSOURCEDIR)) + + tempclean: +- -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC) ++ -$(DEL) $(PPCROSSNAME) $(TEMPNAME) $(TEMPNAME1) $(TEMPNAME2) $(TEMPNAME3) $(MSG2INC) pp1.wpo pp2.wpo + + execlean : +- -$(DEL) ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) $(EXENAME) ++ -$(DEL) ppc386$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) ppcppc64$(EXEEXT) ppcarm$(EXEEXT) ppcmips$(EXEEXT) ppcmipsel$(EXEEXT) $(EXENAME) $(TEMPWPONAME1) $(TEMPWPONAME2) + + $(addsuffix _clean,$(ALLTARGETS)): + -$(DELTREE) $(addprefix $(subst _clean,,$@),/units) + -$(DEL) $(addprefix $(subst _clean,,$@)/,*$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)) +- -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppcaxp$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcppc$(EXEEXT) $(EXENAME)) ++ -$(DEL) $(addprefix $(subst _clean,,$@)/,ppc386$(EXEEXT) ppc68k$(EXEEXT) ppcx64$(EXEEXT) ppcppc$(EXEEXT) ppcsparc$(EXEEXT) ppcppc64$(EXEEXT) ppcarm$(EXEEXT) ppcmips$(EXEEXT) ppcmipsel$(EXEEXT) $(EXENAME)) + + cycleclean: cleanall $(addsuffix _clean,$(CPC_TARGET)) + -$(DEL) $(EXENAME) +@@ -444,6 +479,28 @@ + # Normal cycle + # + ++ifndef NOWPOCYCLE ++ifdef RELEASE ++DOWPOCYCLE=1 ++# Two WPO cycles in case of RELEASE=1 ++wpocycle: ++# don't use cycle_clean, it will delete the compiler utilities again ++ $(RM) $(EXENAME) ++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(LOCALOPT) $(OPTWPOCOLLECT)' compiler ++ $(RM) $(EXENAME) ++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(RTLOPT) $(OPTWPOPERFORM)' rtlclean rtl ++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OPT=$(LOCALOPT) $(OPTWPOPERFORM) $(subst pp1.wpo,pp2.wpo,$(OPTWPOCOLLECT))' $(addsuffix _clean,$(ALLTARGETS)) compiler ++ $(MOVE) $(EXENAME) $(TEMPWPONAME1) ++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPWPONAME1)' 'OPT=$(RTLOPT) $(subst pp1.wpo,pp2.wpo,$(OPTWPOPERFORM))' rtlclean rtl ++ $(MAKE) 'FPC=$(BASEDIR)/$(TEMPWPONAME1)' 'OPT=$(LOCALOPT) $(subst pp1.wpo,pp2.wpo,$(OPTWPOPERFORM))' $(addsuffix _clean,$(ALLTARGETS)) compiler ++ $(COPY) $(EXENAME) $(TEMPWPONAME2) ++endif ++endif ++ ++ifndef DOWPOCYCLE ++wpocycle: ++endif ++ + # Used to avoid unnecessary steps + ifdef DIFF + ifdef OLDFPC +@@ -490,6 +547,7 @@ + $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next + $(DIFF) $(TEMPNAME3) $(EXENAME) + $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAME)' ++ $(MAKE) wpocycle + $(MAKE) echotime + + else +@@ -508,8 +566,11 @@ + # ppc<ARCH> (target native) + ifndef CROSSINSTALL + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' rtlclean rtl ++# building a native compiler for embedded targets is not possible ++ifneq ($(OS_TARGET),embedded) + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' cycleclean compiler + endif ++endif + + endif + +@@ -523,10 +584,10 @@ + # ppc3/ppcXXX = native (skipped for cross installation) + # + ++cycle: override FPC= + cycle: + # ppc (source native) + # Clear detected compiler binary, because it can be existing crosscompiler binary, but we need native compiler here +-override FPC= + $(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 + # ppcross<ARCH> (source native) +@@ -535,8 +596,11 @@ + # ppc<ARCH> (target native) + ifndef CROSSINSTALL + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' rtlclean rtl ++# building a native compiler for embedded targets is not possible ++ifneq ($(OS_TARGET),embedded) + $(MAKE) 'FPC=$(BASEDIR)/$(PPCROSSNAME)' 'OPT=$(OPT) $(CROSSOPT)' cycleclean compiler + endif ++endif + + endif + |