summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /gnustep-base/gnustep-make
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'gnustep-base/gnustep-make')
-rw-r--r--gnustep-base/gnustep-make/Manifest3
-rw-r--r--gnustep-base/gnustep-make/files/gnustep-4.csh19
-rw-r--r--gnustep-base/gnustep-make/files/gnustep-4.sh23
-rw-r--r--gnustep-base/gnustep-make/files/gnustep-5.csh13
-rw-r--r--gnustep-base/gnustep-make/files/gnustep-5.sh19
-rw-r--r--gnustep-base/gnustep-make/files/gnustep-make-2.0.1-destdir.patch21
-rw-r--r--gnustep-base/gnustep-make/files/testlibobjc.m10
-rw-r--r--gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild129
-rw-r--r--gnustep-base/gnustep-make/gnustep-make-2.6.6.ebuild131
-rw-r--r--gnustep-base/gnustep-make/gnustep-make-2.6.7.ebuild131
-rw-r--r--gnustep-base/gnustep-make/metadata.xml17
11 files changed, 516 insertions, 0 deletions
diff --git a/gnustep-base/gnustep-make/Manifest b/gnustep-base/gnustep-make/Manifest
new file mode 100644
index 000000000000..8fee46901d26
--- /dev/null
+++ b/gnustep-base/gnustep-make/Manifest
@@ -0,0 +1,3 @@
+DIST gnustep-make-2.6.2.tar.gz 562770 SHA256 7a95b3fc5bf14f6b06c4f1f716b48e9de13a11c1fa972aa3cc87736cd98f3e3a SHA512 5ef7889418e7e5acc40cd045772b08d178333dd7cb396b46bfcc117b8953c868cffff5ad41153f6cf2029f1d78d7213516cf1c2cfc88f028ffb883d0e83ea6a4 WHIRLPOOL 73f0953ba044323349a60393ca644031bac13ea48dab6ccbbf533ee5e52daa8411f6b7bdc4fc8928536c37c5edcaf3a6ef40c3c2ee335c0608b5c8d3a6d890d5
+DIST gnustep-make-2.6.6.tar.gz 576589 SHA256 bcef14d875ff70b26dfc9e892f33bd3665e3d5d9b12eca0c4f2aae133aca981d SHA512 bfabcca446e37a167a5ee2da5230023387ed6edec3ca9f7067131f0f1296eb32754f35db13e7fb4670ac9bb9fa2ccfeb728adb63b692ed7f3f8f30ba39276224 WHIRLPOOL 0872046506300e23c40d23a01f29641d299bdc87d4c35d9c189064ed9110fbb7c6aaaf67626282eaa0a1a4a7bc3920617654a412222c19b98571a115020fa033
+DIST gnustep-make-2.6.7.tar.gz 583730 SHA256 112b57737c3dcc66c78a5c88925ae1d672673d256d9935598e98bcd687d051e4 SHA512 4470844ec50d51ce4609b0ec8031e5dcb8422e46fbcfb6b3d6d2fee11f3b8140f6b07edcc3b8462177acb65d81cd4bc29a4fd86793ae52d6106e698170b0dad0 WHIRLPOOL da525cc4502e082ab1cce5f75c05472a1029041cf327104e714a2641f79961c4ecb9deb2afb707ae83af2fea1e50b0c064b27dd20e84d17d137a75226936d64f
diff --git a/gnustep-base/gnustep-make/files/gnustep-4.csh b/gnustep-base/gnustep-make/files/gnustep-4.csh
new file mode 100644
index 000000000000..e784f842e27f
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/gnustep-4.csh
@@ -0,0 +1,19 @@
+#!/usr/bin/env csh
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Test for an interactive shell
+if ( $?prompt ) then
+
+ setenv GNUSTEP_SYSTEM_TOOLS "@GENTOO_PORTAGE_EPREFIX@"/usr/bin
+
+ if ( -x $GNUSTEP_SYSTEM_TOOLS/make_services ) then
+ $GNUSTEP_SYSTEM_TOOLS/make_services
+ endif
+
+ if ( -x $GNUSTEP_SYSTEM_TOOLS/gdnc ) then
+ $GNUSTEP_SYSTEM_TOOLS/gdnc
+ endif
+
+endif
diff --git a/gnustep-base/gnustep-make/files/gnustep-4.sh b/gnustep-base/gnustep-make/files/gnustep-4.sh
new file mode 100644
index 000000000000..c5d2ff89dc8e
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/gnustep-4.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env sh
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Test for an interactive shell
+case $- in
+ *i*)
+ ;;
+ *)
+ return
+ ;;
+esac
+
+GNUSTEP_SYSTEM_TOOLS="@GENTOO_PORTAGE_EPREFIX@"/usr/bin
+
+if [ -x ${GNUSTEP_SYSTEM_TOOLS}/make_services ]; then
+ ${GNUSTEP_SYSTEM_TOOLS}/make_services
+fi
+
+if [ -x ${GNUSTEP_SYSTEM_TOOLS}/gdnc ]; then
+ ${GNUSTEP_SYSTEM_TOOLS}/gdnc
+fi
diff --git a/gnustep-base/gnustep-make/files/gnustep-5.csh b/gnustep-base/gnustep-make/files/gnustep-5.csh
new file mode 100644
index 000000000000..c2afa910c9a7
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/gnustep-5.csh
@@ -0,0 +1,13 @@
+#!/usr/bin/env csh
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Test for an interactive shell
+if ( $?prompt ) then
+ setenv GNUSTEP_SYSTEM_TOOLS "@GENTOO_PORTAGE_EPREFIX@"/usr/bin
+
+ if ( -x $GNUSTEP_SYSTEM_TOOLS/make_services ) then
+ $GNUSTEP_SYSTEM_TOOLS/make_services
+ endif
+endif
diff --git a/gnustep-base/gnustep-make/files/gnustep-5.sh b/gnustep-base/gnustep-make/files/gnustep-5.sh
new file mode 100644
index 000000000000..7fa5e105d5ff
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/gnustep-5.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env sh
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Test for an interactive shell
+case $- in
+ *i*)
+ ;;
+ *)
+ return
+ ;;
+esac
+
+GNUSTEP_SYSTEM_TOOLS="@GENTOO_PORTAGE_EPREFIX@"/usr/bin
+
+if [ -x ${GNUSTEP_SYSTEM_TOOLS}/make_services ]; then
+ ${GNUSTEP_SYSTEM_TOOLS}/make_services
+fi
diff --git a/gnustep-base/gnustep-make/files/gnustep-make-2.0.1-destdir.patch b/gnustep-base/gnustep-make/files/gnustep-make-2.0.1-destdir.patch
new file mode 100644
index 000000000000..407a5145724e
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/gnustep-make-2.0.1-destdir.patch
@@ -0,0 +1,21 @@
+* grobian@gentoo.org: because we use sandbox this check fails (cannot
+ write outside the DESTDIR. Allowing to write in the
+ GNUSTEP_INSTALLATION_DIR means our sandbox is useless, since then
+ everything can be written, so prefer to just check the DESTDIR
+ location instead.
+
+--- Master/rules.make
++++ Master/rules.make
+@@ -107,9 +107,9 @@
+
+ ifneq ($(GNUSTEP_INSTALLATION_DIR),)
+ internal-check-install-permissions:
+- @if [ -d "$(GNUSTEP_INSTALLATION_DIR)" \
+- -a ! -w "$(GNUSTEP_INSTALLATION_DIR)" ]; then \
+- echo "*ERROR*: the software is configured to install itself into $(GNUSTEP_INSTALLATION_DIR)"; \
++ @if [ -d "$(DESTDIR)$(GNUSTEP_INSTALLATION_DIR)" \
++ -a ! -w "$(DESTDIR)$(GNUSTEP_INSTALLATION_DIR)" ]; then \
++ echo "*ERROR*: the software is configured to install itself into $(DESTDIR)$(GNUSTEP_INSTALLATION_DIR)"; \
+ echo "but you do not have permissions to write in that directory:";\
+ echo "Aborting installation."; \
+ echo ""; \
diff --git a/gnustep-base/gnustep-make/files/testlibobjc.m b/gnustep-base/gnustep-make/files/testlibobjc.m
new file mode 100644
index 000000000000..225113c24d7e
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/testlibobjc.m
@@ -0,0 +1,10 @@
+/**
+ * Use "gcc -Werror -Wl,-l:libobjc.so.x testlibobjc.m -o /dev/null"
+ * #import generates a warning with non-objc
+ */
+#import <stdio.h>
+
+int main( int argc, const char *argv[] ) {
+ printf("Linker test\n");
+ return 0;
+}
diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild
new file mode 100644
index 000000000000..ac3226808d23
--- /dev/null
+++ b/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+inherit gnustep-base eutils prefix toolchain-funcs
+
+DESCRIPTION="GNUstep Makefile Package"
+HOMEPAGE="http://www.gnustep.org"
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="native-exceptions"
+
+DEPEND="${GNUSTEP_CORE_DEPEND}
+ >=sys-devel/make-3.75
+ >=sys-devel/gcc-3.3[objc]
+ !!gnustep-base/libobjc2"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ # Determine libobjc.so to use
+ if use libobjc2; then
+ libobjc_version=libobjc.so.4
+ else
+ # Find version in active gcc
+ for ver in {2..5};
+ do
+ if $(tc-getCC) -Werror -Wl,-l:libobjc.so.${ver} \
+ "${FILESDIR}"/testlibobjc.m -o /dev/null 2> /dev/null;
+ then
+ libobjc_version=libobjc.so.${ver}
+ fi
+ done
+ fi
+
+ # Stop if we could not get libobjc.so
+ if [[ -z ${libobjc_version} ]]; then
+ die "Could not find Objective-C runtime"
+ fi
+
+ # For existing installations, determine if we will use another libobjc.so
+ if has_version gnustep-base/gnustep-make; then
+ local current_libobjc="$(awk -F: '/^OBJC_LIB_FLAG/ {print $2}' ${EPREFIX}/usr/share/GNUstep/Makefiles/config.make)"
+ # Old installations did not set this explicitely
+ : ${current_libobjc:=libobjc.so.2}
+
+ if [[ ${current_libobjc} != ${libobjc_version} ]]; then
+ ewarn "Warning: changed libobjc.so version!!"
+ ewarn "The libobjc.so version used for gnustep-make has changed"
+ ewarn "(either by the libojbc2 use-flag or a GCC upgrade)"
+ ewarn "You must rebuild all gnustep packages installed."
+ ewarn ""
+ ewarn "To do so, please emerge gnustep-base/gnustep-updater and run:"
+ ewarn "# gnustep-updater -l"
+ fi
+ fi
+
+ if use libobjc2; then
+ export CC=clang
+ fi
+}
+
+src_prepare() {
+ # Multilib-strict
+ sed -e "s#/lib#/$(get_libdir)#" -i FilesystemLayouts/fhs-system || die "sed failed"
+ epatch "${FILESDIR}"/${PN}-2.0.1-destdir.patch
+ cp "${FILESDIR}"/gnustep-4.{csh,sh} "${T}"/
+ eprefixify "${T}"/gnustep-4.{csh,sh}
+}
+
+src_configure() {
+ #--enable-objc-nonfragile-abi: only working in clang for now
+ econf \
+ --with-layout=fhs-system \
+ --with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \
+ --with-objc-lib-flag=-l:${libobjc_version} \
+ $(use_enable libobjc2 objc-nonfragile-abi) \
+ $(use_enable native-exceptions native-objc-exceptions)
+}
+
+src_compile() {
+ emake
+ # Prepare doc here (needed when no gnustep-make is already installed)
+ if use doc ; then
+ # If a gnustep-1 environment is set
+ unset GNUSTEP_MAKEFILES
+ pushd Documentation &> /dev/null
+ emake all install
+ popd &> /dev/null
+ fi
+}
+
+src_install() {
+ # Get GNUSTEP_* variables
+ . ./GNUstep.conf
+
+ local make_eval
+ use debug || make_eval="${make_eval} debug=no"
+ make_eval="${make_eval} verbose=yes"
+
+ emake ${make_eval} DESTDIR="${D}" install
+
+ # Copy the documentation
+ if use doc ; then
+ dodir ${GNUSTEP_SYSTEM_DOC}
+ cp -r Documentation/tmp-installation/System/Library/Documentation/* \
+ "${ED}"${GNUSTEP_SYSTEM_DOC=}
+ fi
+
+ dodoc FAQ README RELEASENOTES
+
+ exeinto /etc/profile.d
+ doexe "${T}"/gnustep-4.sh
+ doexe "${T}"/gnustep-4.csh
+}
+
+pkg_postinst() {
+ # Warn about new layout if old GNUstep directory is still here
+ if [ -e /usr/GNUstep/System ]; then
+ ewarn "Old layout directory detected (/usr/GNUstep/System)"
+ ewarn "Gentoo has switched to FHS layout for GNUstep packages"
+ ewarn "You must first update the configuration files from this package,"
+ ewarn "then remerge all packages still installed with the old layout"
+ ewarn "You can use gnustep-base/gnustep-updater for this task"
+ fi
+}
diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.6.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.6.ebuild
new file mode 100644
index 000000000000..cff40af6a0ff
--- /dev/null
+++ b/gnustep-base/gnustep-make/gnustep-make-2.6.6.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit gnustep-base eutils prefix toolchain-funcs
+
+DESCRIPTION="GNUstep Makefile Package"
+HOMEPAGE="http://www.gnustep.org"
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="libobjc2 native-exceptions"
+
+DEPEND="${GNUSTEP_CORE_DEPEND}
+ >=sys-devel/make-3.75
+ libobjc2? ( gnustep-base/libobjc2
+ >=sys-devel/clang-2.9 )
+ !libobjc2? ( >=sys-devel/gcc-3.3:=[objc]
+ !!gnustep-base/libobjc2 )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ # Determine libobjc.so to use
+ if use libobjc2; then
+ libobjc_version=libobjc.so.4
+ else
+ # Find version in active gcc
+ for ver in {2..5};
+ do
+ if $(tc-getCC) -Werror -Wl,-l:libobjc.so.${ver} \
+ "${FILESDIR}"/testlibobjc.m -o /dev/null 2> /dev/null;
+ then
+ libobjc_version=libobjc.so.${ver}
+ fi
+ done
+ fi
+
+ # Stop if we could not get libobjc.so
+ if [[ -z ${libobjc_version} ]]; then
+ die "Could not find Objective-C runtime"
+ fi
+
+ # For existing installations, determine if we will use another libobjc.so
+ if has_version gnustep-base/gnustep-make; then
+ local current_libobjc="$(awk -F: '/^OBJC_LIB_FLAG/ {print $2}' ${EPREFIX}/usr/share/GNUstep/Makefiles/config.make)"
+ # Old installations did not set this explicitely
+ : ${current_libobjc:=libobjc.so.2}
+
+ if [[ ${current_libobjc} != ${libobjc_version} ]]; then
+ ewarn "Warning: changed libobjc.so version!!"
+ ewarn "The libobjc.so version used for gnustep-make has changed"
+ ewarn "(either by the libojbc2 use-flag or a GCC upgrade)"
+ ewarn "You must rebuild all gnustep packages installed."
+ ewarn ""
+ ewarn "To do so, please emerge gnustep-base/gnustep-updater and run:"
+ ewarn "# gnustep-updater -l"
+ fi
+ fi
+
+ if use libobjc2; then
+ export CC=clang
+ fi
+}
+
+src_prepare() {
+ # Multilib-strict
+ sed -e "s#/lib#/$(get_libdir)#" -i FilesystemLayouts/fhs-system || die "sed failed"
+ cp "${FILESDIR}"/gnustep-5.{csh,sh} "${T}"/
+ eprefixify "${T}"/gnustep-5.{csh,sh}
+}
+
+src_configure() {
+ #--enable-objc-nonfragile-abi: only working in clang for now
+ econf \
+ INSTALL="${EPREFIX}"/usr/bin/install \
+ --with-layout=fhs-system \
+ --with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \
+ --with-objc-lib-flag=-l:${libobjc_version} \
+ $(use_enable libobjc2 objc-nonfragile-abi) \
+ $(use_enable native-exceptions native-objc-exceptions)
+}
+
+src_compile() {
+ emake
+ # Prepare doc here (needed when no gnustep-make is already installed)
+ if use doc ; then
+ # If a gnustep-1 environment is set
+ unset GNUSTEP_MAKEFILES
+ pushd Documentation &> /dev/null
+ emake -j1 all install
+ popd &> /dev/null
+ fi
+}
+
+src_install() {
+ # Get GNUSTEP_* variables
+ . ./GNUstep.conf
+
+ local make_eval
+ use debug || make_eval="${make_eval} debug=no"
+ make_eval="${make_eval} verbose=yes"
+
+ emake ${make_eval} DESTDIR="${D}" install
+
+ # Copy the documentation
+ if use doc ; then
+ dodir ${GNUSTEP_SYSTEM_DOC}
+ cp -r Documentation/tmp-installation/System/Library/Documentation/* \
+ "${ED}"${GNUSTEP_SYSTEM_DOC=}
+ fi
+
+ dodoc FAQ README RELEASENOTES
+
+ exeinto /etc/profile.d
+ doexe "${T}"/gnustep-?.sh
+ doexe "${T}"/gnustep-?.csh
+}
+
+pkg_postinst() {
+ # Warn about new layout if old GNUstep directory is still here
+ if [ -e /usr/GNUstep/System ]; then
+ ewarn "Old layout directory detected (/usr/GNUstep/System)"
+ ewarn "Gentoo has switched to FHS layout for GNUstep packages"
+ ewarn "You must first update the configuration files from this package,"
+ ewarn "then remerge all packages still installed with the old layout"
+ ewarn "You can use gnustep-base/gnustep-updater for this task"
+ fi
+}
diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.7.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.7.ebuild
new file mode 100644
index 000000000000..cff40af6a0ff
--- /dev/null
+++ b/gnustep-base/gnustep-make/gnustep-make-2.6.7.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit gnustep-base eutils prefix toolchain-funcs
+
+DESCRIPTION="GNUstep Makefile Package"
+HOMEPAGE="http://www.gnustep.org"
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
+IUSE="libobjc2 native-exceptions"
+
+DEPEND="${GNUSTEP_CORE_DEPEND}
+ >=sys-devel/make-3.75
+ libobjc2? ( gnustep-base/libobjc2
+ >=sys-devel/clang-2.9 )
+ !libobjc2? ( >=sys-devel/gcc-3.3:=[objc]
+ !!gnustep-base/libobjc2 )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ # Determine libobjc.so to use
+ if use libobjc2; then
+ libobjc_version=libobjc.so.4
+ else
+ # Find version in active gcc
+ for ver in {2..5};
+ do
+ if $(tc-getCC) -Werror -Wl,-l:libobjc.so.${ver} \
+ "${FILESDIR}"/testlibobjc.m -o /dev/null 2> /dev/null;
+ then
+ libobjc_version=libobjc.so.${ver}
+ fi
+ done
+ fi
+
+ # Stop if we could not get libobjc.so
+ if [[ -z ${libobjc_version} ]]; then
+ die "Could not find Objective-C runtime"
+ fi
+
+ # For existing installations, determine if we will use another libobjc.so
+ if has_version gnustep-base/gnustep-make; then
+ local current_libobjc="$(awk -F: '/^OBJC_LIB_FLAG/ {print $2}' ${EPREFIX}/usr/share/GNUstep/Makefiles/config.make)"
+ # Old installations did not set this explicitely
+ : ${current_libobjc:=libobjc.so.2}
+
+ if [[ ${current_libobjc} != ${libobjc_version} ]]; then
+ ewarn "Warning: changed libobjc.so version!!"
+ ewarn "The libobjc.so version used for gnustep-make has changed"
+ ewarn "(either by the libojbc2 use-flag or a GCC upgrade)"
+ ewarn "You must rebuild all gnustep packages installed."
+ ewarn ""
+ ewarn "To do so, please emerge gnustep-base/gnustep-updater and run:"
+ ewarn "# gnustep-updater -l"
+ fi
+ fi
+
+ if use libobjc2; then
+ export CC=clang
+ fi
+}
+
+src_prepare() {
+ # Multilib-strict
+ sed -e "s#/lib#/$(get_libdir)#" -i FilesystemLayouts/fhs-system || die "sed failed"
+ cp "${FILESDIR}"/gnustep-5.{csh,sh} "${T}"/
+ eprefixify "${T}"/gnustep-5.{csh,sh}
+}
+
+src_configure() {
+ #--enable-objc-nonfragile-abi: only working in clang for now
+ econf \
+ INSTALL="${EPREFIX}"/usr/bin/install \
+ --with-layout=fhs-system \
+ --with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \
+ --with-objc-lib-flag=-l:${libobjc_version} \
+ $(use_enable libobjc2 objc-nonfragile-abi) \
+ $(use_enable native-exceptions native-objc-exceptions)
+}
+
+src_compile() {
+ emake
+ # Prepare doc here (needed when no gnustep-make is already installed)
+ if use doc ; then
+ # If a gnustep-1 environment is set
+ unset GNUSTEP_MAKEFILES
+ pushd Documentation &> /dev/null
+ emake -j1 all install
+ popd &> /dev/null
+ fi
+}
+
+src_install() {
+ # Get GNUSTEP_* variables
+ . ./GNUstep.conf
+
+ local make_eval
+ use debug || make_eval="${make_eval} debug=no"
+ make_eval="${make_eval} verbose=yes"
+
+ emake ${make_eval} DESTDIR="${D}" install
+
+ # Copy the documentation
+ if use doc ; then
+ dodir ${GNUSTEP_SYSTEM_DOC}
+ cp -r Documentation/tmp-installation/System/Library/Documentation/* \
+ "${ED}"${GNUSTEP_SYSTEM_DOC=}
+ fi
+
+ dodoc FAQ README RELEASENOTES
+
+ exeinto /etc/profile.d
+ doexe "${T}"/gnustep-?.sh
+ doexe "${T}"/gnustep-?.csh
+}
+
+pkg_postinst() {
+ # Warn about new layout if old GNUstep directory is still here
+ if [ -e /usr/GNUstep/System ]; then
+ ewarn "Old layout directory detected (/usr/GNUstep/System)"
+ ewarn "Gentoo has switched to FHS layout for GNUstep packages"
+ ewarn "You must first update the configuration files from this package,"
+ ewarn "then remerge all packages still installed with the old layout"
+ ewarn "You can use gnustep-base/gnustep-updater for this task"
+ fi
+}
diff --git a/gnustep-base/gnustep-make/metadata.xml b/gnustep-base/gnustep-make/metadata.xml
new file mode 100644
index 000000000000..3a2f3184686c
--- /dev/null
+++ b/gnustep-base/gnustep-make/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>gnustep</herd>
+<herd>proxy-maintainers</herd>
+<longdescription>
+The makefile package is a simple, powerful and extensible way to write
+makefiles for a GNUstep-based project. It allows the user to write a
+project without having to deal with the complex issues associated with
+configuration, building, installation, and packaging. It also allows
+the user to easily create cross-compiled binaries.
+</longdescription>
+<use>
+ <flag name='libobjc2'>Enables use of the GNUstep Objective-C runtime (<pkg>gnustep-base/libobjc2</pkg>) with non-fragile ABI and <pkg>sys-devel/clang</pkg> compiler</flag>
+ <flag name='native-exceptions'>Enables use of the native Objective-C exception support (@try/@catch/@finally) built-in objective-c exceptions with compilers that support it </flag>
+</use>
+</pkgmetadata>