From 6c00fc4c4ea2612b37dbdc9c5c4aebe10add5d1f Mon Sep 17 00:00:00 2001
From: Bernard Cafarelli <voyageur@gentoo.org>
Date: Thu, 23 Nov 2023 22:30:19 +0100
Subject: gnustep-base/gnustep-make: add 2.9.1

Signed-off-by: Bernard Cafarelli <voyageur@gentoo.org>
---
 gnustep-base/gnustep-make/Manifest                 |   1 +
 .../gnustep-make/gnustep-make-2.9.1.ebuild         | 134 +++++++++++++++++++++
 2 files changed, 135 insertions(+)
 create mode 100644 gnustep-base/gnustep-make/gnustep-make-2.9.1.ebuild

(limited to 'gnustep-base/gnustep-make')

diff --git a/gnustep-base/gnustep-make/Manifest b/gnustep-base/gnustep-make/Manifest
index 6e3b0459875c..6a0c7b34c991 100644
--- a/gnustep-base/gnustep-make/Manifest
+++ b/gnustep-base/gnustep-make/Manifest
@@ -1,2 +1,3 @@
 DIST gnustep-make-2.8.0.tar.gz 606337 BLAKE2B b4defb8fdd8fc17ce2ac14c7d3d63b85e817bb639b7c1ae6a150baf74cda222ac046d890e677b50398bb9953e1496a98e9eb542809c961243f4f620276ab13fb SHA512 e9e57ed7a1c360c2dbf17f70d38e5107a1a9613842dcc645f10ed7a01eb9f9ee71bd2d0cacbe00439ce73f194a3eb3ed2e71409241ac96ee3bba704dcf6dfd7b
 DIST gnustep-make-2.9.0.tar.gz 611406 BLAKE2B 73bae19b5d3d3c1e069d22ce7087308166f632277d870fa5ab125d5bc004a1518a1edb6822c61e00b98fc13a1b3354440024bd13d98662002c15298745c4e935 SHA512 ff185affe32d4efc2009d72a3862bc3bffebce05ea5a7fdfbf4372774e57b6654863e317ce648c248716dd3e97a4320d697a313e7eefd04f5723186be6cbf1e3
+DIST gnustep-make-2.9.1.tar.gz 621081 BLAKE2B 1523cdb2b38ebd32c9a6b52edd07302e425aaf5f9820d152c4a4c18b7a34dbcfd1615208f8a8588ea32db354c5955a7e76af50948c88e685bce48077fdc6d646 SHA512 ab36cea1e79ba1248ee7510f2a4d5f5fe5aa0ee7044d51a3b4f65ebaeed08134b3b3ea8a9e34cdb4fa90ac43143d96cf868ae766d2fdc4341419575eb1637f28
diff --git a/gnustep-base/gnustep-make/gnustep-make-2.9.1.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.9.1.ebuild
new file mode 100644
index 000000000000..973d7c219618
--- /dev/null
+++ b/gnustep-base/gnustep-make/gnustep-make-2.9.1.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit gnustep-base prefix toolchain-funcs
+
+DESCRIPTION="GNUstep Makefile Package"
+HOMEPAGE="https://gnustep.github.io"
+SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="libobjc2 native-exceptions"
+
+DEPEND="${GNUSTEP_CORE_DEPEND}
+	>=sys-devel/make-3.75
+	libobjc2? ( gnustep-base/libobjc2
+		sys-devel/clang:* )
+	!libobjc2? ( !!gnustep-base/libobjc2
+		|| (
+			sys-devel/gcc:*[objc]
+			sys-devel/clang:*
+		) )"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${PN}-2.9.0-no_compress_man_pages.patch )
+
+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} -x objective-c \
+				- <<<$'int main() {}' -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
+		eerror "${P} requires a working Objective-C runtime and a compiler with"
+		eerror "Objective-C support. Your current settings lack these requirements"
+		if ! use libobjc2;
+		then
+			eerror "Please switch your active compiler to gcc with USE=objc, or clang"
+		fi
+		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}
+
+	default
+}
+
+src_configure() {
+	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 native-exceptions native-objc-exceptions)
+}
+
+src_compile() {
+	emake
+	if use doc ; then
+		emake -C Documentation
+	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
+		emake -C Documentation ${make_eval} DESTDIR="${D}" install
+	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
+}
-- 
cgit v1.2.3-65-gdbad