#!/bin/bash
# clamp-assemble kernel-bitcode kernel-object

# enable bash debugging
KMDBSCRIPT="${KMDBSCRIPT:=0}"
if [ $KMDBSCRIPT == "1" ]
then
  set -x
fi

BINDIR=$(dirname $0)
EMBED=$BINDIR/clamp-embed

# Add error handling functions
. $BINDIR/error-check

if [ "$#" -ne 3 ]; then
  echo "Usage: $0 kernel-bitcode object elf_section_name" >&2
  exit_with_code -1
fi

if [ ! -f "$1" ]; then
  echo "kernel-bitcode $1 is not valid" >&2
  exit_with_code -1
fi

if [ -f "$2" ]; then
  mv "$2" "$2.host.o"
  $EMBED "$1" "$2.kernel.o" "$3"
  check_exit_status $EMBED
  ld -r "$2.kernel.o" "$2.host.o" -o "$2"
  check_exit_status ld
  rm "$2.kernel.o" "$2.host.o"
else
  $EMBED "$1" "$2" "$3"
  check_exit_status $EMBED
fi

