Refactor build-libraries.sh and env.sh for improved environment setup

- Updated build-libraries.sh to use --global and --path options for environment registration, enhancing clarity and consistency.
- Modified env.sh to support custom paths and improved error handling for the --path argument, streamlining toolchain path resolution.
- Removed redundant SYSROOT_DIR assignments to simplify the script logic.
This commit is contained in:
2026-03-31 13:54:49 +03:00
parent fa0e0243e1
commit 08e372eaf2
2 changed files with 29 additions and 14 deletions

View File

@@ -8,9 +8,10 @@ source "$(dirname "$0")/versions.sh"
TOP="$(pwd)" TOP="$(pwd)"
INSTALL_DIR="${TOP}/build/install" INSTALL_DIR="${TOP}/build/install"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin" INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
SYSROOT_DIR="${INSTALL_DIR}/sysroot"
# Запускаем предварительно для того чтобы подтянуть переменные # Запускаем предварительно для того чтобы подтянуть переменные
. ./env.sh --toolchain --register "${INSTALL_DIR}" . ./env.sh --global --path "${INSTALL_DIR}"
# Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX # Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX
export CFLAGS="" export CFLAGS=""
@@ -19,7 +20,6 @@ export CXXFLAGS=""
# Подготавливаем пути к разделам # Подготавливаем пути к разделам
LIB_DIR="${TOP}/src/libs" LIB_DIR="${TOP}/src/libs"
SYSROOT_DIR="${SYSROOT}"
SYSROOT_ETC_DIR="${SYSROOT_DIR}/etc" SYSROOT_ETC_DIR="${SYSROOT_DIR}/etc"
SYSROOT_USR_DIR="${SYSROOT_DIR}/usr" SYSROOT_USR_DIR="${SYSROOT_DIR}/usr"
BUILD_SRC_DIR="${TOP}/build" BUILD_SRC_DIR="${TOP}/build"
@@ -77,8 +77,8 @@ echo "== Распаковка завершена =="
# Установка окружения # Установка окружения
# ================================================================== # ==================================================================
cd ${TOP} cd "${TOP}"
. ./env.sh --toolchain --register "${INSTALL_DIR}" "rc" . ./env.sh --global --path "${INSTALL_DIR}"
export CFLAGS="" export CFLAGS=""
export CXXFLAGS="" export CXXFLAGS=""
@@ -89,8 +89,8 @@ make install
# ================================================================== # ==================================================================
cd ${TOP} cd "${TOP}"
. ./env.sh --toolchain --register "${INSTALL_DIR}" . ./env.sh --global --path "${INSTALL_DIR}"
export CFLAGS="" export CFLAGS=""
export CXXFLAGS="" export CXXFLAGS=""
@@ -173,5 +173,4 @@ make install
# ================================================================== # ==================================================================
cd ${TOP} cd "${TOP}"
. ./env.sh --toolchain --unregister

24
env.sh
View File

@@ -1,15 +1,31 @@
TOP="$(pwd)" TOP="$(pwd)"
TOOLCHAIN_PATH="" TOOLCHAIN_PATH=""
GLOBAL_MODE=0 GLOBAL_MODE=0
CUSTOM_PATH=""
for arg in "$@"; do while [ $# -gt 0 ]; do
if [ "$arg" = "--global" ]; then case "$1" in
--global)
GLOBAL_MODE=1 GLOBAL_MODE=1
break shift
;;
--path)
if [ -z "$2" ]; then
echo "Ошибка: для --path нужно указать путь"
return 1 2>/dev/null || exit 1
fi fi
CUSTOM_PATH="$2"
shift 2
;;
*)
shift
;;
esac
done done
if [ -d "${TOP}/arm-uclinuxfdpiceabi" ]; then if [ -n "${CUSTOM_PATH}" ]; then
TOOLCHAIN_PATH="${CUSTOM_PATH}"
elif [ -d "${TOP}/arm-uclinuxfdpiceabi" ]; then
TOOLCHAIN_PATH="${TOP}/arm-uclinuxfdpiceabi" TOOLCHAIN_PATH="${TOP}/arm-uclinuxfdpiceabi"
elif [ -d "${TOP}/build/install" ]; then elif [ -d "${TOP}/build/install" ]; then
TOOLCHAIN_PATH="${TOP}/build/install" TOOLCHAIN_PATH="${TOP}/build/install"