#!/usr/bin/env sh
# The copyright in this software is being made available under the BSD License,
# included below. This software may be subject to other third party and
# contributor rights, including patent rights, and no such rights are granted
# under this license.
#
# Copyright (c) Intel Corporation
#
# All rights reserved.
#
# BSD License
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this list
# of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or
# other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Script will build tpm2-simulator by using DeviceID.
# CAUTION: Endorsement seed derived from device unique IDs are guaranteed to remain the same as long as the reference
#   implementation manufactures its NV state on the same device. It relies on publicly accessible values
#   storage device serial numbers and networking card MAC address), it can only be used for the simulation purposes,
#   as it cannot be used to produce a secret value.

basedir=$1

# Copy needed tpm simulator reference implementation source code files.
cp -r -n -v $basedir/TPMCmd/* $basedir/Samples/TPMCmd-DeviceID

cd $basedir/Samples/TPMCmd-DeviceID

./bootstrap
./configure --enable-usedeviceid=yes
make -j2

cd $basedir

