source: BOL/script_install/install_xios.bash @ 5226

Last change on this file since 5226 was 4782, checked in by Ehouarn Millour, 11 months ago

Update install script for XIOS to use (by default) XIOS-2.6 revision 2568.
While at it added the possibility to choose which branch (trunk|2.5|2.6) via a script argument "-branch ###".
EM

  • Property svn:executable set to *
File size: 5.7 KB
RevLine 
[4410]1#!/bin/bash
2#########################################################################
3# Defaults
4#########################################################################
5hostname=`hostname`
6install_dir=$(pwd)
7netcdf_home="/usr/local/netcdf"
8hdf5_home="/usr/local/hdf5"
9if [ -d /usr/lib64/openmpi ] ; then
10  mpi_home="/usr/lib64/openmpi"
11else
12  mpi_home="/usr"
13fi
14arch="local"
[4782]15#xios_branch="trunk"
16xios_branch="2.6"
17#xios_rev="HEAD"
18xios_rev="2568"
19
[4410]20#########################################################################
21#  Options
22#########################################################################
23while (($# > 0))
24   do
25   case $1 in
26     "-h") cat <<........fin
27    $0 [ -prefix path ]       where (path) to install
28                              (default: $install_dir)
29       [ -netcdf path ]       top directory of the netcdf library
30                              (default: $netcdf_home)
31       [ -hdf5 path ]         top directory of the hdf5 library
32                              (default: $hdf5_home)
33       [ -MPI path ]          top directory of the MPI library
34                              (default: $mpi_home)
[4782]35       [ -branch branch]      XIOS branch trunk|2.5|2.6
36                              (default: $xios_branch)
[4410]37       [ -rev number ]        XIOS revision
38                              (default: $xios_rev)
39       [ -arch ARCH ]         Use ARCH file (provided by XIOS)
40                              (default: make/use a local arch file)
41........fin
42     exit ;;
43     "-prefix") install_dir=$2 ; shift ; shift ;;
44     "-netcdf") netcdf_home=$2 ; shift ; shift ;;
45     "-hdf5" ) hdf5_home=$2 ; shift ; shift ;;
46     "-MPI") mpi_home=$2 ; shift ; shift ;;
[4782]47     "-branch") xios_branch=$2 ; shift ; shift ;;
[4410]48     "-rev") xios_rev=$2 ; shift ; shift ;;
49     "-arch") arch=$2 ; shift ; shift ;;
50     *) echo "Error, bad argument $1" ; $0 -h ; exit
51   esac
52done
53
54# Install directory (get full path)
55mkdir -p $install_dir
56install_dir=$(cd $install_dir ; pwd -P )
57
58# Download XIOS
[4782]59case $xios_branch in
60  "trunk")
61  xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/trunk" ;;
62  "2.5")
63  xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS/branchs/xios-2.5" ;;
64  "2.6")
65  xios_http="http://forge.ipsl.jussieu.fr/ioserver/svn/XIOS2/branches/xios-2.6" ;;
66*)
67echo "Error, bad argument for -branch ! Did not expect $xios_branch" ; exit ;;
68esac
69
[4410]70cd $install_dir
[4782]71svn co --revision $xios_rev $xios_http XIOS
[4410]72
73# Make arch files, if necesary:
74if [ "$arch" = "local" ] ; then
75cd $install_dir/XIOS/arch
76# arch-local.env
77echo 'export MPI_LIB="-L'${mpi_home}'/lib -lmpi"'     > arch-local.env
78echo ''                                              >> arch-local.env
79echo 'export NETCDFC='${netcdf_home}                 >> arch-local.env
80echo 'export NETCDFC_LIB=$NETCDFC/lib'               >> arch-local.env
81echo 'export NETCDFC_INC=$NETCDFC/include'           >> arch-local.env
82echo ''                                              >> arch-local.env
83echo 'export NETCDFF='${netcdf_home}                 >> arch-local.env
84echo 'export NETCDFF_LIB=$NETCDFF/lib'               >> arch-local.env
85echo 'export NETCDFF_INC=$NETCDFF/include'           >> arch-local.env
86echo ''                                              >> arch-local.env
87echo 'export NETCDFCXX='${netcdf_home}               >> arch-local.env
88echo 'export NETCDFCXX_LIB=$NETCDFCXX/lib'           >> arch-local.env
89echo 'export NETCDFCXX_INC=$NETCDFCXX/include'       >> arch-local.env
90
91# arch-local.fcm
92echo '%CCOMPILER      '${mpi_home}'/bin/mpicc'             > arch-local.fcm
93echo '%FCOMPILER      '${mpi_home}'/bin/mpif90'           >> arch-local.fcm
94echo '%LINKER         '${mpi_home}'/bin/mpif90'           >> arch-local.fcm
95echo ''                                                   >> arch-local.fcm
96if [ ${hostname:0:5} = cicla ] ; then
97echo '%BASE_CFLAGS    -w -ansi'                >> arch-local.fcm
98else
[4782]99echo '%BASE_CFLAGS    -w -std=c++11 -D__XIOS_EXCEPTION'   >> arch-local.fcm
[4410]100fi
101echo '%PROD_CFLAGS    -O3 -D BOOST_DISABLE_ASSERTS'       >> arch-local.fcm
102echo '%DEV_CFLAGS     -g -O2'                             >> arch-local.fcm
103echo '%DEBUG_CFLAGS   -g -DBZ_DEBUG'                      >> arch-local.fcm
104echo ''                                                   >> arch-local.fcm
105echo '%BASE_FFLAGS    -D__NONE__ -ffree-line-length-none' >> arch-local.fcm
106echo '%PROD_FFLAGS    -O3'                                >> arch-local.fcm
107echo '%DEV_FFLAGS     -g -O2'                             >> arch-local.fcm
108echo '%DEBUG_FFLAGS   -g'                                 >> arch-local.fcm
109echo ''                                                   >> arch-local.fcm
110echo '%BASE_INC       -D__NONE__'                         >> arch-local.fcm
111echo '%BASE_LD        -lstdc++ -Wl,-rpath='${mpi_home}'/lib' >> arch-local.fcm
112echo ''                                                   >> arch-local.fcm
113echo '%CPP            '${mpi_home}'/bin/mpicc -EP'        >> arch-local.fcm
114echo '%FPP            cpp -P'                             >> arch-local.fcm
115echo '%MAKE           make'                               >> arch-local.fcm
116
117# arch-local.path
118echo 'NETCDF_INCDIR="-I${NETCDFC_INC} -I${NETCDFF_INC} -I${NETCDFCXX_INC} "'  > arch-local.path
119echo 'NETCDF_LIBDIR="-L${NETCDFC_LIB} -L${NETCDFF_LIB} -L${NETCDFCXX_LIB} "' >> arch-local.path
120echo 'NETCDF_LIB="-lnetcdf -lnetcdff -lnetcdf_c++4"'                         >> arch-local.path
121echo 'HDF5_INCDIR="-I'${hdf5_home}'/include"'                                >> arch-local.path
122echo 'HDF5_LIBDIR="-L'${hdf5_home}'/lib"'                                    >> arch-local.path
123echo 'HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl"'                         >> arch-local.path
124fi
125
126# make XIOS
127cd $install_dir/XIOS
128./make_xios --arch $arch --job 8 2>&1 | tee make_xios.out
129
Note: See TracBrowser for help on using the repository browser.