defs.mk, lib.mk, rules.mk: Add version information into windows dlls

This commit is contained in:
Jan Lindemann 2009-08-08 09:23:23 +00:00 committed by Jan Lindemann
commit 375ec54aa2
3 changed files with 31 additions and 2 deletions

View file

@ -49,6 +49,9 @@ DIST_WINVERSION = $(shell echo $(WINVERSION) | sed -e "s/-dev//")
LOCAL_DIST_VERSION = $(shell echo $(LOCAL_VERSION) | sed -e "s/-dev//")
LOCAL_DIST_WINVERSION = $(shell echo $(LOCAL_WINVERSION) | sed -e "s/-dev//")
MAJOR_MINOR_RELEASE = $(shell echo $(DIST_VERSION) | cut -d- -f1)
MAJOR_VERSION = $(shell echo $(MAJOR_MINOR_RELEASE) | cut -d. -f1)
MINOR_VERSION = $(shell echo $(MAJOR_MINOR_RELEASE) | cut -d. -f2)
RELEASE_VERSION = $(shell echo $(MAJOR_MINOR_RELEASE) | cut -d. -f3)
BUILD_NUMBER = $(shell echo $(DIST_VERSION) | cut -d- -f2)
CVS_RSH ?= /usr/bin/ssh
ifneq ($(TARGET),mingw)
@ -135,6 +138,7 @@ GPP = $(CROSS_TOOL_BIN_PREFIX)g++
STRIP = $(CROSS_TOOL_BIN_PREFIX)strip
RANLIB = $(CROSS_TOOL_BIN_PREFIX)ranlib
AR = $(CROSS_TOOL_BIN_PREFIX)ar
WINDRES = $(CROSS_TOOL_BIN_PREFIX)windres
LDFLAGS += -lws2_32
USE_GFILTER = false
MS_LD ?= wine $(HOME)/local/mingw/packages/msvcpp/bin/LIB.EXE
@ -278,6 +282,10 @@ INSTALLED_LINKS_SO += $(shell echo $(INSTALLED_LIB_SO) | sed -e "s/\.so\..*$$
INSTALLED_LIB_A = $(INSTALL_LIBDIR)/lib$(LIBNAME).a
else
LIB_A = $(BUILD_LIBDIR)/lib$(LIBNAME)-static.a
#WINRES_RC_TMPL = $(MODDIR)/make/winres-minimal.rc.tmpl
WINRES_RC_TMPL = $(MODDIR)/make/winres.rc.tmpl
WINRES_RC = $(BUILD_LIBDIR)/$(PROJECT).rc
WINRES_O = $(WINRES_RC).o
SO_SUFFIX = dll
SO_PREFIX ?=
LIB_DEF = $(BUILD_LIBDIR)/$(LIBNAME).def

View file

@ -70,3 +70,24 @@ $(foreach p,$(CONTRIB_LIBS_PATH),$(eval $(call contrib_lib_search_rules,$(p))))
echo.contrib-libs:
@echo CONTRIB_LIBS_PATH = $(CONTRIB_LIBS_PATH)
@echo CONTRIB_LIBS = $(CONTRIB_LIBS)
ifeq ($(TARGET),mingw)
$(WINRES_RC): $(WINRES_RC_TMPL)
cat $< | sed " \
s/__VER_FILEVERSION__/$(MAJOR_VERSION),$(MINOR_VERSION),$(RELEASE_VERSION),$(BUILD_NUMBER)/; \
s/__VER_FILEVERSION_STR__/$(MAJOR_VERSION).$(MINOR_VERSION).$(RELEASE_VERSION).$(BUILD_NUMBER)/; \
s/__VER_DESCRIPTION__/\"$(PROJECT_DESCR)\"/; \
s/__VER_COMPANY_NAME__/\"$(CUSTOMER)\"/; \
" > $@.tmp
mv $@.tmp $@
$(WINRES_O): $(WINRES_RC)
$(WINDRES) $^ -o $@
clean.winres:
rm -f $(WINRES_RC) $(WINRES_O) *.tmp
clean: clean.winres
#%.o : %.rc
# $(WINDRES) $^ -o $@
endif

View file

@ -213,9 +213,9 @@ $(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
$(LD) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \
$(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
else
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
$(LIB_SO): $(VERSION_SCRIPT) $(WINRES_O) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
$(LD) -shared -Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | \
sed 's/-static//'),--output-def,$(LIB_DEF) $(VERSION_SCRIPT) $(LIB_A) \
sed 's/-static//'),--output-def,$(LIB_DEF) $(VERSION_SCRIPT) $(LIB_A) $(WINRES_O) \
-Wl,--no-whole-archive $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@
$(MSVCPP_IMPLIB): $(LIB_SO)
$(MS_LD) /machine:i386 /def:$(LIB_DEF)