@@ -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")
|
||||
|
||||
@@ -11,37 +11,25 @@
|
||||
<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="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>
|
||||
<AdditionalFile target="0001-New-MSan-mapping-layout-compiler-rt-part.patch">0001-New-MSan-mapping-layout-compiler-rt-part.patch</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<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>
|
||||
|
||||
<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 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>0001-New-MSan-mapping-layout-llvm-part.patch</Patch>
|
||||
<!--Patch level="2">lldb-3.7.0-avoid-linking-to-libLLVM.patch</Patch-->
|
||||
<Patch>llvm-3.5.0-fix-cmake-llvm-exports.patch</Patch>
|
||||
<Patch>llvm-3.5.0-force-link-pass.o.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
@@ -60,18 +48,16 @@
|
||||
<Path fileType="executable">/usr/bin/llvm-config</Path>
|
||||
<Path fileType="header">/usr/include/llvm*</Path>
|
||||
<Path fileType="library">/usr/lib/llvm</Path>
|
||||
<Path fileType="library">/usr/include/lldb</Path>
|
||||
<Path fileType="library">/usr/lib</Path>
|
||||
<Path fileType="conf">/etc/ld.so.conf.d</Path>
|
||||
<Path fileType="data">/etc/ld.so.conf.d</Path>
|
||||
<Path fileType="data">/etc/llvm</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
<Path fileType="data">/usr/share/vim</Path>
|
||||
<Path fileType="data">/usr/share/llvm/cmake</Path>
|
||||
<!-- Kate syntax file -->
|
||||
<Path fileType="data">/usr/share/kde4</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
</Files>
|
||||
<AdditionalFiles>
|
||||
<AdditionalFile owner="root" permission="0644" target="/etc/ld.so.conf.d/51-llvm.conf">51-llvm.conf</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
@@ -85,15 +71,13 @@
|
||||
<Dependency>ncurses</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="library">/usr/lib/libLLVM.so*</Path>
|
||||
<Path fileType="library">/usr/lib/LLVMgold.so</Path>
|
||||
<Path fileType="library">/usr/lib/libLTO.so*</Path>
|
||||
<Path fileType="data">/usr/share/doc/llvm/LICENSE*</Path>
|
||||
<Path fileType="library">/usr/lib/llvm/libLLVM-3*</Path>
|
||||
<Path fileType="data">/usr/share/licenses/llvm-libs/LICENSE</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>llvm-ocaml</Name><!--fix me ocamle package not builded-->
|
||||
<Name>llvm-ocaml</Name>
|
||||
<IsA>library</IsA>
|
||||
<PartOf>programming.language.ocaml</PartOf>
|
||||
<Summary>OCaml binding for LLVM</Summary>
|
||||
@@ -126,15 +110,14 @@
|
||||
<Description>The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.</Description>
|
||||
<RuntimeDependencies>
|
||||
<Dependency release="current">llvm-libs</Dependency>
|
||||
<Dependency>libgcc</Dependency>
|
||||
<Dependency>ncurses</Dependency>
|
||||
<Dependency>libgcc</Dependency>
|
||||
<Dependency>ncurses</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="executable">/usr/bin/clang*</Path>
|
||||
<Path fileType="executable">/usr/bin/tblgen</Path>
|
||||
<Path fileType="library">/usr/lib/clang</Path>
|
||||
<Path fileType="library">/usr/lib/clang/libclang.so</Path>
|
||||
<Path fileType="data">/usr/share/clang</Path>
|
||||
<Path fileType="man">/usr/share/man/man1/clang.1</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
@@ -151,7 +134,7 @@
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<!--Package>
|
||||
<Package>
|
||||
<Name>llvm-docs</Name>
|
||||
<PartOf>programming.docs</PartOf>
|
||||
<IsA>data:doc</IsA>
|
||||
@@ -160,7 +143,7 @@
|
||||
<Path fileType="doc">/usr/share/doc/llvm/html</Path>
|
||||
<Path fileType="doc">/usr/share/doc/llvm/ocamldoc</Path>
|
||||
</Files>
|
||||
</Package-->
|
||||
</Package>
|
||||
|
||||
<Package>
|
||||
<Name>llvm-32bit</Name>
|
||||
@@ -185,13 +168,6 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="8">
|
||||
<Date>2015-11-08</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>
|
||||
|
||||
Reference in New Issue
Block a user