Index: /issm/trunk-jpl/etc/environment.sh
===================================================================
--- /issm/trunk-jpl/etc/environment.sh	(revision 24320)
+++ /issm/trunk-jpl/etc/environment.sh	(revision 24321)
@@ -1,89 +1,165 @@
-# Modifies path-related envrionment variables based on which external packages 
+# Modifies path-related envrionment variables based on which external packages
 # have been installed.
 #
-# ISSM_DIR and ISSM_ARCH should have been defined already in your shell 
+# ISSM_DIR and ISSM_ARCH should have been defined already in your shell
 # settings file (i.e. .bashrc, .cshrc).
 
 ## Functions
 #
-pathprepend(){ #{{{
-	if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
-		name=$1
-		if [[ "$ISSM_ARCH" == "cygwin-intel" ]]; then
-			#export path using the cygwin convention
-			name=`cygpath -u $1`
-		fi
-		export PATH="$name:$PATH"
-	fi
-} #}}}
-pathappend(){ #{{{
-	if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
-		name=$1
-		if [[ "$ISSM_ARCH" == "cygwin-intel" ]]; then
-			#export path in cygwin convention
-			name=`cygpath -u $1`
-		fi
-		export PATH="$PATH:$name"
-	fi
-} #}}}
-libpathprepend(){ #{{{
-	if [ -d "$1" ]; then
-		if [ -z $LD_LIBRARY_PATH ]; then
-			export LD_LIBRARY_PATH="$1"
-		elif [[ ":$LD_LIBRARY_PATH:" != *":$1:"* ]]; then
-			export LD_LIBRARY_PATH="$1:$LD_LIBRARY_PATH"
-		fi
-		if [ -z $LD_RUN_PATH ]; then
-			export LD_RUN_PATH="$1"
-		elif [[ ":$LD_RUN_PATH:" != *":$1:"* ]]; then
-			export LD_RUN_PATH="$1:$LD_RUN_PATH"
-		fi
-	fi
-} #}}}
-libpathappend(){ #{{{
-	if [ -d "$1" ]; then
-		if [ -z $LD_LIBRARY_PATH ]; then
-			export LD_LIBRARY_PATH=$1
-		elif [[ ":$LD_LIBRARY_PATH:" != *":$1:"* ]]; then
-			export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$1"
+c_include_path_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $C_INCLUDE_PATH ]; then
+			export C_INCLUDE_PATH="${1}"
+		elif [[ ":${C_INCLUDE_PATH}:" != *":${1}:"* ]]; then
+			export C_INCLUDE_PATH="${C_INCLUDE_PATH}:${1}"
+		fi
+	fi
+} #}}}
+c_include_path_prepend(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $C_INCLUDE_PATH ]; then
+			export C_INCLUDE_PATH="${1}"
+		elif [[ ":${C_INCLUDE_PATH}:" != *":${1}:"* ]]; then
+			export C_INCLUDE_PATH="${1}:${C_INCLUDE_PATH}"
+		fi
+	fi
+} #}}}
+\
+cpath_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $CPATH ]; then
+			export CPATH="${1}"
+		elif [[ ":${CPATH}:" != *":${1}:"* ]]; then
+			export CPATH="${CPATH}:${1}"
+		fi
+	fi
+} #}}}
+cpath_prepend(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $CPATH ]; then
+			export CPATH="${1}"
+		elif [[ ":${CPATH}:" != *":${1}:"* ]]; then
+			export CPATH="${1}:${CPATH}"
+		fi
+	fi
+} #}}}
+
+cplus_include_path_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $CPLUS_INCLUDE_PATH ]; then
+			export CPLUS_INCLUDE_PATH="${1}"
+		elif [[ ":${CPLUS_INCLUDE_PATH}:" != *":${1}:"* ]]; then
+			export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:${1}"
+		fi
+	fi
+} #}}}
+cplus_include_path_prepend(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $CPLUS_INCLUDE_PATH ]; then
+			export CPLUS_INCLUDE_PATH="${1}"
+		elif [[ ":${CPLUS_INCLUDE_PATH}:" != *":${1}:"* ]]; then
+			export CPLUS_INCLUDE_PATH="${1}:${CPLUS_INCLUDE_PATH}"
+		fi
+	fi
+} #}}}
+
+dyld_library_path_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $DYLD_LIBRARY_PATH ]; then
+			export DYLD_LIBRARY_PATH="${1}"
+		elif [[ ":${DYLD_LIBRARY_PATH}:" != *":${1}:"* ]]; then
+			export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}:${1}"
 		fi
 		if [ -z $LD_RUN_PATH ]; then
 			export LD_RUN_PATH=$1
-		elif [[ ":$LD_RUN_PATH:" != *":$1:"* ]]; then
-			export LD_RUN_PATH="$LD_RUN_PATH:$1"
-		fi
-	fi
-} #}}}
-dylibpathprepend(){ #{{{
-	if [ -d "$1" ]; then
+		elif [[ ":${LD_RUN_PATH}:" != *":${1}:"* ]]; then
+			export LD_RUN_PATH="${LD_RUN_PATH}:${1}"
+		fi
+	fi
+} #}}}
+dyld_library_path_prepend(){ #{{{
+	if [ -d "${1}" ]; then
 		if [ -z $DYLD_LIBRARY_PATH ]; then
-			export DYLD_LIBRARY_PATH=$1
-		elif [[ ":$DYLD_LIBRARY_PATH:" != *":$1:"* ]]; then
-			export DYLD_LIBRARY_PATH="$1:$DYLD_LIBRARY_PATH"
+			export DYLD_LIBRARY_PATH="${1}"
+		elif [[ ":${DYLD_LIBRARY_PATH}:" != *":${1}:"* ]]; then
+			export DYLD_LIBRARY_PATH="${1}:${DYLD_LIBRARY_PATH}"
 		fi
 		if [ -z $LD_RUN_PATH ]; then
-			export LD_RUN_PATH=$1
-		elif [[ ":$LD_RUN_PATH:" != *":$1:"* ]]; then
-			export LD_RUN_PATH="$1:$LD_RUN_PATH"
-		fi
-	fi
-} #}}}
-dylibpathappend(){ #{{{
-	if [ -d "$1" ]; then
-		if [ -z $DYLD_LIBRARY_PATH ]; then
-			export DYLD_LIBRARY_PATH=$1
-		elif [[ ":$DYLD_LIBRARY_PATH:" != *":$1:"* ]]; then
-			export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$1"
+			export LD_RUN_PATH="${1}"
+		elif [[ ":${LD_RUN_PATH}:" != *":${1}:"* ]]; then
+			export LD_RUN_PATH="${1}:${LD_RUN_PATH}"
+		fi
+	fi
+} #}}}
+
+ld_library_path_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $LD_LIBRARY_PATH ]; then
+			export LD_LIBRARY_PATH="${1}"
+		elif [[ ":${LD_LIBRARY_PATH}:" != *":${1}:"* ]]; then
+			export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${1}"
 		fi
 		if [ -z $LD_RUN_PATH ]; then
-			export LD_RUN_PATH=$1
-		elif [[ ":$LD_RUN_PATH:" != *":$1:"* ]]; then
-			export LD_RUN_PATH="$LD_RUN_PATH:$1"
-		fi
-	fi
-} #}}}
-
-# FIXME: during installation packages are installed one by one but 
-# environment.sh was sourced before so new packages are NOT in the path. May 
+			export LD_RUN_PATH="${1}"
+		elif [[ ":${LD_RUN_PATH}:" != *":$1:"* ]]; then
+			export LD_RUN_PATH="${LD_RUN_PATH}:${1}"
+		fi
+	fi
+} #}}}
+ld_library_path_prepend(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $LD_LIBRARY_PATH ]; then
+			export LD_LIBRARY_PATH="${1}"
+		elif [[ ":${LD_LIBRARY_PATH}:" != *":${1}:"* ]]; then
+			export LD_LIBRARY_PATH="${1}:${LD_LIBRARY_PATH}"
+		fi
+		if [ -z $LD_RUN_PATH ]; then
+			export LD_RUN_PATH="${1}"
+		elif [[ ":${LD_RUN_PATH}:" != *":${1}:"* ]]; then
+			export LD_RUN_PATH="${1}:${LD_RUN_PATH}"
+		fi
+	fi
+} #}}}
+
+library_path_append(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $LIBRARY_PATH ]; then
+			export LIBRARY_PATH="${1}"
+		elif [[ ":${LIBRARY_PATH}:" != *":$1:"* ]]; then
+			export LIBRARY_PATH="${LIBRARY_PATH}:${1}"
+		fi
+	fi
+} #}}}
+library_path_prepend(){ #{{{
+	if [ -d "${1}" ]; then
+		if [ -z $LIBRARY_PATH ]; then
+			export LIBRARY_PATH="${1}"
+		elif [[ ":${LIBRARY_PATH}:" != *":$1:"* ]]; then
+			export LIBRARY_PATH="${1}:${LIBRARY_PATH}"
+		fi
+	fi
+} #}}}
+
+path_append(){ #{{{
+	if [ -d "${1}" ] && [[ ":${PATH}:" != *":${1}:"* ]]; then
+		path="${1}"
+		if [[ "${ISSM_ARCH}" == "cygwin-intel" ]]; then
+			path=`cygpath -u "${1}"`
+		fi
+		export PATH="${PATH}:${path}"
+	fi
+} #}}}
+path_prepend(){ #{{{
+	if [ -d "${1}" ] && [[ ":${PATH}:" != *":${1}:"* ]]; then
+		path="${1}"
+		if [[ "${ISSM_ARCH}" == "cygwin-intel" ]]; then
+			path=`cygpath -u "${1}"`
+		fi
+		export PATH="${path}:${PATH}"
+	fi
+} #}}}
+
+# FIXME: during installation packages are installed one by one but
+# environment.sh was sourced before so new packages are NOT in the path. May
 # source environment.sh again with:
 # 	if [ -z $(echo "$PATH" | grep "$MATLAB_DIR") ]; then export $PATH...; fi
@@ -95,96 +171,92 @@
 
 # Load ISSM scripts
-pathappend "$ISSM_DIR/scripts"
-
-GMT_DIR="$ISSM_DIR/externalpackages/gmt/install"
-if [ -d "$GMT_DIR" ]; then
-	export GMT_DIR
-	pathprepend   "$GMT_DIR/bin" 
-	libpathappend "$GMT_DIR/lib"
-fi
-
-MPI_DIR="$ISSM_DIR/externalpackages/mpich/install"
+path_append "${ISSM_DIR}/scripts"
+
+SVN_DIR="${ISSM_DIR}/externalpackages/svn/install"
+if [ -d "${SVN_DIR}" ]; then
+	path_prepend   "${SVN_DIR}/bin"
+	ld_library_path_append "${SVN_DIR}/lib"
+fi
+
+GIT_DIR="${ISSM_DIR}/externalpackages/git/install"
+if [ -d "${GIT_DIR}" ]; then
+	path_prepend "${GIT_DIR}/bin"
+fi
+
+MPI_DIR="${ISSM_DIR}/externalpackages/mpich/install"
 if [ -d "$MPI_DIR" ]; then
 	export MPI_DIR
 	export MPI_INC_DIR="$MPI_DIR/include"
-	pathprepend    "$MPI_DIR/bin"
-	libpathprepend "$MPI_DIR/lib"
-fi
-
-PETSC_DIR="$ISSM_DIR/externalpackages/petsc/install"
+	path_prepend    "$MPI_DIR/bin"
+	ld_library_path_prepend "$MPI_DIR/lib"
+fi
+
+PETSC_DIR="${ISSM_DIR}/externalpackages/petsc/install"
 if [ -d "$PETSC_DIR" ]; then
 	export PETSC_DIR
-	libpathappend "$PETSC_DIR/lib"
-fi
-
-SCOTCH_DIR="$ISSM_DIR/externalpackages/scotch/install"
-libpathappend "$SCOTCH_DIR/lib"
-
-SLEPC_DIR="$ISSM_DIR/externalpackages/slepc/install"
-libpathappend "$SLEPC_DIR/lib"
-
-TAO_DIR="$ISSM_DIR/externalpackages/tao/install"
-libpathappend "$TAO_DIR/lib"
-
-DAKOTA_DIR="$ISSM_DIR/externalpackages/dakota/install"
-pathappend "$DAKOTA_DIR/bin"
-libpathappend "$DAKOTA_DIR/lib"
-dylibpathprepend "$DAKOTA_DIR/lib"
-
-DOXYGEN_DIR="$ISSM_DIR/externalpackages/doxygen/install"
-pathprepend "$DOXYGEN_DIR/bin"
-
-AUTOTOOLS_DIR="$ISSM_DIR/externalpackages/autotools/install"
-pathprepend "$AUTOTOOLS_DIR/bin"
+	ld_library_path_append "$PETSC_DIR/lib"
+fi
+
+SCOTCH_DIR="${ISSM_DIR}/externalpackages/scotch/install"
+ld_library_path_append "$SCOTCH_DIR/lib"
+
+SLEPC_DIR="${ISSM_DIR}/externalpackages/slepc/install"
+ld_library_path_append "$SLEPC_DIR/lib"
+
+TAO_DIR="${ISSM_DIR}/externalpackages/tao/install"
+ld_library_path_append "$TAO_DIR/lib"
+
+DAKOTA_DIR="${ISSM_DIR}/externalpackages/dakota/install"
+path_append "$DAKOTA_DIR/bin"
+ld_library_path_append "$DAKOTA_DIR/lib"
+dyld_library_path_prepend "$DAKOTA_DIR/lib"
+
+DOXYGEN_DIR="${ISSM_DIR}/externalpackages/doxygen/install"
+path_prepend "$DOXYGEN_DIR/bin"
+
+AUTOTOOLS_DIR="${ISSM_DIR}/externalpackages/autotools/install"
+path_prepend "$AUTOTOOLS_DIR/bin"
 
 SDK_DIR="C:/MicrosoftVisualStudio 9.0/Microsoft Visual C++ 2008 Express Edition with SP1 - ENU"
-pathappend "$SDK_DIR"
-
-SSH_DIR="$ISSM_DIR/externalpackages/ssh"
-pathappend "$SSH_DIR"
-
-VALGRIND_DIR="$ISSM_DIR/externalpackages/valgrind/install"
-pathprepend "$VALGRIND_DIR/bin"
-
-NCO_DIR="$ISSM_DIR/externalpackages/nco/install/bin"
-pathprepend "$NCO_DIR/bin"
-
-CPPCHECK_DIR="$ISSM_DIR/externalpackages/cppcheck/install"
-pathappend "$CPPCHECK_DIR/bin"
-
-GDAL_DIR="$ISSM_DIR/externalpackages/gdal/install"
-pathprepend "$GDAL_DIR/bin"
-libpathappend "$GDAL_DIR/lib"
-
-PROJ4_DIR="$ISSM_DIR/externalpackages/proj.4/install"
-dylibpathprepend "$PROJ4_DIR/lib"
-libpathprepend "$PROJ4_DIR/lib"
-
-MERCURIAL_DIR="$ISSM_DIR/externalpackages/mercurial/install"
+path_append "$SDK_DIR"
+
+SSH_DIR="${ISSM_DIR}/externalpackages/ssh"
+path_append "$SSH_DIR"
+
+VALGRIND_DIR="${ISSM_DIR}/externalpackages/valgrind/install"
+path_prepend "$VALGRIND_DIR/bin"
+
+NCO_DIR="${ISSM_DIR}/externalpackages/nco/install/bin"
+path_prepend "$NCO_DIR/bin"
+
+CPPCHECK_DIR="${ISSM_DIR}/externalpackages/cppcheck/install"
+path_append "$CPPCHECK_DIR/bin"
+
+MERCURIAL_DIR="${ISSM_DIR}/externalpackages/mercurial/install"
 if [ -d "$MERCURIAL_DIR" ]; then
 	export PYTHONPATH="$PYTHONPATH:$MERCURIAL_DIR/mercurial/pure/"
-	pathappend "$MERCURIAL_DIR"
-fi
-
-BOOST_DIR="$ISSM_DIR/externalpackages/boost/install"
-BOOSTROOT="$ISSM_DIR/externalpackages/boost/install"
+	path_append "$MERCURIAL_DIR"
+fi
+
+BOOST_DIR="${ISSM_DIR}/externalpackages/boost/install"
+BOOSTROOT="${ISSM_DIR}/externalpackages/boost/install"
 if [ -d "$BOOST_DIR" ]; then
 	export BOOSTROOT
 	export BOOST_DIR
-	libpathprepend   "$BOOST_DIR/lib"
-	dylibpathprepend "$BOOST_DIR/lib"
-	pathprepend      "$BOOST_DIR/bin"
-fi
-
-XERCESROOT="$ISSM_DIR/externalpackages/xerces/install"
-XERCESCROOT="$ISSM_DIR/externalpackages/xerces/src"
+	ld_library_path_prepend   "$BOOST_DIR/lib"
+	dyld_library_path_prepend "$BOOST_DIR/lib"
+	path_prepend      "$BOOST_DIR/bin"
+fi
+
+XERCESROOT="${ISSM_DIR}/externalpackages/xerces/install"
+XERCESCROOT="${ISSM_DIR}/externalpackages/xerces/src"
 if [ -d "$XERCESROOT" ]; then
-	export XERCESROOT 
+	export XERCESROOT
 	export XERCESCROOT
 fi
 
-XAIF_DIR="$ISSM_DIR/externalpackages/xaifbooster/xaifBooster"
-XAIFBOOSTERROOT="$ISSM_DIR/externalpackages/xaifbooster/"
-XAIFBOOSTER_HOME="$ISSM_DIR/externalpackages/xaifbooster/xaifBooster"
+XAIF_DIR="${ISSM_DIR}/externalpackages/xaifbooster/xaifBooster"
+XAIFBOOSTERROOT="${ISSM_DIR}/externalpackages/xaifbooster/"
+XAIFBOOSTER_HOME="${ISSM_DIR}/externalpackages/xaifbooster/xaifBooster"
 PLATFORM="x86-Linux"
 if [ -d "$XAIF_DIR" ]; then
@@ -195,155 +267,174 @@
 fi
 
-ANGELROOT="$ISSM_DIR/externalpackages/angel/angel"
+ANGELROOT="${ISSM_DIR}/externalpackages/angel/angel"
 if [ -d "$ANGELROOT" ]; then
 	export ANGELROOT
 fi
 
-OPENANALYSISROOT="$ISSM_DIR/externalpackages/openanalysis/install"
+OPENANALYSISROOT="${ISSM_DIR}/externalpackages/openanalysis/install"
 if [ -d "$OPENANALYSISROOT" ]; then
 	export OPENANALYSISROOT
-	libpathappend "$OPENANALYSISROOT/lib"
+	ld_library_path_append "$OPENANALYSISROOT/lib"
 fi
 
 JVM_DIR="/usr/local/gcc/4.3.2/lib64/gcj-4.3.2-9/"
-libpathappend "$JVM_DIR"
-
-BBFTP_DIR="$ISSM_DIR/externalpackages/bbftp/install"
-pathappend "$BBFTP_DIR/bin"
-
-ADIC_DIR="$ISSM_DIR/externalpackages/adic/install"
-pathappend "$ADIC_DIR/bin"
-libpathappend "$ADIC_DIR/lib"
-
-COLPACK_DIR="$ISSM_DIR/externalpackages/colpack/install"
-libpathappend "$COLPACK_DIR/lib"
-
-ECLIPSE_DIR="$ISSM_DIR/externalpackages/eclipse/install"
-pathappend "$ECLIPSE_DIR"
-
-APPSCAN_DIR="$ISSM_DIR/externalpackages/appscan/install"
-pathappend "$APPSCAN_DIR/bin"
-
-RATS_DIR="$ISSM_DIR/externalpackages/rats/install"
-pathappend "$RATS_DIR/bin"
-
-DYSON_DIR="$ISSM_DIR/externalpackages/dyson/"
-pathappend "$DYSON_DIR"
-
-CMAKE_DIR="$ISSM_DIR/externalpackages/cmake/install"
-pathprepend "$CMAKE_DIR/bin"
-
-SHAPELIB_DIR="$ISSM_DIR/externalpackages/shapelib/install"
-pathappend "$SHAPELIB_DIR/exec"
-
-CCCL_DIR="$ISSM_DIR/externalpackages/cccl/install"
-pathappend "$CCCL_DIR/bin"
-
-PACKAGEMAKER_DIR="$ISSM_DIR/externalpackages/packagemaker/install"
-pathappend "$PACKAGEMAKER_DIR"
+ld_library_path_append "$JVM_DIR"
+
+BBFTP_DIR="${ISSM_DIR}/externalpackages/bbftp/install"
+path_append "$BBFTP_DIR/bin"
+
+ADIC_DIR="${ISSM_DIR}/externalpackages/adic/install"
+path_append "$ADIC_DIR/bin"
+ld_library_path_append "$ADIC_DIR/lib"
+
+COLPACK_DIR="${ISSM_DIR}/externalpackages/colpack/install"
+ld_library_path_append "$COLPACK_DIR/lib"
+
+ECLIPSE_DIR="${ISSM_DIR}/externalpackages/eclipse/install"
+path_append "$ECLIPSE_DIR"
+
+APPSCAN_DIR="${ISSM_DIR}/externalpackages/appscan/install"
+path_append "$APPSCAN_DIR/bin"
+
+RATS_DIR="${ISSM_DIR}/externalpackages/rats/install"
+path_append "$RATS_DIR/bin"
+
+DYSON_DIR="${ISSM_DIR}/externalpackages/dyson/"
+path_append "$DYSON_DIR"
+
+CMAKE_DIR="${ISSM_DIR}/externalpackages/cmake/install"
+path_prepend "$CMAKE_DIR/bin"
+
+SHAPELIB_DIR="${ISSM_DIR}/externalpackages/shapelib/install"
+path_append "$SHAPELIB_DIR/exec"
+
+CCCL_DIR="${ISSM_DIR}/externalpackages/cccl/install"
+path_append "$CCCL_DIR/bin"
+
+PACKAGEMAKER_DIR="${ISSM_DIR}/externalpackages/packagemaker/install"
+path_append "$PACKAGEMAKER_DIR"
 
 #android-dev-dir
-export ANDROID_DIR="$ISSM_DIR/externalpackages/android"
+export ANDROID_DIR="${ISSM_DIR}/externalpackages/android"
 
 export ANDROID_NDK_DIR="$ANDROID_DIR/android-ndk/install"
-pathappend "$ANDROID_NDK_DIR/arm-linux-android-install/bin"
+path_append "$ANDROID_NDK_DIR/arm-linux-android-install/bin"
 
 export ANDROID_SDK_DIR="$ANDROID_DIR/android-sdk/install"
-pathappend "$ANDROID_SDK_DIR/"
-
-GSL_DIR="$ISSM_DIR/externalpackages/gsl/install"
-libpathappend "$GSL_DIR/lib"
-
-GMAKE_DIR="$ISSM_DIR/externalpackages/gmake/install"
-pathprepend "$GMAKE_DIR/bin"
-
-MODELE_DIR="$ISSM_DIR/externalpackages/modelE/install"
-pathappend "$MODELE_DIR/src/exec"
-
-GIT_DIR="$ISSM_DIR/externalpackages/git/install"
-pathprepend "$GIT_DIR/bin"
-
-NCVIEW_DIR="$ISSM_DIR/externalpackages/ncview/install"
-pathappend "$NCVIEW_DIR"
-
-TCLX_DIR="$ISSM_DIR/externalpackages/tclx/install/lib/tclx8.4"
-libpathappend "$TCLX_DIR"
-
-ASPELL_DIR="$ISSM_DIR/externalpackages/aspell/install"
-pathappend "$ASPELL_DIR/bin"
-
-HDF5_DIR="$ISSM_DIR/externalpackages/hdf5/install"
-dylibpathappend "$HDF5_DIR/lib"
-libpathappend "$HDF5_DIR/lib"
-if [ -d "$HDF5_DIR" ]; then
-	export LIBRARY_PATH="$LIBRARY_PATH:$HDF5_DIR/lib"
-	export C_INCLUDE_PATH="$C_INCLUDE_PATH:$HDF5_DIR/include"
-fi
-
-NETCDF_DIR="$ISSM_DIR/externalpackages/netcdf/install"
-pathappend "$NETCDF_DIR/bin"
-dylibpathappend "$NETCDF_DIR/lib"
-libpathappend "$NETCDF_DIR/lib"
-if [ -d "$NETCDF_DIR" ]; then
-	export LIBRARY_PATH="$LIBRARY_PATH:$NETCDF_DIR/lib"
-	dylibpathappend "$NETCDF_DIR/lib"
-	libpathappend "$NETCDF_DIR/lib"
-	export C_INCLUDE_PATH="$C_INCLUDE_PATH:$NETCDF_DIR/include"
-fi
-
-NETCDF_CXX_DIR="$ISSM_DIR/externalpackages/netcdf-cxx/install"
-libpathappend "$NETCDF_CXX_DIR/lib"
-
-SVN_DIR="$ISSM_DIR/externalpackages/svn/install"
-pathprepend   "$SVN_DIR/bin"
-libpathappend "$SVN_DIR/lib"
-
-CVS_DIR="$ISSM_DIR/externalpackages/cvs/install"
-pathprepend   "$CVS_DIR/bin"
-
-APR_DIR="$ISSM_DIR/externalpackages/apr/install"
-pathappend    "$APR_DIR/bin"
-libpathappend "$APR_DIR/lib"
-
-APR_UTIL_DIR="$ISSM_DIR/externalpackages/apr-util/install"
-pathappend   "$APR_UTIL_DIR/bin:$PATH"
-libpathappend "$APR_UTIL_DIR/lib"
-
-SQLITE_DIR="$ISSM_DIR/externalpackages/sqlite/install"
-pathappend   "$SQLITE_DIR/bin"
-libpathappend "$SQLITE_DIR/lib"
-
-YAMS_DIR="$ISSM_DIR/externalpackages/yams/install"
-pathappend   "$YAMS_DIR"
-
-SWIG_DIR="$ISSM_DIR/externalpackages/swig/install"
-pathappend   "$SWIG_DIR"
+path_append "$ANDROID_SDK_DIR/"
+
+GSL_DIR="${ISSM_DIR}/externalpackages/gsl/install"
+ld_library_path_append "$GSL_DIR/lib"
+
+GMAKE_DIR="${ISSM_DIR}/externalpackages/gmake/install"
+path_prepend "$GMAKE_DIR/bin"
+
+MODELE_DIR="${ISSM_DIR}/externalpackages/modelE/install"
+path_append "$MODELE_DIR/src/exec"
+
+NCVIEW_DIR="${ISSM_DIR}/externalpackages/ncview/install"
+path_append "$NCVIEW_DIR"
+
+TCLX_DIR="${ISSM_DIR}/externalpackages/tclx/install/lib/tclx8.4"
+ld_library_path_append "$TCLX_DIR"
+
+ASPELL_DIR="${ISSM_DIR}/externalpackages/aspell/install"
+path_append "$ASPELL_DIR/bin"
+
+HDF5_DIR="${ISSM_DIR}/externalpackages/hdf5/install"
+if [ -d "${HDF5_DIR}" ]; then
+	c_include_path_append "${C_INCLUDE_PATH}:${HDF5_DIR}/include"
+	library_path_append "${LIBRARY_PATH}:${HDF5_DIR}/lib"
+	dyld_library_path_append "${HDF5_DIR}/lib"
+	ld_library_path_append "${HDF5_DIR}/lib"
+fi
+
+NETCDF_DIR="${ISSM_DIR}/externalpackages/netcdf/install"
+if [ -d "${NETCDF_DIR}" ]; then
+	c_include_path_append "${C_INCLUDE_PATH}:${NETCDF_DIR}/include"
+	library_path_append "${LIBRARY_PATH}:${NETCDF_DIR}/lib"
+	path_append "${NETCDF_DIR}/bin"
+	dyld_library_path_append "${NETCDF_DIR}/lib"
+	ld_library_path_append "${NETCDF_DIR}/lib"
+fi
+
+NETCDF_CXX_DIR="${ISSM_DIR}/externalpackages/netcdf-cxx/install"
+if [ -d "${NETCDF_CXX_DIR}" ]; then
+	ld_library_path_append "${NETCDF_CXX_DIR}/lib"
+fi
+
+SQLITE_DIR="${ISSM_DIR}/externalpackages/sqlite/install"
+if [ -d "${SQLITE_DIR}" ]; then
+	path_append   "${SQLITE_DIR}/bin"
+	ld_library_path_append "${SQLITE_DIR}/lib"
+fi
+
+PROJ4_DIR="${ISSM_DIR}/externalpackages/proj.4/install"
+if [ -d "${PROJ4_DIR}" ]; then
+	dyld_library_path_prepend "${PROJ4_DIR}/lib"
+	ld_library_path_prepend "${PROJ4_DIR}/lib"
+fi
+
+PROJ_DIR="${ISSM_DIR}/externalpackages/proj/install"
+if [ -d "${PROJ_DIR}" ]; then
+	dyld_library_path_prepend "${PROJ_DIR}/lib"
+	ld_library_path_prepend "${PROJ_DIR}/lib"
+fi
+
+GDAL_DIR="${ISSM_DIR}/externalpackages/gdal/install"
+if [ -d "${GDAL_DIR}" ]; then
+	path_prepend "${GDAL_DIR}/bin"
+	ld_library_path_append "${GDAL_DIR}/lib"
+fi
+
+GMT_DIR="${ISSM_DIR}/externalpackages/gmt/install"
+if [ -d "${GMT_DIR}" ]; then
+	export GMT_DIR
+	path_prepend   "${GMT_DIR}/bin"
+	ld_library_path_append "${GMT_DIR}/lib"
+fi
+
+GMSH_DIR="${ISSM_DIR}/externalpackages/gmsh/install"
+if [ -d "${GMSH_DIR}" ]; then
+	path_append "${ISSM_DIR}/externalpackages/gmsh/install"
+fi
+
+CVS_DIR="${ISSM_DIR}/externalpackages/cvs/install"
+path_prepend   "$CVS_DIR/bin"
+
+APR_DIR="${ISSM_DIR}/externalpackages/apr/install"
+path_append    "$APR_DIR/bin"
+ld_library_path_append "$APR_DIR/lib"
+
+APR_UTIL_DIR="${ISSM_DIR}/externalpackages/apr-util/install"
+path_append   "$APR_UTIL_DIR/bin:$PATH"
+ld_library_path_append "$APR_UTIL_DIR/lib"
+
+YAMS_DIR="${ISSM_DIR}/externalpackages/yams/install"
+path_append   "$YAMS_DIR"
+
+SWIG_DIR="${ISSM_DIR}/externalpackages/swig/install"
+path_append   "$SWIG_DIR"
 
 #AUX-CONFIG
-pathappend   "$ISSM_DIR/aux-config"
+path_append   "${ISSM_DIR}/aux-config"
 
 #INISHELL
-pathappend   "$ISSM_DIR/externalpackages/inishell/install"
+path_append   "${ISSM_DIR}/externalpackages/inishell/install"
 
 #SHELL2JUNIT
-pathappend   "$ISSM_DIR/externalpackages/shell2junit/install"
+path_append   "${ISSM_DIR}/externalpackages/shell2junit/install"
 
 #EXPAT
-libpathprepend   "$ISSM_DIR/externalpackages/expat/install"
-dylibpathprepend   "$ISSM_DIR/externalpackages/expat/install"
-
-#GMSH
-pathappend   "$ISSM_DIR/externalpackages/gmsh/install"
+ld_library_path_prepend   "${ISSM_DIR}/externalpackages/expat/install"
+dyld_library_path_prepend   "${ISSM_DIR}/externalpackages/expat/install"
 
 #CURL
-libpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
-dylibpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
-pathprepend "$ISSM_DIR/externalpackages/curl/install/bin"
-
-#GMT
-pathprepend "$ISSM_DIR/externalpackages/gmt/install/bin"
+ld_library_path_prepend   "${ISSM_DIR}/externalpackages/curl/install/lib"
+dyld_library_path_prepend   "${ISSM_DIR}/externalpackages/curl/install/lib"
+path_prepend "${ISSM_DIR}/externalpackages/curl/install/bin"
 
 #NEOPZ
-NEOPZ_DIR="$ISSM_DIR/externalpackages/neopz/install"
+NEOPZ_DIR="${ISSM_DIR}/externalpackages/neopz/install"
 if [ -d "$NEOPZ_DIR" ]; then
 	export REFPATTERNDIR="$NEOPZ_DIR/include/refpatterns"
Index: /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-netcdf.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-netcdf.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-netcdf.sh	(revision 24321)
@@ -0,0 +1,37 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="3.0.2"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/gdal-${VER}.tar.gz" "gdal-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gdal-$VER.tar.gz
+
+# Move source into 'src' directory
+mv gdal-$VER/* src
+rm -rf gdal-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/gdal/install" \
+	--with-proj="${PROJ_ROOT}"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python-netcdf.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python-netcdf.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python-netcdf.sh	(revision 24321)
@@ -0,0 +1,42 @@
+#!/bin/bash
+set -eu
+
+
+## TODO
+#	- May want to supply path to Python instead of, effectively, using result of `which python`
+#
+
+## Constants
+#
+VER="3.0.2"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/gdal-${VER}.tar.gz" "gdal-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gdal-$VER.tar.gz
+
+# Move source into 'src' directory
+mv gdal-$VER/* src
+rm -rf gdal-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/gdal/install" \
+	--with-python \
+	--with-proj="${PROJ_ROOT}"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64-python.sh	(revision 24321)
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -eu
+
+
+## TODO
+#	- May want to supply path to Python instead of, effectively, using result of `which python`
+#
+
+## Constants
+#
+VER="3.0.2"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/gdal-${VER}.tar.gz" "gdal-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gdal-$VER.tar.gz
+
+# Move source into 'src' directory
+mv gdal-$VER/* src
+rm -rf gdal-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/gdal/install" \
+	--with-python \
+	--without-hdf5 \
+	--without-netcdf \
+	--with-proj="${PROJ_ROOT}"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/gdal/install-3.0-macOS_64.sh	(revision 24321)
@@ -0,0 +1,39 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="3.0.2"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/gdal-${VER}.tar.gz" "gdal-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gdal-$VER.tar.gz
+
+# Move source into 'src' directory
+mv gdal-$VER/* src
+rm -rf gdal-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/gdal/install" \
+	--without-hdf5 \
+	--without-netcdf \
+	--with-proj="${PROJ_ROOT}"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gmsh/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install.sh	(revision 24320)
+++ /issm/trunk-jpl/externalpackages/gmsh/install.sh	(revision 24321)
@@ -2,4 +2,7 @@
 set -eu
 
+
+## Constants
+#
 VER="3.0.5"
 
@@ -24,11 +27,14 @@
 	-DENABLE_MPI=1
 
-# Compile
+# Compile and install
 if [ $# -eq 0 ]; then
 	make
+	make install
 else
 	make -j $1
+	make -j $1 install
 fi
 
-# Install
-make install
+# Return to initial directory
+cd ..
+
Index: /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake	(revision 24320)
+++ /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake	(revision 24321)
@@ -103,5 +103,5 @@
 
 # Set path to DCW Digital Chart of the World for GMT [auto]:
-#set (DCW_ROOT "dcw-gmt_path")
+#set (DCW_ROOT "$ENV{ISSM_DIR}/externalpackages/dcw/install")
 
 # Copy DCW files to $/dcw [FALSE]:
@@ -141,8 +141,8 @@
 # Enable building of shared libraries [TRUE] (disable to use static libraries;
 # not recommended):
-#set (BUILD_SHARED_LIBS FALSE)
+#set (BUILD_SHARED_LIBS TRUE)
 
 # Build GMT shared lib with supplemental modules [TRUE]:
-#set (BUILD_SUPPLEMENTS FALSE)
+#set (BUILD_SUPPLEMENTS TRUE)
 
 ##
Index: /issm/trunk-jpl/externalpackages/gmt/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/install.sh	(revision 24320)
+++ /issm/trunk-jpl/externalpackages/gmt/install.sh	(revision 24321)
@@ -2,25 +2,33 @@
 set -eu
 
-#Erase install
-rm -rf install  src gmt
 
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/gmt-5.1.1.tar.gz' 'gmt-5.1.1.tar.gz'
+# Constants
+#
+VER="5.1.1"
 
-#install directory
-mkdir src
-tar -zxvf gmt-5.1.1.tar.gz 
-mv gmt-5.1.1/* src
-rm -rf gmt-5.1.1
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmt-${VER}.tar.gz" "gmt-${VER}.tar.gz"
 
-#configure: 
-cp configs/ConfigUser.cmake ./src/cmake
+# Unpack source
+tar -zxvf gmt-$VER.tar.gz
 
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv gmt-$VER/* src
+rm -rf gmt-$VER
+
+# Copy source customizations
+cp configs/ConfigUser.cmake src/cmake
+
+# Configure
 cd src
 mkdir build
 cd build
-cmake ../
+cmake ..
 
-#compile
+# Install
 if [ $# -eq 0 ]; then
 	make install
@@ -29,4 +37,4 @@
 fi
 
-#come back: 
-cd ../../
+# Return to initial directory
+cd ../..
Index: /issm/trunk-jpl/externalpackages/gshhg/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gshhg/install.sh	(revision 24320)
+++ /issm/trunk-jpl/externalpackages/gshhg/install.sh	(revision 24321)
@@ -2,15 +2,18 @@
 set -eu
 
-rm -rf gssh-gmt-2.3.4.tar.gz  src install
 
-#get gssh database from noaa's website:  http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html
-#curl http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/gshhg-gmt-2.3.4.tar.gz > gshhg-gmt-2.3.4.tar.gz
+## Constants
+#
+VER="2.3.4"
 
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/gshhg-gmt-2.3.4.tar.gz' 'gshhg-gmt-2.3.4.tar.gz'
+# Cleanup
+rm -rf install
 
-#untar: 
-tar -zxvf gshhg-gmt-2.3.4.tar.gz 
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gshhg-gmt-${VER}.tar.gz" "gshhg-gmt-${VER}.tar.gz"
 
-#move: 
-mv gshhg-gmt-2.3.4 install
+# Unpack source
+tar -zxvf gshhg-gmt-${VER}.tar.gz
+
+# Install
+mv gshhg-gmt-${VER} install
Index: /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel-with_tests.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel-with_tests.sh	(revision 24321)
@@ -0,0 +1,43 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="1.10.5"
+
+## Environnment
+#
+export CC=mpicc
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/hdf5-${VER}.tar.gz" "hdf5-${VER}.tar.gz"
+
+# Untar source
+tar -zxvf hdf5-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv hdf5-$VER/* src/
+rm -rf hdf5-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/hdf5/install" \
+	--enable-parallel
+
+# Compile, test, and install
+#
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/hdf5/install-1.10-parallel.sh	(revision 24321)
@@ -0,0 +1,41 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="1.10.5"
+
+## Environnment
+#
+export CC=mpicc
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/hdf5-${VER}.tar.gz" "hdf5-${VER}.tar.gz"
+
+# Untar source
+tar -zxvf hdf5-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv hdf5-$VER/* src/
+rm -rf hdf5-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/hdf5/install" \
+	--enable-parallel
+
+# Compile and install
+#
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/hdf5/install-1.10-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/hdf5/install-1.10-with_tests.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/hdf5/install-1.10-with_tests.sh	(revision 24321)
@@ -0,0 +1,38 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="1.10.5"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/hdf5-${VER}.tar.gz" "hdf5-${VER}.tar.gz"
+
+# Untar source
+tar -zxvf hdf5-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv hdf5-$VER/* src/
+rm -rf hdf5-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Compile, test, and install
+#
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/hdf5/install-1.10.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/hdf5/install-1.10.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/hdf5/install-1.10.sh	(revision 24321)
@@ -0,0 +1,36 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="1.10.5"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/hdf5-${VER}.tar.gz" "hdf5-${VER}.tar.gz"
+
+# Untar source
+tar -zxvf hdf5-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv hdf5-$VER/* src/
+rm -rf hdf5-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Compile and install
+#
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/mpich/install-3.3-macOS_64.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/mpich/install-3.3-macOS_64.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/mpich/install-3.3-macOS_64.sh	(revision 24321)
@@ -0,0 +1,39 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="3.3"
+
+# Cleanup
+rm -rf src install
+mkdir src install
+
+#Download from ISSM server
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/mpich-${VER}.tar.gz" "mpich-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf  mpich-$VER.tar.gz
+
+# Move source into 'src' directory
+mv mpich-$VER/* src
+rm -rf mpich-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/mpich/install" \
+	--enable-shared
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Return to initial directory
+cd ..
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh	(revision 24321)
@@ -0,0 +1,56 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - MPI implementation (for parallel I/O support)
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+
+# Constants
+#
+VER="4.7.2"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Environment
+#
+export CC=mpicc
+export CPPFLAGS="-I${HDF5_ROOT}/include"
+export LDFLAGS="-L${HDF5_ROOT}/lib"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+ 	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+ 	--disbable-shared \
+ 	--enable-parallel-tests \
+ 	--disable-doxygen
+
+# Compile, test, and install
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh	(revision 24321)
@@ -0,0 +1,53 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - MPI implementation (for parallel I/O support)
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+
+# Constants
+#
+VER="4.7.2"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Environment
+#
+export CC=mpicc
+export CPPFLAGS="-I${HDF5_ROOT}/include"
+export LDFLAGS="-L${HDF5_ROOT}/lib"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+ 	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+ 	--disbable-shared \
+ 	--disable-doxygen
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh	(revision 24321)
@@ -0,0 +1,52 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+
+# Constants
+#
+VER="4.7.2"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Environment
+#
+export CPPFLAGS="-I${HDF5_ROOT}/include"
+export LDFLAGS="-L${HDF5_ROOT}/lib"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+ 	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+ 	--disable-doxygen
+
+# Compile, test, and install
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh	(revision 24321)
@@ -0,0 +1,50 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+
+# Constants
+#
+VER="4.7.2"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
+
+# Environment
+#
+export CPPFLAGS="-I${HDF5_ROOT}/include"
+export LDFLAGS="-L${HDF5_ROOT}/lib"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+ 	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+ 	--disable-doxygen
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64-with_tests.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64-with_tests.sh	(revision 24321)
@@ -0,0 +1,41 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="6.2.1"
+
+## Environnment
+#
+export SQLITE3_LIBS="-lsqlite3" # SQLite3 ships with macOS
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/proj-${VER}.tar.gz" "proj-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf proj-$VER.tar.gz
+
+# Move source into 'src' directory
+mv proj-$VER/* src
+rm -rf proj-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/proj/install"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64.sh	(revision 24321)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2-macOS_64.sh	(revision 24321)
@@ -0,0 +1,39 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="6.2.1"
+
+## Environnment
+#
+export SQLITE3_LIBS="-lsqlite3" # SQLite3 ships with macOS
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/proj-${VER}.tar.gz" "proj-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf proj-$VER.tar.gz
+
+# Move source into 'src' directory
+mv proj-$VER/* src
+rm -rf proj-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/proj/install"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/sqlite/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/sqlite/install.sh	(revision 24320)
+++ /issm/trunk-jpl/externalpackages/sqlite/install.sh	(revision 24321)
@@ -2,29 +2,32 @@
 set -eu
 
-#Some cleanup
-rm -rf src
-rm -rf install
-rm -rf sqlite-autoconf-3071300
-mkdir src install
 
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/sqlite-autoconf-3071300.tar.gz' 'sqlite-autoconf-3071300.tar.gz'
+VER="3300100"
 
-#Untar 
-tar -zxvf  sqlite-autoconf-3071300.tar.gz
+# Cleanup
+rm -rf install src
+mkdir install src
 
-#Move sqlite-autoconf into src directory
-mv sqlite-autoconf-3071300/* src
-rm -rf sqlite-autoconf-3071300
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/sqlite-autoconf-${VER}.tar.gz" "sqlite-autoconf-${VER}.tar.gz"
 
-#Configure sqlite-autoconf
+# Unpack source
+tar -zxvf sqlite-autoconf-$VER.tar.gz
+
+# Move source into 'src' directory
+mv sqlite-autoconf-$VER/* src
+rm -rf sqlite-autoconf-$VER
+
+# Configure
 cd src
-./configure  --prefix="$ISSM_DIR/externalpackages/sqlite/install" 
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/sqlite/install"
 
-#Compile and install sqlite-autoconf
+# Compile and install
 if [ $# -eq 0 ]; then
 	make
+	make install
 else
 	make -j $1
+	make -j $1 install
 fi
-make install
Index: /issm/trunk-jpl/jenkins/jenkins.sh
===================================================================
--- /issm/trunk-jpl/jenkins/jenkins.sh	(revision 24320)
+++ /issm/trunk-jpl/jenkins/jenkins.sh	(revision 24321)
@@ -35,9 +35,9 @@
 fi
 
-#Defaults (to avoid -eq: unary operator expected)
-EXAMPLES_TEST=0
+# Initialize test suite variables (to avoid "-eq: unary operator expected")
 MATLAB_TEST=0
 PYTHON_TEST=0
 JAVASCRIPT_TEST=0
+EXAMPLES_TEST=0
 
 #source configuration script
@@ -432,9 +432,9 @@
 		if [ -d "${dir}" ];
 		then
-		# Some of the examples are incomplete (on purpose). As such, we will have to populate the
-		# missing steps in order to make sure that everything is working.
+		# Some of the examples are incomplete (on purpose). As such, we will
+		# have to populate the missing steps in order to make sure that
+		# everything is working.
 			echo "Testing directory example: $(basename $dir)"
 
-			# Greenland is missing step 8
 			if [ -z "$SED" ];
 			then
@@ -446,47 +446,48 @@
 			if [ "${dir}" == "./Greenland" ];
 			then
+				# Greenland is missing step 8
 				STEP_EIGHT="\n	disp('   Step 8: Plotting exercise');\n	md = loadmodel('.\/Models\/Greenland.HistoricTransient');\n	figure\n	surfmb=[]; for i=2:201; surfmb=[surfmb ...\n		md.results.TransientSolution(i).SmbMassBalance]; end\n	subplot(3,1,1); plot([1:200],mean(surfmb));\n	title('Mean Surface mass balance');\n	vel=[]; for i=2:201; vel=[vel md.results.TransientSolution(i).Vel]; end\n	subplot(3,1,2); plot([1:200],mean(vel));\n	title('Mean Velocity');\n	volume=[]; for i=2:201; volume=[volume md.results.TransientSolution(i).IceVolume]; end\n	subplot(3,1,3); plot([1:200],volume);\n	title('Ice Volume'); xlabel('years');"
 
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:8\];\n\ntry\n/' $FILE
-				$SED -i.bak "s/if any(steps==8)/&${STEP_EIGHT}/" $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:8\];\n\ntry\n/' $FILE
+				$SED -i .bak "s/if any(steps==8)/&${STEP_EIGHT}/" $FILE
 			elif [ "${dir}" == "./IceBridge" ];
 			then
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:5\];\n\ntry\n/' $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:5\];\n\ntry\n/' $FILE
 			elif [ "${dir}" == "./IceflowModels" ];
 			then
 				# Almost nothing to this example
-				$SED -i.bak '1 s/^.*$/try\n\n&/' $FILE
+				$SED -i .bak '1 s/^.*$/try\n\n&/' $FILE
 			elif [ "${dir}" == "./ISMIP" ];
 			then
 				# Eight steps... none of which are implmented in the script...
-				$SED -i.bak '1 s/^.*$/try\n\n&/' $FILE
+				$SED -i .bak '1 s/^.*$/try\n\n&/' $FILE
 			elif [ "${dir}" == "./Inversion" ];
 			then
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
 			elif [ "${dir}" == "./Jakobshavn" ];
 			then
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
 			elif [ "${dir}" == "./Jakobshavn" ];
 			then
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
 			elif [ "${dir}" == "./Pig" ];
 			then
 				# Step 6 is needed
 				STEP_SIX="\n disp('Needs work!')"
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:7\];\n!mv DomainOutline.bkp DomainOutline.exp;\n\ntry\n/' $FILE
-				$SED -i.bak "s/if any(steps==6)/&${STEP_SIX}/" $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:7\];\n!mv DomainOutline.bkp DomainOutline.exp;\n\ntry\n/' $FILE
+				$SED -i .bak "s/if any(steps==6)/&${STEP_SIX}/" $FILE
 			elif [ "${dir}" == "./PigSensitivity" ];
 			then
 				# Step 4 is needed
 				STEP_FOUR="\n disp('Needs work!')"
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
-				$SED -i.bak "s/if any(steps==6)/&${STEP_FOUR}/" $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:4\];\n\ntry\n/' $FILE
+				$SED -i .bak "s/if any(steps==6)/&${STEP_FOUR}/" $FILE
 			elif [ "${dir}" == "./SquareIceShelf" ];
 			then
 				# Almost nothing to this example
-				$SED -i.bak '1 s/^.*$/try\n\n&/' $FILE
+				$SED -i .bak '1 s/^.*$/try\n\n&/' $FILE
 			elif [ "${dir}" == "./UncertaintyQuantification" ];
 			then
-				$SED -i.bak 's/steps=\[1\];/steps=\[1:7\];\n\ntry\n/' $FILE
+				$SED -i .bak 's/steps=\[1\];/steps=\[1:7\];\n\ntry\n/' $FILE
 			elif [ "${dir}" == "./Data" ];
 			then
@@ -494,5 +495,5 @@
 			else
 				echo "Not implemented yet!"
-				$SED -i.bak '1 s/^.*$/try\n\n&/' $FILE
+				$SED -i .bak '1 s/^.*$/try\n\n&/' $FILE
 			fi
 
@@ -573,5 +574,5 @@
 then
 	# Inexplicably, there are backspace chars in the error output that are causing issues
-	$SED -i.bak 's///g' matlab_log_examples.log
+	$SED -i .bak 's///g' matlab_log_examples.log
 
 	numtests=`cat matlab_log_examples.log  | grep "starting: " | wc -l`
Index: /issm/trunk-jpl/jenkins/macosx_pine-island_examples
===================================================================
--- /issm/trunk-jpl/jenkins/macosx_pine-island_examples	(revision 24320)
+++ /issm/trunk-jpl/jenkins/macosx_pine-island_examples	(revision 24321)
@@ -1,28 +1,30 @@
-
 #-------------------------------#
 # 1: ISSM general configuration #
 #-------------------------------#
 
-#MATLAB path
+# MATLAB path
 MATLAB_PATH="/Applications/MATLAB_R2015b.app"
 
-#ISSM CONFIGURATION
-ISSM_CONFIG='--prefix=$ISSM_DIR \
+# ISSM CONFIGURATION
+ISSM_CONFIG='\
+	--prefix=$ISSM_DIR \
 	--with-matlab-dir=$MATLAB_PATH \
+	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include \
+	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpi" \
+	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpi" \
-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
-	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
 	--with-numthreads=4 \
 	--enable-debugging \
-	--enable-development'
+	--enable-development \
+'
 
-#PYTHON and MATLAB testing
+# Test suites
 MATLAB_TEST=0
 PYTHON_TEST=0
+JAVASCRIPT_TEST=0
 EXAMPLES_TEST=1
 
@@ -31,12 +33,21 @@
 #-----------------------------------#
 
-#List of external pakages to be installed and their installation scripts
-EXTERNALPACKAGES="autotools    install.sh
-						cmake        install.sh
-						mpich        install-3.2-macosx64.sh
-						m1qn3        install.sh
-						petsc        install-3.7-macosx64.sh
-						triangle     install-macosx64.sh
-						shell2junit  install.sh"
+# List of external pakages to be installed and their installation scripts
+EXTERNALPACKAGES="
+	autotools	install.sh
+	cmake		install.sh
+	mpich		install-3.3-macOS_64.sh
+	m1qn3		install.sh
+	petsc		install-3.7-macosx64.sh
+	triangle	install-macosx64.sh
+	hdf5		install-1.10.sh
+	netcdf		install-4.7.sh
+	proj		install-6.2-macOS_64.sh
+	gdal		install-3.0-macOS_64-netcdf.sh
+	gshhg		install.sh
+	gmt			install.sh
+	gmsh		install.sh
+	shell2junit	install.sh
+"
 
 #-----------------#
@@ -44,5 +55,8 @@
 #-----------------#
 
-#number of cpus used in ISSM installation and compilation (one is usually
-#safer as some packages are very sensitive to parallel compilation)
-NUMCPUS_INSTALL=4
+# Number of CPUs used in ISSM compilation
+#
+# NOTE: One is usually safer as some packages are very sensitive to parallel
+#       compilation.
+#
+NUMCPUS_INSTALL=10
