diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-12-06 17:41:30 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-12-15 21:19:49 +0100 |
commit | 8a008416c7c72321964c219f9979c4730e6e1a63 (patch) | |
tree | e6271caea6e9693778d8e98701b0cae99c573b5a | |
parent | d023a95526b8277775927c6ef3bf39925c77f76b (diff) |
lockfile: use a single build condition
... and introduce solenv/gbuild/Conditions.mk
The Conditions.mk is included just after the Helpers.mk, which
should make its content available basically everywhere.
Change-Id: Ie4498e12b3d0f676ed0c9abf4b3bb4899d6a1c03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126787
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
-rw-r--r-- | Repository.mk | 2 | ||||
-rw-r--r-- | solenv/Module_solenv.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/Conditions.mk | 14 | ||||
-rw-r--r-- | solenv/gbuild/extensions/pre_BuildTools.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 15 |
6 files changed, 31 insertions, 6 deletions
diff --git a/Repository.mk b/Repository.mk index ae2804c6ebcc..91e8780a01ba 100644 --- a/Repository.mk +++ b/Repository.mk @@ -44,7 +44,7 @@ $(eval $(call gb_Helper_register_executables,NONE, \ $(if $(filter iOS,$(OS)),LibreOffice) \ lngconvex \ localize \ - $(if $(filter-out ANDROID MACOSX iOS WNT,$(OS)),lockfile) \ + $(call gb_CondBuildLockfile,lockfile) \ makedepend \ mbsdiff \ osl_process_child \ diff --git a/solenv/Module_solenv.mk b/solenv/Module_solenv.mk index 62433c30da72..1c2793c104bf 100644 --- a/solenv/Module_solenv.mk +++ b/solenv/Module_solenv.mk @@ -16,7 +16,7 @@ $(eval $(call gb_Module_add_targets_for_build,solenv,\ ifeq (,$(LOCKFILE)) $(eval $(call gb_Module_add_targets_for_build,solenv,\ - $(if $(filter-out ANDROID MACOSX iOS WNT,$(OS)),Executable_lockfile) \ + $(call gb_CondBuildLockfile,Executable_lockfile) \ )) endif diff --git a/solenv/gbuild/Conditions.mk b/solenv/gbuild/Conditions.mk new file mode 100644 index 000000000000..bf81215f25eb --- /dev/null +++ b/solenv/gbuild/Conditions.mk @@ -0,0 +1,14 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +define gb_CondBuildLockfile +$(if $(and $(filter-out ANDROID MACOSX iOS WNT,$(OS))),$(1),$(2)) +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/extensions/pre_BuildTools.mk b/solenv/gbuild/extensions/pre_BuildTools.mk index 8481a3785637..e7602c2d7089 100644 --- a/solenv/gbuild/extensions/pre_BuildTools.mk +++ b/solenv/gbuild/extensions/pre_BuildTools.mk @@ -24,7 +24,7 @@ gb_BUILD_TOOLS_executables = \ helpex \ idxdict \ javamaker \ - $(if $(filter-out ANDROID MACOSX iOS WNT,$(OS)),lockfile) \ + $(call gb_CondBuildLockfile,lockfile) \ makedepend \ propex \ saxparser \ diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 6d074400748d..e2c6b9aee6a2 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -68,6 +68,8 @@ gb_VERBOSE := $(verbose) include $(GBUILDDIR)/Helper.mk +include $(GBUILDDIR)/Conditions.mk + # optional extensions that should never be essential ifneq ($(wildcard $(GBUILDDIR)/extensions/pre_*.mk),) include $(wildcard $(GBUILDDIR)/extensions/pre_*.mk) diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index fe935a5e8a1a..2aba54f2bca1 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -101,7 +101,16 @@ gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) gb_LinkTarget__cmd_lockfile = $(if $(LOCKFILE),$(LOCKFILE),$(call gb_Executable_get_command,lockfile)) gb_LinkTarget__Lock := $(WORKDIR)/LinkTarget/link.lock -gb_LinkTarget__WantLock = $(if $(and $(filter-out ANDROID MACOSX iOS WNT,$(OS)),$(filter TRUE,$(DISABLE_DYNLOADING)),$(filter CppunitTest Executable,$(TARGETTYPE))),$(true)) + +# No newline or space before endef! +define gb_LinkTarget__WantLock +$(if $(strip $(and \ + $(call gb_CondBuildLockfile,$(true)), \ + $(filter-out Executable/lockfile,$(1)), \ + $(DISABLE_DYNLOADING), \ + $(filter CppunitTest Executable,$(TARGETTYPE)) \ + )),$(true)) +endef gb_LinkTarget__NeedsCxxLinker = $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS)$(filter-out XTRUE,X$(ENABLE_RUNTIME_OPTIMIZATIONS)),$(true)) @@ -113,7 +122,7 @@ gb_LinkTarget__NeedsCxxLinker = $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTL # libclang_rt.ubsan_cxx-x86_64.a, and oosplash links against sal but itself only # contains .c sources: define gb_LinkTarget__command_dynamiclink -$(if $(gb_LinkTarget__WantLock),$(gb_LinkTarget__cmd_lockfile) -r -1 $(gb_LinkTarget__Lock)) +$(if $(call gb_LinkTarget__WantLock,$2),$(gb_LinkTarget__cmd_lockfile) -r -1 $(gb_LinkTarget__Lock)) $(call gb_Helper_abbreviate_dirs,\ $(if $(call gb_LinkTarget__NeedsCxxLinker),$(or $(T_CXX),$(gb_CXX)) $(gb_CXX_LINKFLAGS),$(or $(T_CC),$(gb_CC))) \ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ @@ -147,7 +156,7 @@ $(call gb_Helper_abbreviate_dirs,\ ) \ -o $(1) \ $(if $(SOVERSIONSCRIPT),&& ln -sf ../../program/$(notdir $(1)) $(ILIBTARGET)) \ - $(if $(gb_LinkTarget__WantLock),; RC=$$? ; rm -f $(gb_LinkTarget__Lock); if test $$RC -ne 0; then exit $$RC; fi)) + $(if $(call gb_LinkTarget__WantLock,$(2)),; RC=$$? ; rm -f $(gb_LinkTarget__Lock); if test $$RC -ne 0; then exit $$RC; fi)) $(if $(filter Library,$(TARGETTYPE)), $(call gb_Helper_abbreviate_dirs,\ $(READELF) -d $(1) | grep SONAME > $(WORKDIR)/LinkTarget/$(2).exports.tmp; \ |