diff options
Diffstat (limited to 'dev-ada')
-rw-r--r-- | dev-ada/gprbuild/files/gprbuild-9999-gentoo.patch | 44 | ||||
-rw-r--r-- | dev-ada/gprbuild/gprbuild-2016.ebuild | 7 | ||||
-rw-r--r-- | dev-ada/gprbuild/gprbuild-9999.ebuild | 111 |
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 +} |