#!/bin/bash

cd vice

# --- compile all the things!
../emscripten/emmake make x64
rc=$?
if [[ $rc != 0 ]] ; then
    exit $rc
fi

echo compiling js...
cd ../fs-x64
../emscripten/emcc -O2 -o ../js/x64.js -s FORCE_ALIGNED_MEMORY=1 -s DOUBLE_MODE=0 -s PRECISE_I64_MATH=0 -s WARN_ON_UNDEFINED_SYMBOLS=1 -s TOTAL_MEMORY=33554432 --js-library ../library-vice.js \
    -s EXPORTED_FUNCTIONS="[ \
        '_autostart_autodetect', \
        '_cmdline_options_string', \
        '_file_system_attach_disk', \
        '_file_system_detach_disk', \
        '_file_system_get_disk_name', \
        '_joystick_set_value_and', \
        '_joystick_set_value_or', \
        '_keyboard_key_pressed', \
        '_keyboard_key_released', \
        '_machine_trigger_reset', \
        '_main', \
        '_set_playback_enabled' \
    ]" \
    --embed-file bin \
        ../vice/src/*.o \
        ../vice/src/arch/sdl/*.o \
        ../vice/src/c64/*.o \
        ../vice/src/c64/cart/*.o \
        ../vice/src/core/*.o \
        ../vice/src/diskimage/*.o \
        ../vice/src/drive/*.o \
        ../vice/src/drive/iec/*.o \
        ../vice/src/drive/iec/c64exp/*.o \
        ../vice/src/drive/iec/plus4exp/*.o \
        ../vice/src/drive/iec128dcr/*.o \
        ../vice/src/drive/iecieee/*.o \
        ../vice/src/drive/ieee/*.o \
        ../vice/src/drive/tcbm/*.o \
        ../vice/src/fileio/*.o \
        ../vice/src/fsdevice/*.o \
        ../vice/src/gfxoutputdrv/*.o \
        ../vice/src/iecbus/*.o \
        ../vice/src/imagecontents/*.o \
        ../vice/src/lib/p64/*.o \
        ../vice/src/monitor/*.o \
        ../vice/src/parallel/*.o \
        ../vice/src/platform/*.o \
        ../vice/src/printerdrv/*.o \
        ../vice/src/raster/*.o \
        ../vice/src/rs232drv/*.o \
        ../vice/src/rtc/*.o \
        ../vice/src/serial/*.o \
        ../vice/src/sid/*.o \
        ../vice/src/sounddrv/*.o \
        ../vice/src/tape/*.o \
        ../vice/src/userport/*.o \
        ../vice/src/vdrive/*.o \
        ../vice/src/vicii/*.o \
        ../vice/src/video/*.o

cd ..
