Index: /issm/trunk-jpl/etc/environment.sh
===================================================================
--- /issm/trunk-jpl/etc/environment.sh	(revision 24465)
+++ /issm/trunk-jpl/etc/environment.sh	(revision 24466)
@@ -444,2 +444,5 @@
 	export REFPATTERNDIR="$NEOPZ_DIR/include/refpatterns"
 fi
+
+TRIANGLE_DIR="${ISSM_DIR}/externalpackages/triangle/install"
+ld_library_path_append "${TRIANGLE_DIR}/lib"
Index: /issm/trunk-jpl/externalpackages/triangle/configs/linux/configure.make
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/linux/configure.make	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/linux/configure.make	(revision 24466)
@@ -0,0 +1,5 @@
+CC=gcc
+CSWITCHES= $(CFLAGS) -DNO_TIMER -fpic
+TRILIBDEFS= -DTRILIBRARY
+SHARED_LIB_EXT=so
+OBJ_EXT=o
Index: /issm/trunk-jpl/externalpackages/triangle/configs/mac/configure.make
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/mac/configure.make	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/mac/configure.make	(revision 24466)
@@ -0,0 +1,6 @@
+CC=clang
+CSWITCHES= $(CFLAGS) -DNO_TIMER -fpic
+TRILIBDEFS= -DTRILIBRARY
+PREFIX=${ISSM_DIR}/externalpackages/triangle/install
+SHARED_LIB_EXT=dylib
+OBJ_EXT=o
Index: /issm/trunk-jpl/externalpackages/triangle/install-javascript.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-javascript.sh	(revision 24465)
+++ /issm/trunk-jpl/externalpackages/triangle/install-javascript.sh	(revision 24466)
@@ -8,5 +8,10 @@
 #
 
+# Constants
+#
+INSTALL_DIR="install-javascript"
+
 # Environment
+#
 export CC=emcc
 export CXX=em++
@@ -17,27 +22,30 @@
 
 # Source Emscripten environment
-source $ISSM_DIR/externalpackages/emscripten/install/emsdk_env.sh
+source ${ISSM_DIR}/externalpackages/emscripten/install/emsdk_env.sh
 
-#Some cleanup
-rm -rf install-javascript triangle
-mkdir install-javascript
+# Cleanup
+rm -rf ${INSTALL_DIR} src
+mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/share src
 
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/triangle.zip' 'triangle.zip'
+# Download source
+${ISSM_DIR}/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
 
-#Untar
-cd install-javascript
-cp ../triangle.zip ./
-unzip triangle.zip
+# Unpack source
+unzip triangle.zip -d src
 
-#copy new makefile
-cp ../configs/javascript/configure.make ./
-cp ../configs/javascript/makefile ./
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/javascript/configure.make src
+cp configs/javascript/triangle.h src
 
-#Patch triangle.h
-patch triangle.h ../triangle.h.patch.js
+# Compile
+cd src
+make objects
 
-#Compile triangle
-make
+# Install
+cd ..
+cp src/triangle.o ${INSTALL_DIR}/share
+cp src/triangle.h ${INSTALL_DIR}/include
 
-
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/externalpackages/triangle/install-linux-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-linux-static.sh	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/install-linux-static.sh	(revision 24466)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+INSTALL_DIR="install"
+
+# Cleanup
+rm -rf ${INSTALL_DIR} src
+mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/linux/configure.make src
+
+# Compile
+cd src
+make static
+
+# Install
+cd ..
+cp src/libtriangle.* ${INSTALL_DIR}/lib
+cp src/triangle.h ${INSTALL_DIR}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/externalpackages/triangle/install-linux.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-linux.sh	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/install-linux.sh	(revision 24466)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+INSTALL_DIR="install"
+
+# Cleanup
+rm -rf ${INSTALL_DIR} src
+mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/linux/configure.make src
+
+# Compile
+cd src
+make shared
+
+# Install
+cd ..
+cp src/libtriangle.* ${INSTALL_DIR}/lib
+cp src/triangle.h ${INSTALL_DIR}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh	(revision 24466)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+INSTALL_DIR="install"
+
+# Cleanup
+rm -rf ${INSTALL_DIR} src
+mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/mac/configure.make src
+
+# Compile
+cd src
+make static
+
+# Install
+cd ..
+cp src/libtriangle.* ${INSTALL_DIR}/lib
+cp src/triangle.h ${INSTALL_DIR}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/externalpackages/triangle/install-mac.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-mac.sh	(revision 24466)
+++ /issm/trunk-jpl/externalpackages/triangle/install-mac.sh	(revision 24466)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+INSTALL_DIR="install"
+
+# Cleanup
+rm -rf ${INSTALL_DIR} src
+mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/mac/configure.make src
+
+# Compile
+cd src
+make shared
+
+# Install
+cd ..
+cp src/libtriangle.* ${INSTALL_DIR}/lib
+cp src/triangle.h ${INSTALL_DIR}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 24465)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 24466)
@@ -372,4 +372,7 @@
 
   dnl Check whether triangle is enabled
+  dnl TODO: After discussing with group, uncomment the following lines to
+  dnl		replace the existing ones (where applicable), update Jenkins config
+  dnl		files, then cleanup $ISSM_DIR/externalpackages/triangle.
 	AC_MSG_CHECKING([for triangle])
 	if test "x$TRIANGLE_ROOT" = "xno" ; then
@@ -383,4 +386,7 @@
 			AC_MSG_ERROR([Couldn't find triangle.h... check your installation of triangle])
 		fi
+		dnl if ! test -f "${TRIANGLE_ROOT}/include/triangle.h" ; then
+			dnl AC_MSG_ERROR([Couldn't find triangle.h... check your installation of triangle])
+		dnl fi
 	fi
 	AC_MSG_RESULT($HAVE_TRIANGLE)
@@ -389,27 +395,32 @@
 	dnl library and header files
 	if test "x$HAVE_TRIANGLE" = "xyes"; then
-		TRIANGLEINCL=-I$TRIANGLE_ROOT/
+		TRIANGLEINCL=-I${TRIANGLE_ROOT}
+		dnl TRIANGLEINCL=-I${TRIANGLE_ROOT}/include
 		case "${host_os}" in
-				*cygwin*)
-				TRIANGLEINCL="/I`cygpath -m $TRIANGLE_ROOT/`"
-				TRIANGLELIB="-Wl,`cygpath -m $TRIANGLE_ROOT/`triangle.lib"
-				;;
-				*linux*)
-				if test "x$HAVE_JAVASCRIPT" = "xyes"; then
-					dnl go to the bit code, not the library.
-					TRIANGLELIB=$TRIANGLE_ROOT/triangle.o
-				else
-					TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
-				fi
-				;;
-				*darwin*)
-				if test "x$HAVE_JAVASCRIPT" = "xyes"; then
-					dnl go to the bit code, not the library.
-					TRIANGLELIB=$TRIANGLE_ROOT/triangle.o
-				else
-					TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
-				fi
-				;;
-			esac
+			*cygwin*)
+			TRIANGLEINCL="/I`cygpath -m $TRIANGLE_ROOT/`"
+			TRIANGLELIB="-Wl,`cygpath -m $TRIANGLE_ROOT/`triangle.lib"
+			;;
+			*linux*)
+			if test "x$HAVE_JAVASCRIPT" = "xyes"; then
+				dnl go to the bit code, not the library.
+				TRIANGLELIB=${TRIANGLE_ROOT}/triangle.o
+				dnl TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
+			else
+				TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
+				dnl TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
+			fi
+			;;
+			*darwin*)
+			if test "x$HAVE_JAVASCRIPT" = "xyes"; then
+				dnl go to the bit code, not the library.
+				TRIANGLELIB=$TRIANGLE_ROOT/triangle.o
+				dnl TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
+			else
+				TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
+				dnl TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
+			fi
+			;;
+		esac
 		AC_DEFINE([_HAVE_TRIANGLE_],[1],[with Triangle in ISSM src])
 		AC_SUBST([TRIANGLEINCL])
