diff options
author | George Shapovalov <george@gentoo.org> | 2008-12-27 13:21:06 +0000 |
---|---|---|
committer | George Shapovalov <george@gentoo.org> | 2008-12-27 13:21:06 +0000 |
commit | 6fd4d81890478d6f9d5cbb33f4677f2d15d86470 (patch) | |
tree | d1381cf9d417923d2293c9380594d3c6626912d6 /dev-lang/gpc/gpc-20070904.ebuild | |
parent | Unmask gnome-do-0.6 (diff) | |
download | gentoo-2-6fd4d81890478d6f9d5cbb33f4677f2d15d86470.tar.gz gentoo-2-6fd4d81890478d6f9d5cbb33f4677f2d15d86470.tar.bz2 gentoo-2-6fd4d81890478d6f9d5cbb33f4677f2d15d86470.zip |
new version, staying with the 3.4 backend, as 4.1 has performace regressions. (#252323)
(Portage version: 2.2_rc18/cvs/Linux 2.6.27-gentoo-r6 x86_64)
Diffstat (limited to 'dev-lang/gpc/gpc-20070904.ebuild')
-rw-r--r-- | dev-lang/gpc/gpc-20070904.ebuild | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/dev-lang/gpc/gpc-20070904.ebuild b/dev-lang/gpc/gpc-20070904.ebuild new file mode 100644 index 000000000000..dd00b637c648 --- /dev/null +++ b/dev-lang/gpc/gpc-20070904.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/gpc/gpc-20070904.ebuild,v 1.1 2008/12/27 13:21:06 george Exp $ + +inherit eutils flag-o-matic versionator + +strip-flags +filter-flags "-pipe" +replace-cpu-flags "native" "" + +#due to cache requirements we cannot dynamically match gcc version +#so sticking to a particular (and working) one +GCCVER="3.4.5" + +DESCRIPTION="Gnu Pascal Compiler" +HOMEPAGE="http://gnu-pascal.de" +SRC_URI="http://www.math.uni.wroc.pl/~hebisch/${PN}/${P}.tar.bz2 + ftp://gcc.gnu.org/pub/gcc/releases/gcc-${GCCVER}/gcc-core-${GCCVER}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="nls" + +DEPEND="virtual/libc" + +S="${WORKDIR}/gcc-${GCCVER}" + +# GCC version strings +GCCMAJOR=$(get_version_component_range 1 "${GCCVER}") +GCCMINOR=$(get_version_component_range 2 "${GCCVER}") +GCCBRANCH=$(get_version_component_range 1-2 "${GCCVER}") +GCCRELEASE=$(get_version_component_range 1-3 "${GCCVER}") + +# possible future crosscompilation support +export CTARGET=${CTARGET:-${CHOST}} + +PREFIX="/usr" +LIBPATH="${PREFIX}/lib/${PN}/${CTARGET}/${GCCBRANCH}" +LIBEXECPATH="${PREFIX}/libexec/${PN}/${CTARGET}/${GCCBRANCH}" +INCLUDEPATH="${LIBPATH}/include" +DATAPATH="${PREFIX}/share" + +BUILDDIR="${WORKDIR}/build" + +src_unpack() { + unpack ${A} + + cd "${WORKDIR}/${P}/p" + + #comment out read to let ebuild continue + sed -i -e "s:read:#read:" config-lang.in || die "seding autoreplies failed" + #and remove that P var (it doesn't seem to do much except to break a build) + sed -i -e "s:\$(P)::" Make-lang.in || die "seding Make-lan.in failed" + + cd "${WORKDIR}" + mv ${P}/p "${S}/gcc/" + + # Build in a separate build tree + mkdir -p ${BUILDDIR} +} + +src_compile() { + local myconf + + if use nls; then + myconf="${myconf} --enable-nls --without-included-gettext" + else + myconf="${myconf} --disable-nls" + fi + + # reasonably sane globals (from toolchain) + myconf="${myconf} \ + --with-system-zlib \ + --disable-checking \ + --disable-werror \ + --disable-libunwind-exceptions" + + use amd64 && myconf="${myconf} --disable-multilib" + + cd ${BUILDDIR} + + einfo "Configuring GCC for GPC build..." +# addwrite "/dev/zero" + "${S}"/configure \ + --prefix=${PREFIX} \ + --libdir="${LIBPATH}" \ + --libexecdir="${LIBEXECPATH}" \ + --datadir=${DATAPATH} \ + --mandir=${DATAPATH}/man \ + --infodir=${DATAPATH}/info \ + --program-prefix="" \ + --enable-shared \ + --host=${CHOST} \ + --target=${CTARGET} \ + --enable-languages="c,pascal" \ + --enable-threads=posix \ + --enable-long-long \ + --enable-cstdio=stdio \ + --enable-clocale=generic \ + --enable-__cxa_atexit \ + --enable-version-specific-runtime-libs \ + --with-local-prefix=${PREFIX}/local \ + ${myconf} || die "configure failed" + + touch "${S}"/gcc/c-gperf.h + + einfo "Building GPC..." + # Fix for our libtool-portage.patc + MAKEOPTS="${MAKEOPTS} -j1" emake LIBPATH="${LIBPATH}" bootstrap || die "make failed" +} + +src_install () { + # Do not allow symlinks in ${PREFIX}/lib/gcc-lib/${CHOST}/${PV}/include as + # this can break the build. + for x in cd ${BUILDDIR}/gcc/include/*; do + if [ -L ${x} ]; then + rm -f ${x} + fi + done + + einfo "Installing GPC..." + cd ${BUILDDIR}/gcc + make DESTDIR="${D}" \ + pascal.install-with-gcc || die + + # gcc insists on installing libs in its own place + mv "${D}${LIBPATH}/gcc/${CTARGET}/${GCCRELEASE}"/* "${D}${LIBPATH}" + if [ "${ARCH}" == "amd64" ]; then + # ATTN! this may in fact be related to multilib, rather than amd64 + mv "${D}${LIBPATH}/gcc/${CTARGET}"/lib64/libgcc_s* "${D}${LIBPATH}" + mv "${D}${LIBPATH}/gcc/${CTARGET}"/lib/libgcc_s* "${D}${LIBPATH}"/32/ + fi + mv "${D}${LIBEXECPATH}/gcc/${CTARGET}/${GCCRELEASE}"/* "${D}${LIBEXECPATH}" + + rm -rf "${D}${LIBPATH}/gcc" + rm -rf "${D}${LIBEXECPATH}/gcc" + rm -rf "${D}${LIBEXECPATH}"/install-tools/ + + # Install documentation. + dodir /usr/share/doc/${PF} + mv "${D}${PREFIX}"/doc/gpc/* "${D}"/usr/share/doc/${PF} + prepalldocs + + # final cleanups + rmdir "${D}${PREFIX}"/include "${D}/${PREFIX}"/share/man/man7 + rm -rf "${D}${PREFIX}"/doc + + # create an env.d entry + dodir /etc/env.d + echo "PATH=${LIBEXECPATH}" > "${D}"etc/env.d/56gpc + echo "ROOTPATH=${LIBEXECPATH}" >> "${D}"etc/env.d/56gpc +} + +pkg_postinst () +{ + # need to update environment, as we have installed new env.d file + env-update + einfo + elog "the environment has been set to use gpc," + elog "please don't forget to source /etc/profile" + einfo +} |