• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (c) 2016-2024, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7# OS specific parts for builds in a Windows_NT environment. The
8# environment variable OS is set to Windows_NT on all modern Windows platforms
9
10# Include generic windows command definitions.
11
12ifndef WINDOWS_MK
13    WINDOWS_MK := $(lastword $(MAKEFILE_LIST))
14
15    DIR_DELIM := $(strip \)
16    BIN_EXT   := .exe
17    PATH_SEP  := ;
18
19    # For some Windows native commands there is a problem with the directory delimiter.
20    # Make uses / (slash) and the commands expect \ (backslash)
21    # We have to provide a means of translating these, so we define local functions.
22
23    # ${1} is the file to be copied.
24    # ${2} is the destination file name.
25    define SHELL_COPY
26	$(eval tmp_from_file:=$(subst /,\,${1}))
27	$(eval tmp_to_file:=$(subst /,\,${2}))
28	copy "${tmp_from_file}" "${tmp_to_file}"
29    endef
30
31    # ${1} is the directory to be copied.
32    # ${2} is the destination directory path.
33    define SHELL_COPY_TREE
34	$(eval tmp_from_dir:=$(subst /,\,${1}))
35	$(eval tmp_to_dir:=$(subst /,\,${2}))
36	xcopy /HIVE "${tmp_from_dir}" "${tmp_to_dir}"
37    endef
38
39    # ${1} is the file to be deleted.
40    define SHELL_DELETE
41	$(eval tmp_del_file:=$(subst /,\,${*}))
42	-@if exist $(tmp_del_file)  del /Q $(tmp_del_file)
43    endef
44
45    # ${1} is a space delimited list of files to be deleted.
46    define SHELL_DELETE_ALL
47	$(eval $(foreach filename,$(wildcard ${1}),$(call DELETE_IF_THERE,${filename})))
48    endef
49
50    # ${1} is the directory to be removed.
51    define SHELL_REMOVE_DIR
52	$(eval tmp_dir:=$(subst /,\,${1}))
53	-@if exist "$(tmp_dir)"  rd /Q /S "$(tmp_dir)"
54    endef
55
56    nul := nul
57
58    which = $(shell where "$(1)" 2>$(nul))
59endif
60
61# Because git is not available from CMD.EXE, we need to avoid
62# the BUILD_STRING generation which uses git.
63# For now we use "development build".
64# This can be overridden from the command line or environment.
65BUILD_STRING ?= development build
66
67MSVC_NMAKE := nmake.exe
68