From 18f723faa85b78dff7c8f59257640feededc44d1 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 19 Feb 2023 20:45:32 +0800 Subject: [PATCH] Fix parallel compilation of Android port * cross/Makefile.in ($(top_builddir)/lib/libgnu.a): * java/Makefile.in (CROSS_LIBS): Explicitly depend on gnulib to prevent it from being built at the same time from different jobs. --- cross/Makefile.in | 4 ++-- java/Makefile.in | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cross/Makefile.in b/cross/Makefile.in index fc047fd57bd..c059fda1e3c 100644 --- a/cross/Makefile.in +++ b/cross/Makefile.in @@ -80,11 +80,11 @@ $(top_builddir)/lib/libgnu.a: $(MAKE) -C $(top_builddir)/lib libgnu.a .PHONY: $(top_builddir)/lib-src/make-fingerprint -$(top_builddir)/lib-src/make-fingerprint: +$(top_builddir)/lib-src/make-fingerprint: $(top_builddir)/lib/libgnu.a $(MAKE) -C $(top_builddir)/lib-src make-fingerprint .PHONY: $(top_builddir)/lib-src/make-docfile -$(top_builddir)/lib-src/make-docfile: +$(top_builddir)/lib-src/make-docfile: $(top_builddir)/lib/libgnu.a $(MAKE) -C $(top_builddir)/lib-src make-docfile PRE_BUILD_DEPS=$(top_builddir)/lib/libgnu.a \ diff --git a/java/Makefile.in b/java/Makefile.in index f732c9211ee..91feb53e96b 100644 --- a/java/Makefile.in +++ b/java/Makefile.in @@ -121,17 +121,25 @@ CROSS_BINS = ../cross/src/android-emacs ../cross/lib-src/ctags \ # Libraries to cross-compile. CROSS_LIBS = ../cross/src/libemacs.so +# Make sure gnulib is built first! +# If not, then the recursive invocations of make below will try to +# build gnulib at the same time. +CROSS_ARCHIVES = ../cross/lib/libgnu.a + # Third party libraries to compile. include $(top_builddir)/cross/ndk-build/ndk-build.mk -.PHONY: $(CROSS_BINS) $(CROSS_LIBS) +.PHONY: $(CROSS_BINS) $(CROSS_LIBS) $(CROSS_ARCHIVES) -../cross/src/android-emacs ../cross/src/libemacs.so: - make -C ../cross src/$(notdir $@) +../cross/src/android-emacs ../cross/src/libemacs.so: $(CROSS_ARCHIVES) + $(MAKE) -C ../cross src/$(notdir $@) ../cross/lib-src/hexl ../cross/lib-src/movemail \ -../cross/lib-src/ctags ../cross/lib-src/ebrowse &: - make -C ../cross lib-src/$(notdir $@) +../cross/lib-src/ctags ../cross/lib-src/ebrowse &: $(CROSS_ARCHIVES) + $(MAKE) -C ../cross lib-src/$(notdir $@) + +../cross/lib/libgnu.a: + $(MAKE) -C ../cross lib/libgnu.a # This is needed to generate the ``.directory-tree'' file used by the # Android emulations of readdir and faccessat. -- 2.39.5