#!/bin/sh
#
# Common routines for docker test scripts.
#
# Copyright (c) 2016 Red Hat Inc.
#
# Authors:
#  Fam Zheng <famz@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2
# or (at your option) any later version. See the COPYING file in
# the top-level directory.

requires()
{
    for c in $@; do
        if ! echo "$FEATURES" | grep -wq -e "$c"; then
            echo "Prerequisite '$c' not present, skip"
            exit 0
        fi
    done
}

build_qemu()
{
    $QEMU_SRC/configure \
        --enable-werror \
        ${TARGET_LIST:+"--target-list=${TARGET_LIST}"} \
        --prefix="$PWD/install" \
        $EXTRA_CONFIGURE_OPTS \
        "$@"
    make $MAKEFLAGS
}
