Skip to content

Commit d19b3fc

Browse files
TheOnericdmitrylyzo
authored andcommitted
make: macroise configuration
To be more concise and to keep config flags from drifting apart (they already varied slightly between submodules). Cherry-picked from: libass@85817b3
1 parent 47790a0 commit d19b3fc

File tree

2 files changed

+25
-52
lines changed

2 files changed

+25
-52
lines changed

Makefile

Lines changed: 8 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,7 @@ build/lib/fribidi/configure: lib/fribidi $(wildcard $(BASE_DIR)build/patches/fri
2727

2828
$(DIST_DIR)/lib/libfribidi.a: build/lib/fribidi/configure
2929
cd build/lib/fribidi && \
30-
emconfigure ./configure \
31-
--prefix="$(DIST_DIR)" \
32-
--host=x86-none-linux \
33-
--build=x86_64 \
34-
--enable-static \
35-
--disable-shared \
36-
--disable-dependency-tracking \
37-
--disable-debug \
38-
&& \
30+
$(call CONFIGURE_AUTO) && \
3931
emmake make -C lib/ install && \
4032
emmake make install-pkgconfigDATA
4133

@@ -45,15 +37,13 @@ build/lib/expat/configured: lib/expat
4537

4638
$(DIST_DIR)/lib/libexpat.a: build/lib/expat/configured
4739
cd build/lib/expat && \
48-
emcmake cmake \
49-
-DCMAKE_INSTALL_PREFIX=$(DIST_DIR) \
40+
$(call CONFIGURE_CMAKE,$(BASE_DIR)lib/expat/expat) \
5041
-DEXPAT_BUILD_DOCS=off \
5142
-DEXPAT_SHARED_LIBS=off \
5243
-DEXPAT_BUILD_EXAMPLES=off \
5344
-DEXPAT_BUILD_FUZZERS=off \
5445
-DEXPAT_BUILD_TESTS=off \
5546
-DEXPAT_BUILD_TOOLS=off \
56-
$(BASE_DIR)lib/expat/expat \
5747
&& \
5848
emmake make -j8 && \
5949
emmake make install
@@ -67,10 +57,7 @@ build/lib/brotli/configured: lib/brotli $(wildcard $(BASE_DIR)build/patches/brot
6757
$(DIST_DIR)/lib/libbrotlidec.a: $(DIST_DIR)/lib/libbrotlicommon.a
6858
$(DIST_DIR)/lib/libbrotlicommon.a: build/lib/brotli/configured
6959
cd build/lib/brotli && \
70-
emcmake cmake \
71-
-DCMAKE_INSTALL_PREFIX=$(DIST_DIR) \
72-
. \
73-
&& \
60+
$(call CONFIGURE_CMAKE) && \
7461
emmake make -j8 && \
7562
emmake make install
7663
# Normalise static lib names
@@ -87,13 +74,8 @@ build/lib/freetype/build_hb/dist_hb/lib/libfreetype.a: $(DIST_DIR)/lib/libbrotli
8774
cd build/lib/freetype && \
8875
mkdir -p build_hb && \
8976
cd build_hb && \
90-
emconfigure ../configure \
77+
$(call CONFIGURE_AUTO,..) \
9178
--prefix="$$(pwd)/dist_hb" \
92-
--host=x86-none-linux \
93-
--build=x86_64 \
94-
--enable-static \
95-
--disable-shared \
96-
\
9779
--with-brotli=yes \
9880
--without-harfbuzz \
9981
&& \
@@ -110,14 +92,7 @@ $(DIST_DIR)/lib/libharfbuzz.a: build/lib/freetype/build_hb/dist_hb/lib/libfreety
11092
EM_PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(BASE_DIR)build/lib/freetype/build_hb/dist_hb/lib/pkgconfig \
11193
CFLAGS="-DHB_NO_MT $(CFLAGS)" \
11294
CXXFLAGS="-DHB_NO_MT $(CFLAGS)" \
113-
emconfigure ./configure \
114-
--prefix="$(DIST_DIR)" \
115-
--host=x86-none-linux \
116-
--build=x86_64 \
117-
--enable-static \
118-
--disable-shared \
119-
--disable-dependency-tracking \
120-
\
95+
$(call CONFIGURE_AUTO) \
12196
--with-freetype \
12297
&& \
12398
cd src && \
@@ -127,13 +102,7 @@ $(DIST_DIR)/lib/libharfbuzz.a: build/lib/freetype/build_hb/dist_hb/lib/libfreety
127102
$(DIST_DIR)/lib/libfreetype.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/libbrotlidec.a
128103
cd build/lib/freetype && \
129104
EM_PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(BASE_DIR)build/lib/freetype/build_hb/dist_hb/lib/pkgconfig \
130-
emconfigure ./configure \
131-
--prefix="$(DIST_DIR)" \
132-
--host=x86-none-linux \
133-
--build=x86_64 \
134-
--enable-static \
135-
--disable-shared \
136-
\
105+
$(call CONFIGURE_AUTO) \
137106
--with-brotli=yes \
138107
--with-harfbuzz \
139108
&& \
@@ -147,12 +116,7 @@ build/lib/fontconfig/configure: lib/fontconfig $(wildcard $(BASE_DIR)build/patch
147116

148117
$(DIST_DIR)/lib/libfontconfig.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/libexpat.a $(DIST_DIR)/lib/libfribidi.a $(DIST_DIR)/lib/libfreetype.a build/lib/fontconfig/configure
149118
cd build/lib/fontconfig && \
150-
emconfigure ./configure \
151-
--prefix="$(DIST_DIR)" \
152-
--host=x86-none-linux \
153-
--build=x86_64 \
154-
--disable-shared \
155-
--enable-static \
119+
$(call CONFIGURE_AUTO) \
156120
--disable-docs \
157121
--with-default-fonts=/fonts \
158122
&& \
@@ -169,15 +133,8 @@ build/lib/libass/configured: lib/libass
169133

170134
$(DIST_DIR)/lib/libass.a: $(DIST_DIR)/lib/libfontconfig.a $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/libexpat.a $(DIST_DIR)/lib/libfribidi.a $(DIST_DIR)/lib/libfreetype.a $(DIST_DIR)/lib/libbrotlidec.a build/lib/libass/configured
171135
cd build/lib/libass && \
172-
emconfigure ../../../lib/libass/configure \
173-
--prefix="$(DIST_DIR)" \
174-
--host=x86-none-linux \
175-
--build=x86_64 \
176-
--disable-shared \
177-
--enable-static \
136+
$(call CONFIGURE_AUTO,../../../lib/libass) \
178137
--disable-asm \
179-
\
180-
--enable-harfbuzz \
181138
--enable-fontconfig \
182139
&& \
183140
emmake make -j8 && \

functions.mk

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ define PREPARE_SRC_PATCHED
1717
) :
1818
endef
1919

20-
# @arg1: name of submdolue
20+
# @arg1: name of submodule
2121
define PREPARE_SRC_VPATH
2222
rm -rf build/lib/$(1)
2323
mkdir -p build/lib/$(1)
@@ -27,6 +27,22 @@ endef
2727
# All projects we build have autogen.sh, otherwise we could also fallback to `autoreconf -ivf .`
2828
RECONF_AUTO := NOCONFIGURE=1 ./autogen.sh
2929

30+
# @arg1: path to source directory; defaults to current working directory
31+
define CONFIGURE_AUTO
32+
emconfigure $(or $(1),.)/configure \
33+
--prefix="$(DIST_DIR)" \
34+
--host=x86-none-linux \
35+
--build=x86_64 \
36+
--enable-static \
37+
--disable-shared \
38+
--disable-debug
39+
endef
40+
41+
# @arg1: path to source directory; defaults to current working directory
42+
define CONFIGURE_CMAKE
43+
emcmake cmake -S "$(or $(1),.)" -DCMAKE_INSTALL_PREFIX="$(DIST_DIR)"
44+
endef
45+
3046

3147
## Clean and git related
3248

0 commit comments

Comments
 (0)