diff -urN SuiteSparse.orig/AMD/Lib/Makefile SuiteSparse/AMD/Lib/Makefile
--- SuiteSparse.orig/AMD/Lib/Makefile	2017-05-01 17:08:36.145856600 +0100
+++ SuiteSparse/AMD/Lib/Makefile	2017-05-01 16:24:28.606356000 +0100
@@ -81,28 +81,24 @@
 #-------------------------------------------------------------------------------
 
 # install AMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/amd.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/AMD_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/AMD_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/amd.h
 	chmod 644 $(INSTALL_DOC)/AMD_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/AMD_README.txt
 
 # uninstall AMD
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/amd.h
 	$(RM) $(INSTALL_DOC)/AMD_UserGuide.pdf
 	$(RM) $(INSTALL_DOC)/AMD_README.txt
diff -urN SuiteSparse.orig/BTF/Lib/Makefile SuiteSparse/BTF/Lib/Makefile
--- SuiteSparse.orig/BTF/Lib/Makefile	2017-05-01 17:08:36.159359300 +0100
+++ SuiteSparse/BTF/Lib/Makefile	2017-05-01 16:24:28.616354400 +0100
@@ -66,25 +66,21 @@
 #-------------------------------------------------------------------------------
 
 # install BTF
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/btf.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/BTF_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/btf.h
 	chmod 644 $(INSTALL_DOC)/BTF_README.txt
 
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/btf.h
 	$(RM) $(INSTALL_DOC)/BTF_README.txt
 
diff -urN SuiteSparse.orig/CAMD/Lib/Makefile SuiteSparse/CAMD/Lib/Makefile
--- SuiteSparse.orig/CAMD/Lib/Makefile	2017-05-01 17:08:36.229858300 +0100
+++ SuiteSparse/CAMD/Lib/Makefile	2017-05-01 16:24:28.628355400 +0100
@@ -62,28 +62,24 @@
 #-------------------------------------------------------------------------------
 
 # install CAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/camd.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/CAMD_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/CAMD_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/camd.h
 	chmod 644 $(INSTALL_DOC)/CAMD_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/CAMD_README.txt
 
 # uninstall CAMD
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/camd.h
 	$(RM) $(INSTALL_DOC)/CAMD_UserGuide.pdf
 	$(RM) $(INSTALL_DOC)/CAMD_README.txt
diff -urN SuiteSparse.orig/CCOLAMD/Lib/Makefile SuiteSparse/CCOLAMD/Lib/Makefile
--- SuiteSparse.orig/CCOLAMD/Lib/Makefile	2017-05-01 17:08:36.241860000 +0100
+++ SuiteSparse/CCOLAMD/Lib/Makefile	2017-05-01 16:24:28.640355000 +0100
@@ -49,25 +49,21 @@
 	- $(RM) -r $(PURGE)
 
 # install CCOLAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/ccolamd.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/CCOLAMD_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/ccolamd.h
 	chmod 644 $(INSTALL_DOC)/CCOLAMD_README.txt
 
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/ccolamd.h
 	$(RM) $(INSTALL_DOC)/CCOLAMD_README.txt
 
diff -urN SuiteSparse.orig/CHOLMOD/Lib/Makefile SuiteSparse/CHOLMOD/Lib/Makefile
--- SuiteSparse.orig/CHOLMOD/Lib/Makefile	2017-05-01 17:08:36.260357100 +0100
+++ SuiteSparse/CHOLMOD/Lib/Makefile	2017-05-01 16:24:28.650854700 +0100
@@ -535,29 +535,25 @@
 #-------------------------------------------------------------------------------
 
 # install CHOLMOD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/cholmod*.h $(INSTALL_INCLUDE)
 	$(RM) $(INSTALL_INCLUDE)/cholmod_internal.h
 	$(CP) ../Doc/CHOLMOD_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/CHOLMOD_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/cholmod*.h
 	chmod 644 $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/CHOLMOD_README.txt
 
 # uninstall CHOLMOD
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/cholmod*.h
 	$(RM) $(INSTALL_DOC)/CHOLMOD_UserGuide.pdf
 	$(RM) $(INSTALL_DOC)/CHOLMOD_README.txt
diff -urN SuiteSparse.orig/COLAMD/Lib/Makefile SuiteSparse/COLAMD/Lib/Makefile
--- SuiteSparse.orig/COLAMD/Lib/Makefile	2017-05-01 17:08:36.281357400 +0100
+++ SuiteSparse/COLAMD/Lib/Makefile	2017-05-01 16:24:28.660355300 +0100
@@ -49,25 +49,21 @@
 	- $(RM) -r $(PURGE)
 
 # install COLAMD
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/colamd.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/COLAMD_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/colamd.h
 	chmod 644 $(INSTALL_DOC)/COLAMD_README.txt
 
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/colamd.h
 	$(RM) $(INSTALL_DOC)/COLAMD_README.txt
 
diff -urN SuiteSparse.orig/CXSparse/Lib/Makefile SuiteSparse/CXSparse/Lib/Makefile
--- SuiteSparse.orig/CXSparse/Lib/Makefile	2017-05-01 17:08:36.295357600 +0100
+++ SuiteSparse/CXSparse/Lib/Makefile	2017-05-01 16:24:28.669855300 +0100
@@ -113,26 +113,22 @@
 	- $(RM) -r $(PURGE)
 
 # install CXSparse
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(CS)
+$(INSTALL_SO)/$(SO_TARGET): $(CS)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/cs.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/cs.h
 	chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt
 
 # uninstall CXSparse
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/cs.h
 	$(RM) $(INSTALL_DOC)/CXSPARSE_README.txt
 
diff -urN SuiteSparse.orig/CXSparse_newfiles/Lib/Makefile SuiteSparse/CXSparse_newfiles/Lib/Makefile
--- SuiteSparse.orig/CXSparse_newfiles/Lib/Makefile	2017-05-01 17:08:36.309358100 +0100
+++ SuiteSparse/CXSparse_newfiles/Lib/Makefile	2017-05-01 16:24:28.676354900 +0100
@@ -113,26 +113,22 @@
 	- $(RM) -r $(PURGE)
 
 # install CXSparse
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(CS)
+$(INSTALL_SO)/$(SO_TARGET): $(CS)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/cs.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/CXSPARSE_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/cs.h
 	chmod 644 $(INSTALL_DOC)/CXSPARSE_README.txt
 
 # uninstall CXSparse
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/cs.h
 	$(RM) $(INSTALL_DOC)/CXSPARSE_README.txt
 
diff -urN SuiteSparse.orig/GPUQREngine/Lib/Makefile SuiteSparse/GPUQREngine/Lib/Makefile
--- SuiteSparse.orig/GPUQREngine/Lib/Makefile	2017-05-01 17:08:36.324358000 +0100
+++ SuiteSparse/GPUQREngine/Lib/Makefile	2017-05-01 16:24:28.685855200 +0100
@@ -129,24 +129,20 @@
 #-------------------------------------------------------------------------------
 
 # install GPUQREngine.  Note that the include files are not installed.
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJS)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../README.txt $(INSTALL_DOC)/GPUQRENGINE_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_DOC)/GPUQRENGINE_README.txt
 
 # uninstall GPUQREngine
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_DOC)/GPUQRENGINE_README.txt
 
 #-------------------------------------------------------------------------------
diff -urN SuiteSparse.orig/KLU/Lib/Makefile SuiteSparse/KLU/Lib/Makefile
--- SuiteSparse.orig/KLU/Lib/Makefile	2017-05-01 17:08:36.342857200 +0100
+++ SuiteSparse/KLU/Lib/Makefile	2017-05-01 16:24:28.695856500 +0100
@@ -263,28 +263,24 @@
 #-------------------------------------------------------------------------------
 
 # install KLU
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/klu.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/KLU_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/KLU_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/klu.h
 	chmod 644 $(INSTALL_DOC)/KLU_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/KLU_README.txt
 
 # uninstall KLU
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/klu.h
 	$(RM) $(INSTALL_DOC)/KLU_UserGuide.pdf
 	$(RM) $(INSTALL_DOC)/KLU_README.txt
diff -urN SuiteSparse.orig/LDL/Lib/Makefile SuiteSparse/LDL/Lib/Makefile
--- SuiteSparse.orig/LDL/Lib/Makefile	2017-05-01 17:08:36.356357000 +0100
+++ SuiteSparse/LDL/Lib/Makefile	2017-05-01 16:24:28.705857500 +0100
@@ -46,28 +46,24 @@
 	- $(RM) -r $(CLEAN)
 
 # install LDL
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/ldl.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/ldl_userguide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/LDL_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/ldl.h
 	chmod 644 $(INSTALL_DOC)/ldl_userguide.pdf
 	chmod 644 $(INSTALL_DOC)/LDL_README.txt
 
 # uninstall LDL
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/ldl.h
 	$(RM) $(INSTALL_DOC)/ldl_userguide.pdf
 	$(RM) $(INSTALL_DOC)/LDL_README.txt
diff -urN SuiteSparse.orig/Makefile SuiteSparse/Makefile
--- SuiteSparse.orig/Makefile	2017-05-01 17:08:36.371358100 +0100
+++ SuiteSparse/Makefile	2017-05-01 17:09:24.703869100 +0100
@@ -63,13 +63,13 @@
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
-	- $(CP) lib/libmetis.* $(INSTALL_LIB)
+	- $(CP) lib/libmetis.* $(INSTALL_SO)
 	- $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf
 	- $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt
         # the following is needed only on the Mac, so *.dylib is hardcoded:
 	$(SO_INSTALL_NAME) $(INSTALL_LIB)/libmetis.dylib $(INSTALL_LIB)/libmetis.dylib
 	- $(CP) include/metis.h $(INSTALL_INCLUDE)
-	chmod 755 $(INSTALL_LIB)/libmetis.*
+	chmod 755 $(INSTALL_SO)/libmetis.*
 	chmod 644 $(INSTALL_INCLUDE)/metis.h
 	chmod 644 $(INSTALL_DOC)/METIS_manual.pdf
 	chmod 644 $(INSTALL_DOC)/METIS_README.txt
diff -urN SuiteSparse.orig/RBio/Lib/Makefile SuiteSparse/RBio/Lib/Makefile
--- SuiteSparse.orig/RBio/Lib/Makefile	2017-05-01 17:08:36.387356800 +0100
+++ SuiteSparse/RBio/Lib/Makefile	2017-05-01 16:24:28.725356200 +0100
@@ -60,25 +60,21 @@
 #-------------------------------------------------------------------------------
 
 # install RBio
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/RBio.h $(INSTALL_INCLUDE)
 	$(CP) ../README.txt $(INSTALL_DOC)/RBIO_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/RBio.h
 	chmod 644 $(INSTALL_DOC)/RBIO_README.txt
 
 # uninstall RBio
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/RBio.h
 	$(RM) $(INSTALL_DOC)/RBIO_README.txt
diff -urN SuiteSparse.orig/SPQR/Lib/Makefile SuiteSparse/SPQR/Lib/Makefile
--- SuiteSparse.orig/SPQR/Lib/Makefile	2017-05-01 17:08:36.409357700 +0100
+++ SuiteSparse/SPQR/Lib/Makefile	2017-05-01 16:24:28.735855300 +0100
@@ -242,22 +242,20 @@
 #-------------------------------------------------------------------------------
 
 # install SPQR
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/SuiteSparseQR.hpp $(INSTALL_INCLUDE)
 	$(CP) ../Include/SuiteSparseQR_C.h $(INSTALL_INCLUDE)
 	$(CP) ../Include/SuiteSparseQR_definitions.h $(INSTALL_INCLUDE)
 	$(CP) ../Include/spqr.hpp $(INSTALL_INCLUDE)
 	$(CP) ../Doc/spqr_user_guide.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/SPQR_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR.hpp
 	chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_C.h
 	chmod 644 $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h
@@ -267,9 +267,7 @@
 
 # uninstall SPQR
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR.hpp
 	$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_C.h
 	$(RM) $(INSTALL_INCLUDE)/SuiteSparseQR_definitions.h
diff -urN SuiteSparse.orig/SuiteSparse_config/Makefile SuiteSparse/SuiteSparse_config/Makefile
--- SuiteSparse.orig/SuiteSparse_config/Makefile	2017-05-01 17:08:36.425858700 +0100
+++ SuiteSparse/SuiteSparse_config/Makefile	2017-05-01 16:24:28.746854300 +0100
@@ -44,27 +44,22 @@
 	- $(RM) -r $(CLEAN)
 
 # install SuiteSparse_config
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) SuiteSparse_config.h $(INSTALL_INCLUDE)
 	$(CP) README.txt $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
-	chmod 755 $(INSTALL_LIB)/$(SO_PLAIN)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/SuiteSparse_config.h
 	chmod 644 $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
 
 # uninstall SuiteSparse_config
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/SuiteSparse_config.h
 	$(RM) $(INSTALL_DOC)/SUITESPARSECONFIG_README.txt
 	( cd xerbla ; $(MAKE) uninstall )
diff -urN SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk
--- SuiteSparse.orig/SuiteSparse_config/SuiteSparse_config.mk	2017-05-01 17:08:36.446857200 +0100
+++ SuiteSparse/SuiteSparse_config/SuiteSparse_config.mk	2017-05-01 16:24:28.769355300 +0100
@@ -54,6 +54,7 @@
     # and documentation in /solo/mydox.
     INSTALL ?= $(SUITESPARSE)
     INSTALL_LIB ?= $(INSTALL)/lib
+    INSTALL_SO ?= $(INSTALL)/lib
     INSTALL_INCLUDE ?= $(INSTALL)/include
     INSTALL_DOC ?= $(INSTALL)/share/doc/suitesparse-$(SUITESPARSE_VERSION)
 
@@ -339,7 +340,7 @@
 
     ifeq ($(UNAME),Linux)
         # add the realtime library, librt, and SuiteSparse/lib
-        LDLIBS += -lrt -Wl,-rpath=$(INSTALL_LIB)
+        LDLIBS += -lrt -Wl,-rpath=$(INSTALL_SO)
     endif
 
     #---------------------------------------------------------------------------
@@ -428,10 +429,11 @@
 SO_OPTS = $(LDFLAGS)
 
 ifeq ($(UNAME),Windows)
-    # Cygwin Make on Windows (untested)
     AR_TARGET = $(LIBRARY).a
     SO_TARGET = $(LIBRARY).dll
     SO_INSTALL_NAME = echo
+    SO_OPTS  += -shared -Wl,--out-implib,$(INSTALL_LIB)/$(LIBRARY).dll.a
+    INSTALL_SO = $(INSTALL)/bin
 else
     # Mac or Linux/Unix
     AR_TARGET = $(LIBRARY).a
@@ -552,6 +554,7 @@
 	@echo 'System:                   UNAME=          ' '$(UNAME)'
 	@echo 'Install directory:        INSTALL=        ' '$(INSTALL)'
 	@echo 'Install libraries in:     INSTALL_LIB=    ' '$(INSTALL_LIB)'
+	@echo 'Install shared libs in:   INSTALL_SO=     ' '$(INSTALL_SO)'
 	@echo 'Install include files in: INSTALL_INCLUDE=' '$(INSTALL_INCLUDE)'
 	@echo 'Install documentation in: INSTALL_DOC=    ' '$(INSTALL_DOC)'
 	@echo 'Optimization level:       OPTIMIZATION=   ' '$(OPTIMIZATION)'
diff -urN SuiteSparse.orig/SuiteSparse_config/xerbla/Makefile SuiteSparse/SuiteSparse_config/xerbla/Makefile
--- SuiteSparse.orig/SuiteSparse_config/xerbla/Makefile	2017-05-01 17:08:36.456857300 +0100
+++ SuiteSparse/SuiteSparse_config/xerbla/Makefile	2017-05-01 16:24:28.783354600 +0100
@@ -53,16 +53,13 @@
 	$(COMPILE)
 	$(CC) $(SO_OPTS) xerbla.o -o $@
 	- $(RM) xerbla.o
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) xerbla.h $(INSTALL_INCLUDE)
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/xerbla.h
 
 # uninstall libcerbla / libxerbla
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/xerbla.h
 
 distclean: purge
diff -urN SuiteSparse.orig/SuiteSparse_GPURuntime/Lib/Makefile SuiteSparse/SuiteSparse_GPURuntime/Lib/Makefile
--- SuiteSparse.orig/SuiteSparse_GPURuntime/Lib/Makefile	2017-05-01 17:08:36.470358000 +0100
+++ SuiteSparse/SuiteSparse_GPURuntime/Lib/Makefile	2017-05-01 16:24:28.798856500 +0100
@@ -70,23 +70,19 @@
 #-------------------------------------------------------------------------------
 
 # install SuiteSparse_GPURuntime (just the library, not the include files)
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJS)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJS)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CXX) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../README.txt $(INSTALL_DOC)/GPURUNTIME_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_DOC)/GPURUNTIME_README.txt
 
 # uninstall SuiteSparse_GPURuntime
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_DOC)/GPURUNTIME_README.txt
 
diff -urN SuiteSparse.orig/UMFPACK/Lib/Makefile SuiteSparse/UMFPACK/Lib/Makefile
--- SuiteSparse.orig/UMFPACK/Lib/Makefile	2017-05-01 17:08:36.484858600 +0100
+++ SuiteSparse/UMFPACK/Lib/Makefile	2017-05-01 16:24:28.812354100 +0100
@@ -288,20 +288,18 @@
 
 #-------------------------------------------------------------------------------
 # install UMFPACK
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/umfpack*.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/UMFPACK_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../Doc/UMFPACK_QuickStart.pdf $(INSTALL_DOC)
 	$(CP) ../README.txt $(INSTALL_DOC)/UMFPACK_README.txt
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/umfpack*.h
 	chmod 644 $(INSTALL_DOC)/UMFPACK_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/UMFPACK_QuickStart.pdf
@@ -309,9 +309,7 @@
 
 # uninstall UMFPACK
 uninstall:
-	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
-	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
-	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
+	$(RM) $(INSTALL_SO)/$(SO_TARGET)
 	$(RM) $(INSTALL_INCLUDE)/umfpack*.h
 	$(RM) $(INSTALL_DOC)/UMFPACK_UserGuide.pdf
 	$(RM) $(INSTALL_DOC)/UMFPACK_QuickStart.pdf

diff -urN SuiteSparse-5.8.1.orig/SLIP_LU/Lib/Makefile SuiteSparse-5.8.1/SLIP_LU/Lib/Makefile
--- SuiteSparse-5.8.1.orig/SLIP_LU/Lib/Makefile	2020-07-15 04:04:44.000000000 +0500
+++ SuiteSparse-5.8.1/SLIP_LU/Lib/Makefile	2020-12-22 22:51:56.103420700 +0500
@@ -63,19 +63,17 @@
 #-------------------------------------------------------------------------------
 
 # install SLIP_LU
-install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET)
+install: $(AR_TARGET) $(INSTALL_SO)/$(SO_TARGET)
 
-$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
+$(INSTALL_SO)/$(SO_TARGET): $(OBJ)
 	@mkdir -p $(INSTALL_LIB)
 	@mkdir -p $(INSTALL_INCLUDE)
 	@mkdir -p $(INSTALL_DOC)
 	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
-	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
 	$(CP) ../Include/SLIP_LU.h $(INSTALL_INCLUDE)
 	$(CP) ../Doc/SLIP_LU_UserGuide.pdf $(INSTALL_DOC)
 	$(CP) ../README.md $(INSTALL_DOC)/SLIP_LU_README.md
-	chmod 755 $(INSTALL_LIB)/$(SO_TARGET)
+	chmod 755 $(INSTALL_SO)/$(SO_TARGET)
 	chmod 644 $(INSTALL_INCLUDE)/SLIP_LU.h
 	chmod 644 $(INSTALL_DOC)/SLIP_LU_UserGuide.pdf
 	chmod 644 $(INSTALL_DOC)/SLIP_LU_README.md
