dev-ada/gprbuild: Add dev-ada/gprbuild-9999
authorTupone Alfredo <tupone@gentoo.org>
Sun, 7 May 2017 20:20:50 +0000 (22:20 +0200)
committerTupone Alfredo <tupone@gentoo.org>
Sun, 7 May 2017 20:20:50 +0000 (22:20 +0200)
Package-Manager: Portage-2.3.5, Repoman-2.3.1

dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch [new file with mode: 0644]
dev-ada/gprbuild/gprbuild-2016.ebuild
dev-ada/gprbuild/gprbuild-9999.ebuild [new file with mode: 0644]

diff --git a/dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch b/dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch
new file mode 100644 (file)
index 0000000..bebe795
--- /dev/null
@@ -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;
index 23de5cb3e944e92cc0504bf8c04f5d0d89f02135..b021ddc604788521b6e9d6a8a50a3ccfab134180 100644 (file)
@@ -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 (file)
index 0000000..39a26f1
--- /dev/null
@@ -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
+}