Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile	(revision 26144)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile	(revision 26145)
@@ -1,7 +1,15 @@
+ifeq "$(origin AR)" "undefined"
+	AR = ar
+endif
+
+ifeq "$(origin RANLIB)" "undefined"
+	RANLIB = ranlib
+endif
+
 DEST_DIR = 	../exec
 DEST=		${DEST_DIR}/chaco
 CC = 		gcc
 IFLAG =		-Imain
-CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -I/usr/include -Wno-implicit-function-declaration
+CFLAGS =	-fpic -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -Wno-implicit-function-declaration
 OFLAGS =	-O2
 
@@ -91,6 +99,12 @@
 
 
-${DEST}:	${FILES.o} Makefile
-		${CC} ${OFLAGS} ${FILES.o} -lm -L/lib/w32api -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -o ${DEST}
+${DEST}:	${FILES.c} chaco.a Makefile
+		${CC} ${OFLAGS} chaco.a -lm -o ${DEST}
+
+chaco.a:	${FILES.o}
+		${AR} cr $@ ${FILES.o} ; ${RANLIB} $@
+
+chacominusblas.a:	${FILESMINUSBLAS.o}
+		${AR} cr $@ ${FILESMINUSBLAS.o} ; ${RANLIB} $@
 
 lint:
Index: sm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile.patch	(revision 26144)
+++ 	(revision )
@@ -1,11 +1,0 @@
---- ./src/code/Makefile	2016-02-16 19:39:30.000000000 -0800
-+++ ./Makefile	2016-02-16 19:37:49.000000000 -0800
-@@ -6,7 +6,7 @@
- #CFLAGS =	-O2
- #OFLAGS =	-O2
- #CFLAGS =	-fPIC -fno-omit-frame-pointer -D_GNU_SOURCE -pthread -fexceptions
--CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g
-+CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -I/usr/include -Wno-implicit-function-declaration
- #CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -DMATLAB
- OFLAGS =	-O2 
- #AR =             /usr/ccs/bin/ar rcv   # for solaris 2
Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/seconds.c
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/seconds.c	(revision 26145)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/seconds.c	(revision 26145)
@@ -0,0 +1,46 @@
+/* This software was developed by Bruce Hendrickson and Robert Leland   *
+ * at Sandia National Laboratories under US Department of Energy        *
+ * contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
+
+/**
+ * NOTE: Under MSYS2 MinGW, we do not want to have to depend on the MSYS2 
+ *		 runtime for our distributable packages. Unfortunately, sys/resource.h 
+ *		 is not currently available for MinGW (standalone) targets under MSYS2. 
+ *		 this further means that,
+ *
+ *			-I/mingw64/x86_64-w64-mingw32/include
+ *
+ *		 should be included in CFLAGS, and that,
+ *
+ *			-I/usr/include
+ *
+ *		 should be avoided.
+ */
+//#include   <sys/time.h>
+//#include   <sys/resource.h>
+#include   <time.h>
+
+double    seconds()
+{
+    double    curtime;
+
+// #ifdef RUSAGE_SELF
+
+// /* This timer is faster and more robust (if it exists). */
+//     struct rusage rusage;
+//     int getrusage();
+ 
+//     getrusage(RUSAGE_SELF, &rusage);
+//     curtime = ((rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec) +
+// 	    1.0e-6 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec));
+
+// #else
+
+/* ANSI timer, but lower resolution & wraps around after ~36 minutes. */
+
+    curtime = clock()/((double) CLOCKS_PER_SEC);
+
+// #endif
+
+    return (curtime);
+}
Index: /issm/trunk-jpl/externalpackages/chaco/install-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/install-win-msys2-mingw.sh	(revision 26145)
+++ /issm/trunk-jpl/externalpackages/chaco/install-win-msys2-mingw.sh	(revision 26145)
@@ -0,0 +1,62 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER=2.2
+
+PREFIX="${ISSM_DIR}/externalpackages/chaco/install" # Set to location where external package should be installed
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir -p ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/Chaco-${VER}.tar.gz" "Chaco-${VER}.tar.gz"
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/docs/chaco_guide.pdf" "chaco_guide.pdf"
+
+# Unpack source
+tar -xvzf Chaco-${VER}.tar.gz
+
+# Move source to 'src' directory
+mv Chaco-${VER}/* src
+rm -rf Chaco-${VER}
+
+# Apply patches (all at once)
+# (written by diff -rc src ~/Libs/Chaco-${VER} > chaco.patch)
+patch -R -p0 < chaco.patch
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/win/msys2/mingw64/src/code/Makefile src/code
+cp configs/win/msys2/mingw64/src/code/main/interface.c src/code/main
+cp configs/win/msys2/mingw64/src/code/util/bail.c src/code/util
+cp configs/win/msys2/mingw64/src/code/util/seconds.c src/code/util
+
+# Compile
+cd src/code
+if [ $# -eq 0 ]; then
+	make
+else
+	make -j $1
+fi
+make chacominusblas.a
+
+# Clean up objects (but not library or executable)
+make clean
+cd ../..
+
+# Install
+cp -p src/exec/README ${PREFIX}
+cp -p src/exec/User_Params ${PREFIX}
+cp -p src/exec/*.coords ${PREFIX}
+cp -p src/exec/*.graph ${PREFIX}
+mkdir ${PREFIX}/include
+cp -p src/code/main/defs.h ${PREFIX}/include/defs.h
+cp -p src/code/main/params.h ${PREFIX}/include/params.h
+cp -p chaco.h ${PREFIX}/include/chaco.h
+mkdir ${PREFIX}/lib
+mv src/code/chaco.a ${PREFIX}/lib/libchaco.a
+mv src/code/chacominusblas.a ${PREFIX}/lib/libchacominusblas.a
+mkdir ${PREFIX}/exec
+mv src/exec/chaco ${PREFIX}/exec
Index: /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic
===================================================================
--- /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic	(revision 26144)
+++ /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic	(revision 26145)
@@ -19,4 +19,7 @@
 	--with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \
 	--with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \
+	--with-chaco-dir=${ISSM_DIR}/externalpackages/chaco/install \
+	--with-m1qn3-dir=${ISSM_DIR}/externalpackages/m1qn3/install \
+	--with-semic-dir=${ISSM_DIR}/externalpackages/semic/install \
 '
 
@@ -30,4 +33,7 @@
 	petsc		install-3.14-win-msys2-mingw-msmpi.sh
 	triangle	install-win-msys2-mingw.sh
+	chaco		install-win-msys2-mingw.sh
+	m1qn3		install.sh
+	semic		install.sh
 	shell2junit	install.sh
 "
