From 339424ae106b7601ac6b7e6ff1e6f41cbafb2bd2 Mon Sep 17 00:00:00 2001 From: Harald van Dijk Date: Tue, 9 Jun 2009 21:04:10 +0000 Subject: fpc: Install HTML documentation for fpc-ide; fpc/fpc-ide/lazarus: use clean fpc configuration and drop warnings about fpc.cfg (Portage version: 2.2_rc33/cvs/Linux i686) --- dev-lang/fpc/ChangeLog | 8 ++- dev-lang/fpc/fpc-2.2.4-r1.ebuild | 133 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 dev-lang/fpc/fpc-2.2.4-r1.ebuild (limited to 'dev-lang/fpc') diff --git a/dev-lang/fpc/ChangeLog b/dev-lang/fpc/ChangeLog index 4e3e0916b0d8..01d5535092af 100644 --- a/dev-lang/fpc/ChangeLog +++ b/dev-lang/fpc/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-lang/fpc # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/ChangeLog,v 1.47 2009/04/23 21:05:03 truedfx Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/ChangeLog,v 1.48 2009/06/09 21:04:10 truedfx Exp $ + +*fpc-2.2.4-r1 (09 Jun 2009) + + 09 Jun 2009; Harald van Dijk +fpc-2.2.4-r1.ebuild: + Install HTML documentation instead of PDF files, so that fpc-ide can + display it. Drop warning about -Xs. *fpc-2.2.4 (23 Apr 2009) diff --git a/dev-lang/fpc/fpc-2.2.4-r1.ebuild b/dev-lang/fpc/fpc-2.2.4-r1.ebuild new file mode 100644 index 000000000000..60c8eae56c13 --- /dev/null +++ b/dev-lang/fpc/fpc-2.2.4-r1.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.2.4-r1.ebuild,v 1.1 2009/06/09 21:04:10 truedfx Exp $ + +inherit eutils + +S="${WORKDIR}/fpcbuild-${PV}/fpcsrc" + +HOMEPAGE="http://www.freepascal.org/" +DESCRIPTION="Free Pascal Compiler" +SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz + x86? ( mirror://sourceforge/freepascal/fpc-2.2.4.i386-linux.tar ) + sparc? ( mirror://sourceforge/freepascal/fpc-2.2.4.sparc-linux.tar ) + ppc? ( mirror://sourceforge/freepascal/fpc-2.2.4.powerpc-linux.tar ) + amd64? ( mirror://sourceforge/freepascal/fpc-2.2.4.x86_64-linux.tar ) + doc? ( mirror://sourceforge/freepascal/fpc-${PV}-doc-html.tar.gz + mirror://gentoo/fpc-${PV}-fpctoc.htx.bz2 )" + +SLOT="0" +LICENSE="GPL-2 LGPL-2.1 LGPL-2.1-FPC" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="doc source" + +DEPEND="!dev-lang/fpc-bin + !dev-lang/fpc-source" +RDEPEND="${DEPEND}" +DEPEND="${DEPEND} + >=sys-devel/binutils-2.19.1-r1" + +src_unpack() { + case ${ARCH} in + x86) FPC_ARCH="i386" PV_BIN=2.2.4 ;; + ppc) FPC_ARCH="powerpc" PV_BIN=2.2.4 ;; + amd64) FPC_ARCH="x86_64" PV_BIN=2.2.4 ;; + sparc) FPC_ARCH="sparc" PV_BIN=2.2.4 ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + unpack ${A} || die "Unpacking ${A} failed!" + + tar -xf binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!" + tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!" + + cd "${S}" + epatch "${FILESDIR}"/${P}-execstack.patch + sed -i -e 's/ -Xs / /g' $(find . -name Makefile) || die "sed failed" +} + +set_pp() { + case ${ARCH} in + x86) FPC_ARCH="386" ;; + ppc) FPC_ARCH="ppc" ;; + amd64) FPC_ARCH="x64" ;; + sparc) FPC_ARCH="sparc" ;; + *) die "This ebuild doesn't support ${ARCH}." ;; + esac + + case ${1} in + bootstrap) pp="${WORKDIR}"/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;; + new) pp="${S}"/compiler/ppc${FPC_ARCH} ;; + *) die "set_pp: unknown argument: ${1}" ;; + esac +} + +src_compile() { + local pp + + # Using the bootstrap compiler. + set_pp bootstrap + + emake -j1 PP="${pp}" compiler_cycle || die "make compiler_cycle failed!" + + # Save new compiler from cleaning... + cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new + + # ...rebuild with current version... + emake -j1 PP="${S}"/ppc${FPC_ARCH}.new compiler_cycle || die "make compiler_cycle failed!" + + # ..and clean up afterwards + rm "${S}"/ppc${FPC_ARCH}.new + + # Using the new compiler. + set_pp new + + emake -j1 PP="${pp}" rtl_clean || die "make rtl_clean failed" + + emake -j1 PP="${pp}" rtl packages_all utils || die "make failed" +} + +src_install() { + local pp + set_pp new + + set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \ + INSTALL_PREFIX="${D}"usr \ + INSTALL_DOCDIR="${D}"usr/share/doc/${P} \ + INSTALL_MANDIR="${D}"usr/share/man \ + INSTALL_SOURCEDIR="${D}"usr/lib/fpc/${PV}/source + + emake -j1 "$@" compiler_install rtl_install packages_install \ + utils_install || die "make install failed!" + + dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH} + + if ! has nodoc ${FEATURES} ; then + cd "${S}"/../install/doc + emake -j1 "$@" installdoc || die "make installdoc failed!" + fi + + if ! has noman ${FEATURES} ; then + cd "${S}"/../install/man + emake -j1 "$@" installman || die "make installman failed!" + fi + + if ! has nodoc ${FEATURES} && use doc ; then + cd "${S}"/../../share/doc/fpdocs-${PV} + insinto /usr/share/doc/${P} + doins -r * || die "doins fpdocs failed" + newins "${WORKDIR}"/fpc-${PV}-fpctoc.htx fpctoc.htx || die "newins fpctoc.htx failed" + fi + + if use source ; then + cd "${S}" + shift + emake -j1 PP="${D}"usr/bin/ppc${FPC_ARCH} "$@" sourceinstall || die "make sourceinstall failed!" + find "${D}"usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \; + fi + + "${D}"usr/lib/fpc/${PV}/samplecfg "${D}"usr/lib/fpc/${PV} "${D}"etc || die "samplecfg failed" + sed -i -e "s:${D}:/:g" "${D}"etc/fpc.cfg || die "sed fpc.cfg failed" + + rm -rf "${D}"usr/lib/fpc/lexyacc +} -- cgit v1.2.3-65-gdbad