summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Shapovalov <george@gentoo.org>2012-04-27 14:33:30 +0000
committerGeorge Shapovalov <george@gentoo.org>2012-04-27 14:33:30 +0000
commit85a37e7a32bc81a02ae657cf1ce2222bde0f3853 (patch)
treed57c3daf9541132f387b47bae9179648c79b0ea9 /dev-ada
parentfix info collision upon update (diff)
downloadgentoo-2-85a37e7a32bc81a02ae657cf1ce2222bde0f3853.tar.gz
gentoo-2-85a37e7a32bc81a02ae657cf1ce2222bde0f3853.tar.bz2
gentoo-2-85a37e7a32bc81a02ae657cf1ce2222bde0f3853.zip
new version, matching gnat-gcc:4.4
(Portage version: 2.1.10.56/cvs/Linux x86_64)
Diffstat (limited to 'dev-ada')
-rw-r--r--dev-ada/asis-gcc/ChangeLog7
-rw-r--r--dev-ada/asis-gcc/asis-gcc-4.4.ebuild136
2 files changed, 142 insertions, 1 deletions
diff --git a/dev-ada/asis-gcc/ChangeLog b/dev-ada/asis-gcc/ChangeLog
index 01b455718c54..426ef202bc60 100644
--- a/dev-ada/asis-gcc/ChangeLog
+++ b/dev-ada/asis-gcc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for dev-ada/asis-gcc
# Copyright 2002-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-ada/asis-gcc/ChangeLog,v 1.16 2012/04/27 13:53:11 george Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-ada/asis-gcc/ChangeLog,v 1.17 2012/04/27 14:33:30 george Exp $
+
+*asis-gcc-4.4 (27 Apr 2012)
+
+ 27 Apr 2012; george <george@gentoo.org> +asis-gcc-4.4.ebuild:
+ new version, matching gnat-gcc:4.4
*asis-gcc-4.3.1-r1 (27 Apr 2012)
diff --git a/dev-ada/asis-gcc/asis-gcc-4.4.ebuild b/dev-ada/asis-gcc/asis-gcc-4.4.ebuild
new file mode 100644
index 000000000000..46a4cd85603b
--- /dev/null
+++ b/dev-ada/asis-gcc/asis-gcc-4.4.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-ada/asis-gcc/asis-gcc-4.4.ebuild,v 1.1 2012/04/27 14:33:30 george Exp $
+
+inherit eutils flag-o-matic gnatbuild
+
+ACT_Ver="2010"
+Gnat_Name="gnat-gcc"
+
+DESCRIPTION="The Ada Semantic Interface Specification (semantic analysis and tools tied to compiler)"
+SRC_URI="http://dev.gentoo.org/~george/src/asis-gpl-${ACT_Ver}-src.tgz"
+HOMEPAGE="https://libre.adacore.com/"
+LICENSE="GPL-2"
+
+KEYWORDS="~amd64 ~x86"
+
+IUSE="doc"
+RDEPEND="=dev-lang/gnat-gcc-${SLOT}*"
+DEPEND="${RDEPEND}
+ doc? ( virtual/latex-base
+ app-text/texi2html )"
+
+S="${WORKDIR}/asis-gpl-${ACT_Ver}-src"
+
+# it may be even better to force plain -O2 -pipe -ftracer here
+replace-flags -O3 -O2
+
+# we need to adjust some vars defined in gnatbuild.eclass so that they use
+# gnat-gcc instead of asis
+LIBPATH=${LIBPATH/${PN}/${Gnat_Name}}
+BINPATH=${BINPATH/${PN}/${Gnat_Name}}
+DATAPATH=${DATAPATH/${PN}/${Gnat_Name}}
+
+#QA_EXECSTACK="${BINPATH:1}/*
+# ${LIBPATH:1}/adalib/libasis-${ACT_Ver}.so"
+
+pkg_setup() {
+ currGnat=$(eselect --no-color gnat show | grep "gnat-" | awk '{ print $1 }')
+ if [[ "${currGnat}" != "${CTARGET}-${Gnat_Name}-${SLOT}" ]]; then
+ echo
+ eerror "The active gnat profile does not correspond to the selected"
+ eerror "version of asis! Please install the appropriate gnat (if you"
+ eerror "did not so yet) and run:"
+ eerror "eselect gnat set ${CTARGET}-${Gnat_Name}-${SLOT}"
+ eerror "env-update && source /etc/profile"
+ eerror "and then emerge asis-gcc:${SLOT} again.."
+ echo
+ die
+ fi
+}
+
+# we need to override the eclass defined src_unpack
+# and change gcc to gnatgcc where appropriate
+src_unpack() {
+ unpack ${A}
+ cd "${S}"/gnat/
+ # newer versions autogen snames.ad?
+ # Looks logical to keep it here, as this is a part of source prep
+ gnatmake xsnamest.adb
+ ./xsnamest
+ mv snames.ns snames.ads
+ mv snames.nb snames.adb
+ # need to change gcc -> gnatgcc
+ cd "${S}"
+ for fn in asis/a4g-gnat_int.adb \
+ asis/a4g-contt.adb \
+ gnat/snames.adb \
+ tools/tool_utils/asis_ul-common.adb \
+ tools/gnatmetric/metrics-compute.adb; do
+ sed -i -e "s:\"gcc:\"gnatgcc:" ${fn}
+ done
+}
+
+src_compile() {
+ # Build the shared library first, we need -fPIC here
+ gnatmake -Pasis_bld -XBLD=prod -XOPSYS=default_Unix -cargs ${CFLAGS} -fPIC \
+ || die "building libasis.a failed"
+ gnatgcc -shared -Wl,-soname,libasis-${ACT_Ver}.so \
+ -o obj/libasis-${ACT_Ver}.so obj/*.o -lc \
+ || die "building libasis.so failed"
+
+ # build tools
+ for fn in tools/*; do
+ pushd ${fn}
+ gnatmake -P${fn:6}.gpr || die "building ${fn:6} failed"
+ popd
+ done
+
+ # no point in rebuilding pregenerated docs
+ #if use doc; then
+ # emake -C documentation all || die "Failed while compiling documentation"
+ #fi
+}
+
+src_install () {
+ # README asks to run make install, claiming that some sources are built at
+ # that point
+ make all install prefix="${D}"
+ # now manually move all the stuff to proper places
+ mkdir -p "${D}${LIBPATH}"
+ mv "${D}"lib/asis/ "${D}${LIBPATH}"/adalib
+ # install the shared lib
+ chmod 0755 obj/libasis-${ACT_Ver}.so
+ cp obj/libasis-${ACT_Ver}.so "${D}${LIBPATH}"/adalib
+ # make appropriate symlinks
+ pushd "${D}${LIBPATH}"/adalib
+ ln -s libasis-${ACT_Ver}.so libasis.so
+ popd
+ # sources
+ mv "${D}"include/asis/ "${D}${LIBPATH}"/adainclude
+
+ # tools
+ mkdir -p "${D}${BINPATH}"
+ find "${S}"/tools/ -type f -executable -exec cp {} "${D}${BINPATH}" \;
+ rm -f "${D}${BINPATH}"/Makefile*
+
+ # docs and examples
+ cd "${S}"/documentation/
+ if use doc; then
+ dodoc *.txt
+ dohtml *.html
+ cd "${S}"
+ insinto /usr/share/doc/${PF}
+ doins -r documentation/*.pdf documentation/*.info tutorial/ templates/
+ fi
+
+ # cleanup empty dirs
+ rm -rf "${D}"/{bin,include,lib,share}
+}
+
+pkg_postinst() {
+ echo
+ elog "The ASIS is installed for the active gnat compiler at gnat's location."
+ elog "No further configuration is necessary. Enjoy."
+ echo
+}