--- MITgcm/tools/genmake 1998/07/15 22:05:44 1.2 +++ MITgcm/tools/genmake 1998/12/08 18:08:51 1.8 @@ -1,6 +1,6 @@ #!/bin/csh -f # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.2 1998/07/15 22:05:44 adcroft Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.8 1998/12/08 18:08:51 adcroft Exp $ # # Makefile generator for MITgcm UV codes # created by cnh 03/98 @@ -43,8 +43,10 @@ endsw shift allargs end - -if ($?platform == 0) set platform = (`uname -p`) + +if ($?platform == 0) then + set platform = (`uname`) +endif if ($?mfile == 0) set mfile = ( Makefile.$platform ) set mach = ( `uname -a` ) echo Operating system: $mach @@ -91,12 +93,13 @@ # Platform specific options switch ($platform$USEMPI) - case alpha: - case alpha+mpi: + case OSF1: + case OSF1+mpi: echo "Configuring for DEC Alpha" set CPP = ( '/usr/bin/cpp -P' ) set DEFINES = ( ${DEFINES} '-DTARGET_DEC' ) set KPP = ( 'kapf' ) + set KPPFILES = ( 'main.F' ) set KFLAGS1 = ( '-scan=132 -noconc -cmp=' ) set FC = ( 'f77' ) set FFLAGS = ( '-convert big_endian -r8 -extend_source -u -automatic -call_shared -notransform_loops -align dcommons' ) @@ -106,7 +109,7 @@ set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') set RMFILES = ( '*.p.out' ) breaksw - case mips+mpi: + case IRIX64+mpi: echo "Configuring for SGI Mips with MPI" set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) @@ -116,7 +119,7 @@ set FOPTIM = ( '-O3' ) set RMFILES = ( 'rii_files' ) breaksw - case mips: + case IRIX64: echo "Configuring for SGI Mips" set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) @@ -127,18 +130,73 @@ 'load_external_fields.F' ) set RMFILES = ( 'rii_files' ) breaksw - case sparc: + case SunOS: + set LN = ( '/usr/bin/ln -fs' ) + set CPP = ( '/usr/ccs/lib/cpp -P' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SUN' ) + set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar') + set FOPTIM = ( '-O5 -fast' ) + set NOOPTFLAGS = ( '-O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') + breaksw + case SunOS+mpi: set LN = ( '/usr/bin/ln -fs' ) set CPP = ( '/usr/ccs/lib/cpp -P' ) set DEFINES = ( ${DEFINES} '-DTARGET_SUN' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar') - set FOPTIM = ( '-O5' ) + set FOPTIM = ( '-O5 -fast' ) set NOOPTFLAGS = ( '-O0' ) set LIBS = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \ - '-lsocket -lnsl -fast' ) + '-lsocket -lnsl' ) set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') breaksw + case IRIX32: + echo "Configuring for SGI ONYX running IRIX64" + set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) + set INCLUDES = ( '-I/usr/include' ) + set FFLAGS = ( '-extend_source -bytereclen -r10000 -64' ) + set FOPTIM = ( '-O2' ) + set NOOPTFLAGS = ( '-O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ + 'load_external_fields.F' ) + set LIBS = ( '-lmpi' ) + breaksw + case HP-UX: + case HP-UX+mpi: + echo "Configuring for HP Exemplar" + set CPP = ( '/usr/ccs/lbin/cpp -P' ) + set DEFINES = ( ${DEFINES} '-DTARGET_HP' ) + set INCLUDES = ( '-I/opt/mpi/include' ) + set FC = ( 'mpif77' ) + set LINK = ( 'mpif77' ) + set FFLAGS = ( '+es +U77 +Onoautopar +Oexemplar_model' \ + '+Okernel_threads' ) + set FOPTIM = ( '+O2' ) + set NOOPTFLAGS = ( '+O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F' \ + 'load_external_fields.F' ) + breaksw + case Linux: + set LN = ( '/bin/ln -fs' ) + set CPP = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -traditional -P' ) + set INCLUDES = ( '-I/usr/local/include' ) + set FC = ( 'g77' ) + set FFLAGS = ( ' ' ) + set FOPTIM = ( ' -O3 -funroll-loops ' ) + set LINK = ( 'g77' ) + set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' ) + breaksw + case Linux+pgi: + set LN = ( '/bin/ln -fs' ) + set CPP = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P' ) + set INCLUDES = ( '-I/usr/local/include' ) + set FC = ( 'pgf77' ) + set FFLAGS = ( '-byteswapio' ) + set FOPTIM = ( '-tp p6 -v -O2 -Munroll -Mvect=cachesize:512000,transform -Kieee' ) + set LINK = ( 'pgf77' ) + set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich -Kieee' ) + breaksw default: echo "Error: platform not recognized: uname -p = " $platform$USEMPI exit @@ -153,7 +211,7 @@ ############################################################################### # Create list of files -set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.F'` +set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[F]$'` if ( $#flist ) then echo -n "SRCFILES = " > srclist.inc echo -n "F77FILES = " > f77list.inc @@ -167,13 +225,20 @@ echo ' \' >> objlist.inc echo -n " " ${fname:r}.o >> objlist.inc end - echo " " >> srclist.inc - echo " " >> f77list.inc - echo " " >> objlist.inc else echo No source files found...\! exit endif +set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[c]$'` +if ( $#flist ) then + foreach ff ( ${flist} ) + set fname = ( ${ff:t} ) + echo ' \' >> objlist.inc + echo -n " " ${fname:r}.o >> objlist.inc +endif +echo " " >> srclist.inc +echo " " >> f77list.inc +echo " " >> objlist.inc # Convert lists of directories into command-line options foreach inc ($INCLUDEDIRS) @@ -181,7 +246,7 @@ end set SRCSTARS = ( ) foreach dr ($SOURCEDIRS) - set SRCSTARS = ("${SRCSTARS}" $dr/\*.F) + set SRCSTARS = ("${SRCSTARS}" $dr\*.\[Fc\] ) end set THISHOSTNAME = ( `hostname` ) @@ -227,7 +292,7 @@ # Unix ln (link) LN = ${LN} # C preprocessor -CPP = ${CPP} +CPP = cat \$< | ../tools/set64bitConst.sh | ${CPP} # Special preprocessor (KAP on DECs, FPP on Crays) KPP = ${KPP} # Fortran compiler @@ -261,7 +326,7 @@ cat >> ${mfile} < \$@ + \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@ .f.o: \$(FC) \$(FFLAGS) \$(FOPTIM) -c \$< # Special exceptions that use the ( .F - .p - .f - .o ) rule-chain .F.p: - \$(CPP) \$(DEFINES) \$(INCLUDES) \$< > \$@ + \$(CPP) \$(DEFINES) \$(INCLUDES) > \$@ .p.f: \$(KPP) \$(KFLAGS1)\$@ \$(KFLAGS2) \$< EOF