Repository.mk                              |    2 +-
 solenv/Module_solenv.mk                    |    2 +-
 solenv/gbuild/Conditions.mk                |   14 ++++++++++++++
 solenv/gbuild/extensions/pre_BuildTools.mk |    2 +-
 solenv/gbuild/gbuild.mk                    |    2 ++
 solenv/gbuild/platform/unxgcc.mk           |   15 ++++++++++++---
 6 files changed, 31 insertions(+), 6 deletions(-)

New commits:
commit 8a008416c7c72321964c219f9979c4730e6e1a63
Author:     Jan-Marek Glogowski <glo...@fbihome.de>
AuthorDate: Mon Dec 6 17:41:30 2021 +0000
Commit:     Jan-Marek Glogowski <glo...@fbihome.de>
CommitDate: Wed Dec 15 21:19:49 2021 +0100

    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 <glo...@fbihome.de>

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; 
\

Reply via email to