# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ GNATSOURCE="${WORKDIR}/gnat-${PV}-src" inherit gnatbuild flag-o-matic DESCRIPTION="GNAT Ada Compiler - gcc version" HOMEPAGE="http://gcc.gnu.org/" LICENSE="GMGPL" SRC_URI="ftp://gcc.gnu.org/pub/gcc/old-releases/gcc-2/gcc-${GCCVER}.tar.bz2 http://gd.tuwien.ac.at/languages/ada/gnat/${PV}/gnat-${PV}-src.tgz http://gd.tuwien.ac.at/languages/ada/gnat/${PV}/gnat-${PV}-unx-docs.tar.gz x86? ( http://dev.gentoo.org/~george/src/gnatboot-3.15-i686.tar.bz2 ) amd64? ( http://dev.gentoo.org/~george/src/gnatboot-3.4-amd64.tar.bz2 )" # ${GNATBRANCH} and ${GCCVER} are defined in gnatbuild.eclass and depend # only on $PV, so should be safe to use in DEPEND/SRC_URI KEYWORDS="~x86" CFLAGS="-O2" CXXFLAGS=${CFLAGS} src_unpack() { gnatbuild_src_unpack base_unpack # prep gcc sources for Ada cd "${S}" patch -p0 < "${GNATSOURCE}/src/gcc-281.dif" mv "${GNATSOURCE}/src/ada" "${S}" epatch "${FILESDIR}/${P}-gentoo.patch.bz2" epatch "${FILESDIR}/${P}-noaddr2line.patch.bz2" sed -i -e "s:-laddr2line::g" ada/Makefile.in epatch "${FILESDIR}/${P}-nptl.patch" gnatbuild_src_unpack common_prep touch cstamp-h.in touch ada/treeprs.ads ada/a-[es]info.h ada/nmake.ad[bs] # Make sure we don't overwrite the existing gcc sed -i -e "s/\$(bindir)\/gcov/\$(bindir)\/gnatgcov/" "${S}/Makefile" sed -i -e "s/alias)-gcc/alias)-gnatgcc/g" "${S}/Makefile" # this one needs to match the bootstrap compiler # cp -f "${GNATSOURCE}/lib/adainclude/system.ads" "${S}/ada" # add -fPIC flag to shared libs # cd ${S}/ada # if [ "${ARCH}" = "amd64" -o "${ARCH}" = "x86" ]; then # patch Make-lang.in < ${FILESDIR}/${PN}-Make-lang.in.patch # fi # sed -i -e "s:-gnatpg:-gnatg:" Make-lang.in } src_compile() { gnatbuild_src_compile configure # we need to setup environment here too, it is not inherited from within a # function export PATH="${GNATBOOT}/bin:${PATH}" GNATLIB="${GNATBOOT}/lib/gcc-lib/${CTARGET}/${SLOT}" export CC="${GNATBOOT}/bin/gnatgcc" local ADA_OBJECTS_PATH="${GNATLIB}/adalib" local ADA_INCLUDE_PATH="${GNATLIB}/adainclude" cd "${GNATBUILD}" emake -j1 LANGUAGES="c ada gcov" -I"${GNATBOOT}/include" || die "initial compilation failed" emake LANGUAGES="c ada gcov" bootstrap || die "bootstrap failed" # einfo "Building gnattools" # make CC="gcc" CFLAGS="${CFLAGS}" gnattools || # die "Failed to build gnattools!" einfo "building gnatlib_and_tools" emake -j1 gnatlib_and_tools || die "gnatlib_and_tools failed" einfo "building shared lib" rm -f gcc/ada/rts/*.{o,ali} || die # otherwise make tries to reuse already compiled (without -fPIC) objs.. emake -j1 gnatlib-shared LIBRARY_VERSION="${GCCBRANCH}" || die "gnatlib-shared failed" # gnatbuild_src_compile gnatlib_and_tools gnatlib-shared } src_install() { # PATH="${GNATBOOT}/bin:${PATH}" # GNATLIB="${GNATBOOT}/lib/gcc-lib/${CTARGET}/${SLOT}" # local LDFLAGS="-L${GNATBOOT}/lib/gcc-lib/i686-pc-linux-gnu/2.8.1" # export CC="${GNATBOOT}/bin/gnatgcc" # local ADA_OBJECTS_PATH="${GNATLIB}/adalib" # local ADA_INCLUDE_PATH="${GNATLIB}/adainclude" # Install gnatgcc, tools and native threads library cd "${GNATBUILD}" make DESTDIR=${D} prefix="${D}/usr" \ bindir="${D}${BINPATH}" \ libdir="${D}${LIBPATH}" \ libexecdir="${D}/${LIBEXECPATH}" \ includedir="${D}/${LIBPATH}/include" \ mandir="${D}/${DATAPATH}/man" \ infodir="${D}/${DATAPATH}/info" \ LANGUAGES="c ada gcov" GCC_INSTALL_NAME=gnatgcc \ install || # install-common install-libgcc install-gnatlib install-driver || die "Failed while installing GNAT" }