1
1
m4_include ( `paths.m4' ) m4_dnl
2
2
m4_include ( `packages.m4' ) m4_dnl
3
+ m4_define ( `em_package' , RUN embuilder build `m4_foreachq ( `pkg' , `$@ ' ,`pkg ' ) ' && embuilder -- pic build `m4_foreachq ( `pkg' , `$@ ' ,`pkg ' ) ' && \
4
+ rm - rf / tmp/* ${SYSROOT_DIR}/../ports/*/* ${SYSROOT_DIR}/../build/* && \
5
+ if [ -d "${SYSROOT_DIR}/../ports" ] ; then find ${SYSROOT_DIR}/../ports - maxdepth 1 - type f - delete; fi )
3
6
4
7
m4_dnl Include Debian base preparation steps
5
8
m4_dnl This ensures all common steps are shared by all toolchains
@@ -19,50 +22,64 @@ RUN apt-get update && \
19
22
rm -rf /var/lib/apt/lists/*
20
23
21
24
ENV EMSDK=/usr/local/emscripten HOST=wasm32-unknown-none
22
- ENV PREFIX=$EMSDK/scummvm-libs
25
+ ENV PREFIX=$EMSDK/scummvm-libs SYSROOT_DIR=${EMSDK}/upstream/emscripten/cache/sysroot
23
26
24
27
local_package(toolchain)
25
28
26
29
# We add PATH here for *-config and platform specific binaries
27
30
ENV \
31
+ def_binaries(`${EMSDK}/upstream/emscripten/em', `ar, cc, ranlib, strip') \
32
+ def_binaries(`${EMSDK}/upstream/bin/llvm-', `cxxfilt, nm, objcopy, objdump, strings') \
33
+ AS=${EMSDK}/upstream/bin/wasm-as \
34
+ CXX=${EMSDK}/upstream/emscripten/em++ \
35
+ LD=${EMSDK}/upstream/emscripten/emcc \
28
36
def_aclocal(`${PREFIX}') \
29
- def_pkg_config(`${PREFIX}') \
30
- PATH=$PATH:${EMSDK}:${EMSDK}/node/14.18.2_64bit/bin:${EMSDK}/upstream/emscripten:${PREFIX}/bin \
37
+ PKG_CONFIG_LIBDIR=${PREFIX}/lib/pkgconfig:${PREFIX}/share/pkgconfig:${SYSROOT_DIR}/lib/pkgconfig:${SYSROOT_DIR}/local/lib/pkgconfig \
38
+ PATH=$PATH:${EMSDK}:${EMSDK}/node/current/bin:${EMSDK}/upstream/emscripten:${SYSROOT_DIR}/bin:${PREFIX}/bin \
39
+ EMSDK_NODE=${EMSDK}/node/current/bin/node \
31
40
CPPFLAGS="-I${PREFIX}/include" \
41
+ CFLAGS="-fPIC" \
42
+ CXXFLAGS="-fPIC" \
32
43
LDFLAGS="-L${PREFIX}/lib"
33
44
34
- RUN emcc -s USE_ZLIB -E - < /dev/null
45
+ # Build system libraries for PIC
46
+ em_package(libGL, libal, libhtml5, libstubs, libnoexit, libc,
47
+ libdlmalloc, libcompiler_rt, libc++-noexcept, libc++abi-noexcept, libsockets)
35
48
36
- RUN emcc -s USE_LIBPNG=1 -E - < /dev/null
49
+ em_package(zlib)
37
50
38
- RUN emcc -s USE_LIBJPEG=1 -E - < /dev/null
51
+ em_package(libpng)
39
52
40
- RUN emcc -s USE_GIFLIB=1 -E - < /dev/null
53
+ em_package(libjpeg)
41
54
42
- helpers_package(libmad, --with-pic --enable-fpm=no )
55
+ em_package(giflib )
43
56
44
- RUN emcc -s USE_OGG=1 -E - < /dev/null
57
+ helpers_package(libmad, --with-pic --enable-fpm=64bit)
45
58
46
- RUN emcc -s USE_VORBIS=1 -E - < /dev/null
59
+ em_package(ogg)
47
60
48
- # helpers_package(libtheora, --disable-asm, CFLAGS="-fPIC -s USE_OGG=1 -s USE_VORBIS=1")
49
- helpers_package(libtheora, --disable-asm, CFLAGS="-fPIC -s USE_OGG=1")
61
+ em_package(vorbis)
50
62
51
- # TODO: flac
63
+ # helpers_package(libtheora, --disable-asm, CFLAGS="$CFLAGS -sUSE_OGG=1 -sUSE_VORBIS=1")
64
+ helpers_package(libtheora, --disable-asm, CFLAGS="$CFLAGS -sUSE_OGG=1")
52
65
53
- helpers_package(faad2, , CFLAGS="-fPIC")
66
+ # TODO: flac
54
67
55
- helpers_package(mpeg2dec, , CFLAGS="-fPIC" )
68
+ helpers_package(faad2 )
56
69
57
- helpers_package(a52dec, , CFLAGS="-fPIC" )
70
+ helpers_package(mpeg2dec )
58
71
72
+ helpers_package(a52dec)
59
73
60
74
# TODO: fluidlite
61
75
62
- RUN emcc -s USE_FREETYPE=1 -E - < /dev/null
76
+ em_package(freetype)
63
77
64
78
# TODO: fribidi
65
79
66
- RUN emcc -s USE_SDL=2 -E - < /dev/null
80
+ # This is needed for SDL2
81
+ em_package(libGL-getprocaddr)
82
+
83
+ em_package(sdl2)
67
84
68
- RUN emcc -s USE_SDL_NET=2 -E - < /dev/null
85
+ em_package(sdl2_net)
0 commit comments