diff --git a/programming/build/llvm/actions.py b/programming/build/llvm/actions.py
index 61a0b0f15e..bf18e2bfc9 100644
--- a/programming/build/llvm/actions.py
+++ b/programming/build/llvm/actions.py
@@ -9,103 +9,106 @@ from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pkgconfig
from pisi.actionsapi import get
-from pisi.actionsapi import cmaketools
+from pisi.actionsapi import kde4
#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.7.0.src/lib/Driver/ToolChains.cpp", '"ld"', '"ld.gold"')
+ pisitools.dosed("tools/cfe-3.5.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.7*", "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")))
+
#pic_option = "enable" if get.ARCH() == "x86_64" else "disable"
shelltools.export("CC", "gcc")
shelltools.export("CXX", "g++")
- 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")
-
- shelltools.system("patch -d projects/compiler-rt -Np1 < 0001-New-MSan-mapping-layout-compiler-rt-part.patch")
+ 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.makedirs("build")
-
- shelltools.cd("build")
+ autotools.configure(options)
+
+
+#def check():
+# autotools.make("check")
+# autotools.make("-C tools/clang test")
- 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():
- shelltools.makedirs("build")
-
- shelltools.cd("build")
-
- cmaketools.make()
+ autotools.make("REQUIRES_RTTI=1")
def install():
- shelltools.makedirs("build")
-
- shelltools.cd("build")
-
if get.buildTYPE() == "emul32":
- #cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
- cmaketools.rawInstall("DESTDIR=%s \
+ autotools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=/usr/lib32/llvm \
PROJ_docsdir=/%s/llvm"
% (get.installDIR(), get.docDIR()))
- # shelltools.chmod("%s/usr/lib32/llvm/*.a" % get.installDIR(), mode = 0644)
- # pisitools.dosym("llvm/LLVMgold.so", "/usr/lib32/LLVMgold.so")
- # pisitools.remove("/usr/lib32/llvm/*LLVMHello.*")
+ shelltools.chmod("%s/usr/lib32/llvm/*.a" % get.installDIR(), mode = 0644)
+ pisitools.dosym("llvm/LLVMgold.so", "/usr/lib32/LLVMgold.so")
+ pisitools.remove("/usr/lib32/llvm/*LLVMHello.*")
return
else:
- cmaketools.rawInstall("DESTDIR=%s \
+ autotools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=%s \
PROJ_docsdir=/%s/llvm"
% (get.installDIR(), libdir, get.docDIR()))
- #shelltools.chmod("%s/usr/lib/llvm/*.a" % get.installDIR(), 0644)
-
- shelltools.cd ("..")
+ shelltools.chmod("%s/usr/lib/llvm/*.a" % get.installDIR(), 0644)
# Install static analyzers which aren't installed by default
for exe in ("scan-build", "scan-view"):
pisitools.insinto("/usr/lib/clang-analyzer/%s" % exe, "tools/clang/tools/%s/%s" % (exe, exe))
pisitools.dosym("/usr/lib/clang-analyzer/%s/%s" % (exe, exe), "/usr/bin/%s" % exe)
+ pisitools.dodir("/etc/ld.so.conf.d")
+ shelltools.echo("%s/etc/ld.so.conf.d/51-llvm.conf" % get.installDIR(), "/usr/lib/llvm")
+
# Symlink the gold plugin where clang expects it
- # pisitools.dosym("llvm/LLVMgold.so", "/usr/lib/LLVMgold.so")
+ pisitools.dosym("llvm/LLVMgold.so", "/usr/lib/LLVMgold.so")
# Remove example file
- # pisitools.remove("/usr/lib/llvm/*LLVMHello.*")
+ pisitools.remove("/usr/lib/llvm/*LLVMHello.*")
- # pisitools.remove("/usr/share/doc/llvm/*.tar.gz")
- # pisitools.remove("/usr/share/doc/llvm/ocamldoc/html/*.tar.gz")
- # pisitools.removeDir("/usr/share/doc/llvm/ps")
+ pisitools.remove("/usr/share/doc/llvm/*.tar.gz")
+ pisitools.remove("/usr/share/doc/llvm/ocamldoc/html/*.tar.gz")
+ pisitools.removeDir("/usr/share/doc/llvm/ps")
# Install vim syntax files for .ll and .td files
# llvm.vim additional file add ftdetct vim file to detect .ll and .td as llvm files
- pisitools.insinto("/usr/share/vim/vimfiles/syntax", "utils/vim/syntax/*.vim")
+ pisitools.insinto("/usr/share/vim/vimfiles/syntax", "utils/vim/*.vim")
# Install kate syntax file
- #pisitools.insinto("%s/katepart/syntax" % kde4.appsdir, "utils/kate/*.xml")
+ pisitools.insinto("%s/katepart/syntax" % kde4.appsdir, "utils/kate/*.xml")
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
diff --git a/programming/build/llvm/pspec.xml b/programming/build/llvm/pspec.xml
index 60327d233b..c053e4fb08 100644
--- a/programming/build/llvm/pspec.xml
+++ b/programming/build/llvm/pspec.xml
@@ -11,37 +11,25 @@
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.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
- 0001-New-MSan-mapping-layout-compiler-rt-part.patch
-
+ 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
+
zlib-devel
libxml2-devel
- python-devel
ncurses-devel
ocaml
libffi-devel
groff
- swig
- cmake
- python-sphinx
- python-MarkupSafe
libedit-devel
binutils
- llvm-3.7.0-link-tools-against-libLLVM.patch
- llvm-3.7.0-export-more-symbols.patch
- 0001-New-MSan-mapping-layout-llvm-part.patch
-
+ llvm-3.5.0-fix-cmake-llvm-exports.patch
+ llvm-3.5.0-force-link-pass.o.patch
@@ -60,18 +48,16 @@
/usr/bin/llvm-config
/usr/include/llvm*
/usr/lib/llvm
- /usr/include/lldb
/usr/lib
- /etc/ld.so.conf.d
+ /etc/ld.so.conf.d
/etc/llvm
/usr/share/doc
/usr/share/vim
/usr/share/llvm/cmake
+
+ /usr/share/kde4
/usr/share/man
-
- 51-llvm.conf
-
@@ -85,15 +71,13 @@
ncurses
- /usr/lib/libLLVM.so*
- /usr/lib/LLVMgold.so
- /usr/lib/libLTO.so*
- /usr/share/doc/llvm/LICENSE*
+ /usr/lib/llvm/libLLVM-3*
+ /usr/share/licenses/llvm-libs/LICENSE
- llvm-ocaml
+ llvm-ocaml
library
programming.language.ocaml
OCaml binding for LLVM
@@ -126,15 +110,14 @@
The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.
llvm-libs
- libgcc
- ncurses
+ libgcc
+ ncurses
/usr/bin/clang*
/usr/bin/tblgen
/usr/lib/clang
/usr/lib/clang/libclang.so
- /usr/share/clang
/usr/share/man/man1/clang.1
@@ -151,7 +134,7 @@
-
+
llvm-32bit
@@ -185,13 +168,6 @@
-
- 2015-11-08
- 3.7.0
- Version bump.
- Ertuğrul Erata
- ertugrulerata@gmail.com
-
2014-09-23
3.5.0