llvm-3.7.0

This commit is contained in:
Ertuğrul Erata
2015-10-18 23:08:31 +03:00
parent 1863c4de79
commit db9e117cac
2 changed files with 62 additions and 48 deletions
+37 -41
View File
@@ -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"
+25 -7
View File
@@ -11,25 +11,36 @@
<License>NCSA</License>
<Summary>The Low Level Virtual Machine</Summary>
<Description>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.</Description>
<Archive sha1sum="58d817ac2ff573386941e7735d30702fe71267d5" type="tarxz">http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="834cee2ed8dc6638a486d8d886b6dce3db675ffa" type="tarxz" target="llvm-3.5.0.src/tools">http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="74a84493e3313c180490a4affbb92d61ee4f0d21" type="tarxz" target="llvm-3.5.0.src/tools">http://llvm.org/releases/3.5.0/clang-tools-extra-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="61f3e78088ce4a0787835036f2d3c61ede11e928" type="tarxz" target="llvm-3.5.0.src/projects">http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="0355c2fe01a8d17c3315069e6f2ef80c281e7dad" type="tarxz">http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="4ff8100565528b13d99a73f807e9b426c3b3bed9" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="99a8c8e04936d37b711664539a1a2271a9663825" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/clang-tools-extra-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="7b162eee856eca95e190210600277f5171425684" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/lldb-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="b61362b409bb7909a6d11097b5f69fded061073c" type="tarxz" target="llvm-3.7.0.src/projects">http://llvm.org/releases/3.7.0/compiler-rt-3.7.0.src.tar.xz</Archive>
<AdditionalFiles>
<AdditionalFile target="clang-tools-extra-3.7.0-install-clang-query.patch">clang-tools-extra-3.7.0-install-clang-query.patch</AdditionalFile>
<AdditionalFile target="lldb-3.7.0-avoid-linking-to-libLLVM.patch">lldb-3.7.0-avoid-linking-to-libLLVM.patch</AdditionalFile>
</AdditionalFiles>
<BuildDependencies>
<Dependency>zlib-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
<Dependency>python-devel</Dependency>
<Dependency>ncurses-devel</Dependency>
<Dependency>ocaml</Dependency>
<Dependency>libffi-devel</Dependency>
<Dependency>groff</Dependency>
<Dependency>swig</Dependency>
<Dependency>cmake</Dependency>
<Dependency>python-sphinx</Dependency>
<Dependency>python-MarkupSafe</Dependency>
<Dependency>libedit-devel</Dependency>
<!-- Use new plugin-api.h header file from binutils to enable LLVM gold plugin -->
<Dependency>binutils</Dependency>
</BuildDependencies>
<Patches>
<Patch>llvm-3.5.0-fix-cmake-llvm-exports.patch</Patch>
<Patch>llvm-3.5.0-force-link-pass.o.patch</Patch>
<Patch level="1">llvm-3.7.0-link-tools-against-libLLVM.patch</Patch>
<Patch level="2">llvm-3.7.0-export-more-symbols.patch</Patch>
<!--Patch>clang-tools-extra-3.7.0-install-clang-query.patch</Patch>
<Patch level="2">lldb-3.7.0-avoid-linking-to-libLLVM.patch</Patch-->
</Patches>
</Source>
@@ -168,6 +179,13 @@
</Package>
<History>
<Update release="8">
<Date>2015-10-18</Date>
<Version>3.7.0</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="7">
<Date>2014-09-23</Date>
<Version>3.5.0</Version>