Workaround part interconnection problem.
[slapos.git] / component / gcc / buildout.cfg
1 # GNU C Compiler
2 # Mostly required to support languages different then C or C++
3 [buildout]
4 extends =
5   ../m4/buildout.cfg
6   ../gmp/buildout.cfg
7   ../zip/buildout.cfg
8
9 parts =
10   gcc
11
12 [mpfr]
13 recipe = hexagonit.recipe.cmmi
14 url = http://www.mpfr.org/mpfr-3.0.1/mpfr-3.0.1.tar.bz2
15 md5sum = bfbecb2eacb6d48432ead5cfc3f7390a
16 configure-options =
17   --with-gmp=${gmp:location}
18   --disable-static
19 environment =
20   LDFLAGS=-Wl,-rpath=${gmp:location}/lib
21
22 [mpc]
23 recipe = hexagonit.recipe.cmmi
24 url = http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
25 md5sum = 0d6acab8d214bd7d1fbbc593e83dd00d
26 configure-options =
27   --with-gmp=${gmp:location}
28   --with-mpfr=${mpfr:location}
29   --disable-static
30 environment =
31   LDFLAGS=-Wl,-rpath=${mpfr:location}/lib -Wl,-rpath=${gmp:location}/lib
32
33 [ppl]
34 recipe = hexagonit.recipe.cmmi
35 # we should use version 0.10.x for gcc-4.5
36 url = http://www.cs.unipr.it/ppl/Download/ftp/releases/0.10.2/ppl-0.10.2.tar.bz2
37 md5sum = 5667111f53150618b0fa522ffc53fc3e
38 configure-options =
39   --with-libgmp-prefix=${gmp:location}
40   --with-libgmpxx-prefix=${gmp:location}
41   --disable-static
42 environment =
43   PATH=${m4:location}/bin:%(PATH)s
44   LDFLAGS=-Wl,-rpath=${gmp:location}/lib
45
46 [cloog-ppl]
47 recipe = hexagonit.recipe.cmmi
48 url = ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-0.15.9.tar.gz
49 md5sum = 806e001d1b1a6b130069ff6274900af5
50 configure-options =
51   --with-gmp=${gmp:location}
52   --with-ppl=${ppl:location}
53   --disable-static
54 environment =
55   PATH=${m4:location}/bin:%(PATH)s
56   LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${ppl:location}/lib
57
58 [ecj]
59 recipe = hexagonit.recipe.download
60 download-only = true
61 url = ftp://sourceware.org/pub/java/ecj-4.5.jar
62 md5sum = d7cd6a27c8801e66cbaa964a039ecfdb
63 filename = ecj.jar
64
65 [gcc-download]
66 hack-revision = ${gcc-interconnection-workaround:hack-revision}
67 recipe = hexagonit.recipe.download
68 url = http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2
69 md5sum = 8e0b5c12212e185f3e4383106bfa9cc6
70 strip-top-level-dir = True
71 destination = ${gcc-source:location}
72
73 [gcc-java-download]
74 hack-revision = ${gcc-interconnection-workaround:hack-revision}
75 recipe = hexagonit.recipe.download
76 url = http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-4.5.3/gcc-java-4.5.3.tar.bz2
77 md5sum = 08e045fdbdc22ac9af3aec3b8d16dbab
78 strip-top-level-dir = True
79 destination = ${gcc-source:location}
80 ignore-existing = true
81
82 [gcc-source]
83 hack-revision = ${gcc-interconnection-workaround:hack-revision}
84 location = ${buildout:parts-directory}/${:_buildout_section_name_}
85
86 [gcc-multiarch.patch]
87 recipe = hexagonit.recipe.download
88 md5sum = 819e6735270c8a432b0512b49f40219f
89 url = ${:_profile_base_location_}/${:filename}
90 filename = ${:_buildout_section_name_}
91 download-only = true
92
93 [gcc-java-pre-4.4.patch]
94 recipe = hexagonit.recipe.download
95 md5sum = 9a563576126d9fcf234ef29c2fc7df76
96 url = ${:_profile_base_location_}/${:filename}
97 filename = ${:_buildout_section_name_}
98 download-only = true
99
100 [gcc-java-minimal]
101 hack-revision = ${gcc-interconnection-workaround:hack-revision}
102 depends =
103   ${gcc-download:location}
104   ${gcc-java-download:location}
105 recipe = hexagonit.recipe.cmmi
106 path = ${gcc-source:location}
107 md5sum = bb3265edf0fa7543e50cedb93e04e427
108 patches =
109   ${gcc-multiarch.patch:location}/${gcc-multiarch.patch:filename}
110   ${gcc-java-pre-4.4.patch:location}/${gcc-java-pre-4.4.patch:filename}
111 patch-options = -p2
112 configure-command = make clean \\; make distclean \\; ./configure
113 # GMP does not correctly detect achitecture so it have to be given
114 # as hexagonit.recipe.cmmi is using shell expansion in subproceses
115 # backticks are working
116 configure-options =
117   --disable-bootstrap
118   --enable-languages=java
119   --disable-multilib
120   --with-gmp=${gmp:location}
121   --with-mpfr=${mpfr:location}
122   --with-mpc=${mpc:location}
123   --with-ecj-jar=${ecj:location}/${ecj:filename}
124   --prefix=${buildout:parts-directory}/${:_buildout_section_name_}
125   --without-ppl
126   --without-cloog
127
128 environment =
129   CPPFLAGS =-I${mpfr:location}/include -I${gmp:location}/include -I${mpc:location}/include
130   LDFLAGS =-L${mpfr:location}/lib -Wl,-rpath=${mpfr:location}/lib -L${gmp:location}/lib -Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${mpc:location}/lib
131   PATH=${zip:location}/bin:%(PATH)s
132 # make install does not work when several core are used
133 make-targets = install -j1
134
135 [gcc]
136 hack-revision = ${gcc-interconnection-workaround:hack-revision}
137 depends =
138   ${gcc-download:location}
139   ${gcc-java-download:location}
140 recipe = hexagonit.recipe.cmmi
141 path = ${gcc-source:location}
142 md5sum = bb3265edf0fa7543e50cedb93e04e427
143 patches =
144   ${gcc-multiarch.patch:location}/${gcc-multiarch.patch:filename}
145 patch-options = -p2
146 configure-command = make clean \\; make distclean \\; ./configure
147 # GMP does not correctly detect achitecture so it have to be given
148 # as hexagonit.recipe.cmmi is using shell expansion in subproceses
149 # backticks are working
150 configure-options =
151   --disable-bootstrap
152   --enable-languages="c,c++,java"
153   --disable-multilib
154   --with-gmp=${gmp:location}
155   --with-mpfr=${mpfr:location}
156   --with-mpc=${mpc:location}
157   --with-ppl=${ppl:location}
158   --with-cloog=${cloog-ppl:location}
159   --with-ecj-jar=${ecj:location}/${ecj:filename}
160   --prefix=${buildout:parts-directory}/${:_buildout_section_name_}
161
162 environment =
163   LDFLAGS=-Wl,-rpath=${mpfr:location}/lib -Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${ppl:location}/lib -Wl,-rpath=${cloog-ppl:location}/lib
164   PATH=${zip:location}/bin:%(PATH)s
165 # make install does not work when several core are used
166 make-targets = install -j1
167
168 [gcc-interconnection-workaround]
169 # gcc parts are interconnected, so buildout is not capable to clean them up
170 # until gcc will be simplified by using more robust build recipe (like
171 # slapos.recipe.build) each time any of parts which reuses this one gets updated
172 # the hack-revision have to be increased
173 hack-revision = 1