#!/usr/bin/env python3
# Copyright 2013 The Emscripten Authors.  All rights reserved.
# Emscripten is available under two separate licenses, the MIT license and the
# University of Illinois/NCSA Open Source License.  Both these licenses can be
# found in the LICENSE file.

"""Fast static linker for emscripten outputs. Specifically this links asm.js modules.

See https://github.com/emscripten-core/emscripten/wiki/Linking
"""

from __future__ import print_function
import sys
from tools import shared
from tools.asm_module import AsmModule


def run():
  try:
    me, main, side, out = sys.argv[:4]
  except ValueError:
    print('usage: emlink.py [main module] [side module] [output name]', file=sys.stderr)
    sys.exit(1)

  print('Main module:', main)
  print('Side module:', side)
  print('Output:', out)

  shared.try_delete(out)

  main = AsmModule(main)
  side = AsmModule(side)

  side.relocate_into(main)
  main.write(out)


if __name__ == '__main__':
  run()
