From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 2E34959CA3 for ; Thu, 10 Mar 2016 12:53:53 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 416F321C031; Thu, 10 Mar 2016 12:53:51 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C1C5A21C031 for ; Thu, 10 Mar 2016 12:53:50 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1C868340CFA for ; Thu, 10 Mar 2016 12:53:49 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id D54058F5 for ; Thu, 10 Mar 2016 12:53:45 +0000 (UTC) From: "Bernard Cafarelli" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Bernard Cafarelli" Message-ID: <1457614299.11f0e535ea278d969ac8a635615df7aabd89cbea.voyageur@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: gnustep-base/gnustep-make/ X-VCS-Repository: repo/gentoo X-VCS-Files: gnustep-base/gnustep-make/gnustep-make-2.6.7-r1.ebuild X-VCS-Directories: gnustep-base/gnustep-make/ X-VCS-Committer: voyageur X-VCS-Committer-Name: Bernard Cafarelli X-VCS-Revision: 11f0e535ea278d969ac8a635615df7aabd89cbea X-VCS-Branch: master Date: Thu, 10 Mar 2016 12:53:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 0aa399b9-f600-4734-b46f-606ef1ea92d9 X-Archives-Hash: 7be40fb9f20548900e6901c93d3ccdb8 commit: 11f0e535ea278d969ac8a635615df7aabd89cbea Author: Bernard Cafarelli gentoo org> AuthorDate: Thu Mar 10 12:51:39 2016 +0000 Commit: Bernard Cafarelli gentoo org> CommitDate: Thu Mar 10 12:51:39 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11f0e535 gnustep-base/gnustep-make: better message on missing objc support Also update for EAPI6 Bug #561728 by Toralf Förster gmx.de> Package-Manager: portage-2.2.27 .../gnustep-make/gnustep-make-2.6.7-r1.ebuild | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.7-r1.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.7-r1.ebuild new file mode 100644 index 0000000..14c1346 --- /dev/null +++ b/gnustep-base/gnustep-make/gnustep-make-2.6.7-r1.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 +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 ) + !libobjc2? ( !!gnustep-base/libobjc2 + || ( + >=sys-devel/gcc-3.3:=[objc] + sys-devel/clang + ) )" +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 + 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() { + #--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 +}