diff options
author | Bernard Cafarelli <voyageur@gentoo.org> | 2009-09-14 15:05:31 +0000 |
---|---|---|
committer | Bernard Cafarelli <voyageur@gentoo.org> | 2009-09-14 15:05:31 +0000 |
commit | 1b1bf59b50dc503da6adf50cc12d95f810a87e98 (patch) | |
tree | 8b940f2a0c10de4fe929fe7fd4b97ce47fa93835 | |
parent | Drop pic USE-flag (diff) | |
download | gnustep-1b1bf59b50dc503da6adf50cc12d95f810a87e98.tar.gz gnustep-1b1bf59b50dc503da6adf50cc12d95f810a87e98.tar.bz2 gnustep-1b1bf59b50dc503da6adf50cc12d95f810a87e98.zip |
More cleanups (fix rpaths, llvm-gcc handling, ...)
svn path=/overlay/; revision=411
-rw-r--r-- | sys-devel/llvm/Manifest | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-2.6_pre.ebuild | 93 |
2 files changed, 36 insertions, 59 deletions
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index ea09ad4..0935f6c 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -3,4 +3,4 @@ AUX llvm-2.3-dont-build-hello.patch 392 RMD160 c76b0bebd54cf41e43c3a19aa39db0348 DIST llvm-2.5.tar.gz 6660609 RMD160 2c904b8d0bcce565ed11114b921321a0404e23fe SHA1 67f4bace9e64cc39255583aa837470d9b9de0aa5 SHA256 8f3d69e63bc5d1ee2c2ee49ff07ccb7e070070a0e937813d2a6179b9e2e173ed DIST llvm-2.6.tar.gz 7776874 RMD160 f8ddbb155ae479ebb51c05f281e16bff78d13590 SHA1 0196659ceaf81ef903b832de6a336c4924a79892 SHA256 fe463b3d74f4fecdbbcd2252024d0122464e1dd90ad63fd409c64010affa725e EBUILD llvm-2.5.ebuild 5576 RMD160 a6a0175b8f60dcad2b546c8997f460e10c5eb813 SHA1 3ad0437909e4cf6e2a711ca0ff7653155cd4148f SHA256 95293653bf7bada49d24a97273ee5325100e2eb8fb2d12033e36b60a51292e2e -EBUILD llvm-2.6_pre.ebuild 5677 RMD160 6f79e34beca6c68e8b598ff5cc4c886bede96ad5 SHA1 421b9d226a71afa346c1bffdf431cef1b8d135a0 SHA256 dde7047dcc0644b4b9ea96d608716ef295402076a75a94153b3b87503531e7f2 +EBUILD llvm-2.6_pre.ebuild 4532 RMD160 ac1092a47dbf24c1e32a0837922ec3b850563d10 SHA1 3dc1a3bb687a744d433afb51e5691155a42194f3 SHA256 3de082fbc6bda98be89e127fe6276c8fc70b63ed519091a9094e6aa044f56557 diff --git a/sys-devel/llvm/llvm-2.6_pre.ebuild b/sys-devel/llvm/llvm-2.6_pre.ebuild index d57e326..d1162f2 100644 --- a/sys-devel/llvm/llvm-2.6_pre.ebuild +++ b/sys-devel/llvm/llvm-2.6_pre.ebuild @@ -1,7 +1,8 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: +# $Header: $ +EAPI=2 inherit eutils toolchain-funcs multilib DESCRIPTION="Low Level Virtual Machine" @@ -9,32 +10,20 @@ HOMEPAGE="http://llvm.org/" #SRC_URI="http://llvm.org/releases/${PV}/${P}.tar.gz" SRC_URI="http://llvm.org/prereleases/${PV/_pre}/${PN}-${PV/_pre}.tar.gz" -LICENSE="LLVM" -# most part of LLVM fall under the "University of Illinois Open Source License" -# which doesn't seem to exist in portage yet, so I call it 'LLVM' for now. it -# can be read from llvm/LICENSE.TXT in the source tarball. - -# the directory llvm/runtime/GCCLibraries/libc contains a stripped down C -# library licensed under the LGPL 2.1 with some third party copyrights, see the -# two LICENCE* files in that directory. Those parts do *not* get built, so -# we omit LGPL in ${LICENCE} - +LICENSE="Uoi-NCSA" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86" - IUSE="debug alltargets" DEPEND="dev-lang/perl - >=sys-devel/make-3.79 - >=sys-devel/flex-2.5.4 - >=sys-devel/bison-1.28 - !~sys-devel/bison-1.85 - !~sys-devel/bison-1.875 - >=sys-devel/gcc-3.0 - >=sys-devel/binutils-2.18 - " + >=sys-devel/make-3.79 + >=sys-devel/flex-2.5.4 + >=sys-devel/bison-1.28 + !~sys-devel/bison-1.85 + !~sys-devel/bison-1.875 + >=sys-devel/gcc-3.0 + >=sys-devel/binutils-2.18" RDEPEND="dev-lang/perl" -PDEPEND="" S=${WORKDIR}/${PN}-${PV/_pre} @@ -51,7 +40,7 @@ pkg_setup() { elog "Your version of gcc is known to miscompile llvm." elog "Check http://www.llvm.org/docs/GettingStarted.html for" elog "possible solutions." - die "Your currently active version of gcc is known to miscompile llvm" + die "Your currently active version of gcc is known to miscompile llvm" fi if [[ ${CHOST} == i*86-* && ${broken_gcc_x86} == *" ${version} "* ]] ; then @@ -59,7 +48,7 @@ pkg_setup() { elog "architectures. Check" elog "http://www.llvm.org/docs/GettingStarted.html for possible" elog "solutions." - die "Your currently active version of gcc is known to miscompile llvm" + die "Your currently active version of gcc is known to miscompile llvm" fi if [[ ${CHOST} == x86_64-* && ${broken_gcc_amd64} == *" ${version} "* ]]; @@ -68,11 +57,11 @@ pkg_setup() { elog "architectures. Check" elog "http://www.llvm.org/docs/GettingStarted.html for possible" elog "solutions." - die "Your currently active version of gcc is known to miscompile llvm" + die "Your currently active version of gcc is known to miscompile llvm" fi } -src_compile() { +src_prepare() { # unfortunately ./configure won't listen to --mandir and the-like, so take # care of this. einfo "Fixing install dirs" @@ -80,19 +69,18 @@ src_compile() { -e 's,^PROJ_etcdir.*,PROJ_etcdir := $(DESTDIR)/etc/llvm,' \ -i Makefile.config.in || die "sed failed" - # fix gccld and gccas, which would otherwise point to the build directory + # point by default to the build directory einfo "Fixing gccld and gccas" sed -e 's,^TOOLDIR.*,TOOLDIR=/usr/bin,' \ -i tools/gccld/gccld.sh tools/gccas/gccas.sh || die "sed failed" - # all binaries get rpath'd to a dir in the temporary tree that doesn't - # contain libraries anyway; can safely remove those to avoid QA warnings - # (the exception would be if we build shared libraries, which we don't) einfo "Fixing rpath" - sed -e 's,-rpath \$(ToolDir),,g' -i Makefile.rules || die "sed failed" + sed -e 's/\$(RPATH) -Wl,\$(\(ToolDir\|LibDir\))//g' -i Makefile.rules || die "sed failed" epatch "${FILESDIR}"/llvm-2.3-dont-build-hello.patch - epatch "${FILESDIR}"/llvm-2.3-disable-strip.patch +} + +src_configure() { local CONF_FLAGS="" if use debug; then @@ -117,32 +105,18 @@ src_compile() { fi # things would be built differently depending on whether llvm-gcc is - # already present on the system or not. When not bootstapping we make sure - # that no llvm-gcc is found - local LLVM_GCC_DIR=/dev/null + # already present on the system or not. + local LLVM_GCC_DIR=/dev/null local LLVM_GCC_DRIVER=nope ; local LLVM_GPP_DRIVER=nope - if has_version sys-devel/llvm-gcc; then - # when bootstapping, make sure configure will find installed llvm-gcc - if [[ -z ${LLVM_GCC_PREFIX} ]] ; then - local here=/usr/$(get_libdir)/llvm-gcc/ - # this is scary - local LLVM_GCC_PREFIX=${here}$(ls $here | head -1) - fi + if has_version sys-devel/llvm-gcc ; then + LLVM_GCC_DIR=$(find /usr/$(get_libdir)/llvm-gcc/ -mindepth 1 -maxdepth 1 2> /dev/null) + LLVM_GCC_DRIVER=$(find ${LLVM_GCC_DIR} -name 'llvm*-gcc' 2> /dev/null) - [[ -z $(ls ${LLVM_GCC_PREFIX}/bin/*-gcc 2> /dev/null) ]] && \ - die "failed to find installed llvm-gcc, LLVM_GCC_PREFIX=${LLVM_GCC_PREFIX}" - - for driver in ${LLVM_GCC_PREFIX}/bin/*-gcc ; do - LLVM_GCC_DRIVER=${driver##*/} - break; - done - - LLVM_GCC_DIR=${LLVM_GCC_PREFIX} - - [[ -z ${LLVM_GCC_DRIVER} ]] && \ - die "failed to find installed llvm-gcc, LLVM_GCC_PREFIX=${LLVM_GCC_PREFIX}" + if [[ -z ${LLVM_GCC_DRIVER} ]] ; then + die "failed to find installed llvm-gcc, LLVM_GCC_DIR=${LLVM_GCC_DIR}" + fi - einfo "using $LLVM_GCC_DRIVER residing in $LLVM_GCC_DIR" + einfo "Using $LLVM_GCC_DRIVER" LLVM_GPP_DRIVER=${LLVM_GCC_DRIVER/%-gcc/-g++} fi @@ -152,19 +126,22 @@ src_compile() { --with-llvmgxx=${LLVM_GPP_DRIVER}" econf ${CONF_FLAGS} || die "econf failed" - emake || die "emake failed" +} + +src_compile() { + emake VERBOSE=1 KEEP_SYMBOLS=1 || die "emake failed" } src_install() { - make DESTDIR="${D}" install || die "make install failed" + emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed" # don't install html.tar.gz in /usr/share/doc -- FIXME: USE=doc einfo "Removing archived html documentation" rm "${D}"/usr/share/doc/${PF}/*tar.gz \ || die "no such file ${D}/usr/share/doc/${PF}/*tar.gz" - # tblgen does not get installed, so remove its man page. - # llvmgcc.1 and llvmgxx.1 are present here for unknown reasons. But, since + # tblgen does not get installed, so remove its man page. + # llvmgcc.1 and llvmgxx.1 are present here for unknown reasons. But, since # llvm-gcc installs bad man pages, keep the 2 files alive rm "${D}"/usr/share/man/man1/tblgen.1 } |