source: trunk/etc/YaoF @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

File size: 6.3 KB
Line 
1#!/bin/sh
2# BEGIN of the procédure
3#clear
4VERS=6
5#-----------------------------------------------------------------------
6#bibliothèque YAODIR (pour objets YAO et M1QN3)
7if test ${#YAODIR} -eq 0
8then
9    echo "YAO directory variable not declared ..."
10    echo "current dir used"
11    YAODIR="."
12fi
13#
14if test ! -d ${YAODIR}
15then
16    echo "$YAODIR : invalid or unavailable YAO directory"
17    exit
18fi
19
20#-----------------------------------------------------------------------
21case `uname -s` in
22     Linux) ARCHI=lnx86 ;;
23     SunOS) ARCHI=solaris ;;
24     Darwin) ARCHI=darwin ;;
25     *) echo "UNKNOWN LOCAL MACHINE TYPE ($(ULOCAL))"; exit;;
26esac
27#-----------------------------------------------------------------------
28BINDIR=${YAODIR}/yao${VERS}/product/bin/${ARCHI}
29INCDIR=${YAODIR}/yao${VERS}/product/include
30#-----------------------------------------------------------------------
31# Compiler Global Variables:
32#-----------------------------------------------------------------------
33CC=
34CFLAGS=
35#
36CXX="g++"
37CXXFLAGS=" -O0 -g3 -Wall -DLINUXPC -I${INCDIR}"
38
39#-----------------------------------------------------------------------
40# LDFLAGS:
41# Test d'existence de la bibliotheque NetCDF
42NETCDFLIBDIR=/usr/lib
43NETCDFLIB=`echo ${NETCDFLIBDIR}/libnetcdf* | awk '{ print $1 }'`
44if test -e ${NETCDFLIB}
45then
46    LDFLAGS=" -lm -lg2c -L${NETCDFLIBDIR} -lnetcdf"
47else
48    NETCDFLIBDIR=/usr/lib/local
49    NETCDFLIB=`echo ${NETCDFLIBDIR}/libnetcdf* | awk '{ print $1 }'`
50    if test -e ${NETCDFLIB}
51    then
52        LDFLAGS=" -lm -lg2c -L${NETCDFLIBDIR} -lnetcdf"
53    else
54        NETCDFLIBDIR=/sw/lib
55        NETCDFLIB=`echo ${NETCDFLIBDIR}/libnetcdf* | awk '{ print $1 }'`
56        if test -e ${NETCDFLIB}
57        then
58            LDFLAGS=" -lm -lg2c -L${NETCDFLIBDIR} -lnetcdf"
59        else
60            LDFLAGS=" -lm -lg2c"
61        fi
62    fi
63fi
64#LDYM1QN3
65LDYM1QN3=" -L${BINDIR} -lym1qn3 "
66#LDYM1QN3=" ${YAODIR}/optstp.o ${YAODIR}/scpctl.o ${YAODIR}/ctlcan.o \
67#          ${YAODIR}/canctl.o ${YAODIR}/m1qn3.o ${YAODIR}/ym1qn3.o"
68#-----------------------------------------------------------------------
69#
70FC="g77"
71FFLAGS=" -Dkey_4dvar -O0 -g -Wall"
72#
73CPPFLAGS=
74#-----------------------------------------------------------------------
75#-----------------------------------------------------------------------
76
77echo "////////////////////////////////////////////////////////////////////////"
78echo "//                                                                    //"
79echo "//            $0 V.0.1 : PROCEDURE DE CREATION d'UN PROJET          //"
80echo "//                                                                    //"
81echo "//====================================================================//"
82echo
83# syntaxe: YaoF [-g] prj
84# au moins un parametre en entree :
85if test -z $1;
86then
87        echo " > project name missing ; syntaxe: $0 [-g] prj"
88        exit
89fi
90#
91if test $1 = "-g";
92then
93        if test -z $2;
94        then
95                echo " > project name missing ; syntaxe: $0 [-g] prj"
96                exit
97        else
98                prj=$2
99        fi
100else
101        prj=$1
102fi
103echo " > lancement de la procédure $0 pour le projet :" $prj
104Ycpp=Y$prj.cpp
105
106#ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
107if test $1 != "-g";
108then
109  echo " > enter proc generation "
110  #ggggggggggggggggggggggggggggggg
111
112  # sauvegarde (mv~) des Y1prjname.h Y2prjname.h et Yprjname.cpp s'ils existent
113  # (nb: est-ce bien utile puisqu'on les rm à la fin !?)
114  Y1h=Y1$prj.h
115  if test -e $Y1h;
116  then
117        mv -f $Y1h $Y1h~
118        echo " > $Y1h moved as \~"
119  fi
120  Y2h=Y2$prj.h
121  if test -e $Y2h;
122  then
123        mv -f $Y2h $Y2h~
124        echo " > $Y2h moved as \~"
125  fi
126  #Ycpp=Y$prj.cpp : cette variable est déjà créée
127  if test -e $Ycpp;
128  then
129        mv -f $Ycpp $Ycpp~
130        echo " > $Ycpp moved as \~"
131  fi
132  # idem pour le .o et l'executable
133  if test -e $prj.o;
134  then
135        mv -f $prj.o $prj.o~
136        echo " > $prj.o moved as \~"
137  fi
138  if test -e $prj;
139  then
140        mv -f $prj $prj~
141        echo " > $prj moved as \~"
142  fi
143
144  #-----------------------------------------------------------------------
145  # creation des header (Y1prjname.h et Y2prjname.h) du projet : lancement de Yao1
146  #if Yao6 $Yd                  desormais, c'est Yao qui, si besoin, formatera un .d
147  if ${BINDIR}/Yao${VERS} $prj
148  then echo " > headers are now created, start building"
149  else echo " > PROJECT HEADERS CREATION FAILED"
150       exit
151  fi
152
153  #-----------------------------------------------------------------------
154  # création du source complet du projet
155  # integration du header
156  cat ${INCDIR}/Dynamo.h                 > $Ycpp
157  #
158  # integration du projet (les 2 header créés par Yao1 et de son nom
159  echo "#include \"$Y1h\" "             >> $Ycpp
160  echo "#include \"$Y2h\" "             >> $Ycpp
161  echo "#define PRJNAME  \"$prj\" "     >> $Ycpp
162  #
163  # integration du main
164  cat ${INCDIR}/Dynamo.cpp              >> $Ycpp
165  #
166  #ggggggggggggggggggggggggggggg
167  echo " > end proc generation "
168fi
169# fin de la génération et construction des sources
170#gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
171
172# compilation et édition des liens ============================================
173echo " > start compilation "
174
175# //---------------------------------------------------------------------------
176# création de l'executable
177# 0) on rm tous les objets précédents pour qu'il n'y ait pas de
178#    confusion, et en attendant de bien savoir faire un make
179#rm -f *.o              ???
180
181#compilation du projet.c
182#echo "${CXX} ${CXXFLAGS} ${CPPFLAGS}  -c $Ycpp"
183${CXX} ${CXXFLAGS} ${CPPFLAGS}  -c $Ycpp
184echo " > end of compilation, start linking "
185
186# 2) link (et si ca se passe bien ayant rmé avant les .o
187#if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -o $prj Y$prj.o optstp.o scpctl.o ctlcan.o canctl.o m1qn3.o ym1qn3.o ${LDFLAGS}
188#echo "${CXX} ${CXXFLAGS} ${CPPFLAGS} -o $prj Y$prj.o ${LDYM1QN3} ${LDFLAGS}"
189if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -o $prj Y$prj.o ${LDYM1QN3} ${LDFLAGS}
190then
191     echo
192     echo //=====================   PROJECT $prj IS NOW READY  ===================//
193else
194     echo
195     echo " > unpredictable mistakes : PROJECT BUILDING FAILED"
196     echo
197     exit
198fi
199# //---------------------------------------------------------------------------
200# purge des fichiers intermediaires créés (transparence, transparence), et FIN
201#rm -f $Y1h
202#rm -f $Y2h
203#rm -f $Ycpp
204#rm -f Y$prj.o
205#rm -f *.o      ???
206echo "//                                                                    //"
207echo "//                    $0 V.0.1 : END OF PROCEDURE                   //"
208echo "//                                                                    //"
209echo "////////////////////////////////////////////////////////////////////////"
210echo
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Note: See TracBrowser for help on using the repository browser.