ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/llvm-gcc-toolfile.spec
Revision: 1.5
Committed: Wed Jan 26 22:40:20 2011 UTC (14 years, 3 months ago) by elmer
Branch: MAIN
CVS Tags: CMSSW_4_2_8_SLHChcal6, ecbForCMSSW_4_2_8_SLHChcal6-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal5, ecbForCMSSW_4_2_8_SLHChcal5-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2_patch2, CMSSW_4_2_8_SLHCtk3_patch2, CMSSW_4_2_8_SLHChcal2_patch3, daForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk3_patch2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2_patch1, CMSSW_4_2_8_SLHCtk3_patch1, CMSSW_4_2_8_SLHChcal4_patch4, ecbForCMSSW_4_2_8_SLHCtk3_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch4-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch3, daForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch2, daForCMSSW_4_2_8_SLHChcal4_patch2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal4_patch1, daForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, CMSSW_4_2_8_lowpupatch1, daForCMSSW_4_2_8_lpupatch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_lowpupatch1-slc5_amd64_gcc434, CMSSW_4_2_8_patch7, CMSSW_4_1_8_patch10, daForCMSSW_4_1_8_patch10-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk3, CMSSW_4_2_8_SLHChcal4, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCtk3-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch4, daForCMSSW_4_2_9_HLT1_bphpatch4-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCstd2, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd_patch1-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch3, daForCMSSW_4_2_9_HLT1_bphpatch3-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk_patch2, CMSSW_4_2_8_SLHChcal2_patch2, CMSSW_4_2_8_SLHC2_patch2, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434d, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434c, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHC2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434, CMSSW_4_2_8_SLHCtk2, daForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, CMSSW_4_2_8_SLHChcal3, CMSSW_4_2_8_SLHCstd, daForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, davidlt_20120419_1945-CMSSW_4_2_8_SLHChcal3-gcc434, davidlt_20120419_1841-CMSSW_4_2_8_SLHCstd-gcc434, davidlt_20120419_1841-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, CMSSW_4_2_8_SLHC2_patch1, CMSSW_4_2_8_SLHCtk_patch1, CMSSW_4_2_8_SLHChcal2_patch1, daForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCtk_patch1-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch2, daForCMSSW_4_2_9_HLT1_bphpatch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, ecbFor428slhctkp1, CMSSW_4_2_9_HLT1_bphpatch1, daForCMSSW_4_2_9_HLT1_bphpatch1-slc5_amd64_gcc434, davidlt_20120404_1419-42X-HLT1-bph1, CMSSW_4_1_8_patch9, ecbForCMSSW_4_2_8_SLHChcal2-slc5_amd64_gcc434, CMSSW_4_1_8_patch8, CMSSW_4_2_8_SLHCtk, vskarupeForCMSSW_4_2_8_SLHCtkd, vskarupeForCMSSW_4_2_8_SLHCtkc, da20120201-42X-ports, da20120201-42X, vskarupeForCMSSW_4_2_8_SLHCtkb, vskarupeForCMSSW_4_2_8_SLHCtk, CMSSW_4_2_8_p7rootfix, ecbFor428slhcstd, daFor428p7rootfix-ports, daFor428p7rootfix, ecbFor428slhctk, ebFor428slhc1p1, CMSSW_4_1_8_patch7, CMSSW_4_2_8_SLHChcal, ecbFor428slhchcal, CMSSW_4_1_8_patch6, CMSSW_4_2_4_g94p03c, vs20111130-42X-ports, vs20111130-42X, CMSSW_4_2_8_SLHC1, CMSSW_4_2_8_SLHC2, CMSSW_4_1_8_patch5, azFor418patch5, ecbFor428slhc1, ecbFor428slhc2, eskFor3XYpreZ, CMSSW_4_1_8_patch4, az20111110-42X-ports, az20111110-42X, CMSSW_4_2_3_SLHC4_patch1, CMSSW_4_1_8_patch3, az20111031-42X-ports, az20111031-42X, ebFor423slhc4p1, CMSSW_4_2_9_HLT3_onlpatch4_ONLINE, CMSSW_4_2_9_HLT3_onlpatch3_ONLINE, CMSSW_4_1_8_patch2, CMSSW_4_2_9_HLT3_hltpatch3, CMSSW_4_2_9_HLT3_onlpatch2_ONLINE, CMSSW_4_2_8_patch6, CMSSW_4_2_8_patch6-ports, CMSSW_4_2_4_g94p02, CMSSW_4_2_4_g93p01, CMSSW_4_2_9_HLT3_hltpatch1, CMSSW_4_2_9_HLT3_hltpatch2, CMSSW_4_2_9_HLT3_onlpatch1_ONLINE, CMSSW_4_2_9_HLT3_ONLINE, CMSSW_4_2_8_patch5-ports, CMSSW_4_2_8_patch5, CMSSW_4_2_9_HLT3-ports, CMSSW_4_2_9_HLT3, CMSSW_4_2_9_HLT2_hltpatch1, CMSSW_4_2_9_HLT2_onlpatch1_ONLINE, CMSSW_4_2_9_HLT2_ONLINE, CMSSW_4_2_9_HLT2, CMSSW_4_2_9_HLT2-ports, CMSSW_4_2_8_patch4-ports, CMSSW_4_2_8_patch4, CMSSW_4_2_9_HLT1_patch1-ports, CMSSW_4_2_9_HLT1_patch1, CMSSW_4_2_9_HLT1_ONLINE, CMSSW_4_1_8_patch1, sjgFor418p1a, sjgFor418p1, CMSSW_4_2_8_patch3-ports, CMSSW_4_2_8_patch3, azFor428patch3gcc451, azFor428patch3gcc434, ebFor423slhc2p1, CMSSW_4_2_9_HLT1_hltpatch1-ports, CMSSW_4_2_9_HLT1_hltpatch1, CMSSW_4_2_7_hinpatch1_ONLINE, CMSSW_4_1_8_FWLITE, CMSSW_4_1_8, azFor418gcc434, CMSSW_4_2_8_patch2-ports, CMSSW_4_2_8_patch2, CMSSW_4_2_9_HLT1-ports, CMSSW_4_2_9_HLT1, CMSSW_4_2_9_HLT-ports, CMSSW_4_2_9_HLT, sm20110816-42X, sm20110816-42X-ports, CMSSW_4_2_7_onlpatch3_ONLINE, CMSSW_4_2_7_hltpatch3, CMSSW_4_1_7_patch3, CMSSW_4_2_8_patch1-ports, CMSSW_4_2_8_patch1, az20110802-42X-ports, az20110802-42X, CMSSW_4_1_7_patch2, CMSSW_4_2_8-ports, CMSSW_4_2_8, CMSSW_4_2_7_onlpatch2_ONLINE, CMSSW_4_2_7_hltpatch2, azFor428gcc451, azFor428gcc434, CMSSW_4_2_7_hltpatch1, az20110720-42X-ports, az20110720-42X, CMSSW_4_2_7_patch2, CMSSW_4_2_7_patch2-ports, azFor427patch2gcc451, azFor427patch2gcc434, az20110718-42X-ports, az20110718-42X, CMSSW_4_2_7_patch1, CMSSW_4_2_7_patch1-ports, azFor427patch1g451, azFor427patch1, CMSSW_4_2_7_onlpatch1_ONLINE, CMSSW_4_2_7_ONLINE, CMSSW_4_2_7-ports_FWLITE, CMSSW_4_2_7-ports, CMSSW_4_2_7_FWLITE, CMSSW_4_2_7, azFor427g451, azFor427g434, ebFor423slhc4, CMSSW_4_1_7_patch1, az20110712-42X-ports, az20110712-42X, CMSSW_4_2_6_onlpatch1_ONLINE, CMSSW_4_2_6_ONLINE, CMSSW_4_2_6-ports_FWLITE, CMSSW_4_2_6-ports, CMSSW_4_2_6_FWLITE, CMSSW_4_2_6, azFor426gcc451, azFor426gcc434, az20110705-42X-ports, az20110705-42X, CMSSW_4_2_5_hltpatch1, CMSSW_4_2_5_onlpatch1_ONLINE, CMSSW_4_2_5_ONLINE, fwFor425online, CMSSW_4_2_4_hltpatch1, CMSSW_4_2_5, CMSSW_4_2_5-ports, CMSSW_4_1_7, sm20110621-42X-ports, sm20110621-42X, sjgFor425b-ports, sjgFor425b, sjg110620a, sm20110620-42X-ports, sm20110620-42X, sjgFor425-ports, sjgFor425, fw20110617-41X, sm20110615-42X-ports, sm20110615-42X, CMSSW_4_2_4_patch1-ports, CMSSW_4_2_4_patch1, fwFor424online3, fwFor424online2, CMSSW_4_2_4_onlpatch1_ONLINE, CMSSW_4_2_4_ONLINE, fwFor424online, CMSSW_4_2_3_SLHC3, CMSSW_4_2_4-ports_FWLITE, CMSSW_4_2_4-ports, CMSSW_4_2_4_FWLITE, CMSSW_4_2_4, azFor424fgcc451, azFor424fgcc434, azFor424g434, ebFor423slhc3, az20110601-for42X-ports, az20110601-for42X, azFor424agcc451, azFor424agcc434, CMSSW_4_2_3_SLHC2, azFor424gcc451, for423SLHC2, azFor424gcc434, CMSSW_4_1_6_patch1, CMSSW_4_1_6, CMSSW_4_2_3_patch5-ports, CMSSW_4_2_3_patch5, azFor423patch5gcc451, azFor423patch5gcc434, azFor423patch4agcc434, CMSSW_4_2_3_patch4-ports, CMSSW_4_2_3_patch4, azFor423patch4gcc451, azFor423patch4gcc434, sm20110528-for42X-ports, sm20110528-for42X, CMSSW_4_2_3_patch3-ports, CMSSW_4_2_3_patch3, azFor423patch3gcc451, azFor423patch3gcc434, CMSSW_4_2_3_onlpatch4_ONLINE, CMSSW_4_2_3_patch2-ports, CMSSW_4_2_3_patch2, azFor423patch2gcc451, azFor423patch2gcc434, CMSSW_4_2_3_onlpatch3_ONLINE, CMSSW_4_2_3_onlpatch2_ONLINE, azFor423onlpatch2, CMSSW_4_2_3_patch1, CMSSW_4_2_3_patch1-ports, azFor423patch1gcc451, azFor423patch1gcc434, CMSSW_4_2_3_SLHC_pre1, ebFor423slhcPre1, CMSSW_4_2_3_onlpatch1_ONLINE, CMSSW_4_2_3_ONLINE, fwFor423online, CMSSW_4_2_2_patch2, CMSSW_4_2_2_patch2-ports, fwFor416, fwFor416sherpa123, CMSSW_4_2_3, CMSSW_4_2_3_FWLITE, CMSSW_4_2_3-ports_FWLITE, CMSSW_4_2_3-ports, azFor423gcc434_fwlite, azFor423g451, azFor423gcc451, azFor423gcc434, sm20110505-for42X-ports, sm20110505-for42X, sm20110504-for42X-ports, sm20110504-for42X, sm20100504-ports, sm20100504, CMSSW_4_2_2_patch1-ports, CMSSW_4_2_2_patch1, CMSSW_4_2_1_patch2-ports, CMSSW_4_2_1_patch2, azFor421patch2gcc451, azFor421patch2gcc434, CMSSW_4_2_2_SLHC_pre1, ebFor422slhcPre1, CMSSW_4_2_2-ports_FWLITE, CMSSW_4_2_2_FWLITE, CMSSW_4_2_2-ports, CMSSW_4_2_2, azFor422gcc451, azFor422gcc434, azFor422g451, azFor422g434, CMSSW_4_2_1_patch1-ports, CMSSW_4_2_1_patch1, CMSSW_4_1_4_patch3, azFor421patch1gcc451a, azFor421patch1gcc434a, CMSSW_4_1_5, CMSSW_4_1_4_patch2, azFor421patch1gcc451, azFor421patch1gcc434, azFor421patch1g451, azFor421patch1g434, sjg110420a-ports, sjg110420a, CMSSW_4_2_1-ports_FWLITE, CMSSW_4_2_1-ports, CMSSW_4_2_1_FWLITE, CMSSW_4_2_1, azFor421g451, azFor421g434, CMSSW_4_1_4_onlpatch1_ONLINE, CMSSW_4_1_4_ONLINE, fwFor414p2, fwFor414online, CMSSW_4_1_4_patch1, sm110408, CMSSW_4_2_0-ports_FWLITE, CMSSW_4_2_0_FWLITE, CMSSW_4_3_0_pre2, CMSSW_4_2_0-ports, CMSSW_4_2_0, azFor420g451-fwlite, azFor420g434-fwlite, azFor420p434-fwlite, azFor420gcc451, azFor420gcc434, azFor420g451, azFor420g434, CMSSW_4_3_0_pre2-ports, CMSSW_4_1_4, sjgFor430pre2-ports, sjgFor430pre2, fwFor413op1, ge20110430-for43X-ports, CMSSW_4_1_3_patch3, CMSSW_4_1_2_patch2, pe20110328a-for43X-ports, pe20110328a-for43X, CMSSW_4_2_0_pre8_FWLITE, sjgFor430pre1-fwlite, CMSSW_4_3_0_pre1-ports, CMSSW_4_3_0_pre1, azFor420p8_fwlite, sjgFor430pre1-ports, pe20110324b-for43X-ports, pe20110324b-for43X, fwFor413xdaq11b6online, CMSSW_4_1_3_ONLINE, sjgFor430pre1, fwFor413p2, pe20110324a-for43X-ports, pe20110324a-for43X, CMSSW_4_2_0_pre8-ports, CMSSW_4_2_0_pre8, azFor420p8g451, azFor420p8g434, CMSSW_4_1_3_patch1, fwFor412op1, fwFor413online, pe20110318b-for4XY-ports, CMSSW_4_1_3, pe20110318a-for4XY-ports, fwFor413, pe20110317a-for4XY-ports, pe20110317a-for4XY, pe20110315a-for4XY-ports, pe20110315a-for4XY, azFor420p7g434_fwlite, azFor420p7_fwlite, sm110311fwlite, pe20110310a-for4XY-ports, CMSSW_3_11_3, pe20110310a-for4XY, CMSSW_4_2_0_pre7-ports, CMSSW_4_2_0_pre7, azFor420p7g451, azFor420p7g434, CMSSW_4_1_2_patch1, CMSSW_4_1_1_onlpatch2_ONLINE, pe20110307a-for4XY-ports, pe20110307a-for4XY, CMSSW_4_1_2_ONLINE, pe20110303-for412-ports, CMSSW_4_1_2, CMSSW_4_1_1_onlpatch1_ONLINE, CMSSW_4_1_1_ONLINE, CMSSW_4_2_0_pre6-ports, CMSSW_4_2_0_pre6, DQMGUI_5_4_0, azFor420p6g451, azFor420p6g434, fwFor411online, pe20110301-for412, CMSSW_3_11_2, CMSSW_4_1_1, pe20110228a-for4XY-ports, pe20110228a-for4XY, CMSSW_3_11_1_hclpatch1, sjgFor3111hclp1, sjgFor3111hcalp1, CMSSW_4_1_0_pre3-ports, CMSSW_4_1_0_pre3, pe20110225a-for311X, pe20110225b-for4XY-ports, pe20110225b-for4XY, pe20110225a-for4XY-ports, pe20110225a-for4XY, CMSSW_3_11_1_hltpatch1, CMSSW_3_11_1_patch3, pe20110223a-for4XY-ports-osx, pe20110223a-for4XY-ports, pe20110223a-for4XY, CmsTC_0_0_4, fwFor410pre2online, CMSSW_3_11_1_onlpatch1_ONLINE, CMSSW_4_2_0_pre5-ports, CMSSW_4_2_0_pre5, azFor420p5g451a, fwFor3111op1-online, azFor420p5g451, azFor420p5g434, azFor420pre5gcc451a, azFor420pre5gcc451, azFor420pre5gcc434, CMSSW_3_11_1_patch2, CMSSW_4_1_0_pre2, pe20110215-for410p2, CMSSW_4_2_0_pre4-ports, CMSSW_4_2_0_pre4, azFor420pre4gcc451, azFor420pre4gcc434, azFor420p4g451, azFor420p4g434, pe20110213a-for4XY-ports, pe20110213a-for4XY, CMSSW_3_11_1_patch1, CMSSW_4_2_0_pre3-ports, CMSSW_4_2_0_pre3, sjgFor3111p1b, sjgFor3111p1, azFor420pre3gcc451, azFor420pre3gcc434, DQMGUI_5_3_2b, pe20110210a-for4XY-ports, pe20110210a-for4XY, DQMGUI_5_3_2a, CMSSW_3_11_1_ONLINE, CMSSW_3_11_1, fwFor3111, pe20110208a-for4XY, pe20110208a-for4XY-ports, pe20110207b-for4XY-ports, pe20110207b-for4XY, pe20110207a-for4XY, CMSSW_4_2_0_pre2-ports, CMSSW_4_2_0_pre2, azFor420pre2gcc434c, azFor420pre2gcc434b, azFor420pre2gcc451, CMSSW_4_1_0_pre1, azFor420pre2gcc434, pe20110205-for410p1, pe20110203a-for4XY-ports, pe20110203a-for4XY, pe20110203-for410p1, pe20110202a-for311X, pe20110202a-for4XY-ports, pe20110202a-for4XY, fw20110201-41X-online, pe20110131b-for4XY-ports, pe20110131b-for4XY, pe20110131a-for4XY-ports, pe20110131a-for4XY, fw20110131-311x-online, CMSSW_3_11_0_ONLINE, fw20110128-311X-online, CMSSW_3_11_0, pe20110127a-for311X-ports, pe20110127a-for311X, pe20110126b-for311X-ports, pe20110126b-for311X
Changes since 1.4: +1 -1 lines
Log Message:
  Remove the -pedantic option, it is a bit too pedantic for the moment
  (it flags thousands of technically superfluous semicolons)

File Contents

# User Rev Content
1 eulisse 1.1 ### RPM cms llvm-gcc-toolfile 11.0
2    
3     Requires: llvm
4     %if "%(echo %cmsos | grep osx >/dev/null && echo true)" == "true"
5     Requires: gfortran-macosx
6     %endif
7     Source: none
8    
9     %if "%(echo %cmsos | grep osx >/dev/null && echo true)" == "true"
10     Requires: gfortran-macosx
11     %else
12     Requires: gcc
13     %endif
14    
15     %prep
16     %build
17     %install
18     mkdir -p %i/etc/scram.d
19    
20     export LLVM_PATH
21     export LLVM_ROOT
22     export LLVM_VERSION
23    
24     # Determine the GCC_ROOT if "use system compiler is used. We still need this
25     # because we need to pick up libstdc++ from the gcc installation since clang
26     # does not ship its own and because clang does not provide a fortran compiler.
27     if [ "X$GCC_ROOT" = X ]
28     then
29     export GCC_PATH=`which gcc` || exit 1
30     export GCC_ROOT=`echo $GCC_PATH | sed -e 's|/bin/gcc||'`
31     export GCC_VERSION=`gcc -v 2>&1 | grep "gcc version" | sed 's|[^0-9]*\([0-9].[0-9].[0-9]\).*|\1|'` || exit 1
32     export G77_ROOT=$GFORTRAN_MACOSX_ROOT
33     else
34     export GCC_PATH
35     export GCC_ROOT
36     export GCC_VERSION
37     export G77_ROOT=$GCC_ROOT
38     fi
39    
40     export GCC_REALVERSION=`echo $GCC_VERSION | sed -e's|-.*||'`
41     export COMPILER_VERSION=`echo $LLVM_VERSION`
42     export COMPILER_VERSION_MAJOR=`echo $LLVM_VERSION | sed -e 's|\([0-9]\).*|\1|'`
43     export COMPILER_VERSION_MINOR=`echo $LLVM_VERSION | sed -e 's|[0-9].\([0-9]\).*|\1|'`
44    
45 eulisse 1.2 export GCC_ARCH=$(basename $(dirname `find $GCC_ROOT/include -mindepth 4 -maxdepth 4 -name bits`))
46    
47 eulisse 1.1 # Generic template for the toolfiles.
48     # *** USE @VARIABLE@ plus associated environment variable to customize. ***
49     # DO NOT DUPLICATE the toolfile template.
50    
51     cat << \EOF_TOOLFILE >%i/etc/scram.d/cxxcompiler.xml
52     <tool name="cxxcompiler" version="@LLVM_VERSION@" type="compiler">
53     <client>
54     <environment name="CXXCOMPILER_BASE" default="@LLVM_ROOT@"/>
55     <environment name="GCCBINDIR" default="$CXXCOMPILER_BASE/bin"/>
56     <environment name="CXX" value="$GCCBINDIR/clang++@COMPILER_NAME_SUFFIX@"/>
57     </client>
58     <flags SCRAM_COMPILER_NAME="clang@COMPILER_VERSION@"/>
59     <flags CCCOMPILER="clang@COMPILER_VERSION_MAJOR@"/>
60     <flags MODULEFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
61     <flags CXXDEBUGFLAG="-g"/>
62     <flags CPPDEFINES="GNU_GCC"/>
63     <flags CPPDEFINES="_GNU_SOURCE"/>
64     <flags CXXSHAREDOBJECTFLAGS="-fPIC"/>
65     <flags CPPFLAGS="-I@GCC_ROOT@/include/c++/@GCC_REALVERSION@"/>
66 eulisse 1.2 <flags CPPFLAGS="-I@GCC_ROOT@/include/c++/@GCC_REALVERSION@/@GCC_ARCH@"/>
67 eulisse 1.1 <flags CPPFLAGS="-I@GCC_ROOT@/include/c++/@GCC_REALVERSION@/backward"/>
68 elmer 1.5 <flags CXXFLAGS="-O2 -ansi -pthread -pipe"/>
69 eulisse 1.1 <flags CXXFLAGS="@ARCH_CXXFLAGS@ @COMPILER_CXXFLAGS@"/>
70 eulisse 1.4 <flags CXXFLAGS="-fmessage-length=0 -ftemplate-depth-300"/>
71     # -Wno-non-template-friend removed since it's not supported, yet, by llvm.
72     <flags CXXFLAGS="-Wall -Wno-long-long -Wimplicit -Wreturn-type -Wunused -Wparentheses -Wsign-compare -Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=address -Werror=format -Werror=write-strings -Werror=strict-overflow -fdiagnostics-show-option"/>
73 eulisse 1.1 <flags LDFLAGS="@OS_LDFLAGS@"/>
74     <flags CXXSHAREDFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
75     <flags SHAREDSUFFIX="@OS_SHAREDSUFFIX@"/>
76     <flags LD_UNIT="@OS_LD_UNIT@ @ARCH_LD_UNIT@"/>
77     <flags SCRAM_LANGUAGE_TYPE="C++"/>
78     <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$CXXCOMPILER_BASE/lib" type="path"/>
79     <runtime name="PATH" value="$CXXCOMPILER_BASE/bin" type="path"/>
80     <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="@GCC_ROOT@/@ARCH_LIB64DIR@" type="path"/>
81     <runtime name="@OS_RUNTIME_LDPATH_NAME@" value="@GCC_ROOT@/lib" type="path"/>
82     <runtime name="PATH" value="@GCC_ROOT@/bin" type="path"/>
83     </tool>
84     EOF_TOOLFILE
85    
86     cat << \EOF_TOOLFILE >%i/etc/scram.d/ccompiler.xml
87     <tool name="ccompiler" version="@LLVM_VERSION@" type="compiler">
88     <client>
89     <environment name="CCOMPILER_BASE" default="@LLVM_ROOT@"/>
90     <environment name="GCCBINDIR" value="$CCOMPILER_BASE/bin"/>
91     <environment name="CC" value="$GCCBINDIR/clang@COMPILER_NAME_SUFFIX@"/>
92     </client>
93     <flags CDEBUGFLAG="-g"/>
94     <flags CSHAREDOBJECTFLAGS="-fPIC"/>
95     <flags CFLAGS="-pthread"/>
96     <flags CFLAGS="-O2"/>
97     <flags LDFLAGS="@OS_LDFLAGS@"/>
98     <flags CSHAREDFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/>
99     <flags SCRAM_COMPILER_NAME="clangc@COMPILER_VERSION@"/>
100     <flags SCRAM_LANGUAGE_TYPE="C"/>
101     </tool>
102     EOF_TOOLFILE
103    
104     # Notice that on OSX we have a LIBDIR defined for f77compiler because gcc C++
105     # compiler (which comes from the system) does not know about where to find
106     # libgfortran.
107     cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler.xml
108     <tool name="f77compiler" version="@GCC_VERSION@" type="compiler">
109     <lib name="gfortran"/>
110     <lib name="m"/>
111     <client>
112     <environment name="F77COMPILER_BASE" default="@G77_ROOT@"/>
113     <environment name="FC" default="$F77COMPILER_BASE/bin/gfortran"/>
114     @ARCH_FORTRAN_LIBDIR@
115     </client>
116     <flags SCRAM_COMPILER_NAME="clang@COMPILER_VERSION@"/>
117     <flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized -O2"/>
118     <flags FCO2FLAG="-O2"/>
119     <flags FCOPTIMISED="-O2"/>
120     <flags FCDEBUGFLAG="-g"/>
121     <flags FCSHAREDOBJECTFLAGS="-fPIC"/>
122     <flags SCRAM_LANGUAGE_TYPE="FORTRAN"/>
123     </tool>
124     EOF_TOOLFILE
125    
126     # NON-empty defaults
127     export COMPILER_EXEC_NAME="clang++"
128    
129     # First of all handle OS specific options.
130     case %cmsplatf in
131     slc* )
132     export OS_SHAREDFLAGS="-shared -Wl,-E"
133     export OS_SHAREDSUFFIX="so"
134     export OS_LDFLAGS="-Wl,-E -Wl,--hash-style=gnu"
135     export OS_RUNTIME_LDPATH_NAME="LD_LIBRARY_PATH"
136     ;;
137     osx* )
138     export OS_SHAREDFLAGS="-shared -dynamic -single_module"
139     export OS_SHAREDSUFFIX="dylib"
140     export OS_LDFLAGS="-Wl,-commons -Wl,use_dylibs"
141     export OS_RUNTIME_LDPATH_NAME="DYLD_LIBRARY_PATH"
142     ;;
143     esac
144    
145     # Then handle OS + architecture specific options (maybe we should enable more
146     # aggressive optimizations for amd64 as well??)
147     case %cmsplatf in
148     osx*_ia32_* )
149     export ARCH_CXXFLAGS="-arch i386"
150     export ARCH_SHAREDFLAGS="-arch i386"
151     export ARCH_LIB64DIR="lib"
152     export ARCH_FORTRAN_LIBDIR='<environment name="LIBDIR" default="$F77COMPILER_BASE/lib/gcc/i686-apple-darwin10/4.2.1"/>'
153     ;;
154     osx*_amd64_* )
155     export ARCH_CXXFLAGS="-arch x86_64"
156     export ARCH_SHAREDFLAGS="-arch x86_64"
157     export ARCH_LIB64DIR="lib"
158     export ARCH_FORTRAN_LIBDIR='<environment name="LIBDIR" default="$F77COMPILER_BASE/lib/gcc/i686-apple-darwin10/4.2.1/x86_64"/>'
159     ;;
160     osx*_ppc32_* )
161     export ARCH_CXXFLAGS="-arch ppc"
162     export ARCH_SHAREDFLAGS="-arch ppc"
163     export ARCH_LIB64DIR="lib"
164     ;;
165     slc*_amd64_* )
166     # For some reason on mac, some of the header do not compile if this is
167     # defined. Ignore for now.
168     export ARCH_CXXFLAGS="-Werror=overflow"
169     export ARCH_LIB64DIR="lib64"
170     export ARCH_LD_UNIT="-r -m elf_x86_64"
171     ;;
172     slc*_ia32_* )
173     # For some reason on mac, some of the header do not compile if this is
174     # defined. Ignore for now.
175     export ARCH_CXXFLAGS="-Werror=overflow"
176     export ARCH_LIB64DIR="lib"
177     export ARCH_LD_UNIT="-r -m elf_i386"
178     ;;
179     *)
180     echo "Unsupported."
181     exit 1
182     ;;
183     esac
184    
185     # Then handle compiler specific options. E.g. enable
186     # optimizations as they become available in gcc.
187     COMPILER_CXXFLAGS=
188     case %cmsplatf in
189     *_gcc4[56789]* )
190     COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -std=c++0x -ftree-vectorize"
191     F77_MMD="-cpp -MMD"
192     ;;
193     esac
194    
195     case %cmsplatf in
196     *_gcc4[3456789]* )
197     COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -Werror=type-limits"
198     ;;
199     esac
200    
201     # Enable visibility inlines hidden. Should drastically remove
202     # the amount of symbols due to templates.
203     # FIXME: not enabled on linux, yet, change the case statement
204     # to *_gcc4[23456789]* when stable.
205     case %cmsplatf in
206     osx* )
207     COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -fvisibility-inlines-hidden"
208     ;;
209     esac
210    
211     export COMPILER_CXXFLAGS
212    
213     # Handle here platform specific overrides. In case we
214     # want to tune something for a specific architecture.
215     case %cmsplatf in
216     osx10[56]*)
217     # On macosx we explicitly pick up a compiler version so that there is
218     # actually matching between the platform specified to cmsBuild and the
219     # compiler.
220     export COMPILER_NAME_SUFFIX="-$COMPILER_VERSION_MAJOR.$COMPILER_VERSION_MINOR"
221     ;;
222     esac
223    
224     # General substitutions
225     perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/*.xml
226    
227     %post
228 eulisse 1.3 %{relocateConfig}etc/scram.d/*.xml
229 eulisse 1.1 echo "LLVM_GCC_TOOLFILE_ROOT='$CMS_INSTALL_PREFIX/%{pkgrel}'; export GCC_TOOLFILE_ROOT" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.sh
230     echo "setenv LLVM_GCC_TOOLFILE_ROOT '$CMS_INSTALL_PREFIX/%{pkgrel}'" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.csh