[8] | 1 | #!/bin/ksh |
---|
[394] | 2 | #set -vx |
---|
| 3 | ############################################################ |
---|
| 4 | # |
---|
| 5 | # Purpose : |
---|
| 6 | # This script aims to create create the AA_make file |
---|
| 7 | # in the WORK directory. |
---|
| 8 | # AA_make contains : |
---|
| 9 | # - compilation options speccific to NEMO |
---|
| 10 | # - compilation rules |
---|
| 11 | # - dependancies |
---|
| 12 | # Running the modipsl/util/ins_make command is needed AFTER |
---|
| 13 | # fait_AA_make. |
---|
| 14 | # |
---|
| 15 | # Method : |
---|
| 16 | # We use temporary files to perform the following steps : |
---|
| 17 | # 1- search all CPP keys in the code |
---|
| 18 | # 2- write compilation rules |
---|
| 19 | # 3- add compilation options add the beginning of AA_make |
---|
| 20 | # 4- search and write dependancies |
---|
| 21 | # 5- add some specific rules (links creation in the WORK) |
---|
| 22 | # |
---|
[437] | 23 | # Modification : - add F_F for .F file compiler option on aix |
---|
| 24 | # - add KEY_CPP dependancy for source containing |
---|
| 25 | # only #if defined CPP statement |
---|
| 26 | # |
---|
[394] | 27 | ############################################################ |
---|
[8] | 28 | #- |
---|
[394] | 29 | echo "This script must be run while in the modipsl/modeles/NEMO directory" |
---|
[1773] | 30 | cd WORK || exit |
---|
[8] | 31 | pwd |
---|
[394] | 32 | |
---|
[1272] | 33 | # Test version of echo |
---|
| 34 | stringtest=`echo "\c"` |
---|
| 35 | if [ "$stringtest" ]; then |
---|
| 36 | echo 'aliasing echo with /bin/echo -e ...' |
---|
[1547] | 37 | alias echo='echo -e' |
---|
[1272] | 38 | fi |
---|
| 39 | |
---|
[394] | 40 | #- |
---|
| 41 | #- Search CPP keys --- |
---|
| 42 | liste_cle=$(egrep '^# *if[!( &]*def|^# *elif' *.[Fh] *.[Fh]90 2> /dev/null | grep key_ | sed 's/||/\ |
---|
[8] | 43 | /' | sed 's/\&\&/\ |
---|
[394] | 44 | /' | sed 's/^.*key_/key_/' | sed 's/ *[) ] *$//' | sort -u ) |
---|
| 45 | |
---|
[8] | 46 | #- |
---|
[394] | 47 | #- Write main compilation rules --- |
---|
[8] | 48 | cat > tampon <<end |
---|
[394] | 49 | |
---|
[8] | 50 | .SUFFIXES: .f90 .F90 .F |
---|
[394] | 51 | |
---|
[8] | 52 | # Target |
---|
[127] | 53 | all: diroce \$(EXEC_BIN) |
---|
[8] | 54 | @cp SRC_FILE_LIST.temp SRC_FILE_LIST |
---|
| 55 | @echo OPA model is OK |
---|
[394] | 56 | # Cleaning objects, libraries and executables |
---|
[8] | 57 | clean: |
---|
[394] | 58 | ifeq (\$(AGRIF),use) |
---|
| 59 | -@(cd OPAFILES; ./efface) |
---|
| 60 | endif |
---|
[8] | 61 | \$(RM) model.o \$(MODDIR)/oce/*.mod \$(MODEL_LIB) \$(SXMODEL_LIB) \$(EXEC_BIN) |
---|
| 62 | @echo OPA model \(.o .mod libraries and executables are removed\) |
---|
[394] | 63 | |
---|
| 64 | # Dependancies |
---|
[127] | 65 | diroce: |
---|
| 66 | @if [ ! -d ../../../lib/oce ] ; then mkdir ../../../lib/oce ; fi |
---|
| 67 | |
---|
[1547] | 68 | \$(EXEC_BIN) : libioipsl libioserver firstagrif mpiagrif key keyverif src_file_list libagrif \$(MODEL_LIB) \$(IOIPSL_LIB) \$(AGRIF_LIB) agrif2model.o model.o |
---|
[394] | 69 | ifeq (\$(AGRIF),use) |
---|
[1272] | 70 | \$(F_L) \$(L_X) -o \$(EXEC_BIN) model.o agrif2model.o \$(SXMODEL_LIB) \$(USER_LIB) \$(IOIPSL_LIB) \$(AGRIF_LIB) \$(NCDF_LIB) \$(LIBMPI) \$(LIBMP) |
---|
[394] | 71 | else |
---|
[1272] | 72 | \$(F_L) \$(L_X) -o \$(EXEC_BIN) model.o \$(SXMODEL_LIB) \$(USER_LIB) \$(IOIPSL_LIB) \$(NCDF_LIB) \$(LIBMPI) \$(LIBMP) |
---|
[394] | 73 | endif |
---|
[8] | 74 | |
---|
[1359] | 75 | # ioserver library |
---|
| 76 | libioserver : |
---|
| 77 | ifeq (\$(IOSERVER),use) |
---|
[1547] | 78 | ifeq (\$(FCM),use) |
---|
[1359] | 79 | (cd ../../XMLF90; ./configure -arch \$(FCM_ARCH); fcm build; mkdir -p ../../lib/libxmlio_server ; cd ../../lib/libxmlio_server ; ln -sf ../../modeles/XMLF90/lib/*.a .; ln -sf ../../modeles/XMLF90/inc/*.mod .) |
---|
[1412] | 80 | (cd ../../XMLIO_SERVER; ./configure -arch \$(FCM_ARCH); fcm build ; cd ../../lib/libxmlio_server ; ln -sf ../../modeles/XMLIO_SERVER/lib/*.a . ; ln -sf ../../modeles/XMLIO_SERVER/inc/* . ; cd ../../bin ; ln -sf ../modeles/XMLIO_SERVER/bin/server.exe ioserver) |
---|
[1547] | 81 | else |
---|
[1549] | 82 | (cd ../../XMLF90/external ; \$(M_K) -f Makefile ) |
---|
| 83 | (cd ../../XMLIO_SERVER/external ; \$(M_K) -f Makefile P_P="\$(IOSERVER_MPI)" ) |
---|
[1359] | 84 | endif |
---|
[1547] | 85 | endif |
---|
[1359] | 86 | |
---|
[394] | 87 | # Agrif library and conv |
---|
[1793] | 88 | libagrif : |
---|
[394] | 89 | ifeq (\$(AGRIF),use) |
---|
| 90 | @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) |
---|
| 91 | @( if [ ! -d OPAFILES/AGRIF_INC ]; then mkdir OPAFILES/AGRIF_INC ; fi ) |
---|
| 92 | @( if [ ! -d OPAFILES/AGRIF_MODELFILES ]; then mkdir OPAFILES/AGRIF_MODELFILES ; fi ) |
---|
| 93 | @(cd ../../AGRIF ; \$(M_K) -f Makefile P_P="\$(AGRIF_MPI)" ) |
---|
| 94 | @cp -rf ../../AGRIF/agrif_opa.in OPAFILES/. |
---|
| 95 | @cp -rf ../../AGRIF/conv OPAFILES/. |
---|
| 96 | @cp -rf ../../AGRIF/efface OPAFILES/. |
---|
| 97 | endif |
---|
| 98 | |
---|
| 99 | # Agrif interface with NEMO |
---|
| 100 | agrif2model.o : |
---|
| 101 | ifeq (\$(AGRIF),use) |
---|
| 102 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC \$*.F90 > OPAFILES/\$*.F90 |
---|
| 103 | @\$(F_C) \\ |
---|
| 104 | #-Q- aix -qsuffix=f=F90 \\ |
---|
[1272] | 105 | #-Q- aix6 -qsuffix=f=F90 \\ |
---|
[1105] | 106 | #-Q- babel -qsuffix=f=F90 \\ |
---|
[394] | 107 | #-Q- osxxlf -qsuffix=f=F90 \\ |
---|
| 108 | \$(P_P) \$(F_O) \\ |
---|
| 109 | #-Q- fjvpp -Z \$*.L \\ |
---|
[666] | 110 | #-Q- sx8mercure -R2 \\ |
---|
[1722] | 111 | #-Q- sx9mercure -R2 \\ |
---|
[486] | 112 | #-Q- sx8brodie -R2 \\ |
---|
[394] | 113 | #-Q- sxdkrz -R2 \\ |
---|
[1791] | 114 | #-Q- es2 -R2 \\ |
---|
[1272] | 115 | #-Q- aix6 -qsource \\ |
---|
[394] | 116 | #-Q- aix -qsource \\ |
---|
[1105] | 117 | #-Q- babel -qsource \\ |
---|
[394] | 118 | OPAFILES/\$*.F90 || { mv \$(PREF).L \$(TMP) ; false ; exit ; } |
---|
[400] | 119 | #-Q- sxdkrz @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[1791] | 120 | #-Q- es2 @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[394] | 121 | endif |
---|
| 122 | |
---|
| 123 | # IOIPSL library |
---|
[8] | 124 | libioipsl : |
---|
| 125 | (cd ../../IOIPSL/src ; \$(M_K) -f Makefile ) |
---|
| 126 | |
---|
[394] | 127 | # Main program |
---|
[8] | 128 | model.o : model.f90 |
---|
| 129 | @\$(F_C) \$(F_O) -c model.f90 |
---|
| 130 | |
---|
| 131 | # if the make script is stopped, one doesn't destroy library |
---|
| 132 | .PRECIOUS : \$(MODEL_LIB) |
---|
[251] | 133 | #-Q- sxdkrz .PRECIOUS : \$(SXMODEL_LIB) |
---|
[1791] | 134 | #-Q- es2 .PRECIOUS : \$(SXMODEL_LIB) |
---|
[8] | 135 | |
---|
| 136 | # library dependancies |
---|
| 137 | \$(MODEL_LIB): \$(LIB_OBJ) |
---|
| 138 | @echo |
---|
[1105] | 139 | @echo The library is up-to-date |
---|
[8] | 140 | @echo |
---|
| 141 | |
---|
[394] | 142 | # Default rules |
---|
[8] | 143 | .DEFAULTS: |
---|
| 144 | |
---|
| 145 | # rules for the .f90 files |
---|
| 146 | .f90.a : |
---|
| 147 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 148 | #-Q- fjvpp -Z \$*.L \\ |
---|
[666] | 149 | #-Q- sx8mercure -R2 \\ |
---|
[1722] | 150 | #-Q- sx9mercure -R2 \\ |
---|
[486] | 151 | #-Q- sx8brodie -R2 \\ |
---|
[251] | 152 | #-Q- sxdkrz -R2 \\ |
---|
[1791] | 153 | #-Q- es2 -R2 \\ |
---|
[8] | 154 | #-Q- aix -qsource \\ |
---|
[1272] | 155 | #-Q- aix6 -qsource \\ |
---|
[1105] | 156 | #-Q- babel -qsource \\ |
---|
[356] | 157 | \$*.f90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
[251] | 158 | #-Q- sxdkrz @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[1791] | 159 | #-Q- es2 @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[8] | 160 | @\$(A_C) \$(MODEL_LIB) \$*.o > /dev/null |
---|
| 161 | @\$(RM) \$*.[of] |
---|
| 162 | @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce ; fi |
---|
| 163 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[1272] | 164 | #-Q- aix6 @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[1105] | 165 | #-Q- babel @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[8] | 166 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[309] | 167 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[356] | 168 | @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi |
---|
[8] | 169 | |
---|
| 170 | # rules for the .F90 files |
---|
[394] | 171 | .F90.a : |
---|
| 172 | ifeq (\$(AGRIF),use) |
---|
| 173 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC \$*.F90 > OPAFILES/\$*.F90 |
---|
| 174 | @(cd OPAFILES ; ./conv agrif_opa.in -rm \\ |
---|
[400] | 175 | #-Q- linux -SubloopScalar \\ |
---|
| 176 | #-Q- g95 -SubloopScalar \\ |
---|
| 177 | #-Q- f95 -SubloopScalar \\ |
---|
| 178 | #-Q- osf1 -SubloopScalar \\ |
---|
[394] | 179 | -comdirin ./ -comdirout AGRIF_MODELFILES/. -convfile \$*.F90) |
---|
| 180 | -@mv -f OPAFILES/AGRIF_MODELFILES/\$*.F90 OPAFILES/\$*.F90 |
---|
| 181 | @\$(P_C) \$(P_O) -IOPAFILES/AGRIF_INC OPAFILES/\$*.F90 > OPAFILES/AGRIF_MODELFILES/\$*.F90 |
---|
| 182 | -@mv -f OPAFILES/AGRIF_MODELFILES/\$*.F90 OPAFILES/\$*.F90 |
---|
[8] | 183 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 184 | #-Q- fjvpp -Z \$*.L \\ |
---|
[666] | 185 | #-Q- sx8mercure -R2 \\ |
---|
[1722] | 186 | #-Q- sx9mercure -R2 \\ |
---|
[486] | 187 | #-Q- sx8brodie -R2 \\ |
---|
[251] | 188 | #-Q- sxdkrz -R2 \\ |
---|
[1791] | 189 | #-Q- es2 -R2 \\ |
---|
[8] | 190 | #-Q- aix -qsource \\ |
---|
[1272] | 191 | #-Q- aix6 -qsource \\ |
---|
[1105] | 192 | #-Q- babel -qsource \\ |
---|
[394] | 193 | OPAFILES/\$*.F90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
| 194 | else |
---|
| 195 | @\$(F_C) \$(P_P) \$(F_O) \\ |
---|
| 196 | #-Q- fjvpp -Z \$*.L \\ |
---|
[666] | 197 | #-Q- sx8mercure -R2 \\ |
---|
[1722] | 198 | #-Q- sx9mercure -R2 \\ |
---|
[486] | 199 | #-Q- sx8brodie -R2 \\ |
---|
[394] | 200 | #-Q- sxdkrz -R2 \\ |
---|
[1791] | 201 | #-Q- es2 -R2 \\ |
---|
[394] | 202 | #-Q- aix -qsource \\ |
---|
[1272] | 203 | #-Q- aix6 -qsource \\ |
---|
[1105] | 204 | #-Q- babel -qsource \\ |
---|
[356] | 205 | \$*.F90 || { if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi ; false ; exit ; } |
---|
[394] | 206 | endif |
---|
[251] | 207 | #-Q- sxdkrz @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[1791] | 208 | #-Q- es2 @\$(A_X) \$(SXMODEL_LIB) \$*.o > /dev/null |
---|
[8] | 209 | @\$(A_C) \$(MODEL_LIB) \$*.o > /dev/null |
---|
| 210 | @\$(RM) \$*.[of] |
---|
| 211 | @if [ -f \$*.mod ] ; then mv \$*.mod \$(MODDIR)/oce ; fi |
---|
| 212 | #-Q- aix @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[1272] | 213 | #-Q- aix6 @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[1105] | 214 | #-Q- babel @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[8] | 215 | #-Q- linux @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[309] | 216 | #-Q- osxxlf @mv \$(PREF)\$*.lst \$(PREF)\$*.L |
---|
[356] | 217 | @if [ -f \$(PREF)\$*.L ] ; then mv \$(PREF)\$*.L \$(TMP) ; fi |
---|
[8] | 218 | |
---|
| 219 | end |
---|
| 220 | #- |
---|
[394] | 221 | #- Compilation options --- |
---|
[8] | 222 | exec 1> AA_make |
---|
| 223 | MAIN="model" |
---|
| 224 | echo '# $Header$' |
---|
| 225 | echo '# some variables' |
---|
| 226 | echo 'TMP = ../../../tmp' |
---|
[1105] | 227 | echo '' |
---|
| 228 | echo '#WARNING : NEMO does NOT support fortran 95 signed zero behaviour when using intrinsec SIGN function' |
---|
| 229 | echo '# This doesnt happen whith Fortran 90 compilers but' |
---|
| 230 | echo '# Check your compilers option in consequence when using real F95 compilers' |
---|
| 231 | echo '' |
---|
[2067] | 232 | echo 'F_O += -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' |
---|
| 233 | echo 'L_X = $(L_O) ' |
---|
[1272] | 234 | echo '#-Q- platine # Compiler options NEMO (CCRT Itanium Bull) ' |
---|
| 235 | echo '#-Q- platine F_O = -O3 -i4 -r8 -module $(MODDIR)/oce -I$(MODDIR) -I$(MODDIR)/oce -I$(NCDF_INC) $(USER_INC) ' |
---|
| 236 | echo '#-Q- platine L_X = $(L_O) ' |
---|
[1722] | 237 | echo '#-Q- sx8mercure # Compiler options NEMO (CCRT SX8-NEC) ' |
---|
[1330] | 238 | echo '#-Q- sx8mercure F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -sx8 -C vopt -P stack -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 shape=10000000 -L transform' -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC) ' |
---|
[1272] | 239 | echo '#-Q- sx8mercure L_X = $(L_O)' |
---|
[1722] | 240 | echo '#-Q- sx9mercure # Compiler options NEMO (CCRT SX9-NEC) ' |
---|
| 241 | echo '#-Q- sx9mercure F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -C vopt -P stack -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 shape=10000000 -L transform' -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC) ' |
---|
| 242 | echo '#-Q- sx9mercure L_X = $(L_O)' |
---|
[1272] | 243 | echo '#-Q- sx8brodie # Compiler options NEMO (IDRIS SX8-NEC) ' |
---|
| 244 | echo '#-Q- sx8brodie F_O = -f2003 nocbind -dw -Wf\"-A idbl4\" -sx8 -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[486] | 245 | echo '#-Q- sx8brodie L_X = $(L_O)' |
---|
[394] | 246 | echo '#-Q- sxdkrz # Compiler options for NEMO (DKRZ SX6-NEC) ' |
---|
[1272] | 247 | echo '#-Q- sxdkrz F_O = -f2003 nocbind -ew -sx6 -ftrace -C vopt -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf"-pvctl noassume loopcnt=10000" -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[486] | 248 | echo '#-Q- sxdkrz L_X = $(L_O) -ftrace' |
---|
[1791] | 249 | echo '#-Q- es2 # Compiler options for NEMO (Earth Simulator)' |
---|
| 250 | echo '#-Q- es2 # for super perfs!' |
---|
| 251 | echo '#-Q- es2 # F_O = -f2003 nocbind $(FTRACE) -pi nest=5 line=10000 expin=Fmpplib.F -Wf,-A idbl4 -C hopt -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
| 252 | echo '#-Q- es2 # regular options!' |
---|
| 253 | echo '#-Q- es2 F_O = -f2003 nocbind $(FTRACE) -Wf,-A idbl4 -C vopt -P stack -Wf"-P nh -O overlap" -Wf,-pvctl noassume loopcnt=10000 -L transform -Wf,-pvctl nomsg -Wf"-O nomsg" -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
| 254 | echo '#-Q- es2 L_X = $(L_O)' |
---|
[394] | 255 | echo '#-Q- linux # Compiler options for NEMO (pgf version)' |
---|
[1272] | 256 | echo '#-Q- linux F_O = -Mlist -O3 -byteswapio -r8 -I $(MODDIR) -I$(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[309] | 257 | echo '#-Q- linux L_X = -r8 -O3' |
---|
[394] | 258 | echo '#-Q- lxiv7 # Compiler options for NEMO (ifc version)' |
---|
[1272] | 259 | echo '#-Q- lxiv7 F_O = -O3 -r8 -I $(MODDIR) -I$(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[394] | 260 | echo '#-Q- lxiv7 L_X = -r8 -O3' |
---|
| 261 | echo '#-Q- lxiv8 # Compiler options for NEMO (ifort version)' |
---|
[1272] | 262 | echo '#-Q- lxiv8 F_O = -O3 -r8 -I $(MODDIR) -I$(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[309] | 263 | echo '#-Q- lxiv8 L_X = -r8 -O3' |
---|
[394] | 264 | echo '#-Q- g95 # Compiler options for NEMO (g95 version)' |
---|
[1272] | 265 | echo '#-Q- g95 F_O = -O3 -fno-second-underscore -r8 -funroll-all-loops -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[309] | 266 | echo '#-Q- g95 L_X = -r8 -O3' |
---|
[1105] | 267 | echo '#-Q- gfortran # Compiler options for NEMO (gfortran version)' |
---|
[1272] | 268 | echo '#-Q- gfortran F_O = -fno-second-underscore -fdefault-real-8 -funroll-all-loops -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[1105] | 269 | echo '#-Q- gfortran L_X = -fdefault-real-8' |
---|
[394] | 270 | echo '#-Q- aix # Compiler options for NEMO (aix version)' |
---|
[1272] | 271 | echo '#-Q- aix F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[368] | 272 | echo '#-Q- aix L_O = $(F_P) -q64 -O3' |
---|
[486] | 273 | echo '#-Q- aix L_X = $(L_O)' |
---|
[1272] | 274 | echo '#-Q- aix6 # Compiler options for NEMO (aix6 version)' |
---|
| 275 | echo '#-Q- aix6 F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
| 276 | echo '#-Q- aix6 L_O = $(F_P) -q64 -O3' |
---|
| 277 | echo '#-Q- aix6 L_X = $(L_O)' |
---|
[1105] | 278 | echo '#-Q- babel # Compiler options for NEMO (blue gene version)' |
---|
[1272] | 279 | echo '#-Q- babel F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -qextname=flush -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[1105] | 280 | echo '#-Q- babel L_X = $(L_O)' |
---|
[394] | 281 | echo '#-Q- osxxlf # Compiler options for NEMO (osxxlf version)' |
---|
[1272] | 282 | echo '#-Q- osxxlf F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -qextname -qstrict -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)' |
---|
[368] | 283 | echo '#-Q- osxxlf L_X = -qrealsize=8 -O3' |
---|
[8] | 284 | |
---|
| 285 | echo 'PREF=' |
---|
[666] | 286 | echo '#-Q- sx8mercure PREF=i.' |
---|
[1722] | 287 | echo '#-Q- sx9mercure PREF=i.' |
---|
[486] | 288 | echo '#-Q- sx8brodie PREF=i.' |
---|
[251] | 289 | echo '#-Q- sxdkrz PREF=i.' |
---|
[1791] | 290 | echo '#-Q- es2 PREF=i.' |
---|
[8] | 291 | echo '' |
---|
[394] | 292 | echo '# add suffix to P_P' |
---|
[1272] | 293 | echo 'override P_P := $(P_P:%=$(prefix)%)' |
---|
[394] | 294 | echo '' |
---|
| 295 | echo '# Some tests to define variables related to Agrif compilation' |
---|
| 296 | echo '# Please do not change ' |
---|
| 297 | echo 'ifneq (,$(findstring key_agrif,$(P_P)))' |
---|
| 298 | echo 'AGRIF=use' |
---|
| 299 | echo 'else' |
---|
| 300 | echo 'AGRIF=notuse' |
---|
| 301 | echo 'AGRIF_LIB=' |
---|
| 302 | echo 'endif' |
---|
| 303 | echo 'ifneq (,$(findstring key_mpp_mpi,$(P_P)))' |
---|
| 304 | echo 'AGRIF_MPI=-DAGRIF_MPI' |
---|
| 305 | echo 'else' |
---|
| 306 | echo 'AGRIF_MPI=' |
---|
| 307 | echo 'endif' |
---|
[1359] | 308 | echo '' |
---|
| 309 | echo '# Some tests to define variables related to xmlioserver compilation' |
---|
| 310 | echo '# Please do not change ' |
---|
[1412] | 311 | echo 'ifneq (,$(findstring key_iomput,$(P_P)))' |
---|
[1359] | 312 | echo 'IOSERVER=use' |
---|
| 313 | echo 'override USER_LIB += -L../../../lib/libxmlio_server -lioserver -lxmlio -lxmlf90' |
---|
| 314 | echo 'override USER_INC += -I../../../lib/libxmlio_server' |
---|
[1547] | 315 | echo 'ifneq (,$(findstring key_mpp_mpi,$(P_P)))' |
---|
| 316 | echo 'IOSERVER_MPI=' |
---|
[1359] | 317 | echo 'else' |
---|
[1547] | 318 | echo 'IOSERVER_MPI=-DNO_MPI' |
---|
| 319 | echo 'endif' |
---|
| 320 | echo 'else' |
---|
[1359] | 321 | echo 'IOSERVER=notuse' |
---|
| 322 | echo 'endif' |
---|
[1547] | 323 | echo '' |
---|
[394] | 324 | |
---|
[1547] | 325 | echo '# A variables related to xmlioserver compilationi (fcm or AA_make)' |
---|
| 326 | echo '# Please do not change ' |
---|
[1709] | 327 | echo 'override FCM ?= notuse' |
---|
[1773] | 328 | echo '' |
---|
[1547] | 329 | |
---|
[1773] | 330 | echo '#check key compatibility' |
---|
[1793] | 331 | echo 'keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))' |
---|
[1773] | 332 | |
---|
[394] | 333 | echo '' |
---|
[8] | 334 | # Write the cpp key list with one key by line |
---|
| 335 | echo 'KEY_LIST = \c' |
---|
| 336 | for i in ${liste_cle} |
---|
| 337 | do |
---|
| 338 | echo "\\" |
---|
| 339 | echo " $i \c" |
---|
| 340 | done |
---|
| 341 | |
---|
| 342 | echo '' |
---|
| 343 | echo '# .o file list in the library' |
---|
| 344 | echo 'LIB_OBJ = \c' |
---|
| 345 | # |
---|
[394] | 346 | # find all .f90 in the current directory |
---|
| 347 | # build object files list LIB_OBJ |
---|
[8] | 348 | # one dependancy by line |
---|
[394] | 349 | |
---|
| 350 | for i in `ls *.f90 ` |
---|
[8] | 351 | do |
---|
| 352 | bn=`basename $i .f90` |
---|
| 353 | if [ "${bn}" != "${MAIN}" ] |
---|
| 354 | then |
---|
[394] | 355 | if [ "${bn}" != "agrif2model" ] |
---|
| 356 | then |
---|
[8] | 357 | echo "\\" |
---|
| 358 | echo " \$(MODEL_LIB)($bn.o)\c" |
---|
| 359 | fi |
---|
[394] | 360 | fi |
---|
[8] | 361 | done |
---|
| 362 | |
---|
[394] | 363 | # find all .F90 in the current directory |
---|
| 364 | # build object files list LIB_OBJ |
---|
| 365 | # one dependancy by line |
---|
[8] | 366 | |
---|
[394] | 367 | for i in `ls *.F90 ` |
---|
[8] | 368 | do |
---|
| 369 | bn=`basename $i .F90` |
---|
| 370 | if [ "${bn}" != "${MAIN}" ] |
---|
| 371 | then |
---|
[394] | 372 | if [ "${bn}" != "agrif2model" ] |
---|
| 373 | then |
---|
[8] | 374 | echo "\\" |
---|
| 375 | echo " \$(MODEL_LIB)($bn.o)\c" |
---|
| 376 | fi |
---|
[394] | 377 | fi |
---|
[8] | 378 | done |
---|
| 379 | |
---|
| 380 | echo "" |
---|
| 381 | |
---|
| 382 | cat tampon |
---|
| 383 | rm tampon |
---|
[394] | 384 | #- |
---|
| 385 | #- Write all dependancies --- |
---|
[8] | 386 | |
---|
[394] | 387 | for fic in `ls *.f90 *.F90 *.F 2> /dev/null ` |
---|
[8] | 388 | do |
---|
[394] | 389 | if [ "${fic}" != "agrif2model.F90" ] |
---|
| 390 | then |
---|
[8] | 391 | if [ "${fic}" != "${MAIN}.[Ff]" ] |
---|
| 392 | then |
---|
| 393 | i=0 |
---|
| 394 | j=0 |
---|
| 395 | dep="" |
---|
| 396 | inc="" |
---|
| 397 | inc2="" |
---|
| 398 | inc3="" |
---|
| 399 | luse0="" |
---|
| 400 | luse1="" |
---|
| 401 | luse2="" |
---|
| 402 | luse3="" |
---|
[437] | 403 | key="" |
---|
[394] | 404 | #- search include files (old ice model form, should it be suppressed ?) |
---|
[8] | 405 | for inc in `sed -n 's/^[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 406 | do |
---|
[1931] | 407 | if [ "${inc}" != "mpif.h" ] |
---|
| 408 | then |
---|
[8] | 409 | dep="$dep\n$inc" |
---|
[1931] | 410 | fi |
---|
[8] | 411 | done |
---|
| 412 | |
---|
[437] | 413 | #- take into account CPP dependancies keys only (par_trc_trp example) |
---|
| 414 | for key in `sed -n 's/^#[ eElL]*[iF][fF][ ]*[dD][eE][fF][iI][nN][eE][dD][ ]*//p' $fic | sort -u` |
---|
| 415 | do |
---|
| 416 | j=1 |
---|
| 417 | done |
---|
| 418 | |
---|
[394] | 419 | #- search include files on 3 levels |
---|
[8] | 420 | for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 421 | do |
---|
[1931] | 422 | if [ "${inc}" != "mpif.h" ] |
---|
| 423 | then |
---|
[8] | 424 | j=1 |
---|
| 425 | dep="$dep\n$inc" |
---|
| 426 | for inc2 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` |
---|
| 427 | do |
---|
| 428 | dep="$dep\n$inc2" |
---|
[394] | 429 | #- search include in include (third level !!!) |
---|
[8] | 430 | for inc3 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc2 | sort -u` |
---|
| 431 | do |
---|
| 432 | dep="$dep\n$inc3" |
---|
| 433 | done |
---|
| 434 | done |
---|
[1931] | 435 | fi |
---|
[8] | 436 | done |
---|
| 437 | |
---|
[394] | 438 | #- search USE in include files |
---|
[8] | 439 | for inc in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $fic | sort -u` |
---|
| 440 | do |
---|
| 441 | for fuse0 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $inc | sort -u` |
---|
| 442 | do |
---|
[833] | 443 | [ -f $fuse0.[hfF]90 ] || continue |
---|
[8] | 444 | lfuse0=$fuse0.f90 |
---|
| 445 | [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90 |
---|
| 446 | luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)($fuse0.o)" |
---|
| 447 | done |
---|
| 448 | |
---|
[394] | 449 | #- search USE in files included in included files and add to luse0 |
---|
[8] | 450 | |
---|
| 451 | for inc2 in `sed -n 's/^#[ ]*[iI][nN][cC][lL][uU][dD][eE][ ]*\(['\''"]\)\([^'\''"]*\)\1.*/\2/p' $inc | sort -u` |
---|
| 452 | do |
---|
| 453 | for fuse0 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $inc2 | sort -u` |
---|
| 454 | do |
---|
[833] | 455 | [ -f $fuse0.[hfF]90 ] || continue |
---|
[8] | 456 | lfuse0=$fuse0.f90 |
---|
| 457 | [ -f $fuse0.F90 ] && lfuse0=$fuse0.F90 |
---|
| 458 | luse0="$luse0\n$lfuse0\n\$(MODEL_LIB)($fuse0.o)" |
---|
| 459 | done |
---|
| 460 | done |
---|
| 461 | done |
---|
| 462 | |
---|
[394] | 463 | #- search USE (and USE of USE and so on three levels) |
---|
[8] | 464 | for fuse1 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $fic | sort -u` |
---|
| 465 | do |
---|
[833] | 466 | [ -f $fuse1.[hfF]90 ] || continue |
---|
[8] | 467 | lfuse1=$fuse1.f90 |
---|
| 468 | [ -f $fuse1.F90 ] && lfuse1=$fuse1.F90 |
---|
| 469 | luse1="$luse1\n$lfuse1\n\$(MODEL_LIB)($fuse1.o)" |
---|
| 470 | for fuse2 in `sed -n 's/^[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $lfuse1 | sort -u` |
---|
| 471 | do |
---|
[833] | 472 | [ -f $fuse2.[hfF]90 ] || continue |
---|
[8] | 473 | lfuse2=$fuse2.f90 |
---|
| 474 | [ -f $fuse2.F90 ] && lfuse2=$fuse2.F90 |
---|
| 475 | luse2="$luse2\n$lfuse2\n\$(MODEL_LIB)($fuse2.o)" |
---|
| 476 | # on cherche les USE dans le fichier deja USE (3eme niveau! balaise!) |
---|
| 477 | for fuse3 in `sed -n 's/^#[ ]*[uU][sS][eE] [ ]*\([^!,;]*\).*/\1/p' $lfuse2 | sort -u` |
---|
| 478 | do |
---|
[833] | 479 | [ -f $fuse3.[hfF]90 ] || continue |
---|
[8] | 480 | luse3="$luse3\n$lfuse3\n\$(MODEL_LIB)($fuse3.o)" |
---|
| 481 | done |
---|
| 482 | done |
---|
| 483 | done |
---|
| 484 | #- |
---|
[394] | 485 | #- dep contains all dependancies |
---|
[437] | 486 | echo "\$(MODEL_LIB)(`echo $fic|awk -F. '{print $1}'`.o) : \c" |
---|
[8] | 487 | for depele in `echo $luse3 | sort -u` `echo $luse2 | sort -u` `echo $luse1 | sort -u` `echo $luse0 | sort -u` `echo $dep | sort -u` |
---|
| 488 | do |
---|
| 489 | echo "\\" |
---|
| 490 | echo " $depele \c" |
---|
| 491 | let i=i+1 # pour signaler le premier |
---|
| 492 | done |
---|
| 493 | |
---|
| 494 | #- |
---|
[394] | 495 | #- add dependancies with IOIPSL library (if source files contains IOIPSL) |
---|
| 496 | grep -i 'use *ioipsl' ${fic} >/dev/null && ( echo "\\" ; echo " \$(IOIPSL_LIB) \c") |
---|
[8] | 497 | |
---|
[394] | 498 | #- |
---|
| 499 | #- add dependancies with IOIPSL library (if source files contains Agrif_*) |
---|
[429] | 500 | grep -i 'use Agrif_*' ${fic} >/dev/null && ( echo "\\" ; echo " \$(AGRIF_LIB) \c") |
---|
[394] | 501 | |
---|
| 502 | #- |
---|
[437] | 503 | #- add dependancies with KEY_CPP (if source file includes cpp keys) |
---|
[8] | 504 | if [ ${j} != "0" ] |
---|
| 505 | then |
---|
| 506 | echo "\\" |
---|
| 507 | echo " KEY_CPP \c" |
---|
| 508 | fi |
---|
[394] | 509 | #- |
---|
| 510 | #- end with the file itself |
---|
[8] | 511 | echo "\\" |
---|
| 512 | echo " $fic" |
---|
| 513 | fi |
---|
[394] | 514 | fi |
---|
[8] | 515 | echo $fic done >/dev/tty |
---|
| 516 | done |
---|
[394] | 517 | #- |
---|
| 518 | #- Write some special rules --- |
---|
[452] | 519 | echo '# agrif previous use' |
---|
| 520 | echo "firstagrif:" |
---|
| 521 | echo "ifeq (\$(AGRIF),use)" |
---|
| 522 | echo ' @if [ -z "`cat KEY_CPP | grep key_agrif`" ]; then $(RM) model.o $(MODDIR)/oce/*.mod $(MODEL_LIB) $(SXMODEL_LIB); fi' |
---|
| 523 | echo "else" |
---|
| 524 | echo ' @if [ -n "`cat KEY_CPP | grep key_agrif`" ]; then $(RM) -r OPAFILES model.o $(MODDIR)/oce/*.mod $(MODEL_LIB) $(SXMODEL_LIB); fi' |
---|
| 525 | echo "endif" |
---|
| 526 | #- |
---|
| 527 | echo '#- RB : this rule is a pretty miserable trick to be able to re-compile NEMP-AGRIF-mono after NEMO-AGRIF-mpp' |
---|
| 528 | echo '#- I guess the good correction should be in AGRIF/LIB/toamr.c for the conv, to remove useless allocation declarations in AGRIF_INC' |
---|
| 529 | echo '# recompile all in this case' |
---|
| 530 | echo "mpiagrif:" |
---|
| 531 | echo "ifeq (\$(AGRIF),use)" |
---|
| 532 | echo "ifeq (,\$(AGRIF_MPI))" |
---|
| 533 | echo ' @if [ -n "`cat KEY_CPP | grep key_mpp_mpi`" ]; then $(RM) -r OPAFILES model.o $(MODDIR)/oce/*.mod $(MODEL_LIB) $(SXMODEL_LIB); fi' |
---|
| 534 | echo "endif" |
---|
| 535 | echo "endif" |
---|
| 536 | #- |
---|
[8] | 537 | echo '# key changing control' |
---|
| 538 | echo "key: " |
---|
[394] | 539 | echo " @echo CHANGE of CPP KEYS yes/no ?" |
---|
| 540 | echo " -@if [ \"\`cat KEY_CPP\`\" != \"\$(P_P:\$(prefix)%=%)\" ] ; then \\" |
---|
| 541 | echo " echo CPP options changed ; echo \"\$(P_P:\$(prefix)%=%)\" > KEY_CPP ; fi " |
---|
[8] | 542 | #- |
---|
[394] | 543 | echo '# check key values' |
---|
[8] | 544 | echo "keyverif:" |
---|
[394] | 545 | echo ' @echo CHECKING KEY' |
---|
| 546 | echo ' @echo KEY USED : ' |
---|
| 547 | echo ' @for v in ` echo $(P_P:$(prefix)%=%) ` ; \' |
---|
[8] | 548 | echo ' do \' |
---|
| 549 | echo ' echo $$v ;\' |
---|
| 550 | echo ' w=`echo $$v | cut -c1-3` ; \' |
---|
| 551 | echo ' if [ $$w = `echo "key"` ] ; then \' |
---|
| 552 | echo ' r=n ; \' |
---|
| 553 | echo ' echo " $(KEY_LIST) " | (grep $$v >/dev/null 2>&1) || r=o ; \' |
---|
| 554 | echo ' if [ $$r != "n" ] ; then \' |
---|
| 555 | echo ' echo "UNKNOWN KEY" ;\' |
---|
| 556 | echo ' false ; \' |
---|
| 557 | echo ' exit ; \' |
---|
| 558 | echo ' fi \' |
---|
| 559 | echo ' fi \' |
---|
| 560 | echo ' done' |
---|
| 561 | echo '# Checking the number of routines' |
---|
| 562 | echo "src_file_list: " |
---|
| 563 | echo ' @echo CHECKING THE NUMBER AND NAMES OF SOURCE FILES ' |
---|
[394] | 564 | echo ' @$(RM) `ls | fgrep -v -f .patron` ' |
---|
[245] | 565 | echo ' @check=`grep OPA_SRC .config` ; \' |
---|
[210] | 566 | echo ' if [ -n "$$check" ] ; then \' |
---|
[240] | 567 | echo ' echo " use OPA_SRC files" ; \' |
---|
| 568 | echo ' ln -sf ../OPA_SRC/*.[Ffh]90 . ; \' |
---|
[1272] | 569 | echo ' ln -sf ../OPA_SRC/*/*.[Ffh]90 . ; \' |
---|
[8] | 570 | echo ' fi ' |
---|
[833] | 571 | echo ' @check=`grep LIM_SRC_3 .config` ; \' |
---|
[210] | 572 | echo ' if [ -n "$$check" ] ; then \' |
---|
[833] | 573 | echo ' echo " use LIM_SRC_3 files" ; \' |
---|
| 574 | echo ' ln -sf ../LIM_SRC_3/*.[Ffh]90 . ; \' |
---|
[8] | 575 | echo ' fi ' |
---|
[833] | 576 | echo ' @check=`grep LIM_SRC_2 .config` ; \' |
---|
| 577 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 578 | echo ' echo " use LIM_SRC_2 files" ; \' |
---|
| 579 | echo ' ln -sf ../LIM_SRC_2/*.[Ffh]90 . ; \' |
---|
| 580 | echo ' fi ' |
---|
[271] | 581 | echo ' @check=`grep C1D_SRC .config` ; \' |
---|
| 582 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 583 | echo ' echo " use C1D_SRC files" ; \' |
---|
| 584 | echo ' ln -sf ../C1D_SRC/*.[Ffh]90 . ; \' |
---|
| 585 | echo ' fi ' |
---|
[240] | 586 | echo ' @check=`grep TOP_SRC .config` ; \' |
---|
[346] | 587 | echo ' if [ -n "$$check" ] ; then \' |
---|
[240] | 588 | echo ' echo " use TOP_SRC files" ; \' |
---|
| 589 | echo ' ln -sf ../TOP_SRC/*.[Ffh]90 . ; \' |
---|
[1272] | 590 | echo ' ln -sf ../TOP_SRC/*/*.[Ffh]90 . ; \' |
---|
[210] | 591 | echo ' fi ' |
---|
[346] | 592 | echo ' @check=`grep OFF_SRC .config` ; \' |
---|
[210] | 593 | echo ' if [ -n "$$check" ] ; then \' |
---|
[346] | 594 | echo ' echo " use OFF_SRC files" ; \' |
---|
| 595 | echo ' ln -sf ../OFF_SRC/*.[Ffh]90 . ; \' |
---|
| 596 | echo ' ln -sf ../OFF_SRC/*/*.[Ffh]90 . ; \' |
---|
[210] | 597 | echo ' fi ' |
---|
[639] | 598 | echo ' @check=`grep NST_SRC .config` ; \' |
---|
| 599 | echo ' if [ -n "$$check" ] ; then \' |
---|
| 600 | echo ' echo " use NST_SRC files" ; \' |
---|
| 601 | echo ' \$(RM) agrif_opa_interp.F90 ; \' |
---|
| 602 | echo ' \$(RM) agrif_opa_sponge.F90 ; \' |
---|
| 603 | echo ' \$(RM) agrif_opa_update.F90 ; \' |
---|
[1272] | 604 | echo ' \$(RM) agrif_top_interp.F90 ; \' |
---|
| 605 | echo ' \$(RM) agrif_top_sponge.F90 ; \' |
---|
| 606 | echo ' \$(RM) agrif_top_update.F90 ; \' |
---|
[639] | 607 | echo ' ln -sf ../NST_SRC/*.[Ffh]90 . ; \' |
---|
| 608 | echo ' fi ' |
---|
[8] | 609 | echo ' @\$(RM) tmplist' |
---|
| 610 | echo ' @ls -1 | fgrep -v -f .patron >tmplist' |
---|
| 611 | echo ' @cmp tmplist SRC_FILE_LIST.temp || { echo some routines have been added or suppressed ; \' |
---|
| 612 | echo ' sdiff -s tmplist SRC_FILE_LIST.temp ; cp tmplist SRC_FILE_LIST.temp ; \' |
---|
| 613 | echo ' \$(RM) model.o \$(MODEL_LIB) \$(SXMODEL_LIB) \$(EXEC_BIN) ; \' |
---|
| 614 | echo ' echo "Rebuilding the AA_make files" ; \' |
---|
| 615 | echo ' cd .. ; ../UTIL/fait_AA_make ; echo " " ; \' |
---|
| 616 | echo ' echo "THE ins_make COMMAND in modipsl/util MUST BE RERUN PLEASE DO SO BEFORE gmake" ; \' |
---|
| 617 | echo ' echo "========================================== " ; \' |
---|
[206] | 618 | echo ' ../../util/ins_make ; echo " " ; false ; exit ; }' |
---|
[394] | 619 | exec > /dev/null |
---|
[8] | 620 | |
---|