-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
58 lines (50 loc) · 1.7 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
OGG_FILE="https://downloads.xiph.org/releases/ogg/libogg-1.3.4.tar.xz"
VORBIS_FILE="https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.xz"
PREFIX=`cd ../.. && pwd`/local
CFLAGS=-O3 --closure 1
src/js/decode.js: src/em/decode.c Makefile src/em/pre.js local/lib
EMCC_CLOSURE_ARGS="--language_in ECMASCRIPT6 \
--process_common_js_modules \
--module_resolution=NODE \
--js node_modules/setimmediate/setImmediate.js \
--jscomp_off=checkVars \
--js node_modules/setimmediate/package.json" \
emsdk/upstream/emscripten/emcc -Ilocal/include src/em/decode.c -o src/js/oggmented-wasm.js \
--pre-js src/em/pre.js ${CFLAGS} \
-s MODULARIZE=1 \
-s ALLOW_MEMORY_GROWTH=1 \
-s ENVIRONMENT=web \
-s STRICT=1 \
-s SINGLE_FILE=1 \
-s EXPORTED_FUNCTIONS="[ \
'_read_float', \
'_open_buffer', \
'_close_buffer', \
'_get_length', \
'_get_channels', \
'_get_rate', \
'_get_time', \
'_get_streams' \
]" \
-s EXTRA_EXPORTED_RUNTIME_METHODS="['ccall', 'getValue']" \
-llibvorbisfile -llibvorbis -llibogg -Llocal/lib
emsdk:
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk \
&& git pull \
&& ./emsdk install 1.39.10 \
&& ./emsdk activate 1.39.10
build:
mkdir build
local/lib: emsdk build
curl -L ${OGG_FILE} | tar xJC build
cd build/libogg* \
&& ../../emsdk/upstream/emscripten/emconfigure ./configure --disable-shared --prefix=${PREFIX} \
&& ../../emsdk/upstream/emscripten/emmake make install
curl -L ${VORBIS_FILE} | tar xJC build
cd build/libvorbis* \
&& ../../emsdk/upstream/emscripten/emconfigure ./configure --disable-shared --prefix=${PREFIX} \
&& ../../emsdk/upstream/emscripten/emmake make install
clean:
rm -rf emsdk build local src/js/decode.js
# -s EXPORT_ES6=1