summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-05-31 11:21:57 -0400
committerBernard Normier <bernard@zeroc.com>2016-05-31 11:21:57 -0400
commit8758a94c505a085e3422108259b60d0da49a2cd0 (patch)
tree83b856cf6e93ddf8020be5d4485070f0b59ff957
parentAdded back -fembed-bitcode when building for iphoneos (diff)
downloadice-8758a94c505a085e3422108259b60d0da49a2cd0.tar.bz2
ice-8758a94c505a085e3422108259b60d0da49a2cd0.tar.xz
ice-8758a94c505a085e3422108259b60d0da49a2cd0.zip
OS X library updates:
- added version numbers - symlinks now always point to the actual library
-rw-r--r--config/Make.project.rules12
-rw-r--r--config/Make.rules8
-rw-r--r--config/Make.rules.AIX1
-rw-r--r--config/Make.rules.Darwin16
-rw-r--r--config/Make.rules.Linux1
5 files changed, 29 insertions, 9 deletions
diff --git a/config/Make.project.rules b/config/Make.project.rules
index e0d982cc8c3..d4c5f6ebc29 100644
--- a/config/Make.project.rules
+++ b/config/Make.project.rules
@@ -231,7 +231,7 @@ $2/$(call mksoname,$1,$3,$4): $2/$(call mkshlibfilename,$1,$3,$4)
@$(RM) $$@ ; ln -s $$(<F) $$@
ifneq ($(and $3,$(filter-out undefined,$(origin mkshlibname))),)
-$2/$(call mkshlibname,$1,$3,$4): $2/$(call $(if $4,mksoname,mkshlibfilename),$1,$3,$4)
+$2/$(call mkshlibname,$1,$3,$4): $2/$(call mkshlibnametarget,$1,$3,$4)
@$(RM) $$@ ; ln -s $$(<F) $$@
endif
endif
@@ -252,7 +252,7 @@ $(DESTDIR)$5/$(call mksoname,$1,$3,$4): $(DESTDIR)$5/$(call mkshlibfilename,$1,$
@$(RM) $$@ ; ln -s $$(<F) $$@
ifneq ($(and $3,$(filter-out undefined,$(origin mkshlibname))),)
-$(DESTDIR)$5/$(call mkshlibname,$1,$3,$4): $(DESTDIR)$5/$(call $(if $4,mksoname,mkshlibfilename),$1,$3,$4) \
+$(DESTDIR)$5/$(call mkshlibname,$1,$3,$4): $(DESTDIR)$5/$(call mkshlibnametarget,$1,$3,$4) \
$2/$(call mkshlibname,$1,$3,$4)
@$(RM) $$@ ; ln -s $$(<F) $$@
endif
@@ -842,6 +842,14 @@ depend-cppflags ?= -MT $2 -MMD -MP -MF $1
rpath-ldflag ?= -Wl,-rpath,$1
#
+# $(call mkxxx,$1=libname,$2=version,$3=soversion)
+#
+# Defaults, suitable for most systems
+#
+mklibname ?= lib$(1).a
+mkshlibnametarget ?= $(if $3,$(mksoname),$(mkshlibfilename))
+
+#
# Helper functions
#
dirname = $(patsubst %/,%,$(if $(findstring /,$1),$(dir $1)))
diff --git a/config/Make.rules b/config/Make.rules
index 1bc3fcec1a1..c1b7c4ec131 100644
--- a/config/Make.rules
+++ b/config/Make.rules
@@ -109,6 +109,14 @@ mmversion = 3.7
soversion = 37a0
#
+# The compatversion is the lowest patch release with the same API.
+# For example, if 3.7.2 introduces no new API compared to 3.7.1, we
+# would set version = 3.7.2 and compatversion = 3.7.1.
+# Used for OS X libraries.
+#
+compatversion = $(version)
+
+#
# Support for 3rd party libraries
#
thirdparties := mcpp iconv expat bz2 lmdb
diff --git a/config/Make.rules.AIX b/config/Make.rules.AIX
index 98f0548400b..456df2211cb 100644
--- a/config/Make.rules.AIX
+++ b/config/Make.rules.AIX
@@ -56,7 +56,6 @@ mkshlib ?= $(or $($7_cxx),$(CXX)) -qmkshrobj -o $(call tmpsofile,$1,$3,$
#
# $(call mkxxx,$1=libname,$2=version,$3=soversion)
#
-mklibname = lib$(1).a
mkshlibfilename = lib$(1).a
mkpymodulename = $(1).so
diff --git a/config/Make.rules.Darwin b/config/Make.rules.Darwin
index 100dd1834b3..8aec7938d9b 100644
--- a/config/Make.rules.Darwin
+++ b/config/Make.rules.Darwin
@@ -50,19 +50,25 @@ nodeprecatedwarnings-cppflags := -Wno-deprecated-declarations
loader_path = @loader_path
+# $(call machoversion,$1=version)
+machoversion = $(subst b,.6,$(subst a,.5,$1))
+
# $(call mklib,$1=target,$2=objects,$3=libname,$4=version,$5=soversion,$6=ldflags,$7=platform)
mklib = $(or $($7_ar),$(AR)) -static -no_warning_for_no_symbols -o $1 $2
# $(call mkshlib,$1=target,$2=objects,$3=libname,$4=version,$5=soversion,$6=ldflags,$7=platform)
-mkshlib = $(or $($7_cxx),$(CXX)) -dynamiclib $(if $5,-install_name @rpath/$(call mksoname,$3,$4,$5)) -o $1 $2 $6
+mkshlib = $(or $($7_cxx),$(CXX)) -dynamiclib $(if $5,-install_name @rpath/$(call mksoname,$3,$4,$5))\
+ $(if $4,-current_version $(call machoversion,$4) -compatibility_version \
+ $(call machoversion,$(if $(filter $4,$(version)),$(compatversion),$4))) \
+ -o $1 $2 $6
#
# $(call mkxxx,$1=libname,$2=version,$3=soversion)
#
-mklibname = lib$1.a
-mksoname = lib$1$(if $3,.$3).dylib
-mkshlibfilename = lib$1$(if $2,.$2).dylib
-mkshlibname = lib$1.dylib
+mksoname = lib$1$(if $3,.$3).dylib
+mkshlibfilename = lib$1$(if $2,.$2).dylib
+mkshlibname = lib$1.dylib
+mkshlibnametarget = $(mkshlibfilename)
mkpymodulename = $1.so
mkrbmodulename = $1.bundle
diff --git a/config/Make.rules.Linux b/config/Make.rules.Linux
index f3c6bd23aca..c49a16f2ec6 100644
--- a/config/Make.rules.Linux
+++ b/config/Make.rules.Linux
@@ -105,7 +105,6 @@ mkshlib = $(or $($7_cxx),$(CXX)) -shared $(if $5,-Wl$(comma)-h$(comma)$(
#
# $(call mkxxx,$1=libname,$2=version,$3=soversion)
#
-mklibname = lib$(1).a
mksoname = lib$(1).so$(if $3,.$3)
mkshlibfilename = lib$(1).so$(if $2,.$2)
mkshlibname = lib$(1).so