Magellan Linux

Contents of /trunk/core/llvm/llvm-2.9-r3.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10143 - (show annotations) (download)
Tue Jan 17 15:50:12 2012 UTC (12 years, 4 months ago) by niro
File size: 3596 byte(s)
-import from magellan-next
1 # $Id$
2
3 PNAME="llvm"
4 PVER="2.9"
5 PBUILD="r3"
6
7 PCAT="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="\$(eval echo \\\$DEPEND_\${ARCH/i*86/x86} | tr ';' '\n')
16 >= dev-lang/perl-5.14
17 >= dev-libs/libffi-3
18 >= sys-libs/libstdc++-4.6"
19
20 SDEPEND=">= dev-util/pkgconfig-0.25
21 >= sys-dev/bison-2.5
22 >= sys-dev/flex-2.3.35
23 >= sys-dev/make-3.82
24 >= sys-dev/gcc-4.6
25 >= sys-dev/binutils-2.21"
26
27 SRCFILE="${PNAME}-${PVER}.tgz"
28 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
29
30 sminclude mtools multilib
31
32 SRC_URI=(
33 http://llvm.org/releases/${PVER}/${SRCFILE}
34 mirror://${PNAME}/${SRCFILE}
35 mirror://${PNAME}/${PNAME}-${PVER}-no-docs.patch
36 mirror://${PNAME}/${PNAME}-${PVER}-PR9869-operator-destructor.patch
37 )
38
39 UP2DATE="updatecmd ${HOMEPAGE} | grep 'Download now' | sed 's:.*][lL][lL][vV][mM]\ \(.*\):\1:'"
40
41 src_prepare()
42 {
43 munpack ${SRCFILE} || die
44
45 # non-standard configure, fix config pathes, rpath and cflags
46 all-abis 'sed -e "s,^PROJ_docsdir.*,PROJ_docsdir := \$(PROJ_prefix)/share/doc/${PNAME}-${PVER}," -e "s,^PROJ_etcdir.*,PROJ_etcdir := ''/etc/llvm," -e "s,^PROJ_libdir.*,PROJ_libdir := \$(PROJ_prefix)/$(mlibdir)/${PNAME}," -i Makefile.config.in || die'
47 all-abis 'sed -e "s,\$ABS_RUN_DIR/lib,/usr/$(mlibdir)/${PNAME}," -i tools/llvm-config/llvm-config.in.in || die'
48 all-abis 'sed -e "s,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),\$(RPATH) -Wl\,/usr/$(mlibdir)/${PNAME}," -e "/OmitFramePointer/s/-fomit-frame-pointer//" -i Makefile.rules || die'
49
50 # do not generate docs, which are just the man pages
51 mpatch ${PNAME}-${PVER}-no-docs.patch || die
52
53 # operator.h incompatibility with gcc-4.6 in c++0x mode
54 # see http://llvm.org/bugs/show_bug.cgi?id=9869
55 mpatch ${PNAME}-${PVER}-PR9869-operator-destructor.patch || die
56 }
57
58 src_compile()
59 {
60 cd ${SRCDIR}
61
62 local myopts
63
64 # enable pic on 64bit arches
65 [[ ${ARCH} = x86_64 ]] && myopts+="--enable-pic"
66
67 # be mutlilib friendly
68 [[ $(mlibdir) != lib ]] && myopts+=" --with-cxx-include-32bit-dir=32"
69
70 mconfigure \
71 --enable-shared \
72 --with-optimize-option= \
73 --enable-optimized \
74 --enable-libffi \
75 --enable-bindings=none \
76 ${myopts} \
77 || die
78
79 mmake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 || die
80 }
81
82 src_install()
83 {
84 cd ${SRCDIR}
85 mmake DESTDIR=${BINDIR} KEEP_SYMBOLS=1 install || die
86
87 # be multilib friendly
88 if [[ $(mlibdir) != lib ]]
89 then
90 if [[ -f ${BINDIR}/usr/bin/llvm-config ]]
91 then
92 rm ${BINDIR}/usr/bin/llvm-config || die
93 fi
94 all-abis minstallexec Release/bin/llvm-config /usr/bin/llvm-config-$(mabi) || die
95 mlink multiarch-wrapper /usr/bin/llvm-config || die
96
97 if [[ -f ${BINDIR}/usr/include/llvm/Config/config.h ]]
98 then
99 rm ${BINDIR}/usr/include/llvm/Config/config.h || die
100 fi
101 all-abis minstallfile include/llvm/Config/config.h /usr/include/llvm/Config/config-$(mabi).h || die
102 cat > ${BINDIR}/usr/include/llvm/Config/config.h << EOF
103 #include <bits/wordsize.h>
104
105 #if __WORDSIZE == 32
106 #include "config-m32.h"
107 #elif __WORDSIZE == 64
108 #include "config-m64.h"
109 #else
110 #error "Unknown word size"
111 #endif
112 EOF
113
114 if [[ -f ${BINDIR}/usr/include/llvm/Config/llvm-config.h ]]
115 then
116 rm ${BINDIR}/usr/include/llvm/Config/llvm-config.h || die
117 fi
118 all-abis minstallfile include/llvm/Config/llvm-config.h /usr/include/llvm/Config/llvm-config-$(mabi).h || die
119 cat > ${BINDIR}/usr/include/llvm/Config/llvm-config.h << EOF
120 #include <bits/wordsize.h>
121
122 #if __WORDSIZE == 32
123 #include "llvm-config-m32.h"
124 #elif __WORDSIZE == 64
125 #include "llvm-config-m64.h"
126 #else
127 #error "Unknown word size"
128 #endif
129 EOF
130 fi
131 }