From a306c2530354c1c02351c4cc02eefa53c8d23eac Mon Sep 17 00:00:00 2001 From: root Date: Tue, 9 Aug 2011 23:14:31 +0000 Subject: Tue Aug 9 23:14:31 UTC 2011 --- community/fpc/Makefile-mk382.diff | 174 ++++++++++++++++++++++++++++++++++++++ community/fpc/PKGBUILD | 21 ++++- 2 files changed, 191 insertions(+), 4 deletions(-) create mode 100644 community/fpc/Makefile-mk382.diff (limited to 'community/fpc') 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 (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 (source native) +@@ -535,8 +596,11 @@ + # ppc (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 + diff --git a/community/fpc/PKGBUILD b/community/fpc/PKGBUILD index 16dd11444..6402d9213 100644 --- a/community/fpc/PKGBUILD +++ b/community/fpc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 48312 2011-05-31 09:49:30Z spupykin $ +# $Id: PKGBUILD 53775 2011-08-08 08:05:51Z spupykin $ # Maintainer: Sergej Pupykin # Contributor: Valeriy Lyasotskiy # Contributor: Jan Willemson @@ -8,7 +8,7 @@ pkgname=fpc pkgver=2.4.4 -pkgrel=1 +pkgrel=3 pkgdesc="The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32bit Pascal Compiler. It comes with fully TP 7.0 compatible run-time library." arch=('i686' 'x86_64') url="http://www.freepascal.org/" @@ -17,18 +17,31 @@ backup=("etc/fpc.cfg") depends=(ncurses) makedepends=(fpc) options=(zipman) -source=(ftp://ftp.freepascal.org/pub/fpc/dist/$pkgver/source/fpcbuild-$pkgver.tar.gz) -md5sums=('d069dfd3412bd0d26dcd1b81ac998305') +source=(ftp://ftp.freepascal.org/pub/fpc/dist/$pkgver/source/fpcbuild-$pkgver.tar.gz + Makefile-mk382.diff) +md5sums=('d069dfd3412bd0d26dcd1b81ac998305' + 'a2242d261b055d08fa4d70e88ca1d1a7') build() { cd ${srcdir}/fpcbuild-$pkgver + pushd fpcsrc/compiler + patch -uN Makefile.fpc $srcdir/Makefile-mk382.diff + fpcmake -Tall + popd make NOGDB=1 build +# make NOGDB=1 build OS_TARGET=win32 CPU_TARGET=i386 } package() { cd ${srcdir}/fpcbuild-$pkgver + + export HOME=$srcdir + make -j1 NOGDB=1 PREFIX=${pkgdir}/usr install +# make NOGDB=1 PREFIX=${pkgdir}/usr crossinstall OS_TARGET=win32 CPU_TARGET=i386 +# ln -s /usr/lib/fpc/$pkgver/ppcross386 $pkgdir/usr/bin/ppcross386 + # install package license install -m 755 -d ${pkgdir}/usr/share/licenses/${pkgname} install -m 644 fpcsrc/rtl/COPYING.FPC ${pkgdir}/usr/share/licenses/${pkgname}/ -- cgit v1.2.3-54-g00ecf