--- /usr/portage/sys-devel/gcc/gcc-3.2.1.ebuild 2002-12-10 00:50:02.000000000 +0200 +++ ./gcc-3.2.1.ebuild 2002-12-11 08:21:02.000000000 +0200 @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: /home/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2.1.ebuild,v 1.6 2002/12/09 22:23:07 azarah Exp $ -IUSE="static nls bootstrap java build" +IUSE="static nls bootstrap java ada build x86" # NOTE TO MAINTAINER: Info pages get nuked for multiple version installs. # Ill fix it later if i get a chance. @@ -69,6 +69,27 @@ !build? ( >=sys-libs/ncurses-5.2-r2 )" +if [ -n "`use ada`" ] && [ -z "`use build`" ] +then + GNAT_SUPPORTED_ARCHS="x86" + GNAT_BIN_FILE="" + for i in ${GNAT_SUPPORTED_ARCHS} + do + if [ -n "`use ${i}`" ] + then + GNAT_BIN_FILE=gcc-3.2-bootstrap-gnat-${i}.tar.bz2 + fi + done + if [ "${GNAT_BIN_FILE}" == "" ] + then + die "There is not yet Ada bootstrap compiler available for your architecture." + fi + + SRC_URI="${SRC_URI} + mirror://gentoo/distfiles/${GNAT_BIN_FILE}" + PROVIDE="virtual/gnat" +fi + build_multiple() { # Try to make sure that we should build multiple # versions of gcc (dual install of gcc2 and gcc3) @@ -133,10 +154,22 @@ then echo "${OLD_GCC_VERSION}" > ${WORKDIR}/.oldgccversion fi + + # Ada requires gnat compiler to bootstrap + if [ -n "`use ada`" ] && [ -z "`use build`" ] + then + unpack ${GNAT_BIN_FILE} + local gnat_dir="${S}/bootstrap-gnat" + export ADAC="${gnat_dir}/gnatgcc" + export GNATBIND="${gnat_dir}/gnatbind" + export PATH="${gnat_dir}:${PATH}" + fi } src_compile() { local myconf="" + local myboot="" + local myutil="" local gcc_lang="" if [ -z "`use build`" ] then @@ -151,10 +184,24 @@ else myconf="${myconf} --enable-nls --without-included-gettext" fi + if [ -z "`use static`" ] + then + myboot="${myboot} bootstrap-lean" + else + myboot="${myboot} LDFLAGS=-static bootstrap" + myutil="${myutil} LDFLAGS=-static" + fi if [ -n "`use java`" ] && [ -z "`use build`" ] then gcc_lang="${gcc_lang},java" fi + if [ -n "`use ada`" ] && [ -z "`use build`" ] + then + gcc_lang="${gcc_lang},ada" + # parallel build may fail to bootstrap ada + myboot="${myboot} -j 1" + myutil="${myutil} -j 1" + fi # Only build with a program suffix if it is not our # default compiler. Also check $GCCBUILD until we got @@ -198,18 +245,25 @@ touch ${S}/gcc/c-gperf.h - if [ -z "`use static`" ] + if [ -n "`use ada`" ] && [ -z "`use build`" ] then - # Fix for our libtool-portage.patch - S="${WORKDIR}/build" \ - emake bootstrap-lean \ - BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die + pushd ${S}/gcc/ada + touch treeprs.ads [es]info.h nmake.ad[bs] + popd + fi + + S="${WORKDIR}/build" \ + emake ${myboot} \ + BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die # Above FLAGS optimize and speedup build, thanks # to Jeff Garzik - else - S="${WORKDIR}/build" \ - emake LDFLAGS=-static bootstrap \ - BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die + + if [ -n "`use ada`" ] && [ -z "`use build`" ] + then + pushd ${WORKDIR}/build/gcc + S="${WORKDIR}/build/gcc" \ + emake ${myutil} gnatlib_and_tools || die + popd fi } @@ -383,6 +437,14 @@ docinto libjava dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS fi + + if [ -n "`use ada`" ] + then + cd ${S}/gcc/ada + docinto gnat + dodoc gnat-style.texi gnat_rm.texi gnat_ug.texi + fi + else rm -rf ${D}/usr/share/{man,info} fi