xref: /aosp_15_r20/external/arm-trusted-firmware/make_helpers/unix.mk (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park#
2*54fd6939SJiyong Park# Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park#
4*54fd6939SJiyong Park# SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park#
6*54fd6939SJiyong Park
7*54fd6939SJiyong Park# Trusted Firmware shell command definitions for a Unix style environment.
8*54fd6939SJiyong Park
9*54fd6939SJiyong Parkifndef UNIX_MK
10*54fd6939SJiyong Park    UNIX_MK := $(lastword $(MAKEFILE_LIST))
11*54fd6939SJiyong Park
12*54fd6939SJiyong Park    ECHO_BLANK_LINE := echo
13*54fd6939SJiyong Park    ECHO_QUIET := @\#
14*54fd6939SJiyong Park
15*54fd6939SJiyong Park    DIR_DELIM := /
16*54fd6939SJiyong Park    PATH_SEP := :
17*54fd6939SJiyong Park
18*54fd6939SJiyong Park    # These defines provide Unix style equivalents of the shell commands
19*54fd6939SJiyong Park    # required by the Trusted Firmware build environment.
20*54fd6939SJiyong Park
21*54fd6939SJiyong Park    # ${1} is the file to be copied.
22*54fd6939SJiyong Park    # ${2} is the destination file name.
23*54fd6939SJiyong Park    define SHELL_COPY
24*54fd6939SJiyong Park	${Q}cp -f  "${1}"  "${2}"
25*54fd6939SJiyong Park    endef
26*54fd6939SJiyong Park
27*54fd6939SJiyong Park    # ${1} is the directory to be copied.
28*54fd6939SJiyong Park    # ${2} is the destination directory path.
29*54fd6939SJiyong Park    define SHELL_COPY_TREE
30*54fd6939SJiyong Park	${Q}cp -rf  "${1}"  "${2}"
31*54fd6939SJiyong Park    endef
32*54fd6939SJiyong Park
33*54fd6939SJiyong Park    # ${1} is the file to be deleted.
34*54fd6939SJiyong Park    define SHELL_DELETE
35*54fd6939SJiyong Park	-${Q}rm -f  "${1}"
36*54fd6939SJiyong Park    endef
37*54fd6939SJiyong Park
38*54fd6939SJiyong Park    # ${1} is a space delimited list of files to be deleted.
39*54fd6939SJiyong Park    # Note that we do not quote ${1}, as multiple parameters may be passed.
40*54fd6939SJiyong Park    define SHELL_DELETE_ALL
41*54fd6939SJiyong Park	-${Q}rm -rf  ${1}
42*54fd6939SJiyong Park    endef
43*54fd6939SJiyong Park
44*54fd6939SJiyong Park    # ${1} is the directory to be generated.
45*54fd6939SJiyong Park    # ${2} is optional, and allows a prerequisite to be specified.
46*54fd6939SJiyong Park    # Do nothing if $1 == $2, to ignore self dependencies.
47*54fd6939SJiyong Park    define MAKE_PREREQ_DIR
48*54fd6939SJiyong Park        ifneq (${1},${2})
49*54fd6939SJiyong Park
50*54fd6939SJiyong Park${1} : ${2}
51*54fd6939SJiyong Park	${Q}mkdir -p  "${1}"
52*54fd6939SJiyong Park
53*54fd6939SJiyong Park        endif
54*54fd6939SJiyong Park    endef
55*54fd6939SJiyong Park
56*54fd6939SJiyong Park    define SHELL_REMOVE_DIR
57*54fd6939SJiyong Park	-${Q}rm -rf  "${1}"
58*54fd6939SJiyong Park    endef
59*54fd6939SJiyong Park
60*54fd6939SJiyong Parkendif
61