blob: 6f7020080dd7f0fa8789cb631256fabfabd84135 [file] [log] [blame]
Evan Lloyd26c6cb42015-12-02 18:33:55 +00001#
Evan Lloyd4c3055f2017-04-07 16:58:57 +01002# Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
Evan Lloyd26c6cb42015-12-02 18:33:55 +00003#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions are met:
6#
7# Redistributions of source code must retain the above copyright notice, this
8# list of conditions and the following disclaimer.
9#
10# Redistributions in binary form must reproduce the above copyright notice,
11# this list of conditions and the following disclaimer in the documentation
12# and/or other materials provided with the distribution.
13#
14# Neither the name of ARM nor the names of its contributors may be used
15# to endorse or promote products derived from this software without specific
16# prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28# POSSIBILITY OF SUCH DAMAGE.
29#
30#
31
32# Trusted Firmware shell command definitions for a Unix style environment.
33
34ifndef UNIX_MK
35 UNIX_MK := $(lastword $(MAKEFILE_LIST))
36
37 ECHO_BLANK_LINE := echo
38
39 DIR_DELIM := /
40 PATH_SEP := :
41
42 # These defines provide Unix style equivalents of the shell commands
43 # required by the Trusted Firmware build environment.
44
45 # ${1} is the file to be copied.
46 # ${2} is the destination file name.
47 define SHELL_COPY
48 ${Q}cp -f "${1}" "${2}"
49 endef
50
51 # ${1} is the directory to be copied.
52 # ${2} is the destination directory path.
53 define SHELL_COPY_TREE
54 ${Q}cp -rf "${1}" "${2}"
55 endef
56
57 # ${1} is the file to be deleted.
58 define SHELL_DELETE
59 -${Q}rm -f "${1}"
60 endef
61
62 # ${1} is a space delimited list of files to be deleted.
63 # Note that we do not quote ${1}, as multiple parameters may be passed.
64 define SHELL_DELETE_ALL
65 -${Q}rm -rf ${1}
66 endef
67
68 # ${1} is the directory to be generated.
69 # ${2} is optional, and allows a prerequisite to be specified.
Evan Lloyd4c3055f2017-04-07 16:58:57 +010070 # Do nothing if $1 == $2, to ignore self dependencies.
Evan Lloyd26c6cb42015-12-02 18:33:55 +000071 define MAKE_PREREQ_DIR
Evan Lloyd4c3055f2017-04-07 16:58:57 +010072 ifneq (${1},${2})
Evan Lloyd26c6cb42015-12-02 18:33:55 +000073
74${1} : ${2}
75 ${Q}mkdir -p "${1}"
76
Evan Lloyd4c3055f2017-04-07 16:58:57 +010077 endif
Evan Lloyd26c6cb42015-12-02 18:33:55 +000078 endef
79
80 define SHELL_REMOVE_DIR
81 -${Q}rm -rf "${1}"
82 endef
83
84endif