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 560961381F3 for ; Sat, 20 Jul 2013 14:00:32 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 41812E0930; Sat, 20 Jul 2013 14:00:28 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A5426E0930 for ; Sat, 20 Jul 2013 14:00:27 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9454C33DAA9 for ; Sat, 20 Jul 2013 14:00:26 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 3799BE4B05 for ; Sat, 20 Jul 2013 14:00:25 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1374328361.bd8eb41521626307eadd67b4f1a1490bb42b3cb8.mgorny@gentoo> Subject: [gentoo-commits] dev/mgorny:master commit in: sys-devel/llvm/files/, sys-devel/llvm/ X-VCS-Repository: dev/mgorny X-VCS-Files: sys-devel/llvm/files/llvm-3.3-gentoo-install.patch sys-devel/llvm/files/llvm-3.4-gentoo-install.patch sys-devel/llvm/llvm-3.3-r1.ebuild sys-devel/llvm/llvm-9999-r1.ebuild X-VCS-Directories: sys-devel/llvm/files/ sys-devel/llvm/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: bd8eb41521626307eadd67b4f1a1490bb42b3cb8 X-VCS-Branch: master Date: Sat, 20 Jul 2013 14:00:25 +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: 8b6656cf-3d73-4b28-a949-68c437886f97 X-Archives-Hash: 8e5694ec445cf1fa0a0c9fb80fff4caf commit: bd8eb41521626307eadd67b4f1a1490bb42b3cb8 Author: Michał Górny gentoo org> AuthorDate: Sat Jul 20 13:52:41 2013 +0000 Commit: Michał Górny gentoo org> CommitDate: Sat Jul 20 13:52:41 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=bd8eb415 sys-devel/llvm: use out-of-source builds. Well, it seems that LLVM actually supports them and they work just fine. --- sys-devel/llvm/files/llvm-3.3-gentoo-install.patch | 29 +++-- sys-devel/llvm/files/llvm-3.4-gentoo-install.patch | 29 +++-- sys-devel/llvm/llvm-3.3-r1.ebuild | 142 ++++++++++----------- sys-devel/llvm/llvm-9999-r1.ebuild | 141 ++++++++++---------- 4 files changed, 171 insertions(+), 170 deletions(-) diff --git a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch index 14ff44f..8b19353 100644 --- a/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch +++ b/sys-devel/llvm/files/llvm-3.3-gentoo-install.patch @@ -1,20 +1,20 @@ -From 7843380cdbc4f4519b3669585122bd0a28d3cd29 Mon Sep 17 00:00:00 2001 +From 378109dbae7e4772d9b096384904c638a6a34028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Fri, 19 Jul 2013 10:10:52 +0200 -Subject: [PATCH] gentoo install fixes +Subject: [PATCH 1/2] gentoo install fixes --- Makefile.config.in | 6 +++--- Makefile.rules | 7 +++---- tools/gold/Makefile | 2 +- - tools/llvm-config/BuildVariables.inc.in | 1 + - tools/llvm-config/Makefile | 2 ++ + tools/llvm-config/BuildVariables.inc.in | 2 ++ + tools/llvm-config/Makefile | 4 ++++ tools/llvm-config/llvm-config.cpp | 5 +++-- utils/FileCheck/Makefile | 2 +- - 7 files changed, 14 insertions(+), 11 deletions(-) + 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Makefile.config.in b/Makefile.config.in -index fd4f6ef..ad6595f 100644 +index fd4f6ef..5634ecc 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix) @@ -22,7 +22,7 @@ index fd4f6ef..ad6595f 100644 PROJ_bindir := $(PROJ_prefix)/bin -PROJ_libdir := $(PROJ_prefix)/lib -+PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm ++PROJ_libdir := $(PROJ_prefix)/$(GENTOO_LIBDIR)/llvm PROJ_datadir := $(PROJ_prefix)/share -PROJ_docsdir := $(PROJ_prefix)/docs/llvm -PROJ_etcdir := $(PROJ_prefix)/etc/llvm @@ -84,29 +84,32 @@ index 496e31c..d36b340 100644 include $(LEVEL)/Makefile.common diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index fe87afb..94952ca 100644 +index fe87afb..fd9f2c6 100644 --- a/tools/llvm-config/BuildVariables.inc.in +++ b/tools/llvm-config/BuildVariables.inc.in -@@ -25,3 +25,4 @@ +@@ -25,3 +25,5 @@ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" +#define LLVM_RPATH "@LLVM_RPATH@" ++#define LLVM_LIBDIR "@LLVM_LIBDIR@" diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile -index b20b6bf..3747baf 100644 +index b20b6bf..fc56781 100644 --- a/tools/llvm-config/Makefile +++ b/tools/llvm-config/Makefile -@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir +@@ -55,6 +55,10 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir >> temp.sed $(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \ >> temp.sed + $(Verb) $(ECHO) 's/@LLVM_RPATH@/$(subst /,\/,$(RPATH))/' \ + >> temp.sed ++ $(Verb) $(ECHO) 's/@LLVM_LIBDIR@/$(subst /,\/,$(GENTOO_LIBDIR))/' \ ++ >> temp.sed $(Verb) $(SED) -f temp.sed < $< > $@ $(Verb) $(RM) temp.sed diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 7edf5ec..abd2888 100644 +index 7edf5ec..4541c28 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/tools/llvm-config/llvm-config.cpp @@ -250,7 +250,7 @@ int main(int argc, char **argv) { @@ -114,7 +117,7 @@ index 7edf5ec..abd2888 100644 ActiveIncludeDir = ActivePrefix + "/include"; ActiveBinDir = ActivePrefix + "/bin"; - ActiveLibDir = ActivePrefix + "/lib"; -+ ActiveLibDir = ActivePrefix + "/@libdir@/llvm"; ++ ActiveLibDir = ActivePrefix + "/" LLVM_LIBDIR "/llvm"; ActiveIncludeOption = "-I" + ActiveIncludeDir; } diff --git a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch index ad3eec1..659486a 100644 --- a/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch +++ b/sys-devel/llvm/files/llvm-3.4-gentoo-install.patch @@ -1,20 +1,20 @@ -From f0927633bf1d6426624f1c266b1407b18ac1cd80 Mon Sep 17 00:00:00 2001 +From be2ee7ba7ab4c1aec86d3d9e49e1be241afd8abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Fri, 19 Jul 2013 10:10:52 +0200 -Subject: [PATCH] gentoo install fixes +Subject: [PATCH 1/2] gentoo install fixes --- Makefile.config.in | 6 +++--- Makefile.rules | 7 +++---- tools/gold/Makefile | 2 +- - tools/llvm-config/BuildVariables.inc.in | 1 + - tools/llvm-config/Makefile | 2 ++ + tools/llvm-config/BuildVariables.inc.in | 2 ++ + tools/llvm-config/Makefile | 4 ++++ tools/llvm-config/llvm-config.cpp | 5 +++-- utils/FileCheck/Makefile | 2 +- - 7 files changed, 14 insertions(+), 11 deletions(-) + 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Makefile.config.in b/Makefile.config.in -index dcca45f..45bf0d1 100644 +index dcca45f..e75ae2e 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix) @@ -22,7 +22,7 @@ index dcca45f..45bf0d1 100644 PROJ_bindir := $(PROJ_prefix)/bin -PROJ_libdir := $(PROJ_prefix)/lib -+PROJ_libdir := $(PROJ_prefix)/@libdir@/llvm ++PROJ_libdir := $(PROJ_prefix)/$(GENTOO_LIBDIR)/llvm PROJ_datadir := $(PROJ_prefix)/share -PROJ_docsdir := $(PROJ_prefix)/docs/llvm -PROJ_etcdir := $(PROJ_prefix)/etc/llvm @@ -80,29 +80,32 @@ index 496e31c..d36b340 100644 include $(LEVEL)/Makefile.common diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in -index fe87afb..2afaaea 100644 +index fe87afb..fd9f2c6 100644 --- a/tools/llvm-config/BuildVariables.inc.in +++ b/tools/llvm-config/BuildVariables.inc.in -@@ -25,3 +25,4 @@ +@@ -25,3 +25,5 @@ #define LLVM_BUILDMODE "@LLVM_BUILDMODE@" #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@" #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@" +#define LLVM_RPATH "@LLVM_RPATH@" ++#define LLVM_LIBDIR "@LLVM_LIBDIR@" diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile -index b20b6bf..3747baf 100644 +index b20b6bf..fc56781 100644 --- a/tools/llvm-config/Makefile +++ b/tools/llvm-config/Makefile -@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir +@@ -55,6 +55,10 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir >> temp.sed $(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \ >> temp.sed + $(Verb) $(ECHO) 's/@LLVM_RPATH@/$(subst /,\/,$(RPATH))/' \ + >> temp.sed ++ $(Verb) $(ECHO) 's/@LLVM_LIBDIR@/$(subst /,\/,$(GENTOO_LIBDIR))/' \ ++ >> temp.sed $(Verb) $(SED) -f temp.sed < $< > $@ $(Verb) $(RM) temp.sed diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 3924e2e..169e8bf 100644 +index 3924e2e..f439c60 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/tools/llvm-config/llvm-config.cpp @@ -250,7 +250,7 @@ int main(int argc, char **argv) { @@ -110,7 +113,7 @@ index 3924e2e..169e8bf 100644 ActiveIncludeDir = ActivePrefix + "/include"; ActiveBinDir = ActivePrefix + "/bin"; - ActiveLibDir = ActivePrefix + "/lib"; -+ ActiveLibDir = ActivePrefix + "/@libdir@/llvm"; ++ ActiveLibDir = ActivePrefix + "/" LLVM_LIBDIR "/llvm"; ActiveIncludeOption = "-I" + ActiveIncludeDir; } diff --git a/sys-devel/llvm/llvm-3.3-r1.ebuild b/sys-devel/llvm/llvm-3.3-r1.ebuild index 515b006..fb8400a 100644 --- a/sys-devel/llvm/llvm-3.3-r1.ebuild +++ b/sys-devel/llvm/llvm-3.3-r1.ebuild @@ -101,28 +101,6 @@ src_unpack() { } src_prepare() { - multilib_src_prepare() { - cd "${BUILD_DIR}" || die - - local sub_files=( - Makefile.config.in - Makefile.rules - tools/llvm-config/llvm-config.cpp - ) - use clang && sub_files+=( - tools/clang/lib/Driver/Tools.cpp - tools/clang/tools/scan-build/scan-build - ) - - # unfortunately ./configure won't listen to --mandir and the-like, so take - # care of this. - sed -e "s,@libdir@,$(get_libdir),g" \ - -e "s,@PF@,${PF},g" \ - -e "s,@EPREFIX@,${EPREFIX},g" \ - -i "${sub_files[@]}" \ - || die "install paths sed failed" - } - if use clang; then # Automatically select active system GCC's libraries, bugs #406163 and #417913 epatch "${FILESDIR}"/clang-3.1-gentoo-runtime-gcc-detection-v3.patch @@ -142,11 +120,29 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-3.3-gentoo-install.patch use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch + local sub_files=( + Makefile.config.in + Makefile.rules + tools/llvm-config/llvm-config.cpp + ) + use clang && sub_files+=( + tools/clang/lib/Driver/Tools.cpp + tools/clang/tools/scan-build/scan-build + ) + + # unfortunately ./configure won't listen to --mandir and the-like, so take + # care of this. + # note: we're setting the main libdir intentionally. + # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make. + einfo "Fixing install dirs" + sed -e "s,@libdir@,$(get_libdir),g" \ + -e "s,@PF@,${PF},g" \ + -e "s,@EPREFIX@,${EPREFIX},g" \ + -i "${sub_files[@]}" \ + || die "install paths sed failed" + # User patches epatch_user - - multilib_copy_sources - multilib_foreach_abi multilib_src_prepare } llvm_add_ldpath() { @@ -213,6 +209,8 @@ multilib_src_configure() { # llvm prefers clang over gcc, so we may need to force that tc-export CC CXX + + ECONF_SOURCE=${S} \ econf ${CONF_FLAGS} } @@ -220,6 +218,7 @@ multilib_src_compile() { local mymakeopts=( VERBOSE=1 REQUIRES_RTTI=1 + GENTOO_LIBDIR="$(get_libdir)" ) local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH} @@ -237,8 +236,7 @@ multilib_src_compile() { fi if multilib_is_native_abi && use doc; then - emake -C docs -f Makefile.sphinx man - emake -C docs -f Makefile.sphinx html + emake -C "${S}"/docs -f Makefile.sphinx man html fi if use debug; then @@ -283,6 +281,7 @@ src_install() { multilib_src_install() { local mymakeopts=( DESTDIR="${D}" + GENTOO_LIBDIR="$(get_libdir)" ) local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH} @@ -311,13 +310,54 @@ multilib_src_install() { rm -r "${ED}"/usr/bin || die fi - if multilib_is_native_abi && use doc; then - # Note: use !doc is handled in multilib_src_install_all + # Fix install_names on Darwin. The build system is too complicated + # to just fix this, so we correct it post-install + local lib= f= odylib= libpv=${PV} + if [[ ${CHOST} == *-darwin* ]] ; then + eval $(grep PACKAGE_VERSION= configure) + [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION} + for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do + # libEnhancedDisassembly is Darwin10 only, so non-fatal + # + omit clang libs if not enabled + [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue + + ebegin "fixing install_name of $lib" + install_name_tool \ + -id "${EPREFIX}"/usr/lib/${PN}/${lib} \ + "${ED}"/usr/lib/${PN}/${lib} + eend $? + done + for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do + # omit clang libs if not enabled + [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue + + odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib) + ebegin "fixing install_name reference to ${odylib} of ${f##*/}" + install_name_tool \ + -change "${odylib}" \ + "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \ + -change "@rpath/libclang.dylib" \ + "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ + -change "${S}"/Release/lib/libclang.dylib \ + "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ + "${f}" + eend $? + done + fi +} + +multilib_src_install_all() { + if use doc; then doman docs/_build/man/*.1 dohtml -r docs/_build/html/ + else + doman "${WORKDIR}"/${P}-manpages/*.1 fi - if multilib_is_native_abi && use clang; then + insinto /usr/share/vim/vimfiles/syntax + doins utils/vim/*.vim + + if use clang; then cd tools/clang || die if use static-analyzer ; then @@ -357,46 +397,4 @@ multilib_src_install() { } python_foreach_impl python_inst fi - - # Fix install_names on Darwin. The build system is too complicated - # to just fix this, so we correct it post-install - local lib= f= odylib= libpv=${PV} - if [[ ${CHOST} == *-darwin* ]] ; then - eval $(grep PACKAGE_VERSION= configure) - [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION} - for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do - # libEnhancedDisassembly is Darwin10 only, so non-fatal - # + omit clang libs if not enabled - [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue - - ebegin "fixing install_name of $lib" - install_name_tool \ - -id "${EPREFIX}"/usr/lib/${PN}/${lib} \ - "${ED}"/usr/lib/${PN}/${lib} - eend $? - done - for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do - # omit clang libs if not enabled - [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue - - odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib) - ebegin "fixing install_name reference to ${odylib} of ${f##*/}" - install_name_tool \ - -change "${odylib}" \ - "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \ - -change "@rpath/libclang.dylib" \ - "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ - -change "${S}"/Release/lib/libclang.dylib \ - "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ - "${f}" - eend $? - done - fi -} - -multilib_src_install_all() { - use doc || doman "${WORKDIR}"/${P}-manpages/*.1 - - insinto /usr/share/vim/vimfiles/syntax - doins utils/vim/*.vim } diff --git a/sys-devel/llvm/llvm-9999-r1.ebuild b/sys-devel/llvm/llvm-9999-r1.ebuild index ec5baeb..ae6bbb5 100644 --- a/sys-devel/llvm/llvm-9999-r1.ebuild +++ b/sys-devel/llvm/llvm-9999-r1.ebuild @@ -98,38 +98,33 @@ src_unpack() { } src_prepare() { - multilib_src_prepare() { - cd "${BUILD_DIR}" || die - - local sub_files=( - Makefile.config.in - Makefile.rules - tools/llvm-config/llvm-config.cpp - ) - use clang && sub_files+=( - tools/clang/lib/Driver/Tools.cpp - tools/clang/tools/scan-build/scan-build - ) - - # unfortunately ./configure won't listen to --mandir and the-like, so take - # care of this. - einfo "Fixing install dirs" - sed -e "s,@libdir@,$(get_libdir),g" \ - -e "s,@PF@,${PF},g" \ - -e "s,@EPREFIX@,${EPREFIX},g" \ - -i "${sub_files[@]}" \ - || die "install paths sed failed" - } - epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch epatch "${FILESDIR}"/${PN}-3.4-gentoo-install.patch use clang && epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch + local sub_files=( + Makefile.config.in + Makefile.rules + tools/llvm-config/llvm-config.cpp + ) + use clang && sub_files+=( + tools/clang/lib/Driver/Tools.cpp + tools/clang/tools/scan-build/scan-build + ) + + # unfortunately ./configure won't listen to --mandir and the-like, so take + # care of this. + # note: we're setting the main libdir intentionally. + # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make. + einfo "Fixing install dirs" + sed -e "s,@libdir@,$(get_libdir),g" \ + -e "s,@PF@,${PF},g" \ + -e "s,@EPREFIX@,${EPREFIX},g" \ + -i "${sub_files[@]}" \ + || die "install paths sed failed" + # User patches epatch_user - - multilib_copy_sources - multilib_foreach_abi multilib_src_prepare } llvm_add_ldpath() { @@ -194,6 +189,8 @@ multilib_src_configure() { # llvm prefers clang over gcc, so we may need to force that tc-export CC CXX + + ECONF_SOURCE=${S} \ econf ${CONF_FLAGS} } @@ -201,6 +198,7 @@ multilib_src_compile() { local mymakeopts=( VERBOSE=1 REQUIRES_RTTI=1 + GENTOO_LIBDIR="$(get_libdir)" ) local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH} @@ -218,8 +216,8 @@ multilib_src_compile() { fi if multilib_is_native_abi; then - emake -C docs -f Makefile.sphinx man - use doc && emake -C docs -f Makefile.sphinx html + emake -C "${S}"/docs -f Makefile.sphinx man + use doc && emake -C "${S}"/docs -f Makefile.sphinx html fi if use debug; then @@ -261,6 +259,7 @@ src_install() { multilib_src_install() { local mymakeopts=( DESTDIR="${D}" + GENTOO_LIBDIR="$(get_libdir)" ) local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH} @@ -289,12 +288,50 @@ multilib_src_install() { rm -r "${ED}"/usr/bin || die fi - if multilib_is_native_abi; then - doman docs/_build/man/*.1 - use doc && dohtml -r docs/_build/html/ + # Fix install_names on Darwin. The build system is too complicated + # to just fix this, so we correct it post-install + local lib= f= odylib= libpv=${PV} + if [[ ${CHOST} == *-darwin* ]] ; then + eval $(grep PACKAGE_VERSION= configure) + [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION} + for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do + # libEnhancedDisassembly is Darwin10 only, so non-fatal + # + omit clang libs if not enabled + [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue + + ebegin "fixing install_name of $lib" + install_name_tool \ + -id "${EPREFIX}"/usr/lib/${PN}/${lib} \ + "${ED}"/usr/lib/${PN}/${lib} + eend $? + done + for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do + # omit clang libs if not enabled + [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue + + odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib) + ebegin "fixing install_name reference to ${odylib} of ${f##*/}" + install_name_tool \ + -change "${odylib}" \ + "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \ + -change "@rpath/libclang.dylib" \ + "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ + -change "${S}"/Release/lib/libclang.dylib \ + "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ + "${f}" + eend $? + done fi +} + +multilib_src_install_all() { + doman docs/_build/man/*.1 + use doc && dohtml -r docs/_build/html/ - if multilib_is_native_abi && use clang; then + insinto /usr/share/vim/vimfiles/syntax + doins utils/vim/*.vim + + if use clang; then cd tools/clang || die if use static-analyzer ; then @@ -334,44 +371,4 @@ multilib_src_install() { } python_foreach_impl python_inst fi - - # Fix install_names on Darwin. The build system is too complicated - # to just fix this, so we correct it post-install - local lib= f= odylib= libpv=${PV} - if [[ ${CHOST} == *-darwin* ]] ; then - eval $(grep PACKAGE_VERSION= configure) - [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION} - for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib {BugpointPasses,LLVMHello}.dylib ; do - # libEnhancedDisassembly is Darwin10 only, so non-fatal - # + omit clang libs if not enabled - [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue - - ebegin "fixing install_name of $lib" - install_name_tool \ - -id "${EPREFIX}"/usr/lib/${PN}/${lib} \ - "${ED}"/usr/lib/${PN}/${lib} - eend $? - done - for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/lib{LTO,clang}.dylib ; do - # omit clang libs if not enabled - [[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue - - odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib) - ebegin "fixing install_name reference to ${odylib} of ${f##*/}" - install_name_tool \ - -change "${odylib}" \ - "${EPREFIX}"/usr/lib/${PN}/libLLVM-${libpv}.dylib \ - -change "@rpath/libclang.dylib" \ - "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ - -change "${S}"/Release/lib/libclang.dylib \ - "${EPREFIX}"/usr/lib/llvm/libclang.dylib \ - "${f}" - eend $? - done - fi -} - -multilib_src_install_all() { - insinto /usr/share/vim/vimfiles/syntax - doins utils/vim/*.vim }