11m4_include ( `paths.m4' ) m4_dnl
22m4_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 )
36
47m4_dnl Include Debian base preparation steps
58m4_dnl This ensures all common steps are shared by all toolchains
@@ -19,50 +22,64 @@ RUN apt-get update && \
1922 rm -rf /var/lib/apt/lists/*
2023
2124ENV 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
2326
2427local_package(toolchain)
2528
2629# We add PATH here for *-config and platform specific binaries
2730ENV \
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 \
2836 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 \
3140 CPPFLAGS="-I${PREFIX}/include" \
41+ CFLAGS="-fPIC" \
42+ CXXFLAGS="-fPIC" \
3243 LDFLAGS="-L${PREFIX}/lib"
3344
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)
3548
36- RUN emcc -s USE_LIBPNG=1 -E - < /dev/null
49+ em_package(zlib)
3750
38- RUN emcc -s USE_LIBJPEG=1 -E - < /dev/null
51+ em_package(libpng)
3952
40- RUN emcc -s USE_GIFLIB=1 -E - < /dev/null
53+ em_package(libjpeg)
4154
42- helpers_package(libmad, --with-pic --enable-fpm=no )
55+ em_package(giflib )
4356
44- RUN emcc -s USE_OGG=1 -E - < /dev/null
57+ helpers_package(libmad, --with-pic --enable-fpm=64bit)
4558
46- RUN emcc -s USE_VORBIS=1 -E - < /dev/null
59+ em_package(ogg)
4760
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)
5062
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")
5265
53- helpers_package(faad2, , CFLAGS="-fPIC")
66+ # TODO: flac
5467
55- helpers_package(mpeg2dec, , CFLAGS="-fPIC" )
68+ helpers_package(faad2 )
5669
57- helpers_package(a52dec, , CFLAGS="-fPIC" )
70+ helpers_package(mpeg2dec )
5871
72+ helpers_package(a52dec)
5973
6074# TODO: fluidlite
6175
62- RUN emcc -s USE_FREETYPE=1 -E - < /dev/null
76+ em_package(freetype)
6377
6478# TODO: fribidi
6579
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)
6784
68- RUN emcc -s USE_SDL_NET=2 -E - < /dev/null
85+ em_package(sdl2_net)
0 commit comments