diff --git a/make/defs.mk b/make/defs.mk index fd75d46b..903f606f 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -19,6 +19,7 @@ PROJECT_STEM = $(PROJECT)-$(DIST_VERSION) CVS_ROOT_DIR = $(shell test -d CVS && pwd | sed -e "s%`cat CVS/Repository`%%; s%/$$%%") REV_SUBDIRS = $(shell echo $(SUBDIRS) | awk '{for (i=NF; i>=1; i--) printf ("%s ",$$i)}') +BINARY_VERSION = $(shell echo $(PROJECT)_$(VERSION) | tr [a-z] [A-Z] | sed 's/-[0-9]*$$//') FTP_PCKG_DIR = /pub/packages JANNET_PROJ_DIR = rsync_ssh://ftp.jannet.de:/home/ftp/dat$(FTP_PCKG_DIR) diff --git a/make/rules.mk b/make/rules.mk index c97c03b7..9d78fc55 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -40,8 +40,12 @@ lib%.so: %.o endif $(CC) $< $(LDFLAGS) -o $@ -$(LIB_SO): $(LIB_A) - $(CC) -shared -Wl,--whole-archive,-soname=$(notdir $@) $< -Wl,--no-whole-archive \ +version.ldscript: + $(MOD_SCRIPT_DIR)/make_version_script.sh $(BINARY_VERSION) > $@ + +$(LIB_SO): version.ldscript $(LIB_A) + $(CC) -shared -Wl,--whole-archive,-soname=$(notdir $@) $(filter-out version.ldscript, $<) \ + -Wl,--no-whole-archive -Wl,--version-script=version.ldscript \ $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@ $(TOPDIR)/include: