#
# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

pre_tf_build() {
	targets="all mrvl_flash mrvl_uart" set_tf_build_targets

	pushd "$workspace"

	if [ ! -d "A3700-utils-marvell" ]; then
		saveas="A3700-utils-marvell.tar.gz" \
			url="$tfa_downloads/A3700-utils-marvell/A3700-utils-marvell-f014428f4bf7feafec1dcc4c37506d847718649a.tar.gz" \
			fetch_file

		tar -xzf "A3700-utils-marvell.tar.gz"
	fi

	echo "Set WTP to $workspace/A3700-utils-marvell"
	set_hook_var "WTP" "$workspace/A3700-utils-marvell"

	if [ ! -d "mv-ddr-marvell" ]; then
		saveas="mv-ddr-marvell.tar.gz" \
			url="$tfa_downloads/mv-ddr-marvell/mv-ddr-marvell-5d41a995637de1dbc93f193db6ef0c8954cab316.tar.gz" \
			fetch_file

		tar -xzf "mv-ddr-marvell.tar.gz"
	fi

	echo "Set MV_DDR_PATH to $workspace/mv-ddr-marvell"
	set_hook_var "MV_DDR_PATH" "$workspace/mv-ddr-marvell"

	if [ ! -d "cryptopp" ]; then
		saveas="cryptopp.zip" \
			url="$tfa_downloads/cryptopp/cryptopp565.zip" \
			fetch_file

		unzip -d cryptopp "cryptopp.zip"
	fi

	echo "Set CRYPTOPP_PATH to $workspace/cryptopp"
	set_hook_var "CRYPTOPP_PATH" "$workspace/cryptopp"

	popd "$workspace"
}

post_tf_build() {
	# Remove files in uart-images subdirectory as these files have same names as files in upper directory.
	# Currently CI is not able to successfully finish all tests if there are two directories with same file names.
	if [ -d "${tf_build_root}/${plat}/${mode}/uart-images" ];then
		rm -rf ${tf_build_root}/${plat}/${mode}/uart-images
	fi
}
