mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
The `install` Makefile target of the top Makefile has `all` and `install-recursive` as prerequisites. This leads to the two recursive Makefile calls `make -C <SUBDIR> all` and `make -C <SUBDIR> install`. The problem is these two targets try to build the same object files and this leads to a race condition between these two targets in case of a parallel build. Fix this problem by removing the `all` prerequisite from the `install` target, as it is not needed since all the `install` targets in the sub-Makefiles already have proper prerequisites. Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
26 lines
604 B
Makefile
26 lines
604 B
Makefile
# Common definitions
|
|
include ../common.mak
|
|
|
|
.DEFAULT_GOAL := all
|
|
|
|
PKGDATADIR := "$(DESTDIR)$(TOOLS_DATADIR)/genprotimg"
|
|
TESTS :=
|
|
SUBDIRS := boot src man
|
|
RECURSIVE_TARGETS := all-recursive install-recursive clean-recursive
|
|
|
|
all: all-recursive
|
|
|
|
install: install-recursive
|
|
$(INSTALL) -d -m 755 "$(PKGDATADIR)"
|
|
$(INSTALL) -g $(GROUP) -o $(OWNER) -m 755 samples/check_hostkeydoc "$(PKGDATADIR)"
|
|
|
|
clean: clean-recursive
|
|
|
|
$(RECURSIVE_TARGETS):
|
|
@target=`echo $@ |sed s/-recursive//`; \
|
|
for d in $(SUBDIRS); do \
|
|
$(MAKE) -C $$d $$target || exit 1; \
|
|
done
|
|
|
|
.PHONY: all install clean $(RECURSIVE_TARGETS)
|