Refs #127. Generate DLL without a version suffix on Windows.
authorZaheer Chothia <zaheer.chothia@gmail.com>
Mon, 30 Jul 2012 17:46:30 +0000 (19:46 +0200)
committerZaheer Chothia <zaheer.chothia@gmail.com>
Mon, 30 Jul 2012 17:46:30 +0000 (19:46 +0200)
Makefile
Makefile.system
exports/Makefile

index e538949db7879cfb874c91819e2b1bc226f6d7e3..c152488bc4c2ba98f2fdcba3ebfe5ba041a8a674 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -99,11 +99,9 @@ ifeq ($(OSNAME), Darwin)
 endif
 ifeq ($(OSNAME), WINNT)
        $(MAKE) -C exports dll
-       -ln -fs $(LIBDLLNAME) $(LIBPREFIX).dll
 endif
 ifeq ($(OSNAME), CYGWIN_NT)
        $(MAKE) -C exports dll
-       -ln -fs $(LIBDLLNAME) $(LIBPREFIX).dll
 endif
 
 tests :
index e4b92539c7c57f14a98e57c4ce32915ce876c425..63d3577a7ae3582b1c988784ef976106b9369138 100644 (file)
@@ -724,8 +724,8 @@ endif
 endif
 
 
+LIBDLLNAME   = $(LIBPREFIX).dll
 LIBSONAME    = $(LIBNAME:.$(LIBSUFFIX)=.so)
-LIBDLLNAME   = $(LIBNAME:.$(LIBSUFFIX)=.dll)
 LIBDYNNAME   = $(LIBNAME:.$(LIBSUFFIX)=.dylib)
 LIBDEFNAME   = $(LIBNAME:.$(LIBSUFFIX)=.def)
 LIBEXPNAME   = $(LIBNAME:.$(LIBSUFFIX)=.exp)
index 40a3a7c63efc6b27da774a7619ce85a27fe7ba00..c507032e9ab024d6556d90ba0d9ecd1022733b08 100644 (file)
@@ -66,6 +66,11 @@ dll  : ../$(LIBDLLNAME)
 
 dll2 : libgoto2_shared.dll
 
+# On Windows, we only generate a DLL without a version suffix.  This is because
+# applications which link against the dynamic library reference a fixed DLL name
+# in their import table.  By instead using a stable name it is possible to
+# upgrade between library versions, without needing to re-link an application.
+# For more details see: https://github.com/xianyi/OpenBLAS/issues/127.
 ../$(LIBDLLNAME) : ../$(LIBNAME) libopenblas.def dllinit.$(SUFFIX)
        $(RANLIB) ../$(LIBNAME)
 ifeq ($(BINARY32), 1)