1
0
Fork 0

dev-lang/fpc: alternative ebuild to work with prefix

Package-Manager: Portage-2.3.6, Repoman-2.3.3
This commit is contained in:
Horea Christian 2017-08-14 19:16:12 +02:00
parent 365556476c
commit d19d37b16b
No known key found for this signature in database
GPG Key ID: EAA9223EE3BB378A
4 changed files with 184 additions and 0 deletions

4
dev-lang/fpc/ChangeLog Normal file
View File

@ -0,0 +1,4 @@
*fpc-3.0.2 (14 Aug 2017)
14 Aug 2017; Horea Christian <h.chr@mail.ru> +fpc-3.0.2.ebuild, +metadata.xml:
dev-lang/fpc: alternative ebuild to work with prefix

5
dev-lang/fpc/Manifest Normal file
View File

@ -0,0 +1,5 @@
DIST fpc-3.0.2-doc-html.tar.gz 5534720 SHA256 844b7f804526d27c7902d230357f4feee6724ac5ff5d9e8f4ec18db3a0fb9537 SHA512 1334e0bd5fbcc5d06513c9f9b1cd99b9a79782cca6224761d18ea314ba88da79517fac46c7135316f00bbaefd779080406f1b9e6c33ffb1e7b228f0c11618669 WHIRLPOOL 6bf46987f267079077a0334a816924ab17b093212f0814e68623a479c03b3efa60904c2e96a064870373af2aa6dd81336211e696466b050ea3399efbb8c4699b
DIST fpc-3.0.2.i386-linux.tar 55019520 SHA256 2ddb0a27a7c38b5679bd818ae138e15820a2caaa1bc059d935e7e9fa643ff5ef SHA512 adeba89838eceec899edf54a7655a57551319c59eda9f437aa0b6a76bcce1d3cce691a69f40a9fa57ad5c9064abf514c07b879cf40e87cf55c6e10768deb1b7d WHIRLPOOL 6ce242565ef453d7f01ab11af95c82c360531d08a5dbecc3ce6df443b73e30a1294f958bc6f4a682ed773be7edafabd787ce00c5e20c6173952fd4b567d4e1d2
DIST fpc-3.0.2.source.tar.gz 39841597 SHA256 67fccddf5da992356f4e90d836444750ce9363608c7db8e38c077f710fcb6258 SHA512 8b2540af910c31c96c4bf6bc546f7824b2acd9509fea76b5884370d8ebecd836c167a6ef98fac46b16278027cc15aa6a9f63fb72919e3a103408dc16416e43ae WHIRLPOOL 629d735593da7ecc39033493fe4524079976ab5b2109014d88ab75dc231c512cb1baadde27b1c393b1562627c9ad5101f6f37106f4fde6cbbb21aca9311f4adc
DIST fpc-3.0.2.x86_64-linux.tar 57190400 SHA256 b5b27fdbc31b1d05b6a898f3c192d8a5083050562b29c19eb9eb018ba4482bd8 SHA512 fac103f3bf7fad5af9a435831f456c5dd7b546729f56c4b51b2a6dedceea27b331edf48024b4ec7993e50432332e8404ae63d64913d793e787756413c8d95417 WHIRLPOOL d8888928b6e5c7c39ad8e16b9eae5871581e86d6dcc588b2dafcef8c936d341b21019d69c436968b0a29942b527ce3f0bb2ec5166b961046ac1833efa6efae47
DIST fpcbuild-3.0.2.tar.gz 68407379 SHA256 f261ed0a361f190169fff428d65b707df1507df317fc0ed101b0e63596541b75 SHA512 dfa4865d8166b7903914ac101e48bae9761671a77e37cbfd54c2ee8eb6b2ba0e5f3ac4b55867a2ead79499dbae68cc785db531385c5b77d533945c644a2f6fe6 WHIRLPOOL 27568e7dc9d4ee3a8c30dbf68f4cd03a4fa23ddd7ede67253d3da897b48aa2fcd0a537e68432058c8cc030af18c42649e04a4a60b1a58d08b539da09e5fb9dfa

View File

@ -0,0 +1,161 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit toolchain-funcs
HOMEPAGE="https://www.freepascal.org/"
DESCRIPTION="Free Pascal Compiler"
SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
amd64? ( mirror://sourceforge/freepascal/${P}.x86_64-linux.tar )
x86? ( mirror://sourceforge/freepascal/${P}.i386-linux.tar )
doc? ( mirror://sourceforge/freepascal/Documentation/${PV}/doc-html.tar.gz -> ${P}-doc-html.tar.gz )"
SLOT="0"
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
KEYWORDS="~amd64 ~x86"
IUSE="doc ide source"
RDEPEND="ide? ( !dev-lang/fpc-ide )"
RESTRICT="strip" #269221
S=${WORKDIR}/fpcbuild-${PV}/fpcsrc
pkg_pretend() {
if [[ ${MERGE_TYPE} != binary ]]; then
# Bug 475210
if $(tc-getLD) --version | grep -q "GNU gold"; then
eerror "fpc does not function correctly when built with the gold linker."
eerror "Please select the bfd linker with binutils-config."
die "GNU gold detected"
fi
fi
}
src_unpack() {
case ${ARCH} in
amd64) FPC_ARCH="x86_64" PV_BIN=${PV} ;;
x86) FPC_ARCH="i386" PV_BIN=${PV} ;;
*) die "This ebuild doesn't support ${ARCH}." ;;
esac
unpack ${A}
tar -xf ${PN}-${PV_BIN}.${FPC_ARCH}-linux/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!"
}
src_prepare() {
find "${WORKDIR}" -name Makefile -exec sed -i -e 's/ -Xs / /g' {} + || die
# let the pkg manager compress man files
sed -i '/find man.* gzip /d' "${WORKDIR}"/fpcbuild-${PV}/install/man/Makefile || die
}
set_pp() {
case ${ARCH} in
amd64) FPC_ARCH="x64" FPC_PARCH="x86_64" ;;
x86) FPC_ARCH="386" FPC_PARCH="i386" ;;
*) 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 AS="$(tc-getAS)"
# Save new compiler from cleaning...
cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new || die
# ...rebuild with current version...
emake -j1 PP="${S}"/ppc${FPC_ARCH}.new AS="$(tc-getAS)" compiler_cycle
# ..and clean up afterwards
rm "${S}"/ppc${FPC_ARCH}.new || die
# Using the new compiler.
set_pp new
emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl_clean
emake -j1 PP="${pp}" AS="$(tc-getAS)" rtl packages_all utils
if use ide ; then
cd "${S}"/ide || die
emake -j1 PP="${pp}" AS="$(tc-getAS)"
fi
}
src_install() {
local pp
set_pp new
#fpcbuild-3.0.0/utils/fpcm/fpcmake
#${WORKDIR}/${PN}build-${PV}/utils/fpcm/fpcmake"
#fpcbuild-3.0.0/fpcsrc/utils/fpcm/bin/x86_64-linux/fpcmake
set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/bin/${FPC_PARCH}-linux/fpcmake" \
INSTALL_PREFIX="${ED}"/usr \
INSTALL_DOCDIR="${ED}"/usr/share/doc/${PF} \
INSTALL_MANDIR="${ED}"/usr/share/man \
INSTALL_SOURCEDIR="${ED}"/usr/lib/fpc/${PV}/source
emake -j1 "$@" compiler_install rtl_install packages_install utils_install
dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH}
cd "${S}"/../install/doc || die
emake -j1 "$@" installdoc
cd "${S}"/../install/man || die
emake -j1 "$@" installman
if use doc ; then
cd "${S}"/../../doc || die
dodoc -r *
fi
if use ide ; then
cd "${S}"/ide || die
emake -j1 "$@" install
fi
if use source ; then
cd "${S}" || die
shift
emake -j1 PP="${ED}"/usr/bin/ppc${FPC_ARCH} "$@" sourceinstall
find "${ED}"/usr/lib/fpc/${PV}/source -name '*.o' -exec rm {} \;
fi
"${ED}"/usr/lib/fpc/${PV}/samplecfg "${ED}"/usr/lib/fpc/${PV} "${ED}"/etc || die
sed -i "s:${ED}::g" "${ED}"/etc/fpc.cfg || die
if use ide ; then
sed -e "s:${ED}::g" \
-i "${ED}"/etc/fppkg.cfg \
-i "${ED}"/etc/fppkg/* \
-i "${ED}"/usr/lib/fpc/${PV}/ide/text/fp*.cfg \
|| die
fi
rm -r "${ED}"/usr/lib/fpc/lexyacc || die
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]] && use ide; then
einfo "To read the documentation in the fpc IDE, enable the doc USE flag"
fi
}

14
dev-lang/fpc/metadata.xml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<name>Horea CHristian</name>
<email>horea.christ@gmail.com</email>
</maintainer>
<use>
<flag name="ide">Build and install the Free Pascal Compiler IDE</flag>
</use>
<upstream>
<remote-id type="sourceforge">freepascal</remote-id>
</upstream>
</pkgmetadata>