1#!/usr/bin/env sh
2# The copyright in this software is being made available under the BSD License,
3# included below. This software may be subject to other third party and
4# contributor rights, including patent rights, and no such rights are granted
5# under this license.
6#
7# Copyright (c) Intel Corporation
8#
9# All rights reserved.
10#
11# BSD License
12#
13# Redistribution and use in source and binary forms, with or without modification,
14# are permitted provided that the following conditions are met:
15#
16# Redistributions of source code must retain the above copyright notice, this list
17# of conditions and the following disclaimer.
18#
19# Redistributions in binary form must reproduce the above copyright notice, this
20# list of conditions and the following disclaimer in the documentation and/or
21# other materials provided with the distribution.
22#
23# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
24# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
27# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
30# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
34AUTORECONF=${AUTORECONF:-autoreconf}
35
36# generate list of source files for use in Makefile.am
37# if you add new source files, you must run ./bootstrap again
38src_listvar () {
39    basedir=$1
40    suffix=$2
41    var=$3
42
43    find "${basedir}" -name "${suffix}" | LC_ALL=C sort | tr '\n' ' ' | (printf "${var} = " && cat)
44    echo ""
45}
46
47echo "Generating file lists: src.mk"
48(
49    src_listvar "Platform" "*.c" "PLATFORM_C"
50    src_listvar "Platform" "*.h" "PLATFORM_H"
51    src_listvar "Simulator" "*.c" "SIMULATOR_C"
52    src_listvar "Simulator" "*.h" "SIMULATOR_H"
53    src_listvar "tpm" "*.c" "TPM_C"
54    src_listvar "tpm" "*.h" "TPM_H"
55) > src.mk
56
57echo "Setting up build"
58${AUTORECONF} --install --sym
59
60# A freshly checked out source tree will not build. VendorString.h must have
61# these symbols defined to build.
62echo "Setting default vendor strings"
63sed -i 's&^\/\/\(#define[[:space:]]\+FIRMWARE_V1.*\)&\1&;
64        s&^\/\/\(#define[[:space:]]\+MANUFACTURER.*\)&\1&;
65        s&^\/\/\(#define[[:space:]]\+VENDOR_STRING_1.*\)&\1&' \
66       tpm/include/VendorString.h
67