diff options
author | Jim Jagielski <jim@apache.org> | 2018-07-03 21:29:28 +0000 |
---|---|---|
committer | Jim Jagielski <jim@apache.org> | 2018-07-03 21:29:28 +0000 |
commit | bcf12622492d148e11369921c5faf258681f5c6e (patch) | |
tree | 96dfe3f3b5af1c65c8d8b117eccdae33ac18b909 /solenv/gbuild | |
parent | fbdc623e8c9e1688f2261320ae6b8d87838da9bf (diff) |
Get macOS building again... Use (old) SDKROOT as needed for older platforms and also support the UDK versioning which was added for Linux, Solaris and FreeBSD but which broke macOS horribly. I *think* this is right. Sometimes, as much as dmake is a pain, the constant breakage due to the change to gbuild is sometimes much, much worse. Esp since we HAVE the sources for dmake.
Notes
Notes:
ignore: aoo
Diffstat (limited to 'solenv/gbuild')
-rw-r--r-- | solenv/gbuild/platform/macosx.mk | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index fc54d1e66f1b..065080a1ec2c 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -288,6 +288,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) $(gb_macos_LDFLAGS) \ $(if $(VERSIONMAP),$(gb_Library_VERSIONMAPFLAG) $(VERSIONMAP)) \ + $(if $(call gb_Library_is_udk_versioned,$(1)),-Wl$(COMMA)-h$(notdir $(1)).$(gb_UDK_MAJOR)) \ $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ @@ -295,7 +296,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(LIBS) \ - -o $(1) \ + -o $(if $(call gb_Library_is_udk_versioned,$(1)),$(1).$(gb_UDK_MAJOR),$(1)) \ `cat $${DYLIB_FILE}` && \ $(if $(filter Library,$(TARGETTYPE)),\ $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \ @@ -303,6 +304,12 @@ $(call gb_Helper_abbreviate_dirs,\ rm -f $${DYLIB_FILE}) endef +define gb_LinkTarget__command_symlink_udk_versioned_library + $(if $(call gb_Library_is_udk_versioned,$(1)), + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(1) && ln -s $(notdir $(1)).$(gb_UDK_MAJOR) $(1))) +endef + # parameters: 1-linktarget 2-cobjects 3-cxxobjects define gb_LinkTarget__command_staticlink $(call gb_Helper_abbreviate_dirs,\ @@ -318,6 +325,7 @@ endef define gb_LinkTarget__command $(call gb_Output_announce,$(2),$(true),LNK,4) $(if $(filter Library GoogleTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2))) +$(if $(filter Library,$(TARGETTYPE)),$(call gb_LinkTarget__command_symlink_udk_versioned_library,$(1))) $(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1))) endef @@ -375,7 +383,11 @@ endef define gb_Library_Library_platform $(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1)) $(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1)) - +ifneq (,$(call gb_Library_is_udk_versioned,$(call gb_Library_get_target,$(1)))) +$(call gb_Library_get_target,$(1)) \ +$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS += \ + $(call gb_Library_get_target,$(1)).$(gb_UDK_MAJOR) +endif endef |