#!/bin/bash

echo
echo "ESP runtime AutoConfigurator"
echo
#
# if arg1 is present set it to CASROOT, second is CASARCH (also optional)
#
if [ "$1" ] && [ "$1" != "-dev" ]; then
	CASROOT=$1
	CASARCH=
	CASREV=
	if [ "$2" ] && [ "$2" != "-dev" ]; then
		CASARCH=$2
	fi
fi

#
# -dev must be the last argument if speicified
#
DEVMODE=OFF
for var in "$@" ; do
	if [ "$var" = "-dev" ]; then
		echo "Development mode!"
		echo
		DEVMODE=ON
	fi
done

#
# we must know where the OpenCASCADE distribution is!
#
if [ -z "$CASROOT" ]; then
	echo "ERROR - CASROOT not defined - set or input as argument!"
	exit 1
fi

#
# is CASROOT pointing to a valid location?
#
if [ -d "$CASROOT" ]; then
	echo "CASROOT =" $CASROOT " with contents:"
	ls "$CASROOT"
	echo 
else
	echo "ERROR - CASROOT does not point to a valid directory!"
	exit 1
fi

ARCH=UNKNOWN

if [ -n "$EFCOMP" ]; then
	if [ "$EFCOMP" != ifort ] && [ "$EFCOMP" != ifx ] && [ "$EFCOMP" != gfortran ]; then
		echo "WARNING - ignoring EFCOMP (set to '$EFCOMP') not set to 'ifort', 'ifx', or 'gfortran'!"
		EFCOMP=UNKNOWN
	fi
else
	EFCOMP=UNKNOWN
fi

#
# determine the machine type
#
if [ -f /bin/uname -o -f /usr/bin/uname \
		-o -f /bin/uname.exe -o -f /usr/bin/uname.exe ]; then
	if [ -f /bin/uname ]; then
		os="`/bin/uname -s`"
		rl="`/bin/uname -r`"
		mt="`/bin/uname -m`"
	elif [ -f /usr/bin/uname ]; then
		os="`/usr/bin/uname -s`"
		rl="`/usr/bin/uname -r`"
		mt="`/usr/bin/uname -m`"
	elif [ -f /bin/uname.exe ]; then
		os="`/bin/uname.exe -s`"
		rl="`/bin/uname.exe -r`"
		mt="`/bin/uname.exe -m`"
	else
		os="`/usr/bin/uname.exe -s`"
		rl="`/usr/bin/uname.exe -r`"
		mt="`/usr/bin/uname.exe -m`"
	fi

	ARCH=$os
fi
if [ "$ARCH" = UNKNOWN ]; then
	echo "ERROR - Cannot parse Machine type!"
	exit 1
fi

#
# determine the version of OSX
#
# MACOSX=UNKNOWN
# if [ "$ARCH" = Darwin ]; then
# 	case "$rl" in
# 	14.*)   MACOSX=10.10 ;;
# 	15.*)   MACOSX=10.11 ;;
# 	16.*)   MACOSX=10.12 ;;
# 	17.*)   MACOSX=10.13 ;;
# 	18.*)   MACOSX=10.14 ;;
# 	19.*)   MACOSX=10.15 ;;
# 	20.1.*) MACOSX=11.0 ;;
# 	20.2.*) MACOSX=11.1 ;;
# 	20.3.*) MACOSX=11.2 ;;
# 	20.4.*) MACOSX=11.3 ;;
# 	20.5.*) MACOSX=11.4 ;;
# 	20.6.*) MACOSX=11.5 ;;
# 	21.0.*) MACOSX=12.0 ;;
# 	21.1.*) MACOSX=12.0 ;;
# 	21.2.*) MACOSX=12.1 ;;
# 	21.3.*) MACOSX=12.2 ;;
# 	21.4.*) MACOSX=12.3 ;;
# 	21.5.*) MACOSX=12.4 ;;
# 	21.6.*) MACOSX=12.5 ;;
# 	21.*)   MACOSX=12.x ;;
# 	22.*)   MACOSX=13.x ;;
# 	23.*)   MACOSX=14.x ;;
# 	esac
# fi

#
# determine CASARCH (if not aleardy set)
#
if [ -z "$CASARCH" ]; then
  if [ -d "$CASROOT/$ARCH" ]; then
    CASARCH=$ARCH
  else
    CASARCH=.
  fi
fi

#
# look at an so/dylib to determine the pointer size
#
BITS=UNKNOWN
if [ "$ARCH" = Darwin ]; then
	ft="`file -bL $CASROOT/$CASARCH/lib/libTKernel.dylib`"
	case $ft in
	*64*  ) BITS=64 ;;
	*i386 ) BITS=32 ;;
	esac
else
	ft="`file -bL $CASROOT/$CASARCH/lib/libTKernel.so`"
	case $ft in
	*64* ) BITS=64 ;;
	*32* ) BITS=32 ;;
	esac
	if [ "$BITS" = UNKNOWN ]; then
		ft="`file -bL /usr/lib/libTKernel.so`"
		case $ft in
		*64* ) BITS=64 ;;
		*32* ) BITS=32 ;;
		esac
	fi
fi
if [ "$BITS" = UNKNOWN ]; then
	echo "ERROR - Cannot parse OpenCASCADE library pointer size!"
	exit 1
fi
if [ "$BITS" = 32 ]; then
	echo "ERROR - 32 bit ESP is no longer supported!"
	exit 1
fi

#
# set our architecture
#
if [ "$ARCH" = Darwin ]; then
	CARCH=DARWIN64
	if [ "$mt" = arm64 ]; then
		CARCH=DARWIN_ARM64
	fi
else
	CARCH=LINUX64
	if [ "$mt" = aarch64 ]; then
		CARCH=LINUX_AARCH64
	fi
fi

#
# determine the OCC rev
#
if [ -z "$CASREV" ]; then
	incfl=UNKNOWN
	if [ -f "$CASROOT/include/Standard_Version.hxx" ]; then
		incfl=$CASROOT/include/Standard_Version.hxx
	elif [ -f "$CASROOT/inc/Standard_Version.hxx" ]; then
		incfl=$CASROOT/inc/Standard_Version.hxx
	elif [ -f "$CASROOT/include/opencascade/Standard_Version.hxx" ]; then
		incfl=$CASROOT/include/opencascade/Standard_Version.hxx
	elif [ -f "$CASROOT/include/oce/Standard_Version.hxx" ]; then
		incfl=$CASROOT/include/oce/Standard_Version.hxx
	elif [ -f "$CASROOT/Standard_Version.hxx" ]; then
		incfl=$CASROOT/Standard_Version.hxx
	fi
	if [ "$incfl" = UNKNOWN ]; then
		echo "ERROR - Cannot find OpenCASCADE Version include!"
		exit 1
	fi
	exec < "$incfl"
	while read -a words
	do
		if [ "${words[1]}" = OCC_VERSION ]; then
			CASREV=${words[2]}
		fi
	done
	if [ -z "$CASREV" ]; then
		echo "ERROR - Cannot parse OpenCASCADE Version!"
		exit 1
	fi
fi

#
# do we have a fortran compiler?
#
if [ "$EFCOMP" == UNKNOWN ]; then
	ift="`which ifort`"
	ifx="`which ifx`"
	gft="`which gfortran`"
	if [ -n "$ifx" ]; then
		EFCOMP=ifx
	elif [ -n "$ift" ]; then
		EFCOMP=ifort
	elif [ -n "$gft" ]; then
		EFCOMP=gfortran
	fi
fi

#
# do we have AFLR?
#
if [ "$ARCH" = Darwin ]; then
	if [ "$CARCH" = DARWIN_ARM64 ]; then
		AFLR_ARCH=MacOSX-arm64
	else
		AFLR_ARCH=MacOSX-x86-64
	fi
else
	if [ "$CARCH" = LINUX_AARCH64 ]; then
		AFLR_ARCH=Linux-arm64
	else
		AFLR_ARCH=Linux-x86-64
	fi
fi
if [ -n "$AFLR" ]; then
	if [ ! -d $AFLR/$AFLR_ARCH ]; then
		echo "ERROR - \$AFLR/$AFLR_ARCH (e.g. $AFLR/$AFLR_ARCH) is not a directory!"
		exit 1
	fi
else
	AFLR=UNKNOWN
fi

#
# do we have tetgen?
#
if [ -n "$TETGEN" ]; then
	if [ ! -f $TETGEN/tetgen.cxx ]; then
		echo "ERROR - \$TETGEN/tetgen.cxx (e.g. $TETGEN/tetgen.cxx) does not exist!"
		exit 1
	fi
else
	TETGEN=UNKNOWN
fi

#
# do we have a python?
#
echo
PYTH=UNKNOWN
if [ ! -n "$PYTHONINC" ]; then
	PYTHONINC=UNKNOWN
fi
if [ ! -n "$PYTHONLIB" ]; then
	PYTHONLIB=UNKNOWN
fi
pyt="`which python`"
if [ -n "$pyt" ]; then
	if python -c "import sys; assert sys.version_info >= (3,8)" >& /dev/null; then 
		PYTH=python
		echo "Info: Python exec $pyt found!"
	else
		echo "Info: Ignoring Python exec $pyt older than 3.8!"
	fi
fi
if [ "$PYTH" == UNKNOWN ]; then
	pyt="`which python3`"
	if [ -n "$pyt" ]; then
		if python3 -c "import sys; assert sys.version_info >= (3,8)" >& /dev/null; then 
			PYTH=python3
			echo "Info: Python exec $pyt found!"
		else
			echo "Info: Ignoring Python exec $pyt older than 3.8!"
		fi
	fi
fi

if [ "$PYTH" != UNKNOWN ]; then
	if [ "$PYTHONINC" == UNKNOWN ]; then
		if ( $PYTH -c 'import sysconfig' >& /dev/null ); then
			pscr="\"import sysconfig; print(sysconfig.get_path('platinclude'))\""
			pcmd="$PYTH -c $pscr"
			eval PYTHINC=\`$pcmd\`
	
			if [ -f "$PYTHINC/Python.h" ]; then
				PYTHONINC=$PYTHINC
			fi
		else
			pscr="\"import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))\""
			pcmd="$PYTH -c $pscr"
			eval PYTHINC=\`$pcmd\`
			if [ -f "$PYTHINC/Python.h" ]; then
				PYTHONINC=$PYTHINC
			fi
		fi
	fi

	if [ "$PYTHONINC" == UNKNOWN ]; then
		echo "Error: Fix PYTHONINC -- cannot find Python.h!"
		echo "       Has the Python Development package been installed?"
		PYTH=ERROR
	else
		echo "Info: Python header $PYTHONINC/Python.h found!"
	fi

	if ( $PYTH -c 'import sysconfig' >& /dev/null ); then
		pscr="\"import sysconfig as sysconfig; print(sysconfig.get_config_var('LIBRARY'))\""
	else
		pscr="\"import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBRARY'))\""
	fi
	pcmd="$PYTH -c $pscr"
	eval plb=\`$pcmd\`
	pso=`echo $plb|sed -e 'sx.axx'`.so
	pdy=`echo $plb|sed -e 'sx.axx'`.dylib

	pllb=`echo $plb|sed -e 'sx.axx'|sed -e 'sxlibxx'`

	if [ "$PYTHONLIB" == UNKNOWN ] && [ "$ARCH" = Darwin ]; then
		pscr="\"import sys, os; print(os.path.exists(os.path.join(sys.prefix, 'conda-meta')))\""
		pcmd="$PYTH -c $pscr"
		eval conda=\`$pcmd\`

		if [ "$conda" == True ]; then
			PYTHONLIB="-undefined dynamic_lookup"
			echo "Info: Python library not needed for Anaconda on OSX!"
		fi
	fi

	if [ "$PYTHONLIB" == UNKNOWN ] && ( $PYTH -c 'import sysconfig' >& /dev/null ); then
		if [ "$PYTHONLIB" == UNKNOWN ]; then
			pscr="\"import sysconfig; print(sysconfig.get_path('platstdlib'))\""
			pcmd="$PYTH -c $pscr"
			eval plp=\`$pcmd\`
			if [ -f "$plp/$pso" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pso found!"
			elif [ -f "$plp/$pdy" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pdy found!"
			#elif [ -f "$plp/$plb" ]; then
			#	PYTHONLIB="-L$plp -l$pllb"
			#	echo "Info: Python library $plb found!"
			fi
		fi
		if [ "$PYTHONLIB" == UNKNOWN ]; then
			pscr="\"import sysconfig; print(sysconfig.get_config_var('PYTHONFRAMEWORKPREFIX'))\""
			pcmd="$PYTH -c $pscr"
			eval plp=\`$pcmd\`
			if [ -f "$plp/$pso" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pso found!"
			elif [ -f "$plp/$pdy" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pdy found!"
			#elif [ -f "$plp/$plb" ]; then
			#	PYTHONLIB="-L$plp -l$pllb"
			#	echo "Info: Python library $plb found!"
			fi
		fi
	fi

	if [ "$PYTHONLIB" == UNKNOWN ] && ( $PYTH -c 'import distutils.sysconfig' >& /dev/null ); then
		if [ "$PYTHONLIB" == UNKNOWN ]; then
			pscr="\"import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBPL'))\""
			pcmd="$PYTH -c $pscr"
			eval plp=\`$pcmd\`
	
			if [ -f "$plp/$pso" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pso found!"
			elif [ -f "$plp/$pdy" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pdy found!"
			#elif [ -f "$plp/$plb" ]; then
			#	PYTHONLIB="-L$plp -l$pllb"
			#	echo "Info: Python library $plb found!"
			fi
		fi
	
		if [ "$PYTHONLIB" == UNKNOWN ]; then
			pscr="\"import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))\""
			pcmd="$PYTH -c $pscr"
			eval plp=\`$pcmd\`
	
			if [ -f "$plp/$pso" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pso found!"
			elif [ -f "$plp/$pdy" ]; then
				PYTHONLIB="-L$plp -l$pllb"
				echo "Info: Python library $plp/$pdy found!"
			#elif [ -f "$plp/$plb" ]; then
			#	PYTHONLIB="-L$plp -l$pllb"
			#	echo "Info: Python library $plb found!"
			fi
		fi
	fi

	if [ "$PYTHONLIB" == UNKNOWN ]; then
		pscr="\"import sys; import os; print(os.path.join(sys.exec_prefix, 'lib'))\""
		pcmd="$PYTH -c $pscr"
		eval plp=\`$pcmd\`
		if [ -f "$plp/$pso" ]; then
			PYTHONLIB="-L$plp -l$pllb"
			echo "Info: Python library $plp/$pso found!"
		elif [ -f "$plp/$pdy" ]; then
			PYTHONLIB="-L$plp -l$pllb"
			echo "Info: Python library $plp/$pdy found!"
		#elif [ -f "$plp/$plb" ]; then
		#	PYTHONLIB="-L$plp -l$pllb"
		#	echo "Info: Python library $plb found!"
		fi
	fi

	if [ "$PYTHONLIB" == UNKNOWN ]; then
		pscr="\"import sys; import os; print(os.path.join(os.path.dirname(os.path.dirname(sys.executable)), 'lib'))\""
		pcmd="$PYTH -c $pscr"
		eval plp=\`$pcmd\`
		if [ -f "$plp/$pso" ]; then
			PYTHONLIB="-L$plp -l$pllb"
			echo "Info: Python library $plp/$pso found!"
		elif [ -f "$plp/$pdy" ]; then
			PYTHONLIB="-L$plp -l$pllb"
			echo "Info: Python library $plp/$pdy found!"
		#elif [ -f "$plp/$plb" ]; then
		#	PYTHONLIB="-L$plp -l$pllb"
		#	echo "Info: Python library $plb found!"
		fi
	fi


	# Alternatively we could have just this one check that should work on all platforms
	# https://github.com/JuliaPy/PyCall.jl/blob/master/deps/find_libpython.py
	#if [ "$PYTHONLIB" == UNKNOWN ]; then
		#plp=`$PYTH find_libpython.py`
		#if [ -f "$plp" ]; then
			#PYTHONLIB=$plp
			#echo "Info: Python library $plp found!"
		#fi
	#fi

	if [ "$PYTHONLIB" == UNKNOWN ]; then
		echo "Error: Fix PYTHONLIB -- cannot find libpython!"
		echo "       Has the Python Development package been installed?"
		PYTH=ERROR
	fi
else
	echo "Info: No Python found!"
fi
echo

#
# done.
#
BASE=`pwd | sed -e 'sx/configxx'`
if [ "$DEVMODE" == ON ]; then
	BASE=$BASE/$CARCH
fi
echo "ESP_ARCH =" $CARCH
echo "ESP_ROOT =" $BASE
echo "EFCOMP   =" $EFCOMP
echo
echo "CARCH    =" $CARCH
echo "CASROOT  =" $CASROOT
echo "CASARCH  =" $CASARCH
echo "CASREV   =" $CASREV
echo
if [ "$PYTH" != UNKNOWN ]; then
	echo "PYTHONINC=" $PYTHONINC
	echo "PYTHONLIB=" $PYTHONLIB 
	echo
fi

#
echo "#"                        > ../ESPenv.sh
echo "export ESP_ARCH="$CARCH  >> ../ESPenv.sh
echo "export ESP_ROOT="$BASE   >> ../ESPenv.sh
if [ "$DEVMODE" == ON ]; then
	echo "export ESP_BLOC="$BASE   >> ../ESPenv.sh
fi
echo "export CASROOT="$CASROOT >> ../ESPenv.sh
echo "export CASARCH="$CASARCH >> ../ESPenv.sh
echo "export CASREV="$CASREV   >> ../ESPenv.sh
if [ -z "$PATH" ]; then
	echo "export PATH=$BASE/bin" >> ../ESPenv.sh
else
	echo "export PATH=$BASE/bin":'$PATH' >> ../ESPenv.sh
fi
if [ "$PYTH" != UNKNOWN ]; then
	if [ "$PYTH" != ERROR ]; then
		echo "export PYTHONINC=\""$PYTHONINC\"         >> ../ESPenv.sh
		echo "export PYTHONLIB=\""$PYTHONLIB\"         >> ../ESPenv.sh
	else
		echo "#export PYTHONINC=\""$PYTHONINC\"        >> ../ESPenv.sh
		echo "#export PYTHONLIB=\""$PYTHONLIB\"        >> ../ESPenv.sh
	fi
	if [ "$DEVMODE" == OFF ]; then
		if [ -z "$PYTHONPATH" ]; then
			echo "export PYTHONPATH=$BASE/pyESP"           >> ../ESPenv.sh
		else
			echo "export PYTHONPATH=$BASE/pyESP":'$PYTHONPATH' >> ../ESPenv.sh
		fi
	fi
fi
if [ "$EFCOMP" != UNKNOWN ]; then
	echo "export EFCOMP="$EFCOMP           >> ../ESPenv.sh
fi
if [ "$AFLR" != UNKNOWN ]; then
	echo "export AFLR=$AFLR"  >> ../ESPenv.sh
else
	echo "#export AFLR=$HOME/Projects/AFLR"  >> ../ESPenv.sh
fi
if [ "$ARCH" = Darwin ]; then
	echo "export AFLR_ARCH="$AFLR_ARCH >> ../ESPenv.sh
	if [ "$DEVMODE" == OFF ]; then
		echo "export UDUNITS2_XML_PATH="$BASE/src/CAPS/udunits/udunits2.xml >> ../ESPenv.sh
	else
		echo "export UDUNITS2_XML_PATH="$BASE/../udunits/udunits2.xml >> ../ESPenv.sh
	fi
else
	echo "export AFLR_ARCH="$AFLR_ARCH              >> ../ESPenv.sh
	echo 'if [ -z "$LD_LIBRARY_PATH" ]; then'       >> ../ESPenv.sh
	echo "    export LD_LIBRARY_PATH=$CASROOT/$CASARCH/lib:$BASE/lib" >> ../ESPenv.sh
	echo "else"   >> ../ESPenv.sh
	echo "    export LD_LIBRARY_PATH=$CASROOT/$CASARCH/lib:$BASE/lib":'$LD_LIBRARY_PATH' >> ../ESPenv.sh
	echo "fi"     >> ../ESPenv.sh
	udu=UNKNOWN
	if [ -f "/usr/include/udunits.h" ]; then
		udu=/usr/include/udunits.h
	elif [ -f "/usr/include/udunits2/udunits.h" ]; then
		udu=/usr/include/udunits2/udunits.h
	fi
	if [ "$udu" = UNKNOWN ]; then
		if [ "$DEVMODE" == OFF ]; then
			echo "export UDUNITS2_XML_PATH="$BASE/src/CAPS/udunits/udunits2.xml >> ../ESPenv.sh
		else
			echo "export UDUNITS2_XML_PATH="$BASE/../udunits/udunits2.xml >> ../ESPenv.sh
		fi
	fi
fi
if [ -d $CAPS_GLYPH ]; then
	echo "export CAPS_GLYPH="$CAPS_GLYPH >> ../ESPenv.sh	
elif [ "$DEVMODE" == OFF ]; then
	echo "export CAPS_GLYPH="$BASE/src/CAPS/aim/pointwise/glyph >> ../ESPenv.sh
else
	echo "#export CAPS_GLYPH="$HOME/Projects/CAPS/aim/pointwise/glyph >> ../ESPenv.sh
fi
if [ "$TETGEN" != UNKNOWN ]; then
	echo "export TETGEN=$TETGEN" >> ../ESPenv.sh
else
	echo "#export TETGEN=$HOME/Projects/TetGen/tetgen1.6.0" >> ../ESPenv.sh
fi
echo "#export AWAVE=$HOME/Projects/awave/awavemod.f"    >> ../ESPenv.sh
if [ "$ARCH" = Darwin ]; then
	echo "export SLUGS_START=\"open -a /Applications/Safari.app $BASE/SLUGS/Slugs.html\"" >> ../ESPenv.sh
	echo "export ESP_START=\"open -a /Applications/Safari.app;sleep 1;open -a /Applications/Safari.app $BASE/ESP/ESP.html\""       >> ../ESPenv.sh
	echo "export WV_START=\"open -a /Applications/Safari.app $BASE/wvClient/wv.html\""    >> ../ESPenv.sh
else
	echo "export SLUGS_START=\"firefox $BASE/SLUGS/Slugs.html &\"" >> ../ESPenv.sh
	echo "export ESP_START=\"firefox $BASE/ESP/ESP.html &\""       >> ../ESPenv.sh
	echo "export WV_START=\"firefox $BASE/wvClient/wv.html &\""    >> ../ESPenv.sh
fi

#
echo "#"                        > ../ESPenv.csh
echo "setenv ESP_ARCH "$CARCH  >> ../ESPenv.csh
echo "setenv ESP_ROOT "$BASE   >> ../ESPenv.csh
if [ "$DEVMODE" == ON ]; then
	echo "setenv ESP_BLOC "$BASE   >> ../ESPenv.csh
fi
echo "setenv CASROOT "$CASROOT >> ../ESPenv.csh
echo "setenv CASARCH "$CASARCH >> ../ESPenv.csh
echo "setenv CASREV "$CASREV   >> ../ESPenv.csh
if [ -z "$PATH" ]; then
	echo "setenv PATH $BASE/bin" >> ../ESPenv.csh
else
	echo "setenv PATH $BASE/bin":'$PATH' >> ../ESPenv.csh
fi
if [ "$PYTH" != UNKNOWN ]; then
	if [ "$PYTH" != ERROR ]; then
		echo "setenv PYTHONINC \""$PYTHONINC\"         >> ../ESPenv.csh
		echo "setenv PYTHONLIB \""$PYTHONLIB\"         >> ../ESPenv.csh
	else
		echo "#setenv PYTHONINC \""$PYTHONINC\"        >> ../ESPenv.csh
		echo "#setenv PYTHONLIB \""$PYTHONLIB\"        >> ../ESPenv.csh
	fi
	if [ "$DEVMODE" == OFF ]; then
		if [ -z "$PYTHONPATH" ]; then
			echo "setenv PYTHONPATH $BASE/pyESP"           >> ../ESPenv.csh
		else
			echo "setenv PYTHONPATH $BASE/pyESP":'$PYTHONPATH' >> ../ESPenv.csh
		fi
	fi
fi
if [ "$EFCOMP" != UNKNOWN ]; then
	echo "setenv EFCOMP "$EFCOMP           >> ../ESPenv.csh
fi
if [ "$AFLR" != UNKNOWN ]; then
	echo "setenv AFLR $AFLR"  >> ../ESPenv.csh
else
	echo "#setenv AFLR $HOME/Projects/AFLR"  >> ../ESPenv.csh
fi
if [ "$ARCH" = Darwin ]; then
	echo "setenv AFLR_ARCH "$AFLR_ARCH >> ../ESPenv.csh
	if [ "$DEVMODE" == OFF ]; then
		echo "setenv UDUNITS2_XML_PATH "$BASE/src/CAPS/udunits/udunits2.xml >> ../ESPenv.csh
	else
		echo "setenv UDUNITS2_XML_PATH "$BASE/../udunits/udunits2.xml >> ../ESPenv.csh
	fi
else
	echo "setenv AFLR_ARCH "$AFLR_ARCH        >> ../ESPenv.csh
	echo 'if ( $?LD_LIBRARY_PATH == 0 ) then' >> ../ESPenv.csh
	echo "    setenv LD_LIBRARY_PATH $CASROOT/$CASARCH/lib:$BASE/lib" >> ../ESPenv.csh
	echo "else" >> ../ESPenv.csh
	echo '    if ( "$LD_LIBRARY_PATH" == "" ) then' >> ../ESPenv.csh
	echo "        setenv LD_LIBRARY_PATH $CASROOT/$CASARCH/lib:$BASE/lib" >> ../ESPenv.csh
	echo "    else" >> ../ESPenv.csh
	echo "        setenv LD_LIBRARY_PATH $CASROOT/$CASARCH/lib:$BASE/lib":'$LD_LIBRARY_PATH' >> ../ESPenv.csh
	echo "    endif" >> ../ESPenv.csh
	echo "endif" >> ../ESPenv.csh
	udu=UNKNOWN
	if [ -f "/usr/include/udunits.h" ]; then
		udu=/usr/include/udunits.h
	elif [ -f "/usr/include/udunits2/udunits.h" ]; then
		udu=/usr/include/udunits2/udunits.h
	fi
	if [ "$udu" = UNKNOWN ]; then
		if [ "$DEVMODE" == OFF ]; then
			echo "setenv UDUNITS2_XML_PATH "$BASE/src/CAPS/udunits/udunits2.xml >> ../ESPenv.csh
		else
			echo "setenv UDUNITS2_XML_PATH "$BASE/../udunits/udunits2.xml >> ../ESPenv.csh
		fi
	fi
fi
if [ -d $CAPS_GLYPH ]; then
	echo "setenv CAPS_GLYPH $CAPS_GLYPH" >> ../ESPenv.csh	
elif [ "$DEVMODE" == OFF ]; then
	echo "setenv CAPS_GLYPH $BASE/src/CAPS/aim/pointwise/glyph" >> ../ESPenv.csh
else
	echo "#setenv CAPS_GLYPH $HOME/Projects/CAPS/aim/pointwise/glyph" >> ../ESPenv.csh
fi
if [ "$TETGEN" != UNKNOWN ]; then
	echo "setenv TETGEN $TETGEN" >> ../ESPenv.csh
else
	echo "#setenv TETGEN $HOME/Projects/TetGen/tetgen1.6.0" >> ../ESPenv.csh
fi
echo "#setenv AWAVE $HOME/Projects/awave/awavemod.f"    >> ../ESPenv.csh
if [ "$ARCH" = Darwin ]; then
	echo "setenv SLUGS_START \"open -a /Applications/Safari.app $BASE/SLUGS/Slugs.html\"" >> ../ESPenv.csh
	echo "setenv ESP_START \"open -a /Applications/Safari.app;sleep 1;open -a /Applications/Safari.app $BASE/ESP/ESP.html\""       >> ../ESPenv.csh
	echo "setenv WV_START \"open -a /Applications/Safari.app $BASE/wvClient/wv.html\""    >> ../ESPenv.csh
else
	echo "setenv SLUGS_START \"firefox $BASE/SLUGS/Slugs.html &\"" >> ../ESPenv.csh
	echo "setenv ESP_START \"firefox $BASE/ESP/ESP.html &\""       >> ../ESPenv.csh
	echo "setenv WV_START \"firefox $BASE/wvClient/wv.html &\""    >> ../ESPenv.csh
fi

exit
