#!/bin/sh # lifted from the configure file for mpich; 00/03/10 jm # # Check for perl and perl version for p in perl5 perl do # Extract the first word of "$p", so it can be a program name with args. set dummy $p; ac_word=$2 if test -z "$ac_echo_n" ; then ac_echo_n=yes if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi ac_echo_test=`echo foo 1>&1` if test -z "$ac_echo_test" ; then print_error "Your sh shell does not handle the output redirection" print_error "1>&1 correctly. Configure will work around this problem," print_error "but you should report the problem to your vendor." fi fi if test -z "$ac_echo_test" -a 1 = 1 ; then echo $ac_n "checking for $ac_word""... $ac_c" else echo $ac_n "checking for $ac_word""... $ac_c" 1>&1 fi ac_prog_where="" if test -n "$PERL"; then ac_pg_PERL="$PERL" # Let the user override the test. else ac_first_char=`expr "$p" : "\(.\)"` if test "$ac_first_char" = "/" -a -x "$p" ; then ac_pg_PERL="$p" ac_prog_where=$p else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_pg_PERL="$p" ac_prog_where=$ac_dir/$ac_word break fi done IFS="$ac_save_ifs" fi fi;PERL="$ac_pg_PERL" if test -n "$ac_prog_where" ; then if test -z "$ac_echo_test" -a 1 = 1 ; then echo "$ac_t""found $ac_prog_where ($PERL)" else echo "$ac_t""found $ac_prog_where ($PERL)" 1>&1 fi PERLFULLPATH=$ac_prog_where else if test -z "$ac_echo_test" -a 1 = 1 ; then echo "$ac_t""no" else echo "$ac_t""no" 1>&1 fi fi test -n "$PERL" && break done if test -z "$PERL" ; then # We have to set this outside of the loop lest the first failure in # PROGRAM_CHECK set the value (which then terminates the effect of the # loop, since autoconf macros only set values that are null, they # don't override them PERL="" fi if test -n "$PERL" ; then PERL="$PERL" perlversion=`$PERL -v | grep 'This is perl' | \ sed -e 's/^.*v[a-z ]*\([0-9]\).*$/\1/'` # Should do a test first for ch_p4 etc. if test "$perlversion" -lt 5 ; then echo "WRF build requires perl version 5, which configure did not find." echo "You can set the environment variable PERL to contain the " echo "location of perl version 5." echo "Configure believes that $PERL is version $perlversion ." PERL="" fi fi # Look for netcdf if test -z "$NETCDF" ; then for p in /usr/local/netcdf do if test -d $p ; then NETCDF=$p break fi done fi if ( test -z "$NETCDF" ) ; then if [ `hostname | cut -c 1-2` = "bb" -o `hostname | cut -c 1-2` = "bf" -o `hostname | cut -c 1-2` = "bs" -o \ `hostname` = "dataproc" -o `hostname` = "ute" ] ; then echo 'Compiling on an NCAR system with weird paths to NetCDF' echo 'Setting up a local NetCDF directory with symlinks' if ( test -d ./netcdf_links ) ; then echo 'A directory ./netcdf_links already exists. Continuing.' else mkdir ./netcdf_links if [ `hostname | cut -c 1-2` = "bb" -o `hostname | cut -c 1-2` = "bf" -o `hostname | cut -c 1-2` = "bs" ] ; then ( cd ./netcdf_links ; ln -s /usr/local/lib32/r4i4 ./lib ; \ ln -s /usr/local/include ./include ) else ( cd ./netcdf_links ; ln -s /usr/local/lib64/r4i4 ./lib ; \ ln -s /usr/local/include ./include ) fi fi NETCDF=`pwd`/netcdf_links export NETCDF else bedone="" if [ -d ./netcdf_links ] ; then echo '** There is an existing ./netcdf_links file. Should I use? [y]' read resp if [ "$resp" = "y" ] ; then NETCDF=`pwd`/netcdf_links bedone="yes" else echo 'Removing existing ./netcdf_links directory' /bin/rm -fr ./netcdf_links fi else echo '** WARNING: No path to NETCDF and environment variable NETCDF not set.' echo '** would you like me to try to fix? [y]' fi netcdfipath="" netcdflpath="" while [ -z "$bedone" ] ; do read resp if [ "$resp" = "y" ] ; then if [ -d ./netcdf_links ] ; then echo 'There is already a ./netcdf_links directory. Okay to use links' echo 'in this directory for NetCDF include and lib dirs? [y]' read resp if [ "$resp" = "y" ] ; then NETCDF=`pwd`/netcdf_links export NETCDF bedone="yes" continue fi fi if [ -z "$netcdfipath" ] ; then echo 'Enter full path to NetCDF include directory on your system' read resp if [ ! -d "$resp" ] ; then echo "invalid path: $resp. Try again? [y]" ; continue fi netcdfipath=$resp fi if [ -z "$netcdflpath" ] ; then echo 'Enter full path to NetCDF library directory on your system' read resp if [ ! -d "$resp" ] ; then echo "invalid path: $resp. Try again? [y]" ; continue fi netcdflpath=$resp fi if [ -n "$netcdflpath" -a -n "$netcdfipath" ] ; then if [ -d ./netcdf_links ] ; then echo 'Existing ./netcdf_links directory. Okay to remove. [y]' read resp if [ "$resp" = "y" ] ; then /bin/rm -fr ./netcdf_links fi fi mkdir ./netcdf_links cd ./netcdf_links ln -s "$netcdfipath" include ln -s "$netcdflpath" lib cd .. echo created new ./netcdf_links directory /bin/ls -lF ./netcdf_links NETCDF=`pwd`/netcdf_links export NETCDF bedone="yes" fi else bedone="yes" fi done fi fi if [ -n "$NETCDF" ] ; then echo "Will use NETCDF in dir: $NETCDF" else echo "Will configure for use without NetCDF" fi if [ -n "$HDF5" ] ; then echo "Will use HDF5 in dir: $HDF5" else echo "Will configure for use without HDF5" fi if [ -n "$PHDF5" ] ; then echo "Will use PHDF5 in dir: $PHDF5" else echo "Will configure for use without PHDF5" fi # if the uname command exists, give it a shot and see if # we can narrow the choices; otherwise, spam 'em os="ARCH" mach="ARCH" type uname > /dev/null if [ $? -eq 0 ] ; then os=`uname` if [ "$os" = "AIX" -o "$os" = "IRIX" -o "$os" = "IRIX64" -o "$os" = "SunOS" ] ; then mach="ARCH" else if [ "$os" = "OSF1" -o "$os" = "Linux" -o "UNIX_System_V" ] ; then mach=`uname -m` else os="ARCH" mach="ARCH" fi fi fi # Found perl, so proceed with configuration if test -n "$PERL" ; then $PERL arch/Config.pl -perl=$PERL -netcdf=$NETCDF -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach fi