Portage is a package management system used by Gentoo Linux
# ChangeLog for dev-lang/fpc
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/ChangeLog,v 1.42 2008/06/25 19:46:03 nixnut Exp $
25 Jun 2008; nixnut
Stable on ppc wrt bug 194646
22 Jun 2008;
Stable on amd64; bug 194646
20 Jun 2008; Christian Faulhammer
quote variables
20 Jun 2008; Christian Faulhammer
stable x86, bug 194646
*fpc-2.2.0 (13 Sep 2007)
13 Sep 2007; Harald van Dijk
Version bump
30 Jun 2007; Harald van Dijk
Add RESTRICT=strip, #183604
20 Jun 2007; Harald van Dijk
Don't install documentation with dodoc; compressed PDFs are not readable
21 Feb 2007; Piotr Jaroszyński
Transition to Manifest2.
31 Jan 2007; Marius Mauch
fpc-2.0.2.ebuild:
Replacing einfo with elog
03 Jan 2007; Harald van Dijk
Block older findutils to avoid having more people run into problems (#148570)
09 Sep 2006; Harald van Dijk
Use pregenerated docs to avoid sandbox violations (#146804)
31 Aug 2006; Harald van Dijk
Fix set_pp for amd64 & ppc
*fpc-2.0.4 (30 Aug 2006)
30 Aug 2006; Harald van Dijk
+fpc-2.0.4.ebuild:
Version bump
05 Aug 2006; Harald van Dijk
Build & install FreeVision library
19 Apr 2006; Carsten Lohrke
Do not install .svn directories, bug #119597.
22 Dec 2005; Herbie Hopkins
fix digest on fpc-2.0.0.x86_64-linux.tar, bug 116370.
17 Dec 2005; Carsten Lohrke
restore ebuild for dev-lang/lazarus
*fpc-2.0.2 (17 Dec 2005)
17 Dec 2005; Carsten Lohrke
-fpc-1.9.5_pre20040820.ebuild, -fpc-2.0.0_rc2.ebuild, -fpc-2.0.0.ebuild,
-fpc-2.0.0-r1.ebuild, +fpc-2.0.2.ebuild:
version bump
14 Oct 2005; Gustavo Zacarias
Added sparc support and keyworded accordingly
15 Sep 2005; Marcelo Goes
fpc-1.9.5_pre20040820.ebuild:
Add app-arch/unzip to DEPEND for bug 69831.
24 Jul 2005; Herbie Hopkins
Added amd64 support thanks to Matthias Jansen.
*fpc-2.0.0-r1 (03 Jul 2005)
03 Jul 2005; Carsten Lohrke
added optional documentation
27 Jun 2005; Aron Griffis
fpc-2.0.0.ebuild:
Fix src_compile to call set_pp instead of set_compiler
26 Jun 2005; David Holm
Added to ~ppc.
25 Jun 2005; Aron Griffis
Install the man-pages too
*fpc-2.0.0 (25 Jun 2005)
25 Jun 2005; Aron Griffis
fpc-1.9.5_pre20040820.ebuild, fpc-2.0.0_rc2.ebuild, +fpc-2.0.0.ebuild:
Update to 2.0.0 and clean up these ebuilds #93233
19 Apr 2005; Elfyn McBratney
Remove retired developer from metadata.xml.
31 Mar 2005; Chris White
Wasn't supposed to be stable marked when imported.
*fpc-2.0.0_rc2 (31 Mar 2005)
31 Mar 2005; Chris White
Closing part 1 of 2 for Bug #87337. Thanks to expose for the ebuild.
*fpc-1.9.5_pre20040820 (21 Jan 2005)
21 Jan 2005; Chris White
+fpc-1.9.5_pre20040820.ebuild:
Fixing bug #71677. Renaming fpc-source to fpc.
26 Aug 2004; Chris White
fpc-source-1.9.5_pre20040820.ebuild:
FPC asm doesn't go too well with amd64. -arch marking. Used zhen's dev box to verify this.
22 Aug 2004; Chris White
fpc-source-1.9.5_pre20040820.ebuild:
Changed to emake -j1 since the makefile apparently doesn't like parallel makes.
22 Aug 2004; Chris White
fpc-source-1.9.5_pre20040820.ebuild:
Added fpc blocker.
*fpc-source-1.9.5_pre20040820 (22 Aug 2004)
22 Aug 2004; Chris White
+fpc-source-1.9.5_pre20040820.ebuild:
Initial package import. Adding myself as maintainer.
DIST fpc-2.0.0.i386-linux.tar 21360640 RMD160 b077d19b5042c2401333d9a225683197d4ac0f8e SHA1 63e5b475f3715b508b0f45e37b975a741504edfd SHA256 18f017a6c5c1af5a3eaac4e1210d6ebc210eb3d2fbbe105efdbab2e5f4c9bfa2
DIST fpc-2.0.0.powerpc-linux.tar 22231040 RMD160 93ec2e6664f14bfb1a4dae8995b73d194448b75c SHA1 904b4b26b25c7c5d60e49a51b9bebeefe7e88a84 SHA256 18c0ec2eadf66e986f321402ad4d6d84e4d1a96276c003f3530cca07aec28e23
DIST fpc-2.0.0.source.tar.gz 21040763 RMD160 b4636f22fd311a562635a3163d1e56647d66b4b6 SHA1 074dc87fdc866c0380e8b836be9b16d1931d8228 SHA256 d2751eb72d8a509e503cdd31a9e7ac6b5ac5c88016e001f8d009ee1f4fa6d459
DIST fpc-2.0.0.sparc-linux.tar 22272000 RMD160 4dfc0da46b3d8c67671ddcb1aeb46f0b4fda3e7c SHA1 4adac0cb2b0d8d6b935a5598eda34500c1ae6299 SHA256 a6929aea5e5c962a874beaba23f17b52b82001d1c5d6b384e51d92d5b27cbd41
DIST fpc-2.0.0.x86_64-linux.tar 18380800 RMD160 843a297def69d1baaa4c8bce78fb40d6ade285fa SHA1 a2c88d71ff2ff2326a0ed55b90f28b5613c6b4b3 SHA256 6a0d19bb9f44fe2bbf8c070bd1281eed2e9b7874047370fe6f33c8cc607d9962
DIST fpc-2.0.2.source.tar.gz 13404431 RMD160 683719e484dbf770565db1f9ba065c6b4c08ac1d SHA1 611593bb882cf77268405fe3048bb5b36ebc731e SHA256 b49a9044392484b7fe54163ab6e5fa7cb4fb47c8851c6934edadfb0de0796cc3
DIST fpc-2.0.4.i386-linux.tar 23818240 RMD160 582a1eb3fe723d12f9aa15c06de23e1826261720 SHA1 3e3796e4c91709658b007189317ed196fcfce74f SHA256 debd4497b46a3402d47a0f4b104d6f386da7468297d6120944c52dabc4fe5a2c
DIST fpc-2.0.4.powerpc-linux.tar 24330240 RMD160 8623b3c2ad59e8895fb329593f1c77e2bf268ac9 SHA1 3b22b3ecf0795488dca97a86cd039736fcc60161 SHA256 9927c0aff1b46af55ba7e39df9cde465bddd02242610df373659ec32076f4e0b
DIST fpc-2.0.4.x86_64-linux.tar 22579200 RMD160 c361ec237cf2e54d2462a7e987e5749898ed7346 SHA1 60526f416cbe7b50683def1284d3a0ceec3e7f72 SHA256 619ce0b4e93d0e8f6334443f2a950bfa1281b2c4d21033b8a54e84942b2406ee
DIST fpc-2.2.0-doc-pdf.tar.gz 7284104 RMD160 965f71056c05f478a1d657b4bcff325df22687f9 SHA1 0c100ceb7c1ca610ec75af61ea31bdc32c24d6c8 SHA256 f9f20f68a37de75b4a02a0fef40f669409a903f8e8b970b121c98540eafc6b64
DIST fpc-2.2.0.i386-linux.tar 31037440 RMD160 a8e332b06514a962eeaa132f9379cf7c7dadb0c3 SHA1 00c66e44c94859910d3a12b8e4ccca3fb7a56338 SHA256 6c5eb2ad9925cf35cd670f17eeb6e79af23b46dade2624f9c2235579ad56d75f
DIST fpc-2.2.0.powerpc-linux.tar 28856320 RMD160 bdd2e89ec77b8bfee56ff256b6352841469596fc SHA1 babb45f79c6a42328d0d01521722dc8fae5194c4 SHA256 958384425dcf11b4b00e71a225179e7202ecf8c29c34df801cdb5b825c7f1728
DIST fpc-2.2.0.x86_64-linux.tar 27064320 RMD160 c4b456afbebbc9ccf5b49a1b8c84c24dc2efa77d SHA1 a82d1f62acf20638c4c6053631ca3cdc4d04f3f9 SHA256 0615a5b54b871eb33ef2791069f16ee280bbc4042c46aaf5c64f685f02c60437
DIST fpc-docs-2.0.2.tar.gz 6347946 RMD160 dab2b52ac18e339705972554a9d365a8b2a69cbb SHA1 5f9b7acd2991f74008e18a452017fc972e8c9ce6 SHA256 7cd328c42d94be2852217bb20b7efb1f7ca40e066c14a920881c232afc9d0e22
DIST fpc-man-2.0.2.tar.gz 25843 RMD160 d54b0eff28665786e76810bb9fb62600954e9cf6 SHA1 9d8a3d975d4cd8279b8908faf6b71112da88f5ad SHA256 53e6c7fc73d29e5603016ae0c8fde02a030725c17c17b3a07f4a5292a4851290
DIST fpcbuild-2.0.4.tar.gz 26749033 RMD160 7f9d8776fff666e4d946c059dc2167c2ec4d0f0b SHA1 69258600bf07a428549da70f190fbf8ff8af2f51 SHA256 4cb307dcb0d0d5cf0a3d0cd6abca917c7002ffb1fc96363ce42121dfa9aeaf6b
DIST fpcbuild-2.2.0.tar.gz 35801603 RMD160 d27530092aac60758b37265dfa3200333b7b677c SHA1 bf7abac8a260cae614c717ebce18ff8ad708dfe3 SHA256 55c6fe8df0a09b15c1bc5cbf6c7df12ee955f86933fdf624f26fda59636d7a5f
DIST fpcdocs-2.0.4.tar.bz2 6590850 RMD160 02d06e23e69671a0c72876099b6f2be0f9af3b70 SHA1 ef28745b87bdf5190f0689bbb16dfc43f38c677b SHA256 175af23d071cf9ddca04533cb5ed1b781d56b5501040c8405d1a3078c22bdaf0
EBUILD fpc-2.0.0-r1.ebuild 3983 RMD160 80bc16aa1ccba7679bf7bddc56339c5bc08313ba SHA1 dd936da5e222a81fed72edf347b6da2b23b68bd1 SHA256 3143a2fbb38c8bcaf0214a2437cc7e73fb0c38fc6deb8160f0da7f99f4b067a9
EBUILD fpc-2.0.2.ebuild 4435 RMD160 5a4156578d380ce21af2f85a6afceeccb0c426d6 SHA1 9a8d5faa4e2fd1a83f7f8add60dd53124665d2ad SHA256 1e3a99664f2eafbbc52b41eb62276b83b9b1b42653438f01877f80a925a081e8
EBUILD fpc-2.0.4.ebuild 4183 RMD160 048ef963eb54bfc50706d296fa38b13b6a882477 SHA1 d68a4d342af6c4e758bd4871865434ea71e9dbad SHA256 d000a9dfd874b6d32f4c811eaa3f6b48483315d033cfda45d3d084a350d970eb
EBUILD fpc-2.2.0.ebuild 4225 RMD160 c091cab7d6c9f3a0a18008a6fc3e40c79083c279 SHA1 16a5ab97adc844c8ac6df1d1424e51c8abea619d SHA256 b31fb553b87c0dedd60011182f18b346c7cec6a4d05a26b6cfc8c2ff0b832c3c
MISC ChangeLog 4635 RMD160 a2026b8832e9743e0c55fe2deab812c9bbf140e1 SHA1 76e77d8ae638ffce729a3e7c21d520f725440bfc SHA256 e820157f721ce8225e101c1969bba5a7de473187a504a704ee0f56ff2e64427c
MISC metadata.xml 162 RMD160 359e0d4ecc394cc3fb84227087c1a518d9e6c347 SHA1 d4c1c09bc042bd11d40dc634bf52edb93e4cf6f0 SHA256 444ece0c3cb4908c78c6588147078383d3636d1b3da9a20111ec03c5640eefdb
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.0-r1.ebuild,v 1.8 2007/03/10 14:43:24 vapier Exp $
inherit eutils
MY_PV="2.0.0"
STABLE="2.0.0"
SLOT="0"
LICENSE="GPL-2 LGPL-2.1 LGPL-2.1-FPC"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
DESCRIPTION="Free Pascal Compiler"
HOMEPAGE="http://www.freepascal.org/"
IUSE="doc"
SRC_URI="mirror://sourceforge/freepascal/fpc-${MY_PV}.source.tar.gz
x86? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.i386-linux.tar )
sparc? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.sparc-linux.tar )
ppc? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.powerpc-linux.tar )
amd64? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.x86_64-linux.tar )"
DEPEND="!dev-lang/fpc-bin
doc? ( dev-tex/tex4ht )"
RDEPEND="!dev-lang/fpc-bin"
S=${WORKDIR}/fpc
src_unpack() {
unpack ${A} || die "Unpacking ${A} failed!"
case ${ARCH} in
x86)
tar -xf binary.i386-linux.tar || die "Unpacking binary.i386-linux.tar failed!"
tar -zxf base.i386-linux.tar.gz || die "Unpacking base.i386-linux.tar.gz failed!"
;;
sparc)
tar -xf binary.sparc-linux.tar || die "Unpacking binary.sparc-linux.tar
failed!"
tar -zxf base.sparc-linux.tar.gz || die "Unpacking
base.sparc-linux.tar.gz failed!"
;;
ppc)
tar -xf binary.powerpc-linux.tar || die "Unpacking binary.powerpc-linux.tar failed!"
tar -zxf base.powerpc-linux.tar.gz || die "Unpacking base.powerpc-linux.tar.gz failed!"
;;
amd64)
tar -xf binary.x86_64-linux.tar || die "Unpacking binary.x86_64-linux.tar failed!"
tar -zxf base.x86_64-linux.tar.gz || die "Unpacking base.x86_64-linux.tar.gz failed!"
;;
esac
}
set_pp() {
case ${ARCH} in
x86)
FPCARCH=386
;;
sparc)
FPCARCH=sparc
;;
ppc)
FPCARCH=ppc
;;
amd64)
FPCARCH=x64
;;
esac
case $1 in
bootstrap) pp=${WORKDIR}/lib/fpc/${STABLE}/ppc${FPCARCH} ;;
new) pp=${S}/compiler/ppc${FPCARCH} ;;
*) die "set_pp: unknown argument: $1" ;;
esac
}
src_compile() {
local pp d
# Using the bootstrap compiler.
set_pp bootstrap
emake -j1 compiler_cycle PP=${pp} \
|| die "make compiler_cycle failed!"
# Using the new compiler.
set_pp new
# We cannot do this at once!
for d in rtl packages fcl; do
emake -j1 -C $d clean PP=${pp} || die "make -C $d clean failed!"
done
emake -j1 rtl packages_base_all fcl packages_extra_all PP=${pp} \
|| die "make rtl packages_base_all fcl packages_extra_all failed!"
emake -j1 utils PP=${pp} DATA2INC=${S}/utils/data2inc \
|| die "make utils failed!"
cd ${S}/docs
use doc && make 4ht
# examples fail miserably in v.2.0.0, sent email upstream
# use examples && make linuxexamples
}
src_install() {
local pp
set_pp new
make compiler_install rtl_install fcl_install \
packages_install utils_install man_install \
PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \
INSTALL_PREFIX="${D}usr" INSTALL_MANDIR="${D}usr/share/man" \
doc_install INSTALL_DOCDIR="${D}usr/share/doc/${PF}/" \
|| die "make install failed!"
dohtml ${D}usr/share/doc/${PF}/faq.html
rm ${D}usr/share/doc/${PF}/faq.html
cd ${S}/docs
use doc && make INSTALL_DOCDIR="${D}usr/share/doc/${PF}/html" htmlinstall
}
pkg_preinst() {
${D}/usr/lib/fpc/${MY_PV}/samplecfg /usr/lib/fpc/${MY_PV} ${D}/etc
case ${ARCH} in
x86)
FPCARCH=386
;;
sparc)
FPCARCH=sparc
;;
ppc)
FPCARCH=ppc
;;
amd64)
FPCARCH=x64
;;
esac
ln -s ../lib/fpc/${MY_PV}/ppc${FPCARCH} ${D}/usr/bin/
}
pkg_postinst() {
# Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
if [ -e /etc/._cfg0000_fpc.cfg ]; then
echo
ewarn "Make sure you etc-update /etc/fpc.cfg"
ewarn "Otherwise FPC will not work correctly."
echo
ebeep
fi
case ${ARCH} in
x86)
FPCARCH=386
;;
sparc)
FPCARCH=sparc
;;
ppc)
FPCARCH=ppc
;;
amd64)
FPCARCH=x64
;;
esac
elog "/usr/bin/ppc${FPCARCH} now points to the new binary:"
elog " /usr/lib/${PN}/${MY_PV}/ppc${FPCARCH}"
}
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.2.ebuild,v 1.7 2007/07/13 06:25:50 mr_bones_ Exp $
inherit eutils
PV_BIN="2.0.0"
S="${WORKDIR}/fpc"
HOMEPAGE="http://www.freepascal.org/"
DESCRIPTION="Free Pascal Compiler"
SRC_URI="mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
mirror://gentoo/fpc-man-${PV}.tar.gz
x86? ( mirror://gentoo/fpc-${PV_BIN}.i386-linux.tar )
sparc? ( mirror://gentoo/fpc-${PV_BIN}.sparc-linux.tar )
ppc? ( mirror://gentoo/fpc-${PV_BIN}.powerpc-linux.tar )
amd64? ( mirror://gentoo/fpc-${PV_BIN}.x86_64-linux.tar )
doc? ( mirror://gentoo/fpc-docs-${PV}.tar.gz )"
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
net-misc/rsync"
RDEPEND="!dev-lang/fpc-bin
!dev-lang/fpc-source"
src_unpack() {
unpack ${A} || die "Unpacking ${A} failed!"
case ${ARCH} in
x86) FPC_ARCH="i386" ;;
ppc) FPC_ARCH="powerpc" ;;
amd64) FPC_ARCH="x86_64" ;;
sparc) FPC_ARCH="sparc" ;;
*) die "This ebuild doesn't support ${ARCH}." ;;
esac
tar -xf binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!"
tar -zxf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz 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 d
# Using the bootstrap compiler.
set_pp bootstrap
make -j1 compiler_cycle PP=${pp} || 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...
make -j1 compiler_cycle PP=${S}/ppc${FPC_ARCH}.new || die "make compiler_cycle failed!"
# ..and clean up afterwards
rm ${S}/ppc${FPC_ARCH}.new
# Using the new compiler.
set_pp new
# We cannot do this at once!
for d in rtl packages fcl fv; do
make -j1 -C $d clean PP=${pp} || die "make -C $d clean failed!"
done
make -j1 rtl packages_base_all fcl fv packages_extra_all PP=${pp} \
|| die "make rtl packages_base_all fcl packages_extra_all failed!"
make -j1 utils PP=${pp} DATA2INC=${S}/utils/data2inc \
|| die "make utils failed!"
}
src_install() {
local pp
set_pp new
make compiler_install rtl_install fcl_install fv_install \
packages_install utils_install \
PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \
INSTALL_PREFIX="${D}usr" || die "make install failed!"
find ${WORKDIR}/fpc/ -type f -perm -o=x -exec rm '{}' \;
if use "source" ; then
ebegin "Copying source files"
# Use rsync since cp doesn't support exclusions
rsync -a \
--exclude="*.#*" \
--exclude="*.bak" \
--exclude="*.cvsignore" \
--exclude="*.o" \
--exclude="*.orig" \
--exclude="*.ow" \
--exclude="*.ppl" \
--exclude="*.ppu" \
--exclude="*.ppw" \
--exclude="*.rej" \
--exclude="*.rst" \
--exclude="*.xvpics" \
--exclude="*.~*" \
--exclude="CVS" \
--exclude=".svn" \
--exclude="fpcmade.i386-linux" \
${WORKDIR}/fpc/ ${D}usr/lib/fpc/src
eend $? || die
fi
if use doc ; then
insinto /usr/share/doc/${PF}
doins ${WORKDIR}/fpc-docs-${PV}/*.pdf
fi
doman ${WORKDIR}/fpc-man-${PV}/man{1,5}/*
}
pkg_preinst() {
${D}/usr/lib/fpc/${PV}/samplecfg /usr/lib/fpc/${PV} ${D}/etc
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
ln -s ../lib/fpc/${PV}/ppc${FPC_ARCH} ${D}/usr/bin/
}
pkg_postinst() {
# Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
if [ -e /etc/._cfg0000_fpc.cfg ]; then
echo
ewarn "Make sure you etc-update /etc/fpc.cfg"
ewarn "Otherwise FPC will not work correctly."
echo
ebeep
fi
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
elog "/usr/bin/ppc${FPC_ARCH} now points to the new binary:"
elog " /usr/lib/${PN}/${PV}/ppc${FPC_ARCH}"
}
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.4.ebuild,v 1.6 2007/06/30 09:23:04 truedfx Exp $
inherit eutils
# bug #183604
RESTRICT="strip"
PV_BIN="2.0.4"
S="${WORKDIR}/fpcbuild_${PV}_exp/fpcsrc"
HOMEPAGE="http://www.freepascal.org/"
DESCRIPTION="Free Pascal Compiler"
SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
x86? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.i386-linux.tar )
sparc? ( mirror://sourceforge/freepascal/fpc-2.0.0.sparc-linux.tar )
ppc? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.powerpc-linux.tar )
amd64? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.x86_64-linux.tar )
doc? ( mirror://gentoo/fpcdocs-${PV}.tar.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"
# doc? ( virtual/tetex )
src_unpack() {
case ${ARCH} in
x86) FPC_ARCH="i386" ;;
ppc) FPC_ARCH="powerpc" ;;
amd64) FPC_ARCH="x86_64" ;;
sparc) FPC_ARCH="sparc" ;;
*) 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!"
}
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_base_all fcl fv packages_extra_all utils || die "make failed"
# Use pregenerated docs to avoid sandbox violations (#146804)
#if use doc ; then
# cd "${S}"/../fpcdocs
# emake -j1 pdf || die "make pdf failed!"
#fi
}
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 fcl_install fv_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
insinto /usr/share/doc/${PF}
doins "${WORKDIR}"/${P}/*.pdf
#cd "${S}"/../fpcdocs
#emake -j1 "$@" pdfinstall || die "make pdfinstall failed"
fi
if use source ; then
cd "${S}"
shift
emake -j1 PP="${D}"usr/bin/ppc${FPC_ARCH} "$@" sourceinstall || die "make sourceinstall failed!"
fi
"${D}"usr/lib/fpc/${PV}/samplecfg /usr/lib/fpc/${PV} "${D}"etc
rm -rf "${D}"usr/lib/fpc/lexyacc
}
pkg_postinst() {
# Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
if [ -e /etc/._cfg0000_fpc.cfg ]; then
echo
ewarn "Make sure you etc-update /etc/fpc.cfg"
ewarn "Otherwise FPC will not work correctly."
echo
ebeep
fi
ewarn "The default configuration for fpc strips executables. This"
ewarn "will cause QA notices in ebuilds for software using fpc."
ewarn "You can remove -Xs from /etc/fpc.cfg to avoid this."
}
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.2.0.ebuild,v 1.5 2008/06/25 19:46:03 nixnut Exp $
inherit eutils
# bug #183604
RESTRICT="strip"
PV_BIN="2.2.0"
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-${PV_BIN}.i386-linux.tar )
sparc? ( mirror://sourceforge/freepascal/fpc-2.0.0.sparc-linux.tar )
ppc? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.powerpc-linux.tar )
amd64? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.x86_64-linux.tar )
doc? ( mirror://sourceforge/freepascal/fpc-${PV}-doc-pdf.tar.gz )"
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"
# doc? ( virtual/tetex )
src_unpack() {
case ${ARCH} in
x86) FPC_ARCH="i386" ;;
ppc) FPC_ARCH="powerpc" ;;
amd64) FPC_ARCH="x86_64" ;;
sparc) FPC_ARCH="sparc" ;;
*) 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!"
}
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_base_all packages_fcl_all fv_all \
packages_extra_all utils || die "make failed"
# Use pregenerated docs to avoid sandbox violations (#146804)
#if use doc ; then
# cd "${S}"/../fpcdocs
# emake -j1 pdf || die "make pdf failed!"
#fi
}
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 \
fv_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
insinto /usr/share/doc/${PF}
doins "${WORKDIR}"/share/doc/fpdocs-${PV}/*.pdf
#cd "${S}"/../fpcdocs
#emake -j1 "$@" pdfinstall || die "make pdfinstall failed"
fi
if use source ; then
cd "${S}"
shift
emake -j1 PP="${D}"usr/bin/ppc${FPC_ARCH} "$@" sourceinstall || die "make sourceinstall failed!"
fi
"${D}"usr/lib/fpc/${PV}/samplecfg /usr/lib/fpc/${PV} "${D}"etc
rm -rf "${D}"usr/lib/fpc/lexyacc
}
pkg_postinst() {
# Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
if [ -e /etc/._cfg0000_fpc.cfg ]; then
echo
ewarn "Make sure you etc-update /etc/fpc.cfg"
ewarn "Otherwise FPC will not work correctly."
echo
ebeep
fi
ewarn "The default configuration for fpc strips executables. This"
ewarn "will cause QA notices in ebuilds for software using fpc."
ewarn "You can remove -Xs from /etc/fpc.cfg to avoid this."
}