diff --git a/dev-lang/fpc/ChangeLog b/dev-lang/fpc/ChangeLog new file mode 100644 index 0000000..7f2b72e --- /dev/null +++ b/dev-lang/fpc/ChangeLog @@ -0,0 +1,4 @@ +*fpc-3.0.2 (14 Aug 2017) + + 14 Aug 2017; Horea Christian +fpc-3.0.2.ebuild, +metadata.xml: + dev-lang/fpc: alternative ebuild to work with prefix diff --git a/dev-lang/fpc/Manifest b/dev-lang/fpc/Manifest new file mode 100644 index 0000000..6968baa --- /dev/null +++ b/dev-lang/fpc/Manifest @@ -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 diff --git a/dev-lang/fpc/fpc-3.0.2.ebuild b/dev-lang/fpc/fpc-3.0.2.ebuild new file mode 100644 index 0000000..f8ea1b5 --- /dev/null +++ b/dev-lang/fpc/fpc-3.0.2.ebuild @@ -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 +} diff --git a/dev-lang/fpc/metadata.xml b/dev-lang/fpc/metadata.xml new file mode 100644 index 0000000..4f0df09 --- /dev/null +++ b/dev-lang/fpc/metadata.xml @@ -0,0 +1,14 @@ + + + + + Horea CHristian + horea.christ@gmail.com + + + Build and install the Free Pascal Compiler IDE + + + freepascal + +