diff --git a/Makefile b/Makefile index e538949db..c152488bc 100644 --- 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 : diff --git a/Makefile.system b/Makefile.system index e4b92539c..63d3577a7 100644 --- a/Makefile.system +++ b/Makefile.system @@ -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) diff --git a/exports/Makefile b/exports/Makefile index 40a3a7c63..c507032e9 100644 --- a/exports/Makefile +++ b/exports/Makefile @@ -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)