58 |
|
<flags LDFLAGS="@OS_LDFLAGS@"/> |
59 |
|
<flags CXXSHAREDFLAGS="@OS_SHAREDFLAGS@ @ARCH_SHAREDFLAGS@"/> |
60 |
|
<flags SHAREDSUFFIX="@OS_SHAREDSUFFIX@"/> |
61 |
+ |
<flags LD_UNIT="@OS_LD_UNIT@ @ARCH_LD_UNIT@"/> |
62 |
|
<flags SCRAM_LANGUAGE_TYPE="C++"/> |
63 |
< |
<runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$GCC_BASE/@OS_LIB64DIR@" type="path"/> |
64 |
< |
<runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$GCC_BASE/lib" type="path"/> |
65 |
< |
<runtime name="PATH" value="$GCC_BASE/bin" type="path"/> |
63 |
> |
<runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$CXXCOMPILER_BASE/@ARCH_LIB64DIR@" type="path"/> |
64 |
> |
<runtime name="@OS_RUNTIME_LDPATH_NAME@" value="$CXXCOMPILER_BASE/lib" type="path"/> |
65 |
> |
<runtime name="PATH" value="$CXXCOMPILER_BASE/bin" type="path"/> |
66 |
|
</tool> |
67 |
|
EOF_TOOLFILE |
68 |
|
|
84 |
|
</tool> |
85 |
|
EOF_TOOLFILE |
86 |
|
|
87 |
+ |
# Notice that on OSX we have a LIBDIR defined for f77compiler because gcc C++ |
88 |
+ |
# compiler (which comes from the system) does not know about where to find |
89 |
+ |
# libgfortran. |
90 |
|
cat << \EOF_TOOLFILE >%i/etc/scram.d/f77compiler.xml |
91 |
|
<tool name="f77compiler" version="@GCC_VERSION@" type="compiler"> |
92 |
|
<lib name="gfortran"/> |
94 |
|
<client> |
95 |
|
<environment name="F77COMPILER_BASE" default="@G77_ROOT@"/> |
96 |
|
<environment name="FC" default="$F77COMPILER_BASE/bin/gfortran"/> |
97 |
+ |
@OS_FORTRAN_LIBDIR@ |
98 |
|
</client> |
99 |
|
<flags SCRAM_COMPILER_NAME="gcc@COMPILER_VERSION@"/> |
100 |
|
<flags FFLAGS="-fno-second-underscore -Wunused -Wuninitialized -O2"/> |
112 |
|
# First of all handle OS specific options. |
113 |
|
case %cmsplatf in |
114 |
|
slc* ) |
115 |
< |
export OS_SHAREDFLAGS="-Wl,-E" |
115 |
> |
export OS_SHAREDFLAGS="-shared -Wl,-E" |
116 |
|
export OS_SHAREDSUFFIX="so" |
112 |
– |
export OS_LIB64DIR="lib64" |
117 |
|
export OS_LDFLAGS="-Wl,-E -Wl,--hash-style=gnu" |
118 |
|
export OS_RUNTIME_LDPATH_NAME="LD_LIBRARY_PATH" |
119 |
|
;; |
120 |
|
osx* ) |
121 |
|
export OS_SHAREDFLAGS="-shared -dynamic -single_module" |
122 |
|
export OS_SHAREDSUFFIX="dylib" |
119 |
– |
export OS_LIB64DIR="lib" |
123 |
|
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"/>' |
125 |
|
;; |
126 |
|
esac |
127 |
|
|
131 |
|
osx*_ia32_* ) |
132 |
|
export ARCH_CXXFLAGS="-arch i386" |
133 |
|
export ARCH_SHAREDFLAGS="-arch i386" |
134 |
+ |
export ARCH_LIB64DIR="lib" |
135 |
|
;; |
136 |
|
osx*_amd64_* ) |
137 |
|
export ARCH_CXXFLAGS="-arch x86_64" |
138 |
|
export ARCH_SHAREDFLAGS="-arch x86_64" |
139 |
+ |
export ARCH_LIB64DIR="lib" |
140 |
|
;; |
141 |
|
osx*_ppc32_* ) |
142 |
|
export ARCH_CXXFLAGS="-arch ppc" |
143 |
|
export ARCH_SHAREDFLAGS="-arch ppc" |
144 |
+ |
export ARCH_LIB64DIR="lib" |
145 |
|
;; |
146 |
< |
slc* ) |
146 |
> |
slc*_amd64_* ) |
147 |
> |
# For some reason on mac, some of the header do not compile if this is |
148 |
> |
# defined. Ignore for now. |
149 |
> |
export ARCH_CXXFLAGS="-Werror=overflow" |
150 |
> |
export ARCH_LIB64DIR="lib64" |
151 |
> |
export ARCH_LD_UNIT="-r -m elf_x86_64" |
152 |
> |
;; |
153 |
> |
slc*_ia32_* ) |
154 |
|
# For some reason on mac, some of the header do not compile if this is |
155 |
|
# defined. Ignore for now. |
156 |
|
export ARCH_CXXFLAGS="-Werror=overflow" |
157 |
+ |
export ARCH_LIB64DIR="lib" |
158 |
+ |
export ARCH_LD_UNIT="-r -m elf_i386" |
159 |
+ |
;; |
160 |
+ |
*) |
161 |
+ |
echo "Unsupported." |
162 |
+ |
exit 1 |
163 |
|
;; |
164 |
|
esac |
165 |
|
|
166 |
|
# Then handle compiler specific options. E.g. enable |
167 |
|
# optimizations as they become available in gcc. |
168 |
+ |
COMPILER_CXXFLAGS= |
169 |
|
case %cmsplatf in |
170 |
|
*_gcc4[56789]* ) |
171 |
< |
export COMPILER_CXXFLAGS="-ftree-vectorize" |
171 |
> |
COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -std=c++0x -ftree-vectorize" |
172 |
> |
export COMPILER_CXXFLAGS |
173 |
|
;; |
174 |
|
esac |
175 |
|
|
176 |
|
case %cmsplatf in |
177 |
|
*_gcc4[3456789]* ) |
178 |
< |
export COMPILER_CXXFLAGS="-Werror=array-bounds -Werror=format-contains-nul" |
178 |
> |
COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -Werror=array-bounds -Werror=format-contains-nul" |
179 |
> |
export COMPILER_CXXFLAGS |
180 |
|
;; |
181 |
|
esac |
182 |
|
|