Commit 897200d1 authored by Jerome Wu's avatar Jerome Wu

Update build scripts

parent 81ca8d21
...@@ -37,3 +37,5 @@ ...@@ -37,3 +37,5 @@
/src /src
/mapfile /mapfile
/tools/python/__pycache__/ /tools/python/__pycache__/
/wasm/cache
/wasm/dist
#!/bin/bash -x #!/bin/bash -x
set -eo pipefail
EM_VERSION=1.39.18-upstream EM_VERSION=1.39.18-upstream
FLAGS=""
# Attach TTY only when available, this is for running in Gihub Actions
if [ -t 1 ]; then FLAGS="-it"; fi
docker pull trzeci/emscripten:$EM_VERSION docker pull trzeci/emscripten:$EM_VERSION
docker run $FLAGS \ docker run \
--rm \
-v $PWD:/src \ -v $PWD:/src \
-v $PWD/wasm/cache:/emsdk_portable/.data/cache/wasm \
trzeci/emscripten:$EM_VERSION \ trzeci/emscripten:$EM_VERSION \
sh -c 'bash ./build.sh' sh -c 'bash -x ./build.sh'
#!/bin/bash -x #!/bin/bash -x
set -eo pipefail
ROOT=$(dirname $0)
# verify Emscripten version # verify Emscripten version
emcc -v emcc -v
# configure FFmpeg with Emscripten # configure FFmpeg with Emscripten
FLAGS=( # $ROOT/wasm/build-scripts/configure.sh
--disable-x86asm # build dependencies
--enable-cross-compile # enable cross compile # $ROOT/wasm/build-scripts/make.sh
--disable-inline-asm # disable inline asm # build ffmpeg.wasm
# --disable-hwaccels # disable all hardware accelerations $ROOT/wasm/build-scripts/build-ffmpeg.sh
# --disable-doc # disable document generation
--nm="llvm-nm -g"
--ar=emar
--as=llvm-as
--ranlib=llvm-ranlib
--cc=emcc
--cxx=em++
--objcc=emcc
--dep-cc=emcc
)
emconfigure ./configure "${FLAGS[@]}"
# build FFmpeg.wasm
emmake make -j
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="./dist/ffmpeg.js"></script>
</head>
<body>
</body>
</html>
#!/bin/bash -x
set -eo pipefail
mkdir -p wasm/dist
ARGS=(
-I. -I./fftools
-Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample
-Qunused-arguments
-o wasm/dist/ffmpeg.js fftools/ffmpeg_opt.c fftools/ffmpeg_filter.c fftools/ffmpeg_hw.c fftools/cmdutils.c fftools/ffmpeg.c
-lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lm
-s USE_SDL=2 # use SDL2
-s USE_PTHREADS=1 # enable pthreads support
-s INITIAL_MEMORY=33554432 # 33554432 bytes = 32 MB
)
emcc "${ARGS[@]}"
#!/bin/bash -x
set -eo pipefail
CFLAGS="-s USE_PTHREADS"
LDFLAGS="$CFLAGS -s INITIAL_MEMORY=33554432" # 33554432 bytes = 32 MB
ARGS=(
--target-os=none # use none to prevent any os specific configurations
--arch=x86_32 # use x86_32 to achieve minimal architectural optimization
--enable-cross-compile # enable cross compile
--disable-x86asm # disable x86 asm
--disable-inline-asm # disable inline asm
--disable-stripping # disable stripping
--disable-programs # disable programs build (incl. ffplay, ffprobe & ffmpeg)
--disable-doc # disable doc
--extra-cflags="$CFLAGS"
--extra-cxxflags="$CFLAGS"
--extra-ldflags="$LDFLAGS"
--nm="llvm-nm -g"
--ar=emar
--as=llvm-as
--ranlib=llvm-ranlib
--cc=emcc
--cxx=em++
--objcc=emcc
--dep-cc=emcc
)
emconfigure ./configure "${ARGS[@]}"
#!/bin/bash -x
set -eo pipefail
emmake make -j4
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment