summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang_git.bb
blob: 7e4ba730994ff3718f996e1c2fc0dd7984414269 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# Copyright (C) 2014 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)

DESCRIPTION = "LLVM based C/C++ compiler"
HOMEPAGE = "http://clang.llvm.org/"
LICENSE = "NCSA"
SECTION = "devel"

require clang.inc

BRANCH ?= "master"
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa; \
                    file://tools/clang/LICENSE.TXT;md5=82ed8fe1976ca709bbd81f4f10a48ccd; \
                    file://projects/compiler-rt/LICENSE.TXT;md5=27b14ab4ce08d04c3a9a5f0ed7997362; \
                   "
SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};name=llvm \
           git://github.com/llvm-mirror/clang.git;branch=${BRANCH};destsuffix=git/tools/clang;name=clang \
           git://github.com/llvm-mirror/compiler-rt.git;branch=${BRANCH};destsuffix=git/projects/compiler-rt;name=compiler-rt \
          "

SRCREV_llvm = "2c64a1129f14d6322631e1c6d610b92c4c4871d0"
SRCREV_clang = "070ffd29fb0a5a558e8f9bd464f784ff24ef1a54"
SRCREV_compiler-rt = "6f344e9bbc8fa322818b95f5ab35c8ef5ebfe0a9"

SRCREV_FORMAT = "llvm_clang_compiler-rt"

S = "${WORKDIR}/git"

inherit perlnative pythonnative cmake

EXTRA_OECMAKE="-DLLVM_ENABLE_RTTI:BOOL=True \
               -DLLVM_ENABLE_FFI:BOOL=False \
               -DCMAKE_SYSTEM_NAME=Linux \
               -DCMAKE_BUILD_TYPE:STRING=Release \
               -DLLVM_TARGETS_TO_BUILD:STRING='AArch64;ARM;Mips;PowerPC;X86' \
	      "

EXTRA_OECMAKE_append_class-target = "\
               -DCMAKE_CROSSCOMPILING=True \
"
EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1"


DEPENDS = "zlib libffi libxml2-native binutils"

PROVIDES_append_class-target = "\
        virtual/${TARGET_PREFIX}compilerlibs \
        gcc-runtime \
        libgcc \
        libgcc-initial \
        libg2c \
        libg2c-dev \
        libssp \
        libssp-dev \
        libssp-staticdev \
        libgfortran \
        libgfortran-dev \
        libgfortran-staticdev \
        libmudflap \
        libmudflap-dev \
        libgomp \
        libgomp-dev \
        libgomp-staticdev \
        libitm \
        libitm-dev \
        libitm-staticdev \
        libgcov-dev \
        \
        libgcc-dev \
        libgcc-initial-dev \
        libstdc++ \
        libstdc++-dev \
        libstdc++-staticdev \
        libatomic \
        libatomic-dev \
        libatomic-staticdev \
        libasan \
        libasan-dev \
        libasan-staticdev \
        libubsan \
        libubsan-dev \
        libubsan-staticdev \
        liblsan \
        liblsan-dev \
        liblsan-staticdev \
        libtsan \
        libtsan-dev \
        libtsan-staticdev \
        libssp \
        libssp-dev \
        libssp-staticdev \
        libgfortran \
        libgfortran-dev \
        libgfortran-staticdev \
        libmudflap \
        libmudflap-dev \
        libmudflap-staticdev \
        libgomp \
        libgomp-dev \
        libgomp-staticdev \
        libitm \
        libitm-dev \
        libitm-staticdev \
"

do_configure_prepend() {
	# Remove RPATHs
	sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' ${S}/Makefile.rules
	# Drop "svn" suffix from version string
	sed -i 's/${PV}svn/${PV}/g' ${S}/configure

	# Fix paths in llvm-config
	sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
	sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp
}

do_compile_prepend() {
        oe_runmake LLVMNativeTableGen
        oe_runmake CLANGNativeTableGen
}

do_install_append_class-native () {
        for f in `find ${D}${bindir} -executable -type f -not -type l`; do
            test -n "`file $f|grep -i ELF`" && ${STRIP} $f
        done
}

BBCLASSEXTEND = "native nativesdk"