Magellan Linux

Contents of /smage/branches/alx-0_6_0/core/llvm/llvm-3.1-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4956 - (show annotations) (download)
Wed Jun 5 14:13:02 2013 UTC (11 years ago) by niro
File size: 4203 byte(s)
-old alx uses PCATEGORIE
1 # $Id$
2
3 PNAME="llvm"
4 PVER="3.1"
5 PBUILD="r1"
6
7 PCATEGORIE="sys-dev"
8
9 DESCRIPTION="The Low Level Virtual Machine."
10 HOMEPAGE="http://llvm.org/"
11
12 DEPEND_x86_64=">= sys-apps/multiarch-wrapper-1"
13 SPECIAL_VARS="DEPEND_x86_64"
14
15 DEPEND="$(marchdepend)
16 >= dev-lang/perl-5.12
17 >= sys-libs/libstdc++-4.5"
18
19 SDEPEND=">= dev-util/pkgconfig-0.25
20 >= sys-dev/bison-2.4
21 >= sys-dev/flex-2.3.35
22 >= sys-dev/make-3.82
23 >= sys-dev/gcc-4.5
24 >= sys-dev/binutils-2.21"
25
26 SRCFILE="${PNAME}-${PVER}.src.tar.gz"
27 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}.src"
28
29 sminclude mtools multilib
30
31 SRC_URI=(
32 http://llvm.org/releases/${PVER}/${SRCFILE}
33 mirror://${PNAME}/${SRCFILE}
34 mirror://${PNAME}/${PNAME}-2.9-no-docs.patch
35 mirror://${PNAME}/${PNAME}-3.2-fix-debug-line-info.patch
36 )
37
38 UP2DATE="updatecmd ${HOMEPAGE} | grep 'Download now' | sed 's:.*][lL][lL][vV][mM]\ \(.*\):\1:'"
39
40 src_prepare()
41 {
42 munpack ${SRCFILE} || die
43
44 # fix symbolic links from OCaml bindings to LLVM libraries
45 all-abis 'sed -i "s:\$(PROJ_libdir):/usr/$(mlibdir)/llvm:" bindings/ocaml/Makefile.ocaml || die'
46
47 # non-standard configure, fix config pathes and cflags
48 all-abis 'sed -i -e "s:\$(PROJ_prefix)/etc/llvm:/etc/llvm:"
49 -e "s:\$(PROJ_prefix)/lib:\$(PROJ_prefix)/$(mlibdir)/llvm:"
50 -e "s:\$(PROJ_prefix)/docs/llvm:\$(PROJ_prefix)/share/doc/${PNAME}-${PVER}:"
51 Makefile.config.in || die'
52 all-abis 'sed -i "/ActiveLibDir = ActivePrefix/s:lib:$(mlibdir)/llvm:" tools/llvm-config/llvm-config.cpp || die'
53 all-abis 'sed -i "s:LLVM_LIBDIR=\"\${prefix}/lib\":LLVM_LIBDIR=\"\${prefix}/$(mlibdir)/llvm\":" autoconf/configure.ac configure || die'
54
55 # remove insecure rpath
56 all-abis 'sed -i "s:\$(RPATH) -Wl,\$(\(ToolDir\|LibDir\|ExmplDir\))::g" Makefile.rules || die'
57
58 # fix gold
59 all-abis 'sed -i "s:\$(SharedLibDir):/usr/$(mlibdir)/llvm:" tools/gold/Makefile || die'
60
61 # ugly hack - fix broken path retrieval on magellan - fixme!
62 all-abis 'sed -i "s:CurrentPath(GetExecutablePath(argv\[0\]).str()):CurrentPath(\"/usr/bin/llvm-config\"):" tools/llvm-config/llvm-config.cpp || die'
63
64 # do not generate docs, which are just the man pages
65 mpatch ${PNAME}-2.9-no-docs.patch || die
66
67 # fix invalid debug information
68 mpatch ${PNAME}-3.2-fix-debug-line-info.patch || die
69 }
70
71 src_compile()
72 {
73 local myopts
74
75 # enable pic on 64bit arches
76 [[ ${ARCH} = x86_64 ]] && myopts+="--enable-pic"
77
78 # be multilib friendly
79 [[ $(mlibdir) != lib ]] && myopts+=" --with-cxx-include-32bit-dir=32"
80
81 # include location of libffi headers
82 export CPPFLAGS="${CPPFLAGS} $(pkg-config --cflags libffi)"
83
84 # force use of gcc instead of clang if already installed
85 CC=$(mabi-cc) CXX=$(mabi-cxx) \
86 mconfigure \
87 --libdir=/usr/$(mlibdir)/llvm \
88 --enable-shared \
89 --disable-expensive-checks \
90 --disable-debug-runtime \
91 --disable-assertions \
92 --enable-optimized \
93 --enable-targets=all \
94 --enable-bindings=none \
95 ${myopts} \
96 || die
97
98 mmake VERBOSE=1 REQUIRES_RTTI=1 || die
99 }
100
101 src_install()
102 {
103 mmake DESTDIR=${BINDIR} install || die
104
105 # be multilib friendly
106 if [[ $(mlibdir) != lib ]]
107 then
108 if [[ -f ${BINDIR}/usr/bin/llvm-config ]]
109 then
110 rm ${BINDIR}/usr/bin/llvm-config || die
111 fi
112 all-abis minstallexec Release/bin/llvm-config /usr/bin/llvm-config-$(mabi) || die
113 mlink multiarch-wrapper /usr/bin/llvm-config || die
114
115 if [[ -f ${BINDIR}/usr/include/llvm/Config/config.h ]]
116 then
117 rm ${BINDIR}/usr/include/llvm/Config/config.h || die
118 fi
119 all-abis minstallfile include/llvm/Config/config.h /usr/include/llvm/Config/config-$(mabi).h || die
120 cat > ${BINDIR}/usr/include/llvm/Config/config.h << EOF
121 #include <bits/wordsize.h>
122
123 #if __WORDSIZE == 32
124 #include "config-m32.h"
125 #elif __WORDSIZE == 64
126 #include "config-m64.h"
127 #else
128 #error "Unknown word size"
129 #endif
130 EOF
131
132 if [[ -f ${BINDIR}/usr/include/llvm/Config/llvm-config.h ]]
133 then
134 rm ${BINDIR}/usr/include/llvm/Config/llvm-config.h || die
135 fi
136 all-abis minstallfile include/llvm/Config/llvm-config.h /usr/include/llvm/Config/llvm-config-$(mabi).h || die
137 cat > ${BINDIR}/usr/include/llvm/Config/llvm-config.h << EOF
138 #include <bits/wordsize.h>
139
140 #if __WORDSIZE == 32
141 #include "llvm-config-m32.h"
142 #elif __WORDSIZE == 64
143 #include "llvm-config-m64.h"
144 #else
145 #error "Unknown word size"
146 #endif
147 EOF
148 fi
149 }