Skip to content

Commit 89e899a

Browse files
committed
make: adjust number of jobs to available threads
Previously some builds used a hardcoded number of 8 and others didn't set it at all falling back to a single threaded build. This still isn't ideal though. What we actually want is to fix up or Makefile to allow builders to pass the number of jobs to the toplevel and then a buildserver can distribute the available jobs across the targets allowing inter-target parallelism. For now, this already is a clear improvement. The fribidi build appears to have a borked dependency on generated sources when running from a subdir, which resulted in parallel builds sometimes failing. To fix this the relevant header is now generated explicitly before other build steps.
1 parent 85817b3 commit 89e899a

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

Makefile

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ build/lib/fribidi/configure: lib/fribidi $(wildcard $(BASE_DIR)build/patches/fri
2828
$(DIST_DIR)/lib/libfribidi.a: build/lib/fribidi/configure
2929
cd build/lib/fribidi && \
3030
$(call CONFIGURE_AUTO) && \
31-
emmake make -C lib/ install && \
32-
emmake make install-pkgconfigDATA
31+
$(JSO_MAKE) -C lib/ fribidi-unicode-version.h && \
32+
$(JSO_MAKE) -C lib/ install && \
33+
$(JSO_MAKE) install-pkgconfigDATA
3334

3435
build/lib/expat/configured: lib/expat
3536
$(call PREPARE_SRC_VPATH,expat)
@@ -45,8 +46,8 @@ $(DIST_DIR)/lib/libexpat.a: build/lib/expat/configured
4546
-DEXPAT_BUILD_TESTS=off \
4647
-DEXPAT_BUILD_TOOLS=off \
4748
&& \
48-
emmake make -j8 && \
49-
emmake make install
49+
$(JSO_MAKE) && \
50+
$(JSO_MAKE) install
5051

5152
build/lib/brotli/js/decode.js: build/lib/brotli/configured
5253
build/lib/brotli/js/polyfill.js: build/lib/brotli/configured
@@ -58,8 +59,8 @@ $(DIST_DIR)/lib/libbrotlidec.a: $(DIST_DIR)/lib/libbrotlicommon.a
5859
$(DIST_DIR)/lib/libbrotlicommon.a: build/lib/brotli/configured
5960
cd build/lib/brotli && \
6061
$(call CONFIGURE_CMAKE) && \
61-
emmake make -j8 && \
62-
emmake make install
62+
$(JSO_MAKE) && \
63+
$(JSO_MAKE) install
6364
# Normalise static lib names
6465
cd $(DIST_DIR)/lib/ && \
6566
for lib in *-static.a ; do mv "$$lib" "$${lib%-static.a}.a" ; done
@@ -79,8 +80,8 @@ build/lib/freetype/build_hb/dist_hb/lib/libfreetype.a: $(DIST_DIR)/lib/libbrotli
7980
--with-brotli=yes \
8081
--without-harfbuzz \
8182
&& \
82-
emmake make -j8 && \
83-
emmake make install
83+
$(JSO_MAKE) && \
84+
$(JSO_MAKE) install
8485

8586
# Harfbuzz
8687
build/lib/harfbuzz/configure: lib/harfbuzz $(wildcard $(BASE_DIR)build/patches/harfbuzz/*.patch)
@@ -96,7 +97,7 @@ $(DIST_DIR)/lib/libharfbuzz.a: build/lib/freetype/build_hb/dist_hb/lib/libfreety
9697
--with-freetype \
9798
&& \
9899
cd src && \
99-
emmake make -j8 install-libLTLIBRARIES install-pkgincludeHEADERS install-pkgconfigDATA
100+
$(JSO_MAKE) install-libLTLIBRARIES install-pkgincludeHEADERS install-pkgconfigDATA
100101

101102
# Freetype with Harfbuzz
102103
$(DIST_DIR)/lib/libfreetype.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/libbrotlidec.a
@@ -106,8 +107,8 @@ $(DIST_DIR)/lib/libfreetype.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/lib
106107
--with-brotli=yes \
107108
--with-harfbuzz \
108109
&& \
109-
emmake make -j8 && \
110-
emmake make install
110+
$(JSO_MAKE) && \
111+
$(JSO_MAKE) install
111112

112113
# Fontconfig
113114
build/lib/fontconfig/configure: lib/fontconfig $(wildcard $(BASE_DIR)build/patches/fontconfig/*.patch)
@@ -120,9 +121,9 @@ $(DIST_DIR)/lib/libfontconfig.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/l
120121
--disable-docs \
121122
--with-default-fonts=/fonts \
122123
&& \
123-
emmake make -C src/ install && \
124-
emmake make -C fontconfig/ install && \
125-
emmake make install-pkgconfigDATA
124+
$(JSO_MAKE) -C src/ install && \
125+
$(JSO_MAKE) -C fontconfig/ install && \
126+
$(JSO_MAKE) install-pkgconfigDATA
126127

127128
# libass --
128129

@@ -137,8 +138,8 @@ $(DIST_DIR)/lib/libass.a: $(DIST_DIR)/lib/libfontconfig.a $(DIST_DIR)/lib/libhar
137138
--disable-asm \
138139
--enable-fontconfig \
139140
&& \
140-
emmake make -j8 && \
141-
emmake make install
141+
$(JSO_MAKE) && \
142+
$(JSO_MAKE) install
142143

143144
# SubtitleOctopus.js
144145
OCTP_DEPS = \

functions.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ define CONFIGURE_CMAKE
4343
emcmake cmake -S "$(or $(1),.)" -DCMAKE_INSTALL_PREFIX="$(DIST_DIR)"
4444
endef
4545

46+
# FIXME: Propagate jobserver info with $(MAKE) and set up our makefile for fully parallel builds
47+
JSO_MAKE := emmake make -j "$(shell nproc)"
4648

4749
## Clean and git related
4850

0 commit comments

Comments
 (0)