@@ -6,6 +6,14 @@ NPROC=$(grep -c ^processor /proc/cpuinfo)
6
6
ROOT_DIR=$PWD
7
7
BUILD_DIR=$ROOT_DIR /build
8
8
EM_TOOLCHAIN_FILE=/emsdk_portable/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
9
+ PTHREAD_FLAGS=' -s USE_PTHREADS=1'
10
+ export CFLAGS=$PTHREAD_FLAGS
11
+ export CPPFLAGS=$PTHREAD_FLAGS
12
+ export LDFLAGS=$PTHREAD_FLAGS
13
+
14
+ clean_up () {
15
+ rm -rf $BUILD_DIR
16
+ }
9
17
10
18
build_zlib () {
11
19
cd third_party/zlib
@@ -27,33 +35,17 @@ build_x264() {
27
35
--enable-static \
28
36
--disable-cli \
29
37
--disable-asm \
30
- --disable-thread \
31
38
--host=i686-linux \
32
39
--prefix=$BUILD_DIR
33
40
emmake make clean
34
41
emmake make install-lib-static -j${NPROC}
35
42
cd ${ROOT_DIR}
36
43
}
37
44
38
- build_libwebp () {
39
- cd third_party/libwebp
40
- rm -rf build
41
- mkdir build
42
- cd build
43
- emmake cmake .. \
44
- -DCMAKE_INSTALL_PREFIX=${BUILD_DIR} \
45
- -DCMAKE_TOOLCHAIN_FILE=${EM_TOOLCHAIN_FILE} \
46
- -DBUILD_SHARED_LIBS=OFF \
47
- -DWEBP_BUILD_WEBP_JS=ON
48
- emmake make clean
49
- emmake make install -j${NPROC}
50
- cd ${ROOT_DIR}
51
- }
52
-
53
45
build_libvpx () {
54
46
cd third_party/libvpx
55
- export AS=emar
56
- export STRIP=llvm-strip
47
+ AS=emar \
48
+ STRIP=llvm-strip \
57
49
emconfigure ./configure \
58
50
--disable-examples \
59
51
--disable-tools \
@@ -70,6 +62,7 @@ build_libmp3lame() {
70
62
cd third_party/libmp3lame
71
63
emconfigure ./configure \
72
64
--enable-shared=no \
65
+ --host=i686-linux \
73
66
--prefix=${BUILD_DIR}
74
67
emmake make clean
75
68
emmake make install -j${NPROC}
@@ -83,7 +76,7 @@ configure_ffmpeg() {
83
76
--enable-libx264 \
84
77
--enable-libvpx \
85
78
--enable-libmp3lame \
86
- --disable-pthreads \
79
+ --enable-cross-compile \
87
80
--disable-x86asm \
88
81
--disable-inline-asm \
89
82
--disable-doc \
@@ -119,19 +112,21 @@ build_ffmpegjs() {
119
112
-o $2 fftools/ffmpeg_opt.c fftools/ffmpeg_filter.c fftools/ffmpeg_hw.c fftools/cmdutils.c fftools/ffmpeg.c \
120
113
-lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lpostproc -lm -lx264 -lz -lvpx -lmp3lame \
121
114
-Wno-deprecated-declarations -Wno-pointer-sign -Wno-implicit-int-float-conversion -Wno-switch -Wno-parentheses \
122
- --closure 1 \
123
115
--pre-js javascript/prepend.js \
124
116
--post-js javascript/post.js \
125
117
-s USE_SDL=2 \
126
- -s MODULARIZE=1 \
118
+ $PTHREAD_FLAGS \
119
+ -s INVOKE_RUN=0 \
120
+ -s PTHREAD_POOL_SIZE=8 \
121
+ -s PROXY_TO_PTHREAD=1 \
127
122
-s SINGLE_FILE=$1 \
128
- -s EXPORTED_FUNCTIONS=" [_ffmpeg ]" \
123
+ -s EXPORTED_FUNCTIONS=" [_main, _proxy_main ]" \
129
124
-s EXTRA_EXPORTED_RUNTIME_METHODS=" [cwrap, FS, getValue, setValue]" \
130
- -s TOTAL_MEMORY=33554432 \
131
- -s ALLOW_MEMORY_GROWTH=1
125
+ -s TOTAL_MEMORY=1065353216
132
126
}
133
127
134
128
main () {
129
+ clean_up
135
130
build_zlib
136
131
build_x264
137
132
build_libvpx
@@ -143,3 +138,19 @@ main() {
143
138
}
144
139
145
140
main " $@ "
141
+
142
+ # build_libwebp() {
143
+ # cd third_party/libwebp
144
+ # rm -rf build
145
+ # mkdir build
146
+ # cd build
147
+ # emmake cmake .. \
148
+ # -DCMAKE_INSTALL_PREFIX=${BUILD_DIR} \
149
+ # -DCMAKE_TOOLCHAIN_FILE=${EM_TOOLCHAIN_FILE} \
150
+ # -DBUILD_SHARED_LIBS=OFF \
151
+ # -DWEBP_BUILD_WEBP_JS=ON
152
+ # emmake make clean
153
+ # emmake make install -j${NPROC}
154
+ # cd ${ROOT_DIR}
155
+ # }
156
+
0 commit comments