1ecaa02539ab9a35e4c4037bb42d298baaca4430
[charm.git] / src / arch / mpi-linux-x86_64 / cc-mpicxx.sh
1
2 # user enviorn var: MPICXX and MPICC
3 # or, use the definition in file $CHARMINC/MPIOPTS
4 MPICXX_DEF=mpicxx
5 MPICC_DEF=mpicc
6
7 MPICXX=$MPICXX_DEF
8 MPICC=$MPICC_DEF
9 test "$MPICXX" != "$MPICXX_DEF" && /bin/rm -f $CHARMINC/MPIOPTS
10 if test ! -f "$CHARMINC/MPIOPTS"
11 then
12   echo MPICXX_DEF=$MPICXX > $CHARMINC/MPIOPTS
13   echo MPICC_DEF=$MPICC >> $CHARMINC/MPIOPTS
14   chmod +x $CHARMINC/MPIOPTS
15 fi
16
17 CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
18 case "$CMK_REAL_COMPILER" in
19 g++)   CMK_AMD64="-m64 -fPIC" ;;
20 icpc)  CMK_AMD64="-m64";;
21 pgCC)  CMK_AMD64="-DCMK_CC_PGCC=1" ;;
22 esac
23 CMK_REAL_C_COMPILER=`$MPICC -show 2>/dev/null | cut -d' ' -f1 `
24
25 CMK_CPP_CHARM="/lib/cpp -P"
26 CMK_CPP_C="$MPICC -E"
27 CMK_CC="$MPICC $CMK_AMD64 "
28 CMK_CXX="$MPICXX $CMK_AMD64 "
29 CMK_CXXPP="$MPICXX -E $CMK_AMD64 "
30 CMK_LD="$CMK_CC "
31 CMK_LDXX="$CMK_CXX "
32
33 CMK_NATIVE_CC="$CMK_REAL_C_COMPILER $CMK_AMD64 "
34 CMK_NATIVE_LD="$CMK_REAL_C_COMPILER $CMK_AMD64 "
35 CMK_NATIVE_CXX="$CMK_REAL_COMPILER $CMK_AMD64 "
36 CMK_NATIVE_LDXX="$CMK_REAL_COMPILER $CMK_AMD64 "
37 CMK_NATIVE_LIBS=""
38
39 # fortran compiler 
40 # for Intel Fortran compiler 8.0 and higher which is renamed to ifort from ifc
41 # does not work for ifc 7.0
42 CMK_CF77="mpif77 -auto -fPIC "
43 CMK_CF90="mpif90 -auto -fPIC "
44 CMK_CF90_FIXED="$CMK_CF90 -132 -FI "
45 F90DIR=`which ifort 2> /dev/null`
46 if test -h "$F90DIR"
47 then
48   F90DIR=`readlink $F90DIR`
49 fi
50 if test -x "$F90DIR"
51 then
52   F90LIBDIR="`dirname $F90DIR`/../lib"
53   F90MAIN="$F90LIBDIR/for_main.o"
54 fi
55 # for_main.o is important for main() in f90 code
56 CMK_F90MAINLIBS="$F90MAIN "
57 CMK_F90LIBS="-L$F90LIBDIR -lifcore -lifport "
58 CMK_F77LIBS="$CMK_F90LIBS"
59
60 CMK_F90_USE_MODDIR=""
61
62