diff -ur taucs.orig/config/darwin.mk taucs/config/darwin.mk
--- taucs.orig/config/darwin.mk	2003-08-24 05:10:51.000000000 -0500
+++ taucs/config/darwin.mk	2018-11-24 20:16:59.000000000 -0600
@@ -9,32 +9,32 @@
 DEFFLG=-D
 
 #CC        = gcc
-CFLAGS    = -O3 -faltivec
+CFLAGS    = @@CFLAGS@@
 COUTFLG   = -o ./
 
-FC        = $(CC)
-FFLAGS    = $(CFLAGS)
+FC        = @@FC@@
+FFLAGS   += @@CFLAGS@@
 FOUTFLG   = $(COUTFLG)
 
-LD        = $(CC) 
-LDFLAGS   = $(CFLAGS)
+LD        = @@FC@@ 
+LDFLAGS  := -L./ @@LDFLAGS@@
 LOUTFLG   = $(COUTFLG)
 
 AR        = ar -cr
-AOUTFLG   =
+#AOUTFLG   =
 
 RANLIB    = ranlib
 RM        = rm -rf
 
-LIBBLAS   = -framework vecLib
-LIBLAPACK = 
-LIBMETIS  = -Lexternal/lib/darwin -lmetis
+LIBBLAS   = -framework Accelerate
+LIBLAPACK = -framework Accelerate
+LIBMETIS  = -lmetis
 
-LIBF77 = -Lexternal/lib/darwin -lf2c
+#LIBF77 = -Lexternal/lib/darwin -lf2c
 # crypto is for ftime, which is used by the timing routines
 # the documentation says its in libcompat, but on my system
 # there is no libcompat, but libcrypto provides it
-LIBC   = -lm -lcrypto
+#LIBC   = -lm -lcrypto
 
 #########################################################
 
diff -ur taucs.orig/configure taucs/configure
--- taucs.orig/configure	2003-08-24 05:11:33.000000000 -0500
+++ taucs/configure	2018-11-24 20:20:36.000000000 -0600
@@ -29,7 +29,7 @@
 # Solaris, OSTYPE=solaris but uname returns SunOS.
 
 if [ ${OSTYPE:-fail} = "fail" ] ; then
-  OSTYPE=`uname | tr "A-Z" "a-z"`
+  OSTYPE=`uname`
 fi
 
 # If nothing works, we continue, but configurator will abort
diff -ur taucs.orig/progs/taucs_blas_underscore_test.c taucs/progs/taucs_blas_underscore_test.c
--- taucs.orig/progs/taucs_blas_underscore_test.c	2003-09-04 02:28:41.000000000 -0500
+++ taucs/progs/taucs_blas_underscore_test.c	2018-11-24 20:21:55.000000000 -0600
@@ -26,7 +26,7 @@
   dgemm_("N","N", &n,&n,&n, &alpha, &A,&ld, &B,&ld, &beta, &C,&ld);
 
   printf("\n\n");
-  printf("Linking with dgemm_ succedded\n");
+  printf("Linking with dgemm_ succeeded\n");
   printf("\n\n");
 
   if (C == 97.0) {
diff -ur taucs.orig/progs/test_linsolve.c taucs/progs/test_linsolve.c
--- taucs.orig/progs/test_linsolve.c	2003-08-29 07:38:53.000000000 -0500
+++ taucs/progs/test_linsolve.c	2018-11-24 20:23:07.000000000 -0600
@@ -81,7 +81,7 @@
   rc = taucs_linsolve(A,NULL,1, y,b,colamd,opt_arg);
   if (rc == TAUCS_SUCCESS) return TAUCS_ERROR; 
 
-  printf("TESING SYMMETRIC ORDERINGS SUCCEDDED\n");
+  printf("TESING SYMMETRIC ORDERINGS SUCCEEDED\n");
 
   return TAUCS_SUCCESS;
 }
@@ -116,7 +116,7 @@
   rc = taucs_linsolve(A,NULL,1, y,b,llmd,opt_arg);
   if (rc == TAUCS_SUCCESS) return TAUCS_ERROR; 
 
-  printf("TESING SPD FACTORIZATIONS SUCCEDDED\n");
+  printf("TESING SPD FACTORIZATIONS SUCCEEDED\n");
 
   return TAUCS_SUCCESS;
 }
@@ -176,7 +176,7 @@
   rc = taucs_linsolve(NULL,&F,0, NULL,NULL,factor,opt_arg);
   if (rc != TAUCS_SUCCESS) return rc;
 
-  printf("TESING SPD FACTORSOLVE SUCCEDDED\n");
+  printf("TESING SPD FACTORSOLVE SUCCEEDED\n");
 
   return TAUCS_SUCCESS;
 }
diff -ur taucs.orig/src/taucs_timer.c taucs/src/taucs_timer.c
--- taucs.orig/src/taucs_timer.c	2003-09-01 05:28:54.000000000 -0500
+++ taucs/src/taucs_timer.c	2018-11-24 20:35:43.000000000 -0600
@@ -245,36 +245,35 @@
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <sys/types.h>                                                 
-#include <sys/timeb.h>                                                 
 
 double taucs_wtime()
 {
-  struct timeb T;
+  struct timeval T;
   /*static int first_time    = 1;*/
   /*  static time_t start_time, time_diff;
-      static time_t start_mill, mill_diff;
+      static time_t start_micro, micro_diff;
   */
 
   static time_t time_diff;
-  static time_t mill_diff;
+  static time_t micro_diff;
   /*int    rc;*/
   double dt;
   
-  (void) ftime( &T );
+  (void) gettimeofday( &T,NULL );
   /*
   if (first_time) {
     first_time = 0;
-    start_time = T.time;
-    start_mill = T.millitm;
+    start_time = T.tv_sec;
+    start_micro = T.tv_usec;
   }
 
-  time_diff = T.time - start_time;
-  mill_diff = T.millitm - start_mill; 
+  time_diff = T.tv_sec - start_time;
+  micro_diff = T.tv_usec - start_micro; 
   */
-  time_diff = T.time;
-  mill_diff = T.millitm;
+  time_diff = T.tv_sec;
+  micro_diff = T.tv_usec;
 
-  dt = ((double) time_diff) + (1e-3) * ((double) mill_diff);
+  dt = ((double) time_diff) + (1e-6) * ((double) micro_diff);
 
   return dt;
 }
