summaryrefslogtreecommitdiffstats
path: root/src/build/tools/hbDistribute
blob: f0b84a29da62f307e940fb5ef6c62e086590051d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/bash
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/build/tools/hbDistribute $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2012,2016
# [+] International Business Machines Corp.
#
#
# 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.
#
# IBM_PROLOG_END_TAG
TARGET_DIR="invalid directory"
TARGET="fsp_TARGET"
TEST_TEST=0

print_usage()
{
    echo "Usage: $0 [--help] | "
    echo "          [<path>] [--test] [--release | --vpo | --simics | --fsp]"
    echo
    echo "    This script will deliver the defined content for a distribition"
    echo "    target.  Typically this is used to populate an ODE sandbox with"
    echo "    images and debug tools or for the generation of a build release"
    echo "    directory."
    echo
    echo "    Target content is defined in src/build/mkrules/dist.targets.mk"
    echo
    echo "  Options:"
    echo "    --help: Prints usage information"
    echo
    echo "    --test: Includes test images and content instead of non-test."
    echo
    echo "    --release: Create a full release distribution (all targets)."
    echo "    --vpo: Generate just 'vpo' content."
    echo "    --simics/--fsp: *default* Generate just 'fsp' content"
}

# Parse arguments
for ARG in $*
do
    case $ARG in
        "--help")
            print_usage
            exit
        ;;

        "--test")
            TARGET_TEST=1
        ;;

        "--vpo")
            TARGET="vpo_TARGET"
        ;;

        "--simics" | "--fsp")
            TARGET="fsp_TARGET"
        ;;

        "--openpower")
            TARGET="openpower_TARGET"
        ;;

        "--release")
            TARGET="ALL"
        ;;

        "--debug")
            DEBUG="-d"
        ;;

        "--secureboot")
            SECUREBOOT=1
        ;;

        --*)
            echo "ERROR: Unknown option: $ARG"
            exit
        ;;

        *)
            TARGET_DIR=$ARG
        ;;

    esac
done

# Verify target directory or default to sandbox.
if [ "${TARGET_DIR}" == "invalid directory" ]; then
    if [ -z "${SANDBOXROOT}" -o -z "${SANDBOXNAME}" ]; then
        echo "ERROR: No path specified and \$SANDBOXBASE undefined."
        print_usage
        exit
    else
        TARGET_DIR=${SANDBOXROOT}/${SANDBOXNAME}/src/hbfw
    fi
fi

# Find root of repository.
if [ -e "src/build/tools/hbDistribute" ]; then
    REPO_ROOT="./"
else
    REPO_ROOT=`git rev-parse --show-toplevel`
    if [ -z $REPO_ROOT ]; then
        echo "ERROR: Not in a git repo."
        exit
    fi
fi

# Execute makefile for distribution.
mkdir -p $TARGET_DIR
export TARGET_TEST
export TARGET_DIR
export SECUREBOOT
cd $REPO_ROOT/src/build/mkrules
make -rR ${DEBUG:=} -f dist.targets.mk $TARGET

OpenPOWER on IntegriCloud