This commit is contained in:
Ertuğrul Erata
2015-06-25 00:03:56 +03:00
parent ffbbf11346
commit ed4b0f6086
38 changed files with 3833 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
<PISI>
<Name>programming.build</Name>
</PISI>
+114
View File
@@ -0,0 +1,114 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
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
#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():
if not shelltools.isDirectory("tools/clang"):
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")
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")))
#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
autotools.configure(options)
#def check():
# autotools.make("check")
# autotools.make("-C tools/clang test")
def build():
autotools.make("REQUIRES_RTTI=1")
def install():
if get.buildTYPE() == "emul32":
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.*")
return
else:
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)
# 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")
# Remove example file
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")
# 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/*.vim")
# Install kate syntax file
pisitools.insinto("%s/katepart/syntax" % kde4.appsdir, "utils/kate/*.xml")
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
@@ -0,0 +1,39 @@
Index: cmake/modules/Makefile
===================================================================
--- cmake/modules/Makefile (revision 217483)
+++ cmake/modules/Makefile (revision 217484)
@@ -33,6 +33,16 @@
LLVM_ENABLE_RTTI := 0
endif
+LLVM_LIBS_TO_EXPORT := $(subst -l,,$(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS) || echo Error))
+
+ifeq ($(LLVM_LIBS_TO_EXPORT),Error)
+$(error llvm-config --libs failed)
+endif
+
+ifndef LLVM_LIBS_TO_EXPORT
+$(error LLVM_LIBS_TO_EXPORT cannot be empty)
+endif
+
OBJMODS := LLVMConfig.cmake LLVMConfigVersion.cmake LLVMExports.cmake
$(PROJ_OBJ_DIR)/LLVMConfig.cmake: LLVMConfig.cmake.in $(LLVMBuildCMakeFrag)
@@ -45,7 +55,7 @@
-e 's/@LLVM_VERSION_PATCH@/'"$(LLVM_VERSION_PATCH)"'/' \
-e 's/@PACKAGE_VERSION@/'"$(LLVMVersion)"'/' \
-e 's/@LLVM_COMMON_DEPENDS@//' \
- -e 's/@LLVM_AVAILABLE_LIBS@/'"$(subst -l,,$(LLVMConfigLibs))"'/' \
+ -e 's/@LLVM_AVAILABLE_LIBS@/'"$(LLVM_LIBS_TO_EXPORT)"'/' \
-e 's/@LLVM_ALL_TARGETS@/'"$(ALL_TARGETS)"'/' \
-e 's/@LLVM_TARGETS_TO_BUILD@/'"$(TARGETS_TO_BUILD)"'/' \
-e 's/@LLVM_TARGETS_WITH_JIT@/'"$(TARGETS_WITH_JIT)"'/' \
@@ -83,7 +93,7 @@
$(Echo) 'Generating LLVM CMake target exports file'
$(Verb) ( \
echo '# LLVM CMake target exports. Do not include directly.' && \
- for lib in $(subst -l,,$(LLVMConfigLibs)); do \
+ for lib in $(LLVM_LIBS_TO_EXPORT); do \
echo 'add_library('"$$lib"' STATIC IMPORTED)' && \
echo 'set_property(TARGET '"$$lib"' PROPERTY IMPORTED_LOCATION "'"$(PROJ_libdir)/lib$$lib.a"'")' ; \
done && \
@@ -0,0 +1,28 @@
Index: llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile
===================================================================
--- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/bugpoint/Makefile
+++ llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile
@@ -12,6 +12,9 @@ TOOLNAME := bugpoint
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
bitwriter irreader vectorize objcarcopts codegen
+# Crappy workaround to make sure it links correctly.
+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o
+
# Support plugins.
NO_DEAD_STRIP := 1
Index: llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile
===================================================================
--- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/opt/Makefile
+++ llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile
@@ -10,7 +10,9 @@
LEVEL := ../..
TOOLNAME := opt
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets codegen
+# Crappy workaround to make sure it links correctly.
+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o
# Support plugins.
NO_DEAD_STRIP := 1
+202
View File
@@ -0,0 +1,202 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>llvm</Name>
<Homepage>http://www.llvm.org/</Homepage>
<Packager>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Packager>
<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>
<BuildDependencies>
<Dependency>ocaml</Dependency>
<Dependency>libffi-devel</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>
</Patches>
</Source>
<Package>
<Name>llvm</Name>
<IsA>app:console</IsA>
<IsA>library</IsA>
<RuntimeDependencies>
<Dependency release="current">llvm-libs</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<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/lib</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>
</Package>
<Package>
<Name>llvm-libs</Name>
<IsA>library</IsA>
<Files>
<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>
<IsA>library</IsA>
<PartOf>programming.language.ocaml</PartOf>
<Summary>OCaml binding for LLVM</Summary>
<RuntimeDependencies>
<Dependency release="current">llvm</Dependency>
<Dependency>ocaml</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/ocaml</Path>
</Files>
</Package>
<Package>
<Name>llvm-clang-analyzer</Name>
<IsA>app:console</IsA>
<Summary>A source code analysis framework</Summary>
<Description>The Clang Static Analyzer consists of both a source code analysis framework and a standalone tool that finds bugs in C and Objective-C programs.</Description>
<RuntimeDependencies>
<Dependency release="current">llvm-clang</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/lib/clang-analyzer</Path>
<Path fileType="executable">/usr/bin/scan-*</Path>
</Files>
</Package>
<Package>
<Name>llvm-clang</Name>
<Summary>A C language family front-end for LLVM</Summary>
<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</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="man">/usr/share/man/man1/clang.1</Path>
</Files>
</Package>
<Package>
<Name>llvm-clang-devel</Name>
<Summary>Development headers for llvm-clang</Summary>
<RuntimeDependencies>
<Dependency release="current">llvm-clang</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/clang</Path>
<Path fileType="header">/usr/include/clang-c</Path>
</Files>
</Package>
<Package>
<Name>llvm-docs</Name>
<PartOf>programming.docs</PartOf>
<IsA>data:doc</IsA>
<Summary>Documentation for LLVM</Summary>
<Files>
<Path fileType="doc">/usr/share/doc/llvm/html</Path>
<Path fileType="doc">/usr/share/doc/llvm/ocamldoc</Path>
</Files>
</Package>
<Package>
<Name>llvm-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for llvm</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>zlib-32bit</Dependency>
<Dependency>libffi-32bit</Dependency>
</BuildDependencies>
<RuntimeDependencies>
<Dependency release="current">llvm</Dependency>
<Dependency>zlib-32bit</Dependency>
<Dependency>libffi-32bit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32</Path>
</Files>
</Package>
<History>
<Update release="7">
<Date>2014-09-23</Date>
<Version>3.5.0</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-05-11</Date>
<Version>3.4.1</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-05-11</Date>
<Version>3.4.1</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-09-01</Date>
<Version>3.3</Version>
<Comment>Release bump, already cleaned.</Comment>
<Name>marcin bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-07-26</Date>
<Version>3.3</Version>
<Comment>Version bump.</Comment>
<Name>marcin bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-02-18</Date>
<Version>3.2</Version>
<Comment>version bump</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-06-11</Date>
<Version>3.1</Version>
<Comment>First release</Comment>
<Name>marcin bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
</History>
</PISI>
+33
View File
@@ -0,0 +1,33 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>llvm</Name>
<Summary xml:lang="tr">Düşük Seviye Sanal Makine (LLVM)</Summary>
<Description xml:lang="tr">LLVM projesi, modüler ve tekrar tekrar kullanılabilir derleyici teknolojileri koleksiyonudur. Adının aksine geleneksel sanal makinelerden çok farklıdır; ancak sanal makineleri oluşturmak için faydalı kitaplıklar içerir.</Description>
</Source>
<Package>
<Name>llvm-ocaml</Name>
<Summary xml:lang="tr">LLVM için OCaml bağlayıcısı</Summary>
</Package>
<Package>
<Name>llvm-clang-analyzer</Name>
<Summary xml:lang="tr">C ve Objective-C için kod analiz altyapısı</Summary>
</Package>
<Package>
<Name>llvm-clang</Name>
<Summary xml:lang="tr">LLVM için C dili ailesi ön ucu</Summary>
</Package>
<Package>
<Name>llvm-clang-devel</Name>
<Summary xml:lang="tr">llvm-clang için başlık dosyaları</Summary>
</Package>
<Package>
<Name>llvm-docs</Name>
<Summary xml:lang="tr">LLVM belgeleri</Summary>
</Package>
</PISI>