--- makefile.orig	2015-12-09 21:27:35.000000000 -0500
+++ makefile	2015-12-09 21:37:23.000000000 -0500
@@ -1,30 +1,44 @@
-# this makefile is for LINUX machines only 
+VERSION = 2.0.0
+
 OBJS = $(addprefix OBJ/, fgmr.o iluk.o ilut.o arms2.o ilutpC.o ilutc.o \
 	vbiluk.o vbilut.o auxill.o PQ.o piluNEW.o indsetC.o sets.o \
 	MatOps.o tools.o systimer.o misc.o setblks.o svdInvC.o)
-AR = ar
+AR = libtool -o
 
 #
-FC      =  gfortran
-FCFLAGS =  -c -g -Wall -I./INC
-CC      =  gcc
-CCFLAGS =  -c -g -DLINUX -Wall -O3 -I./INC
-LIB     = LIB/libitsol.a
-#
+EXTRA_FLAGS = -I./INC
+
+PROJECT = itsol
+LIBNAME = lib$(PROJECT)
+STLIB   = $(LIBNAME).a
+DYLIB   = $(LIBNAME).$(VERSION).dylib
 
 # clear list of default suffixes, and declare default suffixes
 .SUFFIXES: .f .c .o
 
 # default rule to make .o files from .f files
 OBJ/%.o : SRC/%.f
-	$(FC) $(FCFLAGS) -o $@ -c $<
+	$(FC) $(FCFLAGS) $(EXTRA_FLAGS) -o $@ -c $<
 
 OBJ/%.o : SRC/%.c
-	$(CC) $(CCFLAGS) -o $@ -c $<
+	$(CC) $(CFLAGS) $(EXTRA_FLAGS) -o $@ -c $<
 
 #
-lib $(LIB): $(OBJS)
-	$(AR) -rc $(LIB)  $(OBJS)
+lib: $(OBJS)
+	$(AR) LIB/$(STLIB) $(OBJS)
+	$(FC) -dynamiclib -compatibility_version $(VERSION) -o LIB/$(DYLIB) -install_name $(PREFIX)/lib/$(DYLIB) $(LDFLAGS) $(OBJS)
+
+install: LIB/$(STLIB) LIB/$(DYLIB)
+	install -m655 -d $(DESTDIR)$(PREFIX)/lib
+	install -m644 LIB/$(STLIB) $(DESTDIR)$(PREFIX)/lib/$(STLIB)
+	install -m644 LIB/$(DYLIB) $(DESTDIR)$(PREFIX)/lib/$(DYLIB)
+	(cd $(DESTDIR)$(PREFIX)/lib; ln -s $(DYLIB) $(LIBNAME).dylib)
+	install -m655 -d $(DESTDIR)$(PREFIX)/include/itsol
+	install -m644 INC/*.h $(DESTDIR)$(PREFIX)/include/itsol
+
+# dummy for MacPorts build
+all:
+
 #
 clean :
 	rm -f ${OBJS} *~ core *.cache ${LIB} SRC/*~ SRC/*.cache
@@ -32,3 +46,9 @@
 cleanall :
 	rm -f ${OBJS} *~ core *.cache ${LIB} SRC/*~ SRC/*.cache \
         TESTS/*.o TESTS/*.ex 
+
+test : testexe
+	cd TESTS && sh runall
+
+testexe :
+	$(MAKE) -C TESTS all LINKS="-L../LIB -litsol"
