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