mirror of
https://github.com/espressif/mbedtls.git
synced 2025-07-13 10:15:49 +08:00

For easier maintenance the framework repository is flattened here and added to the forked branch in source format.
122 lines
3.4 KiB
Bash
122 lines
3.4 KiB
Bash
# project-detection.sh
|
|
#
|
|
# Copyright The Mbed TLS Contributors
|
|
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
#
|
|
# Purpose
|
|
#
|
|
# This script contains functions for shell scripts to
|
|
# help detect which project (Mbed TLS, TF-PSA-Crypto)
|
|
# or which Mbed TLS branch they are in.
|
|
|
|
# Project detection.
|
|
#
|
|
# Both Mbed TLS and TF-PSA-Cryto repos have a "scripts/project_name.txt" file
|
|
# which contains the name of the project. They are used in scripts to know in
|
|
# which project/folder we're in.
|
|
# This function accepts 2 parameters:
|
|
# - $1: boolean value which defines the behavior in case
|
|
# "scripts/project_name.txt" is not found:
|
|
# - 1: exit with error message
|
|
# - 0: simply return an error
|
|
# - $2: mandatory value which defined the root folder where to look for
|
|
# "scripts/project_name.txt".
|
|
read_project_name_file () {
|
|
EXIT_IF_NOT_FOUND=$1
|
|
ROOT_PATH=$2
|
|
|
|
PROJECT_NAME_FILE="scripts/project_name.txt"
|
|
|
|
# Check if file exists.
|
|
if [ ! -f "$ROOT_PATH/$PROJECT_NAME_FILE" ]; then
|
|
if $EXIT_IF_NOT_FOUND ; then
|
|
echo "$ROOT_PATH/$PROJECT_NAME_FILE does not exist... Exiting..." >&2
|
|
exit 1
|
|
fi
|
|
# Simply return a failure in case we were asked not to fail in case of
|
|
# missing file.
|
|
return 1
|
|
fi
|
|
|
|
if read -r PROJECT_NAME < "$ROOT_PATH/$PROJECT_NAME_FILE"; then :; else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Check if the current folder is the Mbed TLS root one.
|
|
#
|
|
# Warning: if this is not run from Mbed TLS/TF-PSA-Crypto root folder, the
|
|
# script is terminated with a failure.
|
|
in_mbedtls_repo () {
|
|
read_project_name_file true .
|
|
test "$PROJECT_NAME" = "Mbed TLS"
|
|
}
|
|
|
|
# Check if the current folder is the TF-PSA-Crypto root one.
|
|
#
|
|
# Warning: if this is not run from Mbed TLS/TF-PSA-Crypto root folder, the
|
|
# script is terminated with a failure.
|
|
in_tf_psa_crypto_repo () {
|
|
read_project_name_file true .
|
|
test "$PROJECT_NAME" = "TF-PSA-Crypto"
|
|
}
|
|
|
|
# Check if $1 is an Mbed TLS root folder.
|
|
#
|
|
# Differently from in_mbedtls_repo() above, this can be run on any folder
|
|
# without causing the script to exit.
|
|
is_mbedtls_root() {
|
|
if ! read_project_name_file false $1 ; then
|
|
return 1
|
|
fi
|
|
|
|
test "$PROJECT_NAME" = "Mbed TLS"
|
|
}
|
|
|
|
# Check if $1 is a TF-PSA-Crypto root folder.
|
|
#
|
|
# Differently from in_tf_psa_crypto_repo() above, this can be run on any folder
|
|
# without causing the script to exit.
|
|
is_tf_psa_crypto_root() {
|
|
if ! read_project_name_file false $1 ; then
|
|
return 1
|
|
fi
|
|
|
|
test "$PROJECT_NAME" = "TF-PSA-Crypto"
|
|
}
|
|
|
|
#Branch detection
|
|
read_build_info () {
|
|
SCRIPT_DIR=$(pwd)
|
|
|
|
BUILD_INFO_FILE="include/mbedtls/build_info.h"
|
|
|
|
if [ ! -f "$BUILD_INFO_FILE" ]; then
|
|
echo "File $BUILD_INFO_FILE not found."
|
|
exit 1
|
|
fi
|
|
|
|
MBEDTLS_VERSION_MAJOR=$(grep "^#define MBEDTLS_VERSION_MAJOR" "$BUILD_INFO_FILE" | awk '{print $3}')
|
|
MBEDTLS_VERSION_MINOR=$(grep "^#define MBEDTLS_VERSION_MINOR" "$BUILD_INFO_FILE" | awk '{print $3}')
|
|
|
|
if [ -z "$MBEDTLS_VERSION_MAJOR" ]; then
|
|
echo "MBEDTLS_VERSION_MAJOR not found in $BUILD_INFO_FILE."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$MBEDTLS_VERSION_MINOR" ]; then
|
|
echo "MBEDTLS_VERSION_MINOR not found in $BUILD_INFO_FILE."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
in_3_6_branch () {
|
|
read_build_info
|
|
test $MBEDTLS_VERSION_MAJOR = "3" && test $MBEDTLS_VERSION_MINOR = "6"
|
|
}
|
|
|
|
in_4_x_branch () {
|
|
read_build_info
|
|
test $MBEDTLS_VERSION_MAJOR = "4"
|
|
}
|