New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
make_xios in vendors/XIOS/current – NEMO

source: vendors/XIOS/current/make_xios @ 3472

Last change on this file since 3472 was 3428, checked in by rblod, 12 years ago

importing initial XIOS vendor drop

File size: 3.6 KB
Line 
1#!/bin/bash
2
3install_dir=$PWD
4compil_full="false"
5use_oasis="false"
6job="1"
7
8# Traitement de la ligne de commande
9while (($# > 0))
10   do
11      case $1 in
12         "-h")
13            # A modifier
14            exit;;
15
16         "--prod")  compil_mode="prod"  ; shift ;;
17         "--dev")   compil_mode="dev"   ; shift ;;
18         "--debug") compil_mode="debug" ; shift ;;
19         "--arch")  arch=$2     ; shift ; shift ;;
20         "--full")  compil_full="true"  ; shift ;;
21         "--use_oasis")  use_oasis="true"  ; shift  ;;
22         "--doc")   doc="true"          ; shift ;;
23         "--job")   job=$2              ; shift ; shift ;;
24         *)         code="$1"           ; shift ;;
25      esac
26   done
27
28# Vérification de la présence d'un identifiant d'architecture.
29
30###############################################################
31# lecture des chemins propres à l'architecture de la machine #
32#           et configuration de l'environnement              #
33###############################################################
34
35rm -f .void_file
36echo > .void_file
37rm -rf .void_dir
38mkdir .void_dir
39
40if [[ !(-z $arch) ]]
41   then
42      rm -f  $install_dir/arch.path
43      rm -f  $install_dir/arch.fcm
44      rm -f  $install_dir/arch.env
45      ln -s  $install_dir/arch/arch-${arch}.path $install_dir/arch.path
46      ln -s  $install_dir/arch/arch-${arch}.fcm  $install_dir/arch.fcm
47
48      if test -f $install_dir/arch/arch-${arch}.env
49      then
50        ln -s $install_dir/arch/arch-${arch}.env arch.env
51      else
52        ln -s $install_dir/.void_file arch.env
53      fi
54
55      source $install_dir/arch.env
56      source $install_dir/arch.path
57  else
58      echo "Veuillez definir une architecture cible !"
59      exit 1
60fi
61
62# Vérification de la présence d'un mode de compilation.
63
64if [[ "$compil_mode" == "prod" ]]
65   then
66      COMPIL_CFLAGS="%PROD_CFLAGS"
67      COMPIL_FFLAGS="%PROD_FFLAGS"
68elif [[ "$compil_mode" == "dev" ]]
69   then
70      COMPIL_CFLAGS="%DEV_CFLAGS"
71      COMPIL_FFLAGS="%DEV_FFLAGS"
72elif [[ "$compil_mode" == "debug" ]]
73   then
74      COMPIL_CFLAGS="%DEBUG_CFLAGS"
75      COMPIL_FFLAGS="%DEBUG_FFLAGS"
76else
77   echo "Veuillez definir un mode de compilation [debug|dev|prod] !"
78   exit 1
79fi
80
81if [[ "$use_oasis" == "true" ]]
82   then
83   XMLIO_FINCDIR="$OASIS_INCDIR $XMLIO_FINCDIR"
84   XMLIO_LIB="$OASIS_LIBDIR $OASIS_LIB $XMLIO_LIB"
85   XMLIO_CPPKEY="$XMLIO_CPPKEY USE_OASIS"
86else
87  fcm build
88fi
89XMLIO_CINCDIR="$NETCDF_INCDIR $HDF5_INCDIR $MPI_INCDIR"
90XMLIO_FINCDIR="$XMLIO_FINCDIR $MPI_INCDIR"
91
92XMLIO_LIB="$XMLIO_LIB $NETCDF_LIBDIR $HDF5_LIBDIR $MPI_LIBDIR $NETCDF_LIB $HDF5_LIB $MPI_LIB"
93
94rm -f config.fcm
95echo "%COMPIL_CFLAGS $COMPIL_CFLAGS" >> config.fcm
96echo "%COMPIL_FFLAGS $COMPIL_FFLAGS" >> config.fcm
97echo "%CPP_KEY       $XMLIO_CPPKEY"  >> config.fcm
98
99echo "%CBASE_INC     $XMLIO_CINCDIR" >> config.fcm     
100echo "%FBASE_INC     $XMLIO_FINCDIR" >> config.fcm
101echo "%ARCH_LD       $XMLIO_LIB" >> config.fcm
102
103echo "=> Activation du mode "$compil_mode" pour la distribution sous l'architecture \""$arch"\" !"
104
105# Création de la documentation doxygen.
106if [[ !(-z $doc) ]]
107   then
108      echo -e "- Création de la documentation de code doxygen (désactivée)..."
109      #doxygen -s
110fi
111
112make_dir=$PWD
113
114export PATH=$PWD/tools/FCM/bin:$PATH
115
116#$make_dir/tools/preprocess_cpp $make_dir/src/xmlio/iface/interface.cpp      $make_dir/src/xmlio/iface/interface.cpp.in
117#$make_dir/tools/preprocess_f03 $make_dir/src/xmlio/fortran/ixmlioserver.f90 $make_dir/src/xmlio/fortran/ixmlioserver.f03.in
118
119if [[ "$compil_full" == "true" ]]
120   then
121   fcm build -f -j $job
122else
123  fcm build -j $job
124fi
125
126
127if [[ $? == 0 ]]
128  then
129#    cd $WORKDIR/XMLIO_NEMO_COUPLE/modeles/NEMO/WORK
130    cd $WORKDIR/XMLIO_NEMO/modeles/NEMO/WORK
131#    make
132fi
Note: See TracBrowser for help on using the repository browser.