summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ada')
-rw-r--r--dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch44
-rw-r--r--dev-ada/gprbuild/gprbuild-2016.ebuild7
-rw-r--r--dev-ada/gprbuild/gprbuild-9999.ebuild111
3 files changed, 156 insertions, 6 deletions
diff --git a/dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch b/dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch
new file mode 100644
index 000000000000..bebe795de96b
--- /dev/null
+++ b/dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch
@@ -0,0 +1,44 @@
+--- gprbuild-9999/Makefile.old 2017-05-07 09:46:00.002669301 +0200
++++ gprbuild-9999/Makefile 2017-05-07 09:47:37.832171592 +0200
+@@ -74,7 +74,8 @@
+ CLEANER=gprclean -q $(RBD)
+
+ GPRBUILD_BUILDER=$(BUILDER) $(GPRBUILD_GPR) \
+- -XLIBRARY_TYPE=static -XXMLADA_BUILD=static
++ -XLIBRARY_TYPE=static -XXMLADA_BUILD=static \
++ -cargs:C $(CFLAGS) -cargs:Ada $(ADAFLAGS)
+ LIBGPR_BUILDER=$(BUILDER) $(GPR_GPR)
+ LIBGPR_INSTALLER=$(LIB_INSTALLER) $(GPR_GPR) -XBUILD=${BUILD} \
+ --install-name=gpr --build-var=LIBRARY_TYPE $(GTARGET)
+@@ -136,15 +136,18 @@
+
+ libgpr.build.shared:
+ ${BUILDER} -XLIBRARY_TYPE=relocatable \
+- -XXMLADA_BUILD=relocatable $(GPR_GPR)
++ -XXMLADA_BUILD=relocatable $(GPR_GPR) \
++ -cargs:C $(CFLAGS) -cargs:Ada $(ADAFLAGS)
+
+ libgpr.build.static:
+ ${BUILDER} -XLIBRARY_TYPE=static \
+- -XXMLADA_BUILD=static $(GPR_GPR)
++ -XXMLADA_BUILD=static $(GPR_GPR) \
++ -cargs:C $(CFLAGS) -cargs:Ada $(ADAFLAGS)
+
+ libgpr.build.static-pic:
+ ${BUILDER} -XLIBRARY_TYPE=static-pic \
+- -XXMLADA_BUILD=static-pic $(GPR_GPR)
++ -XXMLADA_BUILD=static-pic $(GPR_GPR) \
++ -cargs:C $(CFLAGS) -cargs:Ada $(ADAFLAGS)
+
+ libgpr.install: libgpr.uninstall $(foreach t, $(LIBGPR_TYPES), libgpr.install.$(t))
+
+--- gprbuild-9999/gpr/gpr.gpr.old 2017-05-07 10:00:30.688087076 +0200
++++ gprbuild-9999/gpr/gpr.gpr 2017-05-07 10:00:45.028863862 +0200
+@@ -67,6 +67,7 @@
+ for Switches ("gpr*.ad?") use
+ Compiler'Default_Switches ("Ada") & ("-g1");
+ end case;
++ for Driver ("C") use External ("CC", "gcc");
+ end Compiler;
+
+ end GPR;
diff --git a/dev-ada/gprbuild/gprbuild-2016.ebuild b/dev-ada/gprbuild/gprbuild-2016.ebuild
index 23de5cb3e944..b021ddc60478 100644
--- a/dev-ada/gprbuild/gprbuild-2016.ebuild
+++ b/dev-ada/gprbuild/gprbuild-2016.ebuild
@@ -32,12 +32,7 @@ PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
pkg_setup() {
GCC=${ADA:-$(tc-getCC)}
- local base=$(basename ${GCC})
- GNATMAKE="${base/gcc/gnatmake}"
- if [[ ${base} != ${GCC} ]] ; then
- local path=$(dirname ${GCC})
- GNATMAKE="${path}/${GNATMAKE}"
- fi
+ GNATMAKE="${GCC/gcc/gnatmake}"
if [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
eerror "You need a gcc compiler that provides the Ada Compiler:"
eerror "1) use gcc-config to select the right compiler or"
diff --git a/dev-ada/gprbuild/gprbuild-9999.ebuild b/dev-ada/gprbuild/gprbuild-9999.ebuild
new file mode 100644
index 000000000000..39a26f1a7e42
--- /dev/null
+++ b/dev-ada/gprbuild/gprbuild-9999.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit git-r3 toolchain-funcs multiprocessing
+
+MYP=${PN}-gpl-${PV}
+
+DESCRIPTION="Multi-Language Management"
+HOMEPAGE="http://libre.adacore.com/"
+SRC_URI="
+ bootstrap? (
+ http://mirrors.cdn.adacore.com/art/57399978c7a447658e0affc0
+ -> xmlada-gpl-2016-src.tar.gz )"
+EGIT_REPO_URI="https://github.com/AdaCore/gprbuild.git"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+IUSE="bootstrap +shared static static-pic"
+
+DEPEND="dev-lang/gnat-gpl
+ >=dev-python/sphinx-1.5.2
+ !bootstrap? ( dev-ada/xmlada )"
+RDEPEND="${DEPEND}"
+
+REQUIRED_USE="bootstrap? ( !shared !static !static-pic )"
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+pkg_setup() {
+ GCC=${ADA:-$(tc-getCC)}
+ GNATMAKE="${GCC/gcc/gnatmake}"
+ if [[ -z "$(type ${GNATMAKE} 2>/dev/null)" ]] ; then
+ eerror "You need a gcc compiler that provides the Ada Compiler:"
+ eerror "1) use gcc-config to select the right compiler or"
+ eerror "2) set ADA=gcc-4.9.4 in make.conf"
+ die "ada compiler not available"
+ fi
+}
+
+src_unpack() {
+ git-r3_src_unpack
+ default
+}
+src_prepare() {
+ sed -i \
+ -e "/gnatls/d" \
+ Makefile || die
+ default
+}
+
+src_configure() {
+ make prefix="${D}"usr setup
+ default
+}
+
+bin_progs="gprbuild gprconfig gprclean gprinstall gprname gprls"
+lib_progs="gprlib gprbind"
+
+src_compile() {
+ if use bootstrap; then
+ local xmlada_src="../xmlada-gpl-2016-src"
+ incflags="-Isrc -Igpr/src -I${xmlada_src}/sax -I${xmlada_src}/dom \
+ -I${xmlada_src}/schema -I${xmlada_src}/unicode \
+ -I${xmlada_src}/input_sources"
+ $(tc-getCC) -c ${CFLAGS} gpr/src/gpr_imports.c -o gpr_imports.o
+ for bin in ${bin_progs}; do
+ ${GNATMAKE} -j$(makeopts_jobs) ${incflags} $ADAFLAGS ${bin}-main \
+ -o ${bin} -largs gpr_imports.o || die
+ done
+ for lib in $lib_progs; do
+ ${GNATMAKE} -j$(makeopts_jobs) ${incflags} ${lib} $ADAFLAGS \
+ -largs gpr_imports.o || die
+ done
+ else
+ emake PROCESSORS=$(makeopts_jobs) GPRBUILD_OPTIONS=-v all
+ for kind in shared static static-pic; do
+ if use ${kind}; then
+ emake PROCESSORS=$(makeopts_jobs) GPRBUILD_OPTIONS=-v \
+ libgpr.build.${kind}
+ fi
+ done
+ emake -C doc html
+ emake -C doc txt
+ emake -C doc texinfo
+ emake -C doc info
+ fi
+}
+
+src_install() {
+ if use bootstrap; then
+ dobin ${bin_progs}
+ exeinto /usr/libexec/gprbuild
+ doexe ${lib_progs}
+ insinto /usr/share/gprconfig
+ doins share/gprconfig/*
+ insinto /usr/share/gpr
+ doins share/_default.gpr
+ else
+ default
+ for kind in shared static static-pic; do
+ if use ${kind}; then
+ emake DESTDIR="${D}" libgpr.install.${kind}
+ fi
+ done
+ mv "${D}"/usr/share/examples/${PN} "${D}"/usr/share/doc/${PF}/examples || die
+ rmdir "${D}"/usr/share/examples || die
+ fi
+ einstalldocs
+}