ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/gcc-toolfile.spec
(Generate patch)

Comparing COMP/CMSDIST/gcc-toolfile.spec (file contents):
Revision 1.7 by elmer, Fri Apr 3 20:24:21 2009 UTC vs.
Revision 1.55 by fwyzard, Fri Jan 21 12:27:09 2011 UTC

# Line 1 | Line 1
1 < ### RPM cms gcc-toolfile 4.3.2
1 > ### RPM cms gcc-toolfile 11.0
2  
3   # gcc has a separate spec file for the generating a
4   # toolfile because gcc.spec could be not build because of the
# Line 6 | Line 6
6  
7   Source: none
8  
9 + %if "%(echo %cmsos | grep osx >/dev/null && echo true)" == "true"
10 + Requires: gfortran-macosx
11 + %endif
12 +
13   %prep
14   %build
15   %install
16   mkdir -p %i/etc/scram.d
17 +
18 + # Determine the GCC_ROOT if "use system compiler" is used.
19   if [ "X$GCC_ROOT" = X ]
20   then
21 <    GCC_PATH=`which gcc` || exit 1
22 <    GCC_ROOT=`echo $GCC_PATH | sed -e 's|/bin/gcc||'`
23 <    GCC_VERSION=`gcc -v 2>&1 | grep "gcc version" | sed 's|[^0-9]*\([0-9].[0-9].[0-9]\).*|\1|'` || exit 1
21 >    export GCC_PATH=`which gcc` || exit 1
22 >    export GCC_ROOT=`echo $GCC_PATH | sed -e 's|/bin/gcc||'`
23 >    export GCC_VERSION=`gcc -v 2>&1 | grep "gcc version" | sed 's|[^0-9]*\([0-9].[0-9].[0-9]\).*|\1|'` || exit 1
24 > %if "%(echo %cmsos | grep osx >/dev/null && echo true)" == "true"
25 >    export G77_ROOT=$GFORTRAN_MACOSX_ROOT
26 > %else
27 >    export G77_ROOT=$GCC_ROOT
28 > %endif
29 > else
30 >    export GCC_PATH
31 >    export GCC_ROOT
32 >    export GCC_VERSION
33 >    export G77_ROOT=$GCC_ROOT
34   fi
35  
36 < COMPILER_VERSION=`echo %cmsplatf | sed -e 's|.*gcc\([0-9]*\).*|\1|'`
37 < COMPILER_VERSION_MAJOR=`echo %cmsplatf | sed -e 's|.*gcc\([0-9]\).*|\1|'`
36 > export COMPILER_VERSION=`echo %cmsplatf | sed -e 's|.*gcc\([0-9]*\).*|\1|'`
37 > export COMPILER_VERSION_MAJOR=`echo %cmsplatf | sed -e 's|.*gcc\([0-9]\).*|\1|'`
38 > export COMPILER_VERSION_MINOR=`echo %cmsplatf | sed -e 's|.*gcc[0-9]\([0-9]\).*|\1|'`
39 >
40 > # Generic template for the toolfiles.
41 > # *** USE @VARIABLE@ plus associated environment variable to customize. ***
42 > # DO NOT DUPLICATE the toolfile template.
43 >
44 > cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler.xml
45 >  <tool name="cxxcompiler" version="@GCC_VERSION@" type="compiler">
46 >    <client>
47 >      <environment name="CXXCOMPILER_BASE" default="@GCC_ROOT@"/>
48 >      <environment name="GCCBINDIR" default="$CXXCOMPILER_BASE/bin"/>
49 >      <environment name="CXX" value="$GCCBINDIR/c++@COMPILER_NAME_SUFFIX@"/>
50 >    </client>
51 >    <flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@"/>
52 >    <flags CCCOMPILER="gcc@COMPILER_VERSION_MAJOR@"/>
53 >    <flags MODULEFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
54 >    <flags CXXDEBUGFLAG="-g"/>
55 >    <flags CPPDEFINES="GNU_GCC"/>
56 >    <flags CPPDEFINES="_GNU_SOURCE"/>
57 >    <flags CXXSHAREDOBJECTFLAGS="-fPIC"/>
58 >    <flags CXXFLAGS="-O2 -pedantic -ansi -pthread -pipe"/>
59 >    <flags CXXFLAGS="@ARCH_CXXFLAGS@ @COMPILER_CXXFLAGS@"/>
60 >    <flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300"/>
61 >    <flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses -Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=strict-overflow -fdiagnostics-show-option"/>
62 >    <flags LDFLAGS="@OS_LDFLAGS@"/>
63 >    <flags CXXSHAREDFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
64 >    <flags SHAREDSUFFIX="@OS_SHAREDSUFFIX@"/>
65 >    <flags LD_UNIT="@OS_LD_UNIT@ @ARCH_LD_UNIT@"/>
66 >    <flags SCRAM_LANGUAGE_TYPE="C++"/>
67 >    <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$CXXCOMPILER_BASE/@ARCH_LIB64DIR@" type="path"/>
68 >    <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$CXXCOMPILER_BASE/lib" type="path"/>
69 >    <runtime name="PATH" value="$CXXCOMPILER_BASE/bin" type="path"/>
70 >  </tool>
71 > EOF_TOOLFILE
72 >
73 > cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler.xml
74 >  <tool name="ccompiler" version="@GCC_VERSION@" type="compiler">
75 >    <client>
76 >      <environment name="CCOMPILER_BASE" default="@GCC_ROOT@"/>
77 >      <environment name="GCCBINDIR" value="$CCOMPILER_BASE/bin"/>
78 >      <environment name="CC" value="$GCCBINDIR/gcc@COMPILER_NAME_SUFFIX@"/>
79 >    </client>
80 >    <flags CDEBUGFLAG="-g"/>
81 >    <flags CSHAREDOBJECTFLAGS="-fPIC"/>
82 >    <flags CFLAGS="-pthread"/>
83 >    <flags CFLAGS="-O2"/>
84 >    <flags LDFLAGS="@OS_LDFLAGS@"/>
85 >    <flags CSHAREDFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
86 >    <flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@"/>
87 >    <flags SCRAM_LANGUAGE_TYPE="C"/>
88 >  </tool>
89 > EOF_TOOLFILE
90 >
91 > # Notice that on OSX we have a LIBDIR defined for f77compiler because gcc C++
92 > # compiler (which comes from the system) does not know about where to find
93 > # libgfortran.
94 > cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler.xml
95 >  <tool name="f77compiler" version="@GCC_VERSION@" type="compiler">
96 >    <lib name="gfortran"/>
97 >    <lib name="m"/>
98 >    <client>
99 >      <environment name="F77COMPILER_BASE" default="@G77_ROOT@"/>
100 >      <environment name="FC" default="$F77COMPILER_BASE/bin/gfortran"/>
101 >      @ARCH_FORTRAN_LIBDIR@
102 >    </client>
103 >    <flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@"/>
104 >    <flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized -O2"/>
105 >    <flags FCO2FLAG="-O2"/>
106 >    <flags FCOPTIMISED="-O2"/>
107 >    <flags FCDEBUGFLAG="-g"/>
108 >    <flags FCSHAREDOBJECTFLAGS="-fPIC"/>
109 >    <flags SCRAM_LANGUAGE_TYPE="FORTRAN"/>
110 >  </tool>
111 > EOF_TOOLFILE
112  
113 + # NON-empty defaults
114 + export COMPILER_EXEC_NAME="c++"
115 +
116 + # First of all handle OS specific options.
117   case %cmsplatf in
118 < slc3* )
119 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
120 < <doc type=BuildSystem::ToolDoc version=1.1>
121 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
122 < <client>
123 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
124 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
125 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
126 < </client>
127 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
128 < <Flags CCcompiler="gcc@COMPILER_VERSION_MAJOR@">
129 < <Flags MODULEFLAGS="-shared">
130 < <Flags CXXDEBUGFLAG="-g">
131 < <Flags CPPDEFINES="GNU_GCC">
132 < <Flags CPPDEFINES="_GNU_SOURCE">
133 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
134 < <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
135 < <Flags CXXFLAGS="-O2">
136 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
137 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
138 < <Flags LDFLAGS="-Wl,-E">
139 < <Flags CXXSHAREDFLAGS="-Wl,-E">
140 < <Flags SHAREDSUFFIX="so">
141 < <Flags SCRAM_LANGUAGE_TYPE="C++">
142 < <Runtime name=GCC_EXEC_PREFIX default="$GCC_BASE/lib/gcc-lib/">
143 < <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
144 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
145 < </tool>
146 < EOF_TOOLFILE
147 < cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
148 < <doc type=BuildSystem::ToolDoc version=1.1>
149 < <tool name=ccompiler version=@GCC_VERSION@ type=compiler>
150 < <client>
151 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
152 < <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
153 < <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
154 < </client>
155 < <Flags CDEBUGFLAG="-g">
156 < <Flags CSHAREDOBJECTFLAGS="-fPIC">
157 < <Flags CFLAGS="-pthread">
158 < <Flags CFLAGS="-O2">
159 < <Flags LDFLAGS="-Wl,-E">
160 < <Flags CSHAREDFLAGS="-Wl,-E">
161 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
162 < <Flags SCRAM_LANGUAGE_TYPE="C">
163 < </tool>
164 < EOF_TOOLFILE
165 < cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
166 < <doc type=BuildSystem::ToolDoc version=1.1>
167 < <tool name=f77compiler version=@GCC_VERSION@ type=compiler>
168 < <lib name=g2c>
169 < <lib name=m>
76 < <client>
77 < <Environment name=G77_BASE default="@GCC_ROOT@"></Environment>
78 < <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
79 < </client>
80 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
81 < <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
82 < <Flags FCO2Flag="-O2">
83 < <Flags FCOPTIMISED="-O2">
84 < <Flags FCDEBUGFLAG="-g">
85 < <Flags FCSHAREDOBJECTFLAGS="-fPIC">
86 < <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
87 < </tool>
88 < EOF_TOOLFILE
89 < ;;
90 < slc4_ia32_gcc345 )
91 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
92 < <doc type=BuildSystem::ToolDoc version=1.1>
93 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
94 < <client>
95 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
96 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
97 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
98 < </client>
99 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
100 < <Flags CCcompiler="gcc@COMPILER_VERSION_MAJOR@">
101 < <Flags MODULEFLAGS="-shared">
102 < <Flags CXXDEBUGFLAG="-g">
103 < <Flags CPPDEFINES="GNU_GCC">
104 < <Flags CPPDEFINES="_GNU_SOURCE">
105 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
106 < <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
107 < <Flags CXXFLAGS="-O2">
108 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
109 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
110 < <Flags LDFLAGS="-Wl,-E">
111 < <Flags CXXSHAREDFLAGS="-Wl,-E">
112 < <Flags SHAREDSUFFIX="so">
113 < <Flags SCRAM_LANGUAGE_TYPE="C++">
114 < <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
115 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
116 < </tool>
117 < EOF_TOOLFILE
118 < cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
119 < <doc type=BuildSystem::ToolDoc version=1.1>
120 < <tool name=ccompiler version=@GCC_VERSION@ type=compiler>
121 < <client>
122 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
123 < <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
124 < <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
125 < </client>
126 < <Flags CDEBUGFLAG="-g">
127 < <Flags CSHAREDOBJECTFLAGS="-fPIC">
128 < <Flags CFLAGS="-pthread">
129 < <Flags CFLAGS="-O2">
130 < <Flags LDFLAGS="-Wl,-E">
131 < <Flags CSHAREDFLAGS="-Wl,-E">
132 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
133 < <Flags SCRAM_LANGUAGE_TYPE="C">
134 < </tool>
135 < EOF_TOOLFILE
136 < cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
137 < <doc type=BuildSystem::ToolDoc version=1.1>
138 < <tool name=f77compiler version=@GCC_VERSION@ type=compiler>
139 < <lib name=g2c>
140 < <lib name=m>
141 < <client>
142 < <Environment name=G77_BASE default="@GCC_ROOT@"></Environment>
143 < <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
144 < </client>
145 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
146 < <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
147 < <Flags FCO2Flag="-O2">
148 < <Flags FCOPTIMISED="-O2">
149 < <Flags FCDEBUGFLAG="-g">
150 < <Flags FCSHAREDOBJECTFLAGS="-fPIC">
151 < <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
152 < </tool>
153 < EOF_TOOLFILE
154 < ;;
155 < slc4_ia32_gcc4* | slc5_ia32_gcc4*)
156 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
157 < <doc type=BuildSystem::ToolDoc version=1.1>
158 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
159 < <client>
160 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
161 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
162 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
163 < </client>
164 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
165 < <Flags CCcompiler="gcc@COMPILER_VERSION_MAJOR@">
166 < <Flags MODULEFLAGS="-shared">
167 < <Flags CXXDEBUGFLAG="-g">
168 < <Flags CPPDEFINES="GNU_GCC">
169 < <Flags CPPDEFINES="_GNU_SOURCE">
170 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
171 < <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
172 < <Flags CXXFLAGS="-O2">
173 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
174 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
175 < <Flags LDFLAGS="-Wl,-E">
176 < <Flags CXXSHAREDFLAGS="-Wl,-E">
177 < <Flags SHAREDSUFFIX="so">
178 < <Flags SCRAM_LANGUAGE_TYPE="C++">
179 < <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
180 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
181 < </tool>
182 < EOF_TOOLFILE
183 < cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
184 < <doc type=BuildSystem::ToolDoc version=1.1>
185 < <tool name=ccompiler version=@GCC_VERSION@ type=compiler>
186 < <client>
187 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
188 < <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
189 < <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
190 < </client>
191 < <Flags CDEBUGFLAG="-g">
192 < <Flags CSHAREDOBJECTFLAGS="-fPIC">
193 < <Flags CFLAGS="-pthread">
194 < <Flags CFLAGS="-O2">
195 < <Flags LDFLAGS="-Wl,-E">
196 < <Flags CSHAREDFLAGS="-Wl,-E">
197 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
198 < <Flags SCRAM_LANGUAGE_TYPE="C">
199 < </tool>
200 < EOF_TOOLFILE
201 < cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
202 < <doc type=BuildSystem::ToolDoc version=1.1>
203 < <tool name=f77compiler version=@GCC_VERSION@ type=compiler>
204 < <lib name=gfortran>
205 < <lib name=m>
206 < <client>
207 < <Environment name=G77_BASE default="@GCC_ROOT@"></Environment>
208 < <Environment name=FC default="$G77_BASE/bin/gfortran"></Environment>
209 < </client>
210 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
211 < <Flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized">
212 < <Flags FCO2Flag="-O2">
213 < <Flags FCOPTIMISED="-O2">
214 < <Flags FCDEBUGFLAG="-g">
215 < <Flags FCSHAREDOBJECTFLAGS="-fPIC">
216 < <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
217 < </tool>
218 < EOF_TOOLFILE
219 < ;;
220 < slc4_amd64_gcc3* | slc5_amd64_gcc3* )
221 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
222 < <doc type=BuildSystem::ToolDoc version=1.1>
223 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
224 < <client>
225 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
226 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
227 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
228 < </client>
229 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
230 < <Flags CCcompiler="gcc@COMPILER_VERSION_MAJOR@">
231 < <Flags MODULEFLAGS="-shared">
232 < <Flags CXXDEBUGFLAG="-g">
233 < <Flags CPPDEFINES="GNU_GCC">
234 < <Flags CPPDEFINES="_GNU_SOURCE">
235 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
236 < <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
237 < <Flags CXXFLAGS="-O2">
238 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
239 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
240 < <Flags LDFLAGS="-Wl,-E">
241 < <Flags CXXSHAREDFLAGS="-Wl,-E">
242 < <Flags SHAREDSUFFIX="so">
243 < <Flags SCRAM_LANGUAGE_TYPE="C++">
244 < <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib64" type=path>
245 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
246 < </tool>
247 < EOF_TOOLFILE
248 < cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
249 < <doc type=BuildSystem::ToolDoc version=1.1>
250 < <tool name=ccompiler version=@GCC_VERSION@ type=compiler>
251 < <client>
252 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
253 < <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
254 < <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
255 < </client>
256 < <Flags CDEBUGFLAG="-g">
257 < <Flags CSHAREDOBJECTFLAGS="-fPIC">
258 < <Flags CFLAGS="-pthread">
259 < <Flags CFLAGS="-O2">
260 < <Flags LDFLAGS="-Wl,-E">
261 < <Flags CSHAREDFLAGS="-Wl,-E">
262 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
263 < <Flags SCRAM_LANGUAGE_TYPE="C">
264 < </tool>
265 < EOF_TOOLFILE
266 < cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
267 < <doc type=BuildSystem::ToolDoc version=1.1>
268 < <tool name=f77compiler version=@GCC_VERSION@ type=compiler>
269 < <lib name=g2c>
270 < <lib name=m>
271 < <client>
272 < <Environment name=G77_BASE default="@GCC_ROOT@"></Environment>
273 < <Environment name=FC default="$G77_BASE/bin/g77"></Environment>
274 < </client>
275 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
276 < <Flags FFLAGS="-fno-second-underscore -Wno-globals -Wunused -Wuninitialized">
277 < <Flags FCO2Flag="-O2">
278 < <Flags FCOPTIMISED="-O2">
279 < <Flags FCDEBUGFLAG="-g">
280 < <Flags FCSHAREDOBJECTFLAGS="-fPIC">
281 < <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
282 < </tool>
283 < EOF_TOOLFILE
284 < ;;
285 < slc4_amd64_gcc4* | slc5_amd64_gcc4* )
286 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
287 < <doc type=BuildSystem::ToolDoc version=1.1>
288 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
289 < <client>
290 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
291 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
292 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
293 < </client>
294 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
295 < <Flags CCcompiler="gcc@COMPILER_VERSION_MAJOR@">
296 < <Flags MODULEFLAGS="-shared">
297 < <Flags CXXDEBUGFLAG="-g">
298 < <Flags CPPDEFINES="GNU_GCC">
299 < <Flags CPPDEFINES="_GNU_SOURCE">
300 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
301 < <Flags CXXFLAGS="-pedantic -ansi -pthread -pipe">
302 < <Flags CXXFLAGS="-O2">
303 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
304 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
305 < <Flags LDFLAGS="-Wl,-E">
306 < <Flags CXXSHAREDFLAGS="-Wl,-E">
307 < <Flags SHAREDSUFFIX="so">
308 < <Flags SCRAM_LANGUAGE_TYPE="C++">
309 < <Runtime name=LD_LIBRARY_PATH value="$GCC_BASE/lib64" type=path>
310 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
311 < </tool>
312 < EOF_TOOLFILE
313 < cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler
314 < <doc type=BuildSystem::ToolDoc version=1.1>
315 < <tool name=ccompiler version=@GCC_VERSION@ type=compiler>
316 < <client>
317 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
318 < <Environment name=GCCBINDIR value="$GCC_BASE/bin"></Environment>
319 < <Environment name=CC value="$GCCBINDIR/gcc"></Environment>
320 < </client>
321 < <Flags CDEBUGFLAG="-g">
322 < <Flags CSHAREDOBJECTFLAGS="-fPIC">
323 < <Flags CFLAGS="-pthread">
324 < <Flags CFLAGS="-O2">
325 < <Flags LDFLAGS="-Wl,-E">
326 < <Flags CSHAREDFLAGS="-Wl,-E">
327 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
328 < <Flags SCRAM_LANGUAGE_TYPE="C">
329 < </tool>
330 < EOF_TOOLFILE
331 < cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler
332 < <doc type=BuildSystem::ToolDoc version=1.1>
333 < <tool name=f77compiler version=@GCC_VERSION@ type=compiler>
334 < <lib name=gfortran>
335 < <lib name=m>
336 < <client>
337 < <Environment name=G77_BASE default="@GCC_ROOT@"></Environment>
338 < <Environment name=FC default="$G77_BASE/bin/gfortran"></Environment>
339 < </client>
340 < <Flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@">
341 < <Flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized">
342 < <Flags FCO2Flag="-O2">
343 < <Flags FCOPTIMISED="-O2">
344 < <Flags FCDEBUGFLAG="-g">
345 < <Flags FCSHAREDOBJECTFLAGS="-fPIC">
346 < <Flags SCRAM_LANGUAGE_TYPE="FORTRAN">
347 < </tool>
348 < EOF_TOOLFILE
349 < ;;
350 < osx104_ppc32_gcc40* )
351 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
352 < <doc type=BuildSystem::ToolDoc version=1.1>
353 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
354 < <client>
355 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
356 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
357 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
358 < </client>
359 < <Flags SCRAM_COMPILER_NAME="gcc40">
360 < <Flags CCcompiler="gcc40">
361 < <Flags MODULEFLAGS=" ">
362 < <Flags CXXDEBUGFLAG="-g">
363 < <Flags CPPDEFINES="GNU_GCC">
364 < <Flags CPPDEFINES="_GNU_SOURCE">
365 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
366 < <Flags CXXFLAGS="-pedantic -ansi -pipe">
367 < <Flags CXXFLAGS="-O2">
368 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
369 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
370 < <Flags LDFLAGS=" ">
371 < <Flags CXXSHAREDFLAGS="-dynamiclib -single_module">
372 < <Flags SHAREDSUFFIX="dylib">
373 < <Flags SCRAM_LANGUAGE_TYPE="C++">
374 < <Runtime name=DYLD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
375 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
376 < </tool>
377 < EOF_TOOLFILE
378 < ;;
379 < osx104_ia32_gcc40* )
380 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
381 < <doc type=BuildSystem::ToolDoc version=1.1>
382 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
383 < <client>
384 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
385 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
386 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
387 < </client>
388 < <Flags SCRAM_COMPILER_NAME="gcc40">
389 < <Flags CCcompiler="gcc40">
390 < <Flags MODULEFLAGS=" ">
391 < <Flags CXXDEBUGFLAG="-g">
392 < <Flags CPPDEFINES="GNU_GCC">
393 < <Flags CPPDEFINES="_GNU_SOURCE">
394 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
395 < <Flags CXXFLAGS="-pedantic -ansi -pipe">
396 < <Flags CXXFLAGS="-O2">
397 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
398 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
399 < <Flags LDFLAGS=" ">
400 < <Flags CXXSHAREDFLAGS="-dynamiclib -single_module">
401 < <Flags SHAREDSUFFIX="dylib">
402 < <Flags SCRAM_LANGUAGE_TYPE="C++">
403 < <Runtime name=DYLD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
404 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
405 < </tool>
406 < EOF_TOOLFILE
407 < ;;
408 < osx105* )
409 < cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler
410 < <doc type=BuildSystem::ToolDoc version=1.1>
411 < <tool name=cxxcompiler version=@GCC_VERSION@ type=compiler>
412 < <client>
413 < <Environment name=GCC_BASE default="@GCC_ROOT@"></Environment>
414 < <Environment name=GCCBINDIR default="$GCC_BASE/bin"></Environment>
415 < <Environment name=CXX value="$GCCBINDIR/c++"></Environment>
416 < </client>
417 < <Flags SCRAM_COMPILER_NAME="gcc40">
418 < <Flags CCcompiler="gcc40">
419 < <Flags MODULEFLAGS=" ">
420 < <Flags CXXDEBUGFLAG="-g">
421 < <Flags CPPDEFINES="GNU_GCC">
422 < <Flags CPPDEFINES="_GNU_SOURCE">
423 < <Flags CXXSHAREDOBJECTFLAGS="-fPIC">
424 < <Flags CXXFLAGS="-pedantic -ansi -pipe">
425 < <Flags CXXFLAGS="-O2">
426 < <Flags CXXFLAGS="-felide-constructors -fmessage-length=0 -ftemplate-depth-300">
427 < <Flags CXXFLAGS="-Wall -Wno-non-template-friend -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses">
428 < <Flags LDFLAGS=" ">
429 < <Flags CXXSHAREDFLAGS="-dynamiclib -single_module">
430 < <Flags SHAREDSUFFIX="dylib">
431 < <Flags SCRAM_LANGUAGE_TYPE="C++">
432 < <Runtime name=DYLD_LIBRARY_PATH value="$GCC_BASE/lib" type=path>
433 < <Runtime name=PATH value="$GCC_BASE/bin" type=path>
434 < </tool>
435 < EOF_TOOLFILE
436 < ;;
118 >  slc* )
119 >    export OS_SHAREDFLAGS="-shared -Wl,-E"
120 >    export OS_SHAREDSUFFIX="so"
121 >    export OS_LDFLAGS="-Wl,-E -Wl,--hash-style=gnu"
122 >    export OS_RUNTIME_LDPATH_NAME="LD_LIBRARY_PATH"
123 >  ;;
124 >  osx* )
125 >    export OS_SHAREDFLAGS="-shared -dynamic -single_module"
126 >    export OS_SHAREDSUFFIX="dylib"
127 >    export OS_LDFLAGS="-Wl,-commons -Wl,use_dylibs"
128 >    export OS_RUNTIME_LDPATH_NAME="DYLD_LIBRARY_PATH"
129 >  ;;
130 > esac
131 >
132 > # Then handle OS + architecture specific options (maybe we should enable more
133 > # aggressive optimizations for amd64 as well??)
134 > case %cmsplatf in
135 >  osx*_ia32_* )
136 >    export ARCH_CXXFLAGS="-arch i386"
137 >    export ARCH_SHAREDFLAGS="-arch i386"
138 >    export ARCH_LIB64DIR="lib"
139 >    export ARCH_FORTRAN_LIBDIR='<environment name="LIBDIR" default="$F77COMPILER_BASE/lib/gcc/i686-apple-darwin10/4.2.1"/>'
140 >  ;;
141 >  osx*_amd64_* )
142 >    export ARCH_CXXFLAGS="-arch x86_64"
143 >    export ARCH_SHAREDFLAGS="-arch x86_64"
144 >    export ARCH_LIB64DIR="lib"
145 >    export ARCH_FORTRAN_LIBDIR='<environment name="LIBDIR" default="$F77COMPILER_BASE/lib/gcc/i686-apple-darwin10/4.2.1/x86_64"/>'
146 >  ;;
147 >  osx*_ppc32_* )
148 >    export ARCH_CXXFLAGS="-arch ppc"
149 >    export ARCH_SHAREDFLAGS="-arch ppc"
150 >    export ARCH_LIB64DIR="lib"
151 >  ;;
152 >  slc*_amd64_* )
153 >    # For some reason on mac, some of the header do not compile if this is
154 >    # defined.  Ignore for now.
155 >    export ARCH_CXXFLAGS="-Werror=overflow"
156 >    export ARCH_LIB64DIR="lib64"
157 >    export ARCH_LD_UNIT="-r -m elf_x86_64"
158 >  ;;
159 >  slc*_ia32_* )
160 >    # For some reason on mac, some of the header do not compile if this is
161 >    # defined.  Ignore for now.
162 >    export ARCH_CXXFLAGS="-Werror=overflow"
163 >    export ARCH_LIB64DIR="lib"
164 >    export ARCH_LD_UNIT="-r -m elf_i386"
165 >  ;;
166 >  *)
167 >    echo "Unsupported."
168 >    exit 1
169 >  ;;
170   esac
171  
172 < perl -p -i -e "s|\@GCC_ROOT\@|$GCC_ROOT|g;
173 <               s|\@GCC_VERSION\@|$GCC_VERSION|g;
174 <               s|\@COMPILER_VERSION\@|$COMPILER_VERSION|g;
175 <               s|\@COMPILER_VERSION_MAJOR\@|$COMPILER_VERSION_MAJOR|g;                                        
176 <                                        " %i/etc/scram.d/cxxcompiler \
177 <                                          %i/etc/scram.d/ccompiler  \
178 <                                          %i/etc/scram.d/f77compiler
172 > # Then handle compiler specific options. E.g. enable
173 > # optimizations as they become available in gcc.
174 > COMPILER_CXXFLAGS=
175 > # The following is the default even if not set here
176 > F77_MMD="-MMD"
177 > case %cmsplatf in
178 >   *_gcc4[56789]* )
179 >     COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -std=c++0x -ftree-vectorize"
180 >     F77_MMD="-cpp -MMD"
181 >   ;;
182 > esac
183 > export F77_MMD
184 >
185 > case %cmsplatf in
186 >   *_gcc4[3456789]* )
187 >     COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits"
188 >   ;;
189 > esac
190 >
191 > # Enable visibility inlines hidden. Should drastically remove
192 > # the amount of symbols due to templates.
193 > # FIXME: not enabled on linux, yet, change the case statement
194 > #        to *_gcc4[23456789]* when stable.
195 > case %cmsplatf in
196 >  osx* )
197 >    COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -fvisibility-inlines-hidden"
198 >  ;;
199 > esac
200 >
201 > export COMPILER_CXXFLAGS
202 >
203 > # Handle here platform specific overrides. In case we
204 > # want to tune something for a specific architecture.
205 > case %cmsplatf in
206 >  osx10[56]*)
207 >     # On macosx we explicitly pick up a compiler version so that there is
208 >     # actually matching between the platform specified to cmsBuild and the
209 >     # compiler.
210 >     export COMPILER_NAME_SUFFIX="-$COMPILER_VERSION_MAJOR.$COMPILER_VERSION_MINOR"
211 >  ;;
212 > esac
213 >
214 > # General substitutions
215 > perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/*.xml
216 >
217   %post
218 < %{relocateConfig}etc/scram.d/cxxcompiler
219 < %{relocateConfig}etc/scram.d/ccompiler
220 < %{relocateConfig}etc/scram.d/f77compiler
218 > %{relocateConfig}etc/scram.d/*.xml
219 > echo "GCC_TOOLFILE_ROOT='$CMS_INSTALL_PREFIX/%{pkgrel}'; export GCC_TOOLFILE_ROOT" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.sh
220 > echo "setenv GCC_TOOLFILE_ROOT '$CMS_INSTALL_PREFIX/%{pkgrel}'" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.csh

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines