15 |
|
%install |
16 |
|
mkdir -p %i/etc/scram.d |
17 |
|
|
18 |
< |
# Determine the GCC_ROOT if "use system compiler is used. |
18 |
> |
# Determine the GCC_ROOT if "use system compiler" is used. |
19 |
|
if [ "X$GCC_ROOT" = X ] |
20 |
|
then |
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 |
98 |
|
<client> |
99 |
|
<environment name="F77COMPILER_BASE" default="@G77_ROOT@"/> |
100 |
|
<environment name="FC" default="$F77COMPILER_BASE/bin/gfortran"/> |
101 |
< |
@OS_FORTRAN_LIBDIR@ |
101 |
> |
@ARCH_FORTRAN_LIBDIR@ |
102 |
|
</client> |
103 |
|
<flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@"/> |
104 |
|
<flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized -O2"/> |
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" |
124 |
– |
export OS_FORTRAN_LIBDIR='<environment name="LIBDIR" default="$F77COMPILER_BASE/lib/gcc/i686-apple-darwin10/4.2.1"/>' |
129 |
|
;; |
130 |
|
esac |
131 |
|
|
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" |
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 |
< |
export COMPILER_CXXFLAGS |
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" |
179 |
< |
export COMPILER_CXXFLAGS |
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 |
215 |
|
perl -p -i -e 's|\@([^@]*)\@|$ENV{$1}|g' %i/etc/scram.d/*.xml |
216 |
|
|
217 |
|
%post |
218 |
< |
[ "X$RPM_INSTALL_PREFIX" == "X$CMS_INSTALL_PREFIX" ] || perl -p -i -e "s|$RPM_INSTALL_PREFIX|$CMS_INSTALL_PREFIX|g" $RPM_INSTALL_PREFIX/%{pkgrel}/etc/scram.d/*.xml |
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 |