From f3a48f2a30d160cd1613d68c8d158f5e11eae43d Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Fri, 2 Jun 2023 11:57:20 +0200 Subject: [PATCH] MT#56184 build: Fix parallel building Fix instances of make rules not being parallel execution safe, where the targets declare a list of dependencies which depend on the order they have been declared to be executed serially, otherwise these can cause race conditions. Either move some of the dependencies down into their transitive dependencies, or rearrange them to call $(MAKE) to force a serial point. In other instances add missing dependencies to make sure the objects to install have previously been built. Change-Id: I21b499557ac5e9faa603841fa1882b58239ee650 --- Makefile | 2 +- apps/Makefile | 2 +- apps/dsm/mods/Makefile | 2 +- apps/examples/Makefile | 2 +- apps/examples/tutorial/Makefile | 2 +- apps/py_sems/Makefile.py_sems_application | 4 ++-- apps/sbc/call_control/Makefile | 2 +- apps/webconference/pyqtgui/Makefile | 2 +- core/Makefile | 10 ++++------ core/plug-in/Makefile | 2 +- tools/Makefile | 4 ++-- 11 files changed, 16 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index d19db509..7980d3f4 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ modules: done .PHONY: install -install: +install: modules @set -e; \ for r in $(subdirs) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/Makefile b/apps/Makefile index 1dc66a3b..059d8cc7 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -68,7 +68,7 @@ modules: install: install-bin .PHONY: install-bin -install-bin: +install-bin: modules @set -e; \ for r in $(app_modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/dsm/mods/Makefile b/apps/dsm/mods/Makefile index 9f7f10a8..1cc565a8 100644 --- a/apps/dsm/mods/Makefile +++ b/apps/dsm/mods/Makefile @@ -50,7 +50,7 @@ modules: install: install-bin .PHONY: install-bin -install-bin: +install-bin: modules @set -e; \ for r in $(dsm_modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/examples/Makefile b/apps/examples/Makefile index f60e2e72..7d46bb63 100644 --- a/apps/examples/Makefile +++ b/apps/examples/Makefile @@ -38,7 +38,7 @@ modules: install: install-bin .PHONY: install-bin -install-bin: +install-bin: modules @set -e; \ for r in $(modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/examples/tutorial/Makefile b/apps/examples/tutorial/Makefile index fa032c61..a8b42db6 100644 --- a/apps/examples/tutorial/Makefile +++ b/apps/examples/tutorial/Makefile @@ -38,7 +38,7 @@ modules: install: install-bin .PHONY: install-bin -install-bin: +install-bin: modules @set -e; \ for r in $(modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/py_sems/Makefile.py_sems_application b/apps/py_sems/Makefile.py_sems_application index d97ddb5c..f14fe4f3 100644 --- a/apps/py_sems/Makefile.py_sems_application +++ b/apps/py_sems/Makefile.py_sems_application @@ -22,7 +22,7 @@ PYCHECKERDOCARGS = --classdoc --funcdoc module_conf_files = $(notdir $(wildcard etc/*.conf)) .PHONY: all -all: clean compile +all: compile .PHONY: clean clean: @@ -30,7 +30,7 @@ clean: rm -f ${TARBALL_PREFIX}*.tar.gz .PHONY: compile -compile: +compile: clean python${PYTHON_VERSION} $(PYSEMSPATH)/py_comp -q . .PHONY: install diff --git a/apps/sbc/call_control/Makefile b/apps/sbc/call_control/Makefile index e80035fa..692e4406 100644 --- a/apps/sbc/call_control/Makefile +++ b/apps/sbc/call_control/Makefile @@ -40,7 +40,7 @@ modules: install: install-bin install-cfg .PHONY: install-bin -install-bin: +install-bin: modules @set -e; \ for r in $(cc_modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/apps/webconference/pyqtgui/Makefile b/apps/webconference/pyqtgui/Makefile index 1aafef80..17634400 100644 --- a/apps/webconference/pyqtgui/Makefile +++ b/apps/webconference/pyqtgui/Makefile @@ -1,7 +1,7 @@ all: participant.py conftable.py callbox.py account.py -install: +install: all cp *.py tablet/conf %.py: %.ui diff --git a/core/Makefile b/core/Makefile index 0ebff399..bdb9878d 100644 --- a/core/Makefile +++ b/core/Makefile @@ -115,10 +115,8 @@ $(NAME): sip_stack resample_lib core ../Makefile.defs $(LD) -o $(NAME) $(OBJS) $(LDFLAGS) $(EXTRA_LDFLAGS) -install: all mk-install-dirs \ - install-audio \ - install-bin \ - install-modules +install: mk-install-dirs + $(MAKE) install-audio install-bin install-modules # note: on solaris 8 sed: ? or \(...\)* (a.s.o) do not work @@ -135,10 +133,10 @@ install-cfg: $(DESTDIR)$(cfg_target) $(DESTDIR)$(app_cfg_target) $(INSTALL_CFG) etc/app_mapping.conf.sample $(DESTDIR)$(app_cfg_target)app_mapping.conf -install-bin: $(DESTDIR)$(bin_prefix)/$(bin_dir) +install-bin: $(NAME) $(DESTDIR)$(bin_prefix)/$(bin_dir) $(INSTALL_BIN) $(NAME) $(DESTDIR)$(bin_prefix)/$(bin_dir) -install-modules: $(PLUGIN_DIR) $(DESTDIR)$(modules_prefix)/$(modules_dir) +install-modules: modules $(PLUGIN_DIR) $(DESTDIR)$(modules_prefix)/$(modules_dir) $(MAKE) -C $(PLUGIN_DIR) install install-modules-cfg: $(PLUGIN_DIR) diff --git a/core/plug-in/Makefile b/core/plug-in/Makefile index 5fc20087..5b9c6a68 100644 --- a/core/plug-in/Makefile +++ b/core/plug-in/Makefile @@ -34,7 +34,7 @@ modules: done .PHONY: install -install: +install: modules @set -e; \ for r in $(core_modules) "" ; do \ if [ -n "$$r" ]; then \ diff --git a/tools/Makefile b/tools/Makefile index f248442c..5c4a484f 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -5,11 +5,11 @@ include $(COREPATH)/../Makefile.defs sems_tools = sems-logfile-callextract -install: $(sems_tools) install_tools +install: install_tools make_tools: $(sems_tools) -install_tools: $(DESTDIR)$(bin_prefix)/$(bin_dir) +install_tools: make_tools $(DESTDIR)$(bin_prefix)/$(bin_dir) @set -e; \ for r in $(sems_tools) ; do \ x=`echo $$r | sed s/sems-/$(APP_NAME)-/g` ; \