Index: /issm/trunk-jpl/externalpackages/triangle/configs/javascript/triangle.h.patch.js
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/javascript/triangle.h.patch.js	(revision 28016)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/javascript/triangle.h.patch.js	(revision 28016)
@@ -0,0 +1,8 @@
+250a251,257
+> /*Patch for ISSM*/
+> #ifndef REAL
+> typedef double REAL;
+> typedef void VOID;
+> #endif
+> /*End patch*/
+> 
Index: /issm/trunk-jpl/externalpackages/triangle/configs/triangle.c.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/triangle.c.patch	(revision 28016)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/triangle.c.patch	(revision 28016)
@@ -0,0 +1,244 @@
+@@ -340,6 +340,9 @@
+ 
+ #define ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333
+ 
++/* Define type large enough to handle pointer.                               */
++#define INT_PTR unsigned long long
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -938,16 +941,16 @@
+ /*   extracted from the two least significant bits of the pointer.           */
+ 
+ #define decode(ptr, otri)                                                     \
+-  (otri).orient = (int) ((unsigned long) (ptr) & (unsigned long) 3l);         \
++  (otri).orient = (int) ((INT_PTR) (ptr) & (INT_PTR) 3l);                     \
+   (otri).tri = (triangle *)                                                   \
+-                  ((unsigned long) (ptr) ^ (unsigned long) (otri).orient)
++                  ((INT_PTR) (ptr) ^ (INT_PTR) (otri).orient)
+ 
+ /* encode() compresses an oriented triangle into a single pointer.  It       */
+ /*   relies on the assumption that all triangles are aligned to four-byte    */
+ /*   boundaries, so the two least significant bits of (otri).tri are zero.   */
+ 
+ #define encode(otri)                                                          \
+-  (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient)
++  (triangle) ((INT_PTR) (otri).tri | (INT_PTR) (otri).orient)
+ 
+ /* The following handle manipulation primitives are all described by Guibas  */
+ /*   and Stolfi.  However, Guibas and Stolfi use an edge-based data          */
+@@ -1111,16 +1114,16 @@
+ 
+ #define infect(otri)                                                          \
+   (otri).tri[6] = (triangle)                                                  \
+-                    ((unsigned long) (otri).tri[6] | (unsigned long) 2l)
++                    ((INT_PTR) (otri).tri[6] | (INT_PTR) 2l)
+ 
+ #define uninfect(otri)                                                        \
+   (otri).tri[6] = (triangle)                                                  \
+-                    ((unsigned long) (otri).tri[6] & ~ (unsigned long) 2l)
++                    ((INT_PTR) (otri).tri[6] & ~ (INT_PTR) 2l)
+ 
+ /* Test a triangle for viral infection.                                      */
+ 
+ #define infected(otri)                                                        \
+-  (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l)
++  (((INT_PTR) (otri).tri[6] & (INT_PTR) 2l) != 0l)
+ 
+ /* Check or set a triangle's attributes.                                     */
+ 
+@@ -1158,16 +1161,16 @@
+ /*   are masked out to produce the real pointer.                             */
+ 
+ #define sdecode(sptr, osub)                                                   \
+-  (osub).ssorient = (int) ((unsigned long) (sptr) & (unsigned long) 1l);      \
++  (osub).ssorient = (int) ((INT_PTR) (sptr) & (INT_PTR) 1l);                  \
+   (osub).ss = (subseg *)                                                      \
+-              ((unsigned long) (sptr) & ~ (unsigned long) 3l)
++              ((INT_PTR) (sptr) & ~ (INT_PTR) 3l)
+ 
+ /* sencode() compresses an oriented subsegment into a single pointer.  It    */
+ /*   relies on the assumption that all subsegments are aligned to two-byte   */
+ /*   boundaries, so the least significant bit of (osub).ss is zero.          */
+ 
+ #define sencode(osub)                                                         \
+-  (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient)
++  (subseg) ((INT_PTR) (osub).ss | (INT_PTR) (osub).ssorient)
+ 
+ /* ssym() toggles the orientation of a subsegment.                           */
+ 
+@@ -3891,7 +3894,7 @@
+ #endif /* not ANSI_DECLARATORS */
+ 
+ {
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+ 
+   pool->items = 0;
+   pool->maxitems = 0;
+@@ -3899,11 +3902,11 @@
+   /* Set the currently active block. */
+   pool->nowblock = pool->firstblock;
+   /* Find the first item in the pool.  Increment by the size of (VOID *). */
+-  alignptr = (unsigned long) (pool->nowblock + 1);
++  alignptr = (INT_PTR) (pool->nowblock + 1);
+   /* Align the item on an `alignbytes'-byte boundary. */
+   pool->nextitem = (VOID *)
+-    (alignptr + (unsigned long) pool->alignbytes -
+-     (alignptr % (unsigned long) pool->alignbytes));
++    (alignptr + (INT_PTR) pool->alignbytes -
++     (alignptr % (INT_PTR) pool->alignbytes));
+   /* There are lots of unallocated items left in this block. */
+   pool->unallocateditems = pool->itemsfirstblock;
+   /* The stack of deallocated items is empty. */
+@@ -4008,7 +4011,7 @@
+ {
+   VOID *newitem;
+   VOID **newblock;
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+ 
+   /* First check the linked list of dead items.  If the list is not   */
+   /*   empty, allocate an item from the list rather than a fresh one. */
+@@ -4033,11 +4036,11 @@
+       pool->nowblock = (VOID **) *(pool->nowblock);
+       /* Find the first item in the block.    */
+       /*   Increment by the size of (VOID *). */
+-      alignptr = (unsigned long) (pool->nowblock + 1);
++      alignptr = (INT_PTR) (pool->nowblock + 1);
+       /* Align the item on an `alignbytes'-byte boundary. */
+       pool->nextitem = (VOID *)
+-        (alignptr + (unsigned long) pool->alignbytes -
+-         (alignptr % (unsigned long) pool->alignbytes));
++        (alignptr + (INT_PTR) pool->alignbytes -
++         (alignptr % (INT_PTR) pool->alignbytes));
+       /* There are lots of unallocated items left in this block. */
+       pool->unallocateditems = pool->itemsperblock;
+     }
+@@ -4092,16 +4095,16 @@
+ #endif /* not ANSI_DECLARATORS */
+ 
+ {
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+ 
+   /* Begin the traversal in the first block. */
+   pool->pathblock = pool->firstblock;
+   /* Find the first item in the block.  Increment by the size of (VOID *). */
+-  alignptr = (unsigned long) (pool->pathblock + 1);
++  alignptr = (INT_PTR) (pool->pathblock + 1);
+   /* Align with item on an `alignbytes'-byte boundary. */
+   pool->pathitem = (VOID *)
+-    (alignptr + (unsigned long) pool->alignbytes -
+-     (alignptr % (unsigned long) pool->alignbytes));
++    (alignptr + (INT_PTR) pool->alignbytes -
++     (alignptr % (INT_PTR) pool->alignbytes));
+   /* Set the number of items left in the current block. */
+   pool->pathitemsleft = pool->itemsfirstblock;
+ }
+@@ -4129,7 +4132,7 @@
+ 
+ {
+   VOID *newitem;
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+ 
+   /* Stop upon exhausting the list of items. */
+   if (pool->pathitem == pool->nextitem) {
+@@ -4141,11 +4144,11 @@
+     /* Find the next block. */
+     pool->pathblock = (VOID **) *(pool->pathblock);
+     /* Find the first item in the block.  Increment by the size of (VOID *). */
+-    alignptr = (unsigned long) (pool->pathblock + 1);
++    alignptr = (INT_PTR) (pool->pathblock + 1);
+     /* Align with item on an `alignbytes'-byte boundary. */
+     pool->pathitem = (VOID *)
+-      (alignptr + (unsigned long) pool->alignbytes -
+-       (alignptr % (unsigned long) pool->alignbytes));
++      (alignptr + (INT_PTR) pool->alignbytes -
++       (alignptr % (INT_PTR) pool->alignbytes));
+     /* Set the number of items left in the current block. */
+     pool->pathitemsleft = pool->itemsperblock;
+   }
+@@ -4197,16 +4200,16 @@
+ #endif /* not ANSI_DECLARATORS */
+ 
+ {
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+ 
+   /* Set up `dummytri', the `triangle' that occupies "outer space." */
+   m->dummytribase = (triangle *) trimalloc(trianglebytes +
+                                            m->triangles.alignbytes);
+   /* Align `dummytri' on a `triangles.alignbytes'-byte boundary. */
+-  alignptr = (unsigned long) m->dummytribase;
++  alignptr = (INT_PTR) m->dummytribase;
+   m->dummytri = (triangle *)
+-    (alignptr + (unsigned long) m->triangles.alignbytes -
+-     (alignptr % (unsigned long) m->triangles.alignbytes));
++    (alignptr + (INT_PTR) m->triangles.alignbytes -
++     (alignptr % (INT_PTR) m->triangles.alignbytes));
+   /* Initialize the three adjoining triangles to be "outer space."  These  */
+   /*   will eventually be changed by various bonding operations, but their */
+   /*   values don't really matter, as long as they can legally be          */
+@@ -4226,10 +4229,10 @@
+     m->dummysubbase = (subseg *) trimalloc(subsegbytes +
+                                            m->subsegs.alignbytes);
+     /* Align `dummysub' on a `subsegs.alignbytes'-byte boundary. */
+-    alignptr = (unsigned long) m->dummysubbase;
++    alignptr = (INT_PTR) m->dummysubbase;
+     m->dummysub = (subseg *)
+-      (alignptr + (unsigned long) m->subsegs.alignbytes -
+-       (alignptr % (unsigned long) m->subsegs.alignbytes));
++      (alignptr + (INT_PTR) m->subsegs.alignbytes -
++       (alignptr % (INT_PTR) m->subsegs.alignbytes));
+     /* Initialize the two adjoining subsegments to be the omnipresent      */
+     /*   subsegment.  These will eventually be changed by various bonding  */
+     /*   operations, but their values don't really matter, as long as they */
+@@ -4586,7 +4589,7 @@
+ {
+   VOID **getblock;
+   char *foundvertex;
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+   int current;
+ 
+   getblock = m->vertices.firstblock;
+@@ -4603,9 +4606,9 @@
+   }
+ 
+   /* Now find the right vertex. */
+-  alignptr = (unsigned long) (getblock + 1);
+-  foundvertex = (char *) (alignptr + (unsigned long) m->vertices.alignbytes -
+-                          (alignptr % (unsigned long) m->vertices.alignbytes));
++  alignptr = (INT_PTR) (getblock + 1);
++  foundvertex = (char *) (alignptr + (INT_PTR) m->vertices.alignbytes -
++                          (alignptr % (INT_PTR) m->vertices.alignbytes));
+   return (vertex) (foundvertex + m->vertices.itembytes * (number - current));
+ }
+ 
+@@ -7649,7 +7652,7 @@
+   char *firsttri;
+   struct otri sampletri;
+   vertex torg, tdest;
+-  unsigned long alignptr;
++  INT_PTR alignptr = 0;
+   REAL searchdist, dist;
+   REAL ahead;
+   long samplesperblock, totalsamplesleft, samplesleft;
+@@ -7721,11 +7724,11 @@
+       population = totalpopulation;
+     }
+     /* Find a pointer to the first triangle in the block. */
+-    alignptr = (unsigned long) (sampleblock + 1);
++    alignptr = (INT_PTR) (sampleblock + 1);
+     firsttri = (char *) (alignptr +
+-                         (unsigned long) m->triangles.alignbytes -
++                         (INT_PTR) m->triangles.alignbytes -
+                          (alignptr %
+-                          (unsigned long) m->triangles.alignbytes));
++                          (INT_PTR) m->triangles.alignbytes));
+ 
+     /* Choose `samplesleft' randomly sampled triangles in this block. */
+     do {
Index: sm/trunk-jpl/externalpackages/triangle/configs/triangle.h
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/triangle.h	(revision 28015)
+++ 	(revision )
@@ -1,296 +1,0 @@
-/*****************************************************************************/
-/*                                                                           */
-/*  (triangle.h)                                                             */
-/*                                                                           */
-/*  Include file for programs that call Triangle.                            */
-/*                                                                           */
-/*  Accompanies Triangle Version 1.6                                         */
-/*  July 28, 2005                                                            */
-/*                                                                           */
-/*  Copyright 1996, 2005                                                     */
-/*  Jonathan Richard Shewchuk                                                */
-/*  2360 Woolsey #H                                                          */
-/*  Berkeley, California  94705-1927                                         */
-/*  jrs@cs.berkeley.edu                                                      */
-/*                                                                           */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/*                                                                           */
-/*  How to call Triangle from another program                                */
-/*                                                                           */
-/*                                                                           */
-/*  If you haven't read Triangle's instructions (run "triangle -h" to read   */
-/*  them), you won't understand what follows.                                */
-/*                                                                           */
-/*  Triangle must be compiled into an object file (triangle.o) with the      */
-/*  TRILIBRARY symbol defined (generally by using the -DTRILIBRARY compiler  */
-/*  switch).  The makefile included with Triangle will do this for you if    */
-/*  you run "make trilibrary".  The resulting object file can be called via  */
-/*  the procedure triangulate().                                             */
-/*                                                                           */
-/*  If the size of the object file is important to you, you may wish to      */
-/*  generate a reduced version of triangle.o.  The REDUCED symbol gets rid   */
-/*  of all features that are primarily of research interest.  Specifically,  */
-/*  the -DREDUCED switch eliminates Triangle's -i, -F, -s, and -C switches.  */
-/*  The CDT_ONLY symbol gets rid of all meshing algorithms above and beyond  */
-/*  constrained Delaunay triangulation.  Specifically, the -DCDT_ONLY switch */
-/*  eliminates Triangle's -r, -q, -a, -u, -D, -Y, -S, and -s switches.       */
-/*                                                                           */
-/*  IMPORTANT:  These definitions (TRILIBRARY, REDUCED, CDT_ONLY) must be    */
-/*  made in the makefile or in triangle.c itself.  Putting these definitions */
-/*  in this file (triangle.h) will not create the desired effect.            */
-/*                                                                           */
-/*                                                                           */
-/*  The calling convention for triangulate() follows.                        */
-/*                                                                           */
-/*      void triangulate(triswitches, in, out, vorout)                       */
-/*      char *triswitches;                                                   */
-/*      struct triangulateio *in;                                            */
-/*      struct triangulateio *out;                                           */
-/*      struct triangulateio *vorout;                                        */
-/*                                                                           */
-/*  `triswitches' is a string containing the command line switches you wish  */
-/*  to invoke.  No initial dash is required.  Some suggestions:              */
-/*                                                                           */
-/*  - You'll probably find it convenient to use the `z' switch so that       */
-/*    points (and other items) are numbered from zero.  This simplifies      */
-/*    indexing, because the first item of any type always starts at index    */
-/*    [0] of the corresponding array, whether that item's number is zero or  */
-/*    one.                                                                   */
-/*  - You'll probably want to use the `Q' (quiet) switch in your final code, */
-/*    but you can take advantage of Triangle's printed output (including the */
-/*    `V' switch) while debugging.                                           */
-/*  - If you are not using the `q', `a', `u', `D', `j', or `s' switches,     */
-/*    then the output points will be identical to the input points, except   */
-/*    possibly for the boundary markers.  If you don't need the boundary     */
-/*    markers, you should use the `N' (no nodes output) switch to save       */
-/*    memory.  (If you do need boundary markers, but need to save memory, a  */
-/*    good nasty trick is to set out->pointlist equal to in->pointlist       */
-/*    before calling triangulate(), so that Triangle overwrites the input    */
-/*    points with identical copies.)                                         */
-/*  - The `I' (no iteration numbers) and `g' (.off file output) switches     */
-/*    have no effect when Triangle is compiled with TRILIBRARY defined.      */
-/*                                                                           */
-/*  `in', `out', and `vorout' are descriptions of the input, the output,     */
-/*  and the Voronoi output.  If the `v' (Voronoi output) switch is not used, */
-/*  `vorout' may be NULL.  `in' and `out' may never be NULL.                 */
-/*                                                                           */
-/*  Certain fields of the input and output structures must be initialized,   */
-/*  as described below.                                                      */
-/*                                                                           */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/*                                                                           */
-/*  The `triangulateio' structure.                                           */
-/*                                                                           */
-/*  Used to pass data into and out of the triangulate() procedure.           */
-/*                                                                           */
-/*                                                                           */
-/*  Arrays are used to store points, triangles, markers, and so forth.  In   */
-/*  all cases, the first item in any array is stored starting at index [0].  */
-/*  However, that item is item number `1' unless the `z' switch is used, in  */
-/*  which case it is item number `0'.  Hence, you may find it easier to      */
-/*  index points (and triangles in the neighbor list) if you use the `z'     */
-/*  switch.  Unless, of course, you're calling Triangle from a Fortran       */
-/*  program.                                                                 */
-/*                                                                           */
-/*  Description of fields (except the `numberof' fields, which are obvious): */
-/*                                                                           */
-/*  `pointlist':  An array of point coordinates.  The first point's x        */
-/*    coordinate is at index [0] and its y coordinate at index [1], followed */
-/*    by the coordinates of the remaining points.  Each point occupies two   */
-/*    REALs.                                                                 */
-/*  `pointattributelist':  An array of point attributes.  Each point's       */
-/*    attributes occupy `numberofpointattributes' REALs.                     */
-/*  `pointmarkerlist':  An array of point markers; one int per point.        */
-/*                                                                           */
-/*  `trianglelist':  An array of triangle corners.  The first triangle's     */
-/*    first corner is at index [0], followed by its other two corners in     */
-/*    counterclockwise order, followed by any other nodes if the triangle    */
-/*    represents a nonlinear element.  Each triangle occupies                */
-/*    `numberofcorners' ints.                                                */
-/*  `triangleattributelist':  An array of triangle attributes.  Each         */
-/*    triangle's attributes occupy `numberoftriangleattributes' REALs.       */
-/*  `trianglearealist':  An array of triangle area constraints; one REAL per */
-/*    triangle.  Input only.                                                 */
-/*  `neighborlist':  An array of triangle neighbors; three ints per          */
-/*    triangle.  Output only.                                                */
-/*                                                                           */
-/*  `segmentlist':  An array of segment endpoints.  The first segment's      */
-/*    endpoints are at indices [0] and [1], followed by the remaining        */
-/*    segments.  Two ints per segment.                                       */
-/*  `segmentmarkerlist':  An array of segment markers; one int per segment.  */
-/*                                                                           */
-/*  `holelist':  An array of holes.  The first hole's x and y coordinates    */
-/*    are at indices [0] and [1], followed by the remaining holes.  Two      */
-/*    REALs per hole.  Input only, although the pointer is copied to the     */
-/*    output structure for your convenience.                                 */
-/*                                                                           */
-/*  `regionlist':  An array of regional attributes and area constraints.     */
-/*    The first constraint's x and y coordinates are at indices [0] and [1], */
-/*    followed by the regional attribute at index [2], followed by the       */
-/*    maximum area at index [3], followed by the remaining area constraints. */
-/*    Four REALs per area constraint.  Note that each regional attribute is  */
-/*    used only if you select the `A' switch, and each area constraint is    */
-/*    used only if you select the `a' switch (with no number following), but */
-/*    omitting one of these switches does not change the memory layout.      */
-/*    Input only, although the pointer is copied to the output structure for */
-/*    your convenience.                                                      */
-/*                                                                           */
-/*  `edgelist':  An array of edge endpoints.  The first edge's endpoints are */
-/*    at indices [0] and [1], followed by the remaining edges.  Two ints per */
-/*    edge.  Output only.                                                    */
-/*  `edgemarkerlist':  An array of edge markers; one int per edge.  Output   */
-/*    only.                                                                  */
-/*  `normlist':  An array of normal vectors, used for infinite rays in       */
-/*    Voronoi diagrams.  The first normal vector's x and y magnitudes are    */
-/*    at indices [0] and [1], followed by the remaining vectors.  For each   */
-/*    finite edge in a Voronoi diagram, the normal vector written is the     */
-/*    zero vector.  Two REALs per edge.  Output only.                        */
-/*                                                                           */
-/*                                                                           */
-/*  Any input fields that Triangle will examine must be initialized.         */
-/*  Furthermore, for each output array that Triangle will write to, you      */
-/*  must either provide space by setting the appropriate pointer to point    */
-/*  to the space you want the data written to, or you must initialize the    */
-/*  pointer to NULL, which tells Triangle to allocate space for the results. */
-/*  The latter option is preferable, because Triangle always knows exactly   */
-/*  how much space to allocate.  The former option is provided mainly for    */
-/*  people who need to call Triangle from Fortran code, though it also makes */
-/*  possible some nasty space-saving tricks, like writing the output to the  */
-/*  same arrays as the input.                                                */
-/*                                                                           */
-/*  Triangle will not free() any input or output arrays, including those it  */
-/*  allocates itself; that's up to you.  You should free arrays allocated by */
-/*  Triangle by calling the trifree() procedure defined below.  (By default, */
-/*  trifree() just calls the standard free() library procedure, but          */
-/*  applications that call triangulate() may replace trimalloc() and         */
-/*  trifree() in triangle.c to use specialized memory allocators.)           */
-/*                                                                           */
-/*  Here's a guide to help you decide which fields you must initialize       */
-/*  before you call triangulate().                                           */
-/*                                                                           */
-/*  `in':                                                                    */
-/*                                                                           */
-/*    - `pointlist' must always point to a list of points; `numberofpoints'  */
-/*      and `numberofpointattributes' must be properly set.                  */
-/*      `pointmarkerlist' must either be set to NULL (in which case all      */
-/*      markers default to zero), or must point to a list of markers.  If    */
-/*      `numberofpointattributes' is not zero, `pointattributelist' must     */
-/*      point to a list of point attributes.                                 */
-/*    - If the `r' switch is used, `trianglelist' must point to a list of    */
-/*      triangles, and `numberoftriangles', `numberofcorners', and           */
-/*      `numberoftriangleattributes' must be properly set.  If               */
-/*      `numberoftriangleattributes' is not zero, `triangleattributelist'    */
-/*      must point to a list of triangle attributes.  If the `a' switch is   */
-/*      used (with no number following), `trianglearealist' must point to a  */
-/*      list of triangle area constraints.  `neighborlist' may be ignored.   */
-/*    - If the `p' switch is used, `segmentlist' must point to a list of     */
-/*      segments, `numberofsegments' must be properly set, and               */
-/*      `segmentmarkerlist' must either be set to NULL (in which case all    */
-/*      markers default to zero), or must point to a list of markers.        */
-/*    - If the `p' switch is used without the `r' switch, then               */
-/*      `numberofholes' and `numberofregions' must be properly set.  If      */
-/*      `numberofholes' is not zero, `holelist' must point to a list of      */
-/*      holes.  If `numberofregions' is not zero, `regionlist' must point to */
-/*      a list of region constraints.                                        */
-/*    - If the `p' switch is used, `holelist', `numberofholes',              */
-/*      `regionlist', and `numberofregions' is copied to `out'.  (You can    */
-/*      nonetheless get away with not initializing them if the `r' switch is */
-/*      used.)                                                               */
-/*    - `edgelist', `edgemarkerlist', `normlist', and `numberofedges' may be */
-/*      ignored.                                                             */
-/*                                                                           */
-/*  `out':                                                                   */
-/*                                                                           */
-/*    - `pointlist' must be initialized (NULL or pointing to memory) unless  */
-/*      the `N' switch is used.  `pointmarkerlist' must be initialized       */
-/*      unless the `N' or `B' switch is used.  If `N' is not used and        */
-/*      `in->numberofpointattributes' is not zero, `pointattributelist' must */
-/*      be initialized.                                                      */
-/*    - `trianglelist' must be initialized unless the `E' switch is used.    */
-/*      `neighborlist' must be initialized if the `n' switch is used.  If    */
-/*      the `E' switch is not used and (`in->numberofelementattributes' is   */
-/*      not zero or the `A' switch is used), `elementattributelist' must be  */
-/*      initialized.  `trianglearealist' may be ignored.                     */
-/*    - `segmentlist' must be initialized if the `p' or `c' switch is used,  */
-/*      and the `P' switch is not used.  `segmentmarkerlist' must also be    */
-/*      initialized under these circumstances unless the `B' switch is used. */
-/*    - `edgelist' must be initialized if the `e' switch is used.            */
-/*      `edgemarkerlist' must be initialized if the `e' switch is used and   */
-/*      the `B' switch is not.                                               */
-/*    - `holelist', `regionlist', `normlist', and all scalars may be ignored.*/
-/*                                                                           */
-/*  `vorout' (only needed if `v' switch is used):                            */
-/*                                                                           */
-/*    - `pointlist' must be initialized.  If `in->numberofpointattributes'   */
-/*      is not zero, `pointattributelist' must be initialized.               */
-/*      `pointmarkerlist' may be ignored.                                    */
-/*    - `edgelist' and `normlist' must both be initialized.                  */
-/*      `edgemarkerlist' may be ignored.                                     */
-/*    - Everything else may be ignored.                                      */
-/*                                                                           */
-/*  After a call to triangulate(), the valid fields of `out' and `vorout'    */
-/*  will depend, in an obvious way, on the choice of switches used.  Note    */
-/*  that when the `p' switch is used, the pointers `holelist' and            */
-/*  `regionlist' are copied from `in' to `out', but no new space is          */
-/*  allocated; be careful that you don't free() the same array twice.  On    */
-/*  the other hand, Triangle will never copy the `pointlist' pointer (or any */
-/*  others); new space is allocated for `out->pointlist', or if the `N'      */
-/*  switch is used, `out->pointlist' remains uninitialized.                  */
-/*                                                                           */
-/*  All of the meaningful `numberof' fields will be properly set; for        */
-/*  instance, `numberofedges' will represent the number of edges in the      */
-/*  triangulation whether or not the edges were written.  If segments are    */
-/*  not used, `numberofsegments' will indicate the number of boundary edges. */
-/*                                                                           */
-/*****************************************************************************/
-
-/*Patch for ISSM*/
-#ifndef REAL
-typedef double REAL;
-typedef void VOID;
-#endif
-/*End patch*/
-
-struct triangulateio {
-  REAL *pointlist;                                               /* In / out */
-  REAL *pointattributelist;                                      /* In / out */
-  int *pointmarkerlist;                                          /* In / out */
-  int numberofpoints;                                            /* In / out */
-  int numberofpointattributes;                                   /* In / out */
-
-  int *trianglelist;                                             /* In / out */
-  REAL *triangleattributelist;                                   /* In / out */
-  REAL *trianglearealist;                                         /* In only */
-  int *neighborlist;                                             /* Out only */
-  int numberoftriangles;                                         /* In / out */
-  int numberofcorners;                                           /* In / out */
-  int numberoftriangleattributes;                                /* In / out */
-
-  int *segmentlist;                                              /* In / out */
-  int *segmentmarkerlist;                                        /* In / out */
-  int numberofsegments;                                          /* In / out */
-
-  REAL *holelist;                        /* In / pointer to array copied out */
-  int numberofholes;                                      /* In / copied out */
-
-  REAL *regionlist;                      /* In / pointer to array copied out */
-  int numberofregions;                                    /* In / copied out */
-
-  int *edgelist;                                                 /* Out only */
-  int *edgemarkerlist;            /* Not used with Voronoi diagram; out only */
-  REAL *normlist;                /* Used only with Voronoi diagram; out only */
-  int numberofedges;                                             /* Out only */
-};
-
-#ifdef ANSI_DECLARATORS
-extern "C" void triangulate(char *, struct triangulateio *, struct triangulateio *,
-                 struct triangulateio *);
-void trifree(VOID *memptr);
-#else /* not ANSI_DECLARATORS */
-void triangulate();
-void trifree();
-#endif /* not ANSI_DECLARATORS */
Index: /issm/trunk-jpl/externalpackages/triangle/configs/triangle.h.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/triangle.h.patch	(revision 28016)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/triangle.h.patch	(revision 28016)
@@ -0,0 +1,113 @@
+@@ -101,9 +101,9 @@
+ /*  `pointlist':  An array of point coordinates.  The first point's x        */
+ /*    coordinate is at index [0] and its y coordinate at index [1], followed */
+ /*    by the coordinates of the remaining points.  Each point occupies two   */
+-/*    REALs.                                                                 */
++/*    TRI_REALs.                                                             */
+ /*  `pointattributelist':  An array of point attributes.  Each point's       */
+-/*    attributes occupy `numberofpointattributes' REALs.                     */
++/*    attributes occupy `numberofpointattributes' TRI_REALs.                 */
+ /*  `pointmarkerlist':  An array of point markers; one int per point.        */
+ /*                                                                           */
+ /*  `trianglelist':  An array of triangle corners.  The first triangle's     */
+@@ -112,9 +112,9 @@
+ /*    represents a nonlinear element.  Each triangle occupies                */
+ /*    `numberofcorners' ints.                                                */
+ /*  `triangleattributelist':  An array of triangle attributes.  Each         */
+-/*    triangle's attributes occupy `numberoftriangleattributes' REALs.       */
+-/*  `trianglearealist':  An array of triangle area constraints; one REAL per */
+-/*    triangle.  Input only.                                                 */
++/*    triangle's attributes occupy `numberoftriangleattributes' TRI_REALs.   */
++/*  `trianglearealist':  An array of triangle area constraints; one TRI_REAL */
++/*    per triangle.  Input only.                                             */
+ /*  `neighborlist':  An array of triangle neighbors; three ints per          */
+ /*    triangle.  Output only.                                                */
+ /*                                                                           */
+@@ -125,15 +125,15 @@
+ /*                                                                           */
+ /*  `holelist':  An array of holes.  The first hole's x and y coordinates    */
+ /*    are at indices [0] and [1], followed by the remaining holes.  Two      */
+-/*    REALs per hole.  Input only, although the pointer is copied to the     */
++/*    TRI_REALs per hole.  Input only, although the pointer is copied to the */
+ /*    output structure for your convenience.                                 */
+ /*                                                                           */
+ /*  `regionlist':  An array of regional attributes and area constraints.     */
+ /*    The first constraint's x and y coordinates are at indices [0] and [1], */
+ /*    followed by the regional attribute at index [2], followed by the       */
+ /*    maximum area at index [3], followed by the remaining area constraints. */
+-/*    Four REALs per area constraint.  Note that each regional attribute is  */
+-/*    used only if you select the `A' switch, and each area constraint is    */
++/*    Four TRI_REALs per area constraint.  Note that each regional attribute */
++/*    is used only if you select the `A' switch, and each area constraint is */
+ /*    used only if you select the `a' switch (with no number following), but */
+ /*    omitting one of these switches does not change the memory layout.      */
+ /*    Input only, although the pointer is copied to the output structure for */
+@@ -148,7 +148,7 @@
+ /*    Voronoi diagrams.  The first normal vector's x and y magnitudes are    */
+ /*    at indices [0] and [1], followed by the remaining vectors.  For each   */
+ /*    finite edge in a Voronoi diagram, the normal vector written is the     */
+-/*    zero vector.  Two REALs per edge.  Output only.                        */
++/*    zero vector.  Two TRI_REALs per edge.  Output only.                    */
+ /*                                                                           */
+ /*                                                                           */
+ /*  Any input fields that Triangle will examine must be initialized.         */
+@@ -248,16 +248,28 @@
+ /*                                                                           */
+ /*****************************************************************************/
+ 
++#pragma once
++
++#ifndef ANSI_DECLARATORS
++#define ANSI_DECLARATORS
++#endif // ANSI_DECLARATORS
++
++#ifdef SINGLE
++#define TRI_REAL float
++#else /* not SINGLE */
++#define TRI_REAL double
++#endif /* not SINGLE */
++
+ struct triangulateio {
+-  REAL *pointlist;                                               /* In / out */
+-  REAL *pointattributelist;                                      /* In / out */
++  TRI_REAL *pointlist;                                           /* In / out */
++  TRI_REAL *pointattributelist;                                  /* In / out */
+   int *pointmarkerlist;                                          /* In / out */
+   int numberofpoints;                                            /* In / out */
+   int numberofpointattributes;                                   /* In / out */
+ 
+   int *trianglelist;                                             /* In / out */
+-  REAL *triangleattributelist;                                   /* In / out */
+-  REAL *trianglearealist;                                         /* In only */
++  TRI_REAL *triangleattributelist;                               /* In / out */
++  TRI_REAL *trianglearealist;                                     /* In only */
+   int *neighborlist;                                             /* Out only */
+   int numberoftriangles;                                         /* In / out */
+   int numberofcorners;                                           /* In / out */
+@@ -267,22 +279,22 @@
+   int *segmentmarkerlist;                                        /* In / out */
+   int numberofsegments;                                          /* In / out */
+ 
+-  REAL *holelist;                        /* In / pointer to array copied out */
++  TRI_REAL *holelist;                    /* In / pointer to array copied out */
+   int numberofholes;                                      /* In / copied out */
+ 
+-  REAL *regionlist;                      /* In / pointer to array copied out */
++  TRI_REAL *regionlist;                  /* In / pointer to array copied out */
+   int numberofregions;                                    /* In / copied out */
+ 
+   int *edgelist;                                                 /* Out only */
+   int *edgemarkerlist;            /* Not used with Voronoi diagram; out only */
+-  REAL *normlist;                /* Used only with Voronoi diagram; out only */
++  TRI_REAL *normlist;            /* Used only with Voronoi diagram; out only */
+   int numberofedges;                                             /* Out only */
+ };
+ 
+ #ifdef ANSI_DECLARATORS
+ void triangulate(char *, struct triangulateio *, struct triangulateio *,
+                  struct triangulateio *);
+-void trifree(VOID *memptr);
++void trifree(int *memptr);
+ #else /* not ANSI_DECLARATORS */
+ void triangulate();
+ void trifree();
Index: /issm/trunk-jpl/externalpackages/triangle/install-linux-javascript.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-linux-javascript.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-linux-javascript.sh	(revision 28016)
@@ -19,5 +19,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/share src
 
@@ -41,2 +41,5 @@
 cp src/triangle.o ${PREFIX}/share
 cp src/triangle.h ${PREFIX}/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 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-linux-static.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/linux/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-linux.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-linux.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-linux.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/linux/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-mac-static.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/mac/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-mac.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-mac.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-mac.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/mac/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-pleiades.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-pleiades.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-pleiades.sh	(revision 28016)
@@ -5,9 +5,9 @@
 # Constants
 #
-INSTALL_DIR="install"
+export PREFIX="install"
 
 # Cleanup
-rm -rf ${INSTALL_DIR} src
-mkdir ${INSTALL_DIR} ${INSTALL_DIR}/include ${INSTALL_DIR}/lib src
+rm -rf ${PREFIX}
+mkdir ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
 # Download source
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/linux/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
@@ -28,6 +31,6 @@
 # Install
 cd ..
-cp src/libtriangle.* ${INSTALL_DIR}/lib
-cp src/triangle.h ${INSTALL_DIR}/include
+cp src/libtriangle.* ${PREFIX}/lib
+cp src/triangle.h ${PREFIX}/include
 
 # Cleanup
Index: /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/win/msys2/gcc/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw-static.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw-static.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/win/msys2/mingw64/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh	(revision 28015)
+++ /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh	(revision 28016)
@@ -8,5 +8,5 @@
 
 # Cleanup
-rm -rf ${PREFIX} src
+rm -rf ${PREFIX}
 mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
 
@@ -19,6 +19,9 @@
 # Copy customized source files to 'src' directory
 cp configs/makefile src
-cp configs/triangle.h src
 cp configs/win/msys2/mingw64/configure.make src
+
+# Patch source
+patch src/triangle.c < configs/triangle.c.patch
+patch src/triangle.h < configs/triangle.h.patch
 
 # Compile
Index: sm/trunk-jpl/externalpackages/triangle/install-win10.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win10.sh	(revision 28015)
+++ 	(revision )
@@ -1,25 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Some cleanup 
-rm -rf install triangle
-mkdir install
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/triangle.zip' 'triangle.zip'
-
-#Untar 
-cd install
-cp ../triangle.zip ./
-unzip triangle.zip
-
-#copy new makefile
-cp ../configs/win7/configure.make ./
-cp ../configs/win7/makefile ./
-
-#Compile triangle
-make
-
-#Patch triangle.h
-patch triangle.h ../triangle.h.patch
-cat triangle.h
Index: sm/trunk-jpl/externalpackages/triangle/install-win32.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win32.sh	(revision 28015)
+++ 	(revision )
@@ -1,24 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Some cleanup 
-rm -rf install triangle
-mkdir install
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/triangle.zip' 'triangle.zip'
-
-#Untar 
-cd install
-cp ../triangle.zip ./
-unzip triangle.zip
-
-#copy new makefile
-cp ../configs/win32/configure.make ./
-cp ../makefile ./
-
-#Compile triangle
-make
-
-#Patch triangle.h
-patch triangle.h ../triangle.h.patch
Index: sm/trunk-jpl/externalpackages/triangle/install-windows-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-windows-static.sh	(revision 28015)
+++ 	(revision )
@@ -1,34 +1,0 @@
-#!/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/windows/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: sm/trunk-jpl/externalpackages/triangle/install-windows.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-windows.sh	(revision 28015)
+++ 	(revision )
@@ -1,34 +1,0 @@
-#!/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/windows/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: sm/trunk-jpl/externalpackages/triangle/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install.sh	(revision 28015)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Some cleanup 
-rm -rf install src triangle
-mkdir install src ./src/m4
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/triangle.zip' 'triangle.zip'
-
-#Untar 
-cd src
-mkdir src
-cp ../triangle.zip ./
-unzip triangle.zip
-
-rm ./makefile
-mv ./*.c ./src
-mv ./*.h ./src
-
-cp ./../configs/libtool/configure.ac ./
-cp ./../configs/libtool/Makefile.am ./
-cp ./../configs/libtool/src/Makefile.am ./src/
-
-autoreconf -ivf
-./configure --prefix="${HOME}/externalpackages/triangle/install" --disable-executables
-
-make 
-make install
-
-#Patch triangle.h
-patch ${HOME}/externalpackages/triangle/install/include/triangle.h ${HOME}/externalpackages/triangle/triangle.h.patch
Index: sm/trunk-jpl/externalpackages/triangle/makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/makefile	(revision 28015)
+++ 	(revision )
@@ -1,46 +1,0 @@
-include ./configure.make
-
-ifeq "$(origin CC)" "undefined"
-	CC = cc
-endif
-
-ifeq "$(origin AR)" "undefined"
-	AR = ar
-endif
-
-ifeq "$(origin RANLIB)" "undefined"
-	RANLIB = ranlib
-endif
-
-SOURCES=triangle.c triangle.h
-OBJECTS=triangle.$(OBJ_EXT)
-
-all: libtriangle.$(STATIC_LIB_EXT) libtriangle.$(SHARED_LIB_EXT)
-
-objects: $(OBJECTS)
-
-shared: libtriangle.$(SHARED_LIB_EXT)
-
-static: libtriangle.$(STATIC_LIB_EXT)
-
-triangle.$(OBJ_EXT): $(SOURCES)
-	$(CC) $(CSWITCHES) $(TRILIBDEFS) -c triangle.c
-
-libtriangle.a: $(OBJECTS)
-	$(AR) cr $@ $(OBJECTS)
-	$(RANLIB) $@
-
-libtriangle.dll: $(SOURCES)
-	$(CC) $(CSWITCHES) $(TRILIBDEFS) -shared -o $@ triangle.c
-
-libtriangle.dylib: $(OBJECTS)
-	$(CC) $(CSWITCHES) $(TRILIBDEFS) -dynamiclib -install_name ${PREFIX}/lib/$@ -o $@ triangle.c
-
-libtriangle.lib: $(OBJECTS)
-	lib -out:libtriangle.$(STATIC_LIB_EXT) $(OBJECTS)
-
-libtriangle.so: $(SOURCES)
-	$(CC) $(CSWITCHES) $(TRILIBDEFS) -shared -o $@ triangle.c
-
-clean:
-	rm -rf *.$(LIB_EXT) *.$(OBJ_EXT) *.LIB *.LST *.$(OBJ_EXT)bj *.BAK
Index: sm/trunk-jpl/externalpackages/triangle/triangle.h.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/triangle.h.patch	(revision 28015)
+++ 	(revision )
@@ -1,12 +1,0 @@
-250a251,257
-> /*Patch for ISSM*/
-> #ifndef REAL
-> typedef double REAL;
-> typedef void VOID;
-> #endif
-> /*End patch*/
-> 
-283c290
-< void triangulate(char *, struct triangulateio *, struct triangulateio *,
----
-> extern "C" void triangulate(char *, struct triangulateio *, struct triangulateio *,
