ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/cms-env.spec
Revision: 1.22
Committed: Tue Jul 25 16:51:43 2006 UTC (18 years, 9 months ago) by eulisse
Branch: MAIN
Changes since 1.21: +23 -20 lines
Log Message:
Multiple fixes to the environment:
-reduced pollution
-CMS_PATH not changed if already present
-SCRAM_ARCH not touched if already defined

File Contents

# User Rev Content
1 eulisse 1.1 ### RPM cms cms-env 1.0
2     Source: cmsos
3     %prep
4     %build
5     echo $SCRAM_ROOT
6     %install
7     %define scramroot %(echo $SCRAM_ROOT)
8     %define scramv1root %(echo $SCRAMV1_ROOT)
9    
10     mkdir -p %instroot/bin
11     install -m 755 %_sourcedir/cmsos %instroot/bin/cmsos
12 eulisse 1.5 mkdir -p %{instroot}/%{cmsplatf}/etc/profile.d
13    
14 eulisse 1.9 ### BASH code
15    
16 eulisse 1.1 cat << \EOF_CMSSET_DEFAULT_SH > %instroot/cmsset_default.sh
17     export PATH=%instroot/bin:$PATH
18 eulisse 1.22 #export LD_LIBRARY_PATH=%instroot/lib:$LD_LIBRARY_PATH
19     #export DYLD_FALLBACK_LIBRARY_PATH=%instroot/lib:$DYLD_FALLBACK_LIBRARY
20 eulisse 1.2
21 eulisse 1.22 if [ ! $SCRAM_ARCH ]
22 eulisse 1.19 then
23     SCRAM_ARCH=$(cmsos)
24    
25     # We need to assume 1 compiler per platform.
26     # There is no other way around this.
27     case $SCRAM_ARCH in
28     slc3_ia32) compilerv=gcc323;;
29     slc3_amd64) compilerv=gcc344;;
30     slc4_ia32) compilerv=gcc345;;
31     slc4_amd64) compilerv=gcc345;;
32     osx104_ia32) compilerv=gcc400;;
33     osx104_pcc32) compilerv=gcc400;;
34     esac
35     SCRAM_ARCH=${SCRAM_ARCH}_$compilerv
36 eulisse 1.15
37 eulisse 1.19 if [ $# -gt 0 ]
38     then
39     SCRAM_ARCH=$1
40     fi
41     export SCRAM_ARCH
42 eulisse 1.15 fi
43    
44 eulisse 1.16 here=%{instroot}
45    
46 eulisse 1.10 if [ "$VO_CMS_SW_DIR" != "" ]
47     then
48 eulisse 1.9 here=$VO_CMS_SW_DIR
49     else
50 eulisse 1.12 if [ "$OSG_APP" != "" ]
51     then
52     here=$OSG_APP/cmssoft/cms
53     fi
54 eulisse 1.10 fi
55 eulisse 1.9
56 eulisse 1.14 if [ ! -d $here/${SCRAM_ARCH}/etc/profile.d ]
57 eulisse 1.13 then
58     echo "Your shell is not able to find where cmsset_default.sh is. Either cd into the directory where it is or move to zsh"
59     fi
60 eulisse 1.9
61 eulisse 1.15 for pkg in `/bin/ls $here/${SCRAM_ARCH}/etc/profile.d/ | grep -e'^S.*[.]sh'`
62 eulisse 1.5 do
63     source $here/${SCRAM_ARCH}/etc/profile.d/$pkg
64     done
65 eulisse 1.21
66 eulisse 1.22 if [ ! $CMS_PATH ]
67 eulisse 1.21 then
68     export CMS_PATH=$here
69     fi
70 eulisse 1.1 EOF_CMSSET_DEFAULT_SH
71    
72 eulisse 1.9
73     ### CSH code
74    
75 eulisse 1.1 cat << \EOF_CMSSET_DEFAULT_CSH > %instroot/cmsset_default.csh
76 eulisse 1.7
77 eulisse 1.4 if (${?PATH}) then
78     setenv PATH %instroot/bin:$PATH
79     else
80     setenv PATH %instroot/bin
81     endif
82    
83 eulisse 1.22 #if (${?LD_LIBRARY_PATH}) then
84     # setenv LD_LIBRARY_PATH %instroot/lib:$LD_LIBRARY_PATH
85     #else
86     # setenv LD_LIBRARY_PATH %instroot/lib
87     #endif
88    
89     #if (${?DYLD_FALLBACK_LIBRARY_PATH}) then
90     # setenv DYLD_FALLBACK_LIBRARY_PATH %instroot/lib:$DYLD_FALLBACK_LIBRARY_PATH
91     #else
92     # setenv DYLD_FALLBACK_LIBRARY_PATH %instroot/lib
93     #endif
94 eulisse 1.4
95 eulisse 1.22 set CMSOSCOMMAND=`which cmsos`
96 eulisse 1.19 if ( ! ${?SCRAM_ARCH}) then
97     setenv SCRAM_ARCH `sh -c $CMSOSCOMMAND`
98 eulisse 1.22 set compilerv=gcc323
99 eulisse 1.19 switch ( ${SCRAM_ARCH} )
100     case slc3_ia32:
101     setenv compilerv gcc323
102     breaksw
103     case slc3_amd64:
104     setenv compilerv gcc344
105     breaksw
106     case slc4_ia32:
107     setenv compilerv gcc345
108     breaksw
109     case slc4_amd64:
110     setenv compilerv gcc345
111     breaksw
112     case osx104_ia32:
113     setenv compilerv gcc400
114     breaksw
115     case osx104_pcc32:
116     setenv compilerv gcc400
117     breaksw
118     endsw
119 eulisse 1.2
120 eulisse 1.19 setenv SCRAM_ARCH ${SCRAM_ARCH}_${compilerv}
121 eulisse 1.15
122 eulisse 1.19 if ( $# > 0 ) then
123     setenv SCRAM_ARCH $1
124     endif
125 eulisse 1.15 endif
126 eulisse 1.22 set here=%instroot
127 eulisse 1.16
128 eulisse 1.7 if ( ${?VO_CMS_SW_DIR} ) then
129 eulisse 1.22 set here $VO_CMS_SW_DIR
130 eulisse 1.7 else
131 eulisse 1.12 # OSG
132     if ( ${?OSG_APP} ) then
133 eulisse 1.22 set here $OSG_APP/cmssoft/cms
134 eulisse 1.12 endif
135     # OSG
136 eulisse 1.7 endif
137    
138     if ( ! -e $here/cmsset_default.csh ) then
139     echo "Please cd into the directory where cmsset_default.csh is."
140     endif
141 eulisse 1.5
142 eulisse 1.15 foreach pkg ( `/bin/ls ${here}/${SCRAM_ARCH}/etc/profile.d/ | grep -e'^S.*[.]csh'` )
143 eulisse 1.5 source ${here}/${SCRAM_ARCH}/etc/profile.d/$pkg
144     end
145 eulisse 1.21 if ( ! ${?CMS_PATH} ) then
146     setenv CMS_PATH $here
147     endif
148 eulisse 1.22 unset here
149     unset CMSOSCOMMAND
150     unset compilerv
151 eulisse 1.1 EOF_CMSSET_DEFAULT_CSH
152    
153 eulisse 1.8 %pre
154     [ -f $RPM_INSTALL_PREFIX/cmsset_default.sh ] && cp $RPM_INSTALL_PREFIX/cmsset_default.sh $RPM_INSTALL_PREFIX/cmsset_default.sh.old`date +%Y%m%d`
155     [ -f $RPM_INSTALL_PREFIX/cmsset_default.csh ] && cp $RPM_INSTALL_PREFIX/cmsset_default.csh $RPM_INSTALL_PREFIX/cmsset_default.csh.old`date +%Y%m%d`
156     [ -d $RPM_INSTALL_PREFIX/bin ] && cp -r $RPM_INSTALL_PREFIX/bin $RPM_INSTALL_PREFIX/bin.old`date +%Y%m%d`
157 eulisse 1.1 %post
158     echo $RPM_INSTALL_PREFIX
159 eulisse 1.3 perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $RPM_INSTALL_PREFIX/cmsset_default.sh
160     perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $RPM_INSTALL_PREFIX/cmsset_default.csh
161     perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $RPM_INSTALL_PREFIX/bin/cmsos
162     %files
163     %i
164     %instroot/cmsset_default.sh
165     %instroot/cmsset_default.csh
166     %instroot/bin/cmsos
167 eulisse 1.5 %instroot/%cmsplatf/etc/profile.d
168 eulisse 1.6 %exclude %instroot/%cmsplatf/etc/profile.d/*