summaryrefslogtreecommitdiff
path: root/app-arch/lld/lld-9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch/lld/lld-9999.ebuild')
-rw-r--r--app-arch/lld/lld-9999.ebuild85
1 files changed, 85 insertions, 0 deletions
diff --git a/app-arch/lld/lld-9999.ebuild b/app-arch/lld/lld-9999.ebuild
new file mode 100644
index 00000000..a185cf74
--- /dev/null
+++ b/app-arch/lld/lld-9999.ebuild
@@ -0,0 +1,85 @@
+# By Eroen, 2013
+# Distributed under the terms of the ISC License
+# $Header: $
+
+EAPI=5
+
+inherit eutils flag-o-matic cmake-utils subversion
+
+DESCRIPTION="The LLVM Linker"
+HOMEPAGE="http://lld.llvm.org/"
+ESVN_REPO_URI="http://llvm.org/svn/llvm-project/lld/trunk"
+SRC_URI=""
+
+LICENSE="UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+LIBDEPEND="
+ || ( ( >=sys-devel/clang-3.1
+ sys-libs/libcxx )
+ >=sys-devel/gcc-4.7 )
+"
+RDEPEND="${LIBDEPEND}"
+DEPEND="${LIBDEPEND}"
+HDEPEND="
+ >=dev-util/cmake-2.8
+ "
+
+src_unpack() {
+ ESVN_PROJECT=llvm \
+ subversion_fetch \
+ "http://llvm.org/svn/llvm-project/llvm/trunk"
+ ESVN_PROJECT=lld \
+ S="${S}"/tools/lld \
+ subversion_fetch \
+ "http://llvm.org/svn/llvm-project/lld/trunk"
+}
+
+src_prepare() {
+ cd "${S}"/tools/lld
+ # Patches from https://github.com/Bigcheese/lold (dynamic branch)
+ EPATCH_FORCE=yes \
+ EPATCH_SUFFIX=patch \
+ epatch "${FILESDIR}"/patches-0/
+ default
+ epatch_user
+}
+
+src_configure() {
+ append-cxxflags -std=c++11
+ append-ldflags -L/usr/lib64/llvm
+ # Shared libraries needs a release, so we can have corresponding libs
+ # installed.
+ mycmakeargs=(
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_RUNTIME=OFF
+ -DLLVM_INCLUDE_RUNTIME=OFF
+ -DLLVM_ENABLE_ASSERTIONS=ON
+ -DLLVM_ENABLE_BACKTRACES=ON
+ -DLLVM_LIT_ARGS=-v
+ )
+ #Debug use flag?
+ #-DLLVM_ENABLE_ASSERTIONS=OFF
+ #-DLLVM_ENABLE_BACKTRACES=OFF
+ #Figure out how targets are set in cmake
+ #-DLLVM_TARGETS_TO_BUILD=host:cpp
+ tc-export CC CXX
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile lld
+}
+
+src_test() {
+ # This builds (most?) of llvm too.
+ cd "${BUILD_DIR}"
+ emake check-lld
+}
+
+src_install() {
+ cd "${BUILD_DIR}"/tools/lld
+ emake DESTDIR="${D}" install
+}