diff --git a/config/CONFIG.Host.WIN32 b/config/CONFIG.Host.WIN32 index 7cc0953cd..05e2ccc93 100644 --- a/config/CONFIG.Host.WIN32 +++ b/config/CONFIG.Host.WIN32 @@ -204,7 +204,17 @@ LINK.dll = $(WINLINK) /nologo $(WIN32_DLLFLAGS) /implib:$(@:%.dll=%.lib) /out:$@ # on some archs), don't define (and build) any library! DLLNAME = $(LIBRARY).dll -LIBNAME = $(LIBRARY).lib +# +# Under WIN32 we have the unique situation where the DLL link creates the +# DLL link library xxx.lib and we need to be very careful to avoid replacing +# the xxx.lib created by the dll link with an xxx.lib created by $(AR) +# +# LIBTYPE is empty if we are not building a DLL +# +DLL_LINK_LIBNAME_SHARED = $(LIBRARY).lib +DLL_LINK_LIBNAME = $(DLL_LINK_LIBNAME_$(LIBTYPE)) +OBJECT_LIBNAME_ = $(LIBRARY).lib +LIBNAME = $(OBJECT_LIBNAME_$(LIBTYPE)) #-------------------------------------------------- # Dependancy definitions diff --git a/config/RULES.Host b/config/RULES.Host index c7e7e22d3..b97ba1622 100644 --- a/config/RULES.Host +++ b/config/RULES.Host @@ -232,6 +232,7 @@ INSTALL_PROD= $(PROD:%= $(INSTALL_BIN)/%) INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%) INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_LIB)/%) INSTALL_DLLS=$(DLLNAME:%=$(INSTALL_BIN)/%) +INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%) INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%) INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%) @@ -294,9 +295,9 @@ LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS) ifeq ($(strip $(LIBTYPE)),SHARED) # # LIBTYPE=="SHARED" indicates build -# DLL and also build object archive library +# DLL and install both dll and dll link library # -LIBTARGETS += $(DLLNAME) $(INSTALL_DLLS) +LIBTARGETS += $(DLLNAME) $(INSTALL_DLLS) $(INSTALL_DLL_LINK_LIBS) endif # LIBTYPE=SHARED # check if shared library requested: (Unix type build)