source: trunk/etc/YaoG @ 1

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

Initial import of YAO sources

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