diff options
author | Bernard Normier <bernard@zeroc.com> | 2016-05-31 11:21:57 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2016-05-31 11:21:57 -0400 |
commit | 8758a94c505a085e3422108259b60d0da49a2cd0 (patch) | |
tree | 83b856cf6e93ddf8020be5d4485070f0b59ff957 | |
parent | Added back -fembed-bitcode when building for iphoneos (diff) | |
download | ice-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.rules | 12 | ||||
-rw-r--r-- | config/Make.rules | 8 | ||||
-rw-r--r-- | config/Make.rules.AIX | 1 | ||||
-rw-r--r-- | config/Make.rules.Darwin | 16 | ||||
-rw-r--r-- | config/Make.rules.Linux | 1 |
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 |