diff --git a/programming/build/llvm/actions.py b/programming/build/llvm/actions.py
index bf18e2bfc9..d20a9306eb 100644
--- a/programming/build/llvm/actions.py
+++ b/programming/build/llvm/actions.py
@@ -9,65 +9,61 @@ from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pkgconfig
from pisi.actionsapi import get
-from pisi.actionsapi import kde4
+from pisi.actionsapi import cmaketools
#WorkDir = "%s-%s.src" % (get.srcNAME(), get.srcVERSION())
libdir = "/usr/lib32/llvm" if get.buildTYPE() == "emul32" else "/usr/lib/llvm"
lib = "lib32" if get.buildTYPE() == "emul32" else "lib"
-def setup():
+def setup():
if not shelltools.isDirectory("tools/clang"):
- pisitools.dosed("tools/cfe-3.5.0.src/lib/Driver/ToolChains.cpp", '"ld"', '"ld.gold"')
+ #pisitools.dosed("tools/cfe-3.7.0.src/lib/Driver/ToolChains.cpp", '"ld"', '"ld.gold"')
shelltools.move("tools/cfe-%s.src" % get.srcVERSION(), "tools/clang")
shelltools.move("tools/clang-tools-extra-*", "tools/clang/extra")
+ shelltools.move("tools/lldb-*", "tools/lldb")
if not shelltools.isDirectory("projects/compiler-rt"):
- shelltools.move("projects/compiler-rt-3.5*", "projects/compiler-rt")
-
- pisitools.dosed("utils/llvm-build/llvm-build", "python", "python2.7")
- pisitools.dosed("bindings/ocaml/Makefile.ocaml", '\$\(PROJ_libdir\)', libdir)
- pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/etc/llvm", "/etc/llvm")
- pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/lib", "$(PROJ_prefix)/%s/llvm" % lib)
- pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/docs/llvm", "$(PROJ_prefix)/share/doc/llvm")
- pisitools.dosed("tools/llvm-config/llvm-config.cpp", '(ActiveLibDir\s=\sActivePrefix\s\+\s\"\/lib)(.*)', r'\1/llvm\2')
- pisitools.dosed("autoconf/configure.ac", '\LLVM_LIBDIR="\$\{prefix\}/lib"', 'LLVM_LIBDIR="${prefix}/%s/llvm"' % lib)
-
- pisitools.dosed("Makefile.rules", "\$\(RPATH\)\s-Wl,\$\(ExmplDir\)\s\$\(DynamicFlag\)", "$(DynamicFlag)")
- pisitools.dosed("Makefile.rules", "\$\(RPATH\)\s-Wl,\$\(ToolDir\)\s\$\(DynamicFlag\)", "$(DynamicFlag)")
-
- shelltools.export("CPPFLAGS","%s %s" % (get.CXXFLAGS(),pkgconfig.getLibraryCFLAGS("libffi")))
-
+ shelltools.move("projects/compiler-rt-3.7*", "projects/compiler-rt")
+
#pic_option = "enable" if get.ARCH() == "x86_64" else "disable"
shelltools.export("CC", "gcc")
shelltools.export("CXX", "g++")
- options = "--libdir=%s \
- --datadir=/usr/share/llvm \
- --sysconfdir=/etc \
- --enable-shared \
- --enable-libffi \
- --enable-targets=all \
- --disable-expensive-checks \
- --disable-debug-runtime \
- --disable-assertions \
- --disable-assertions \
- --with-python=/usr/bin/python2.7 \
- --with-binutils-include=/usr/include \
- " % libdir
+ shelltools.system("patch -d tools/clang/extra -Np1 < clang-tools-extra-3.7.0-install-clang-query.patch")
+
+ shelltools.system("patch -d tools/lldb -Np1 < lldb-3.7.0-avoid-linking-to-libLLVM.patch")
- autotools.configure(options)
-
-
-#def check():
-# autotools.make("check")
-# autotools.make("-C tools/clang test")
+ shelltools.makedirs("build")
+
+ shelltools.cd("build")
+ cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_DYLIB_EXPORT_ALL=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DFFI_INCLUDE_DIR=/usr/lib/libffi-3.2.1/include \
+ -DLLVM_BINUTILS_INCDIR=/usr/include", sourceDir="..")
def build():
- autotools.make("REQUIRES_RTTI=1")
+ shelltools.makedirs("build")
+
+ shelltools.cd("build")
+
+ cmaketools.make()
def install():
+ shelltools.makedirs("build")
+
+ shelltools.cd("build")
+
if get.buildTYPE() == "emul32":
-
- autotools.rawInstall("DESTDIR=%s \
+
+ #cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
+ cmaketools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=/usr/lib32/llvm \
PROJ_docsdir=/%s/llvm"
@@ -77,7 +73,7 @@ def install():
pisitools.remove("/usr/lib32/llvm/*LLVMHello.*")
return
else:
- autotools.rawInstall("DESTDIR=%s \
+ cmaketools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=%s \
PROJ_docsdir=/%s/llvm"
diff --git a/programming/build/llvm/pspec.xml b/programming/build/llvm/pspec.xml
index c053e4fb08..16e5d9a480 100644
--- a/programming/build/llvm/pspec.xml
+++ b/programming/build/llvm/pspec.xml
@@ -11,25 +11,36 @@
NCSA
The Low Level Virtual Machine
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
- http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz
- http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz
- http://llvm.org/releases/3.5.0/clang-tools-extra-3.5.0.src.tar.xz
- http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz
-
+ http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz
+ http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz
+ http://llvm.org/releases/3.7.0/clang-tools-extra-3.7.0.src.tar.xz
+ http://llvm.org/releases/3.7.0/lldb-3.7.0.src.tar.xz
+ http://llvm.org/releases/3.7.0/compiler-rt-3.7.0.src.tar.xz
+
+ clang-tools-extra-3.7.0-install-clang-query.patch
+ lldb-3.7.0-avoid-linking-to-libLLVM.patch
+
zlib-devel
libxml2-devel
+ python-devel
ncurses-devel
ocaml
libffi-devel
groff
+ swig
+ cmake
+ python-sphinx
+ python-MarkupSafe
libedit-devel
binutils
- llvm-3.5.0-fix-cmake-llvm-exports.patch
- llvm-3.5.0-force-link-pass.o.patch
+ llvm-3.7.0-link-tools-against-libLLVM.patch
+ llvm-3.7.0-export-more-symbols.patch
+
@@ -168,6 +179,13 @@
+
+ 2015-10-18
+ 3.7.0
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
2014-09-23
3.5.0