summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald van Dijk <truedfx@gentoo.org>2009-06-09 21:04:10 +0000
committerHarald van Dijk <truedfx@gentoo.org>2009-06-09 21:04:10 +0000
commit339424ae106b7601ac6b7e6ff1e6f41cbafb2bd2 (patch)
treeb92859036e917ab7783f583742d86220a5261323 /dev-lang/fpc
parentInitial commit (diff)
downloadgentoo-2-339424ae106b7601ac6b7e6ff1e6f41cbafb2bd2.tar.gz
gentoo-2-339424ae106b7601ac6b7e6ff1e6f41cbafb2bd2.tar.bz2
gentoo-2-339424ae106b7601ac6b7e6ff1e6f41cbafb2bd2.zip
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)
Diffstat (limited to 'dev-lang/fpc')
-rw-r--r--dev-lang/fpc/ChangeLog8
-rw-r--r--dev-lang/fpc/fpc-2.2.4-r1.ebuild133
2 files changed, 140 insertions, 1 deletions
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 <truedfx@gentoo.org> +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
+}