diff options
author | Bernard Cafarelli <voyageur@gentoo.org> | 2011-06-07 14:35:48 +0000 |
---|---|---|
committer | Bernard Cafarelli <voyageur@gentoo.org> | 2011-06-07 14:35:48 +0000 |
commit | 32ff48cceaf52b42e172e7d99b5ed8d075255197 (patch) | |
tree | a19c05f8457525edfd620c0d6f77337c057651e0 /gnustep-base | |
parent | sys-block/open-iscsi: Bump to 2.0.872 (bug #340425) (diff) | |
download | gentoo-2-32ff48cceaf52b42e172e7d99b5ed8d075255197.tar.gz gentoo-2-32ff48cceaf52b42e172e7d99b5ed8d075255197.tar.bz2 gentoo-2-32ff48cceaf52b42e172e7d99b5ed8d075255197.zip |
Experimental suppport for libobjc2/clang
(Portage version: 2.2.0_alpha38/cvs/Linux x86_64)
Diffstat (limited to 'gnustep-base')
-rw-r--r-- | gnustep-base/gnustep-make/ChangeLog | 8 | ||||
-rw-r--r-- | gnustep-base/gnustep-make/gnustep-make-2.6.1-r10.ebuild | 105 | ||||
-rw-r--r-- | gnustep-base/gnustep-make/metadata.xml | 1 |
3 files changed, 113 insertions, 1 deletions
diff --git a/gnustep-base/gnustep-make/ChangeLog b/gnustep-base/gnustep-make/ChangeLog index 14a6ac525156..03a0dba8e891 100644 --- a/gnustep-base/gnustep-make/ChangeLog +++ b/gnustep-base/gnustep-make/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for gnustep-base/gnustep-make # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/ChangeLog,v 1.100 2011/06/07 13:48:56 voyageur Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/ChangeLog,v 1.101 2011/06/07 14:35:48 voyageur Exp $ + +*gnustep-make-2.6.1-r10 (07 Jun 2011) + + 07 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> + +gnustep-make-2.6.1-r10.ebuild, metadata.xml: + Experimental suppport for libobjc2/clang 07 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> gnustep-make-2.4.0.ebuild, gnustep-make-2.6.0.ebuild, diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.1-r10.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.1-r10.ebuild new file mode 100644 index 000000000000..0e2f749d06b8 --- /dev/null +++ b/gnustep-base/gnustep-make/gnustep-make-2.6.1-r10.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/gnustep-make-2.6.1-r10.ebuild,v 1.1 2011/06/07 14:35:48 voyageur Exp $ + +EAPI="3" + +inherit gnustep-base eutils prefix + +DESCRIPTION="GNUstep Makefile Package" + +HOMEPAGE="http://www.gnustep.org" +SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz" +KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris" +IUSE="libobjc2 native-exceptions" +SLOT="0" +LICENSE="GPL-2" + +DEPEND="${GNUSTEP_CORE_DEPEND} + >=sys-devel/gcc-3.3[objc] + >=sys-devel/make-3.75 + libobjc2? ( gnustep-base/libobjc2 + >=sys-devel/clang-2.9 ) + !libobjc2? ( !gnustep-base/libobjc2 )" +RDEPEND="${DEPEND}" + +pkg_setup() { + if ( use libobjc2 && ! has_version gnustep-base/gnustep-make[libobjc2] ) || \ + ( ! use libobjc2 && has_version gnustep-base/gnustep-make[libobjc2] ) || \ + ( use libobjc2 && has_version <=gnustep-base-2.6.1-r1 ) ; then + ewarn "TOGGLED liobjc2 USE-FLAG WARNING:" + ewarn "You changed the libojbc2 use-flag" + ewarn "You must rebuild all gnustep packages installed." + # Suggest gnustep-updater once updated to do the trick + 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() { + if use libobjc2; then + export CC=clang + fi + + #--enable-objc-nonfragile-abi: problem with glibc unistd.h (__blocks) + econf \ + --with-layout=fhs-system \ + --with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \ + $(use_enable native-exceptions native-objc-exceptions) \ + || die "configure failed" +} + +src_compile() { + emake || die "compilation failed" + # 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 || die "doc make has failed" + 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 || die "install has failed" + + # Copy the documentation + if use doc ; then + dodir ${GNUSTEP_SYSTEM_LIBRARY} + cp -r Documentation/tmp-installation/System/Library/Documentation \ + "${ED}"${GNUSTEP_SYSTEM_LIBRARY} + 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 + + # TODO warn if libobjc2 flag changed +} diff --git a/gnustep-base/gnustep-make/metadata.xml b/gnustep-base/gnustep-make/metadata.xml index d41b36657bb8..816a08388d56 100644 --- a/gnustep-base/gnustep-make/metadata.xml +++ b/gnustep-base/gnustep-make/metadata.xml @@ -10,6 +10,7 @@ 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 <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> |