#!/bin/bash
# Copyright 2023 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ==============================================================================
#
# We are installing qemu from source because (copied from
# https://github.com/tensorflow/tflite-micro/pull/1892#discussion_r1164316226):
# QEMU 7.1 and above has a blocking bug
# (https://gitlab.com/qemu-project/qemu/-/issues/1528) and that's the only
# version available on our apt repo.
#
# TODO: b/285348856 - Update the version to allow for command line arguments.
#
# Parameters:
# ${1} Optional. Path to install QEMU.
LINUX_PORTABLE_URL="https://download.qemu.org/qemu-6.2.0.tar.xz"
TEMP_ARCHIVE="/tmp/qemu.tar.xz"

INSTALL_PREFIX=${1:-"/usr/local"}

echo >&2 "Downloading from url: ${LINUX_PORTABLE_URL}"
wget ${LINUX_PORTABLE_URL} -O ${TEMP_ARCHIVE} >&2

TEMP_DIR="$(mktemp -d)"
tar xJf ${TEMP_ARCHIVE} --strip-components=1 --directory ${TEMP_DIR} >&2
cd ${TEMP_DIR}
./configure --prefix=${INSTALL_PREFIX}
make -j8
make install
