Enhance build-libraries.sh and env.sh for toolchain integration

- Updated build-libraries.sh to consistently use the --toolchain flag for environment registration and unregistration.
- Modified env.sh to clarify usage instructions and enforce the --toolchain option for environment setup, improving user experience and consistency in toolchain management.
This commit is contained in:
2026-03-30 19:20:40 +03:00
parent bb72c9b049
commit 0ef34c8a10
2 changed files with 47 additions and 22 deletions

View File

@@ -10,7 +10,7 @@ INSTALL_DIR="${TOP}/build/install"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin" INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
# Запускаем предварительно для того чтобы подтянуть переменные # Запускаем предварительно для того чтобы подтянуть переменные
. ./env.sh --register "${INSTALL_DIR}" . ./env.sh --toolchain --register "${INSTALL_DIR}"
# Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX # Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX
export CFLAGS="" export CFLAGS=""
@@ -78,7 +78,7 @@ echo "== Распаковка завершена =="
# ================================================================== # ==================================================================
cd ${TOP} cd ${TOP}
. ./env.sh --register "${INSTALL_DIR}" "rc" . ./env.sh --toolchain --register "${INSTALL_DIR}" "rc"
export CFLAGS="" export CFLAGS=""
export CXXFLAGS="" export CXXFLAGS=""
@@ -90,7 +90,7 @@ make install
# ================================================================== # ==================================================================
cd ${TOP} cd ${TOP}
. ./env.sh --register "${INSTALL_DIR}" . ./env.sh --toolchain --register "${INSTALL_DIR}"
export CFLAGS="" export CFLAGS=""
export CXXFLAGS="" export CXXFLAGS=""
@@ -174,4 +174,4 @@ make install
# ================================================================== # ==================================================================
cd ${TOP} cd ${TOP}
. ./env.sh --unregister . ./env.sh --toolchain --unregister

61
env.sh
View File

@@ -2,17 +2,14 @@
# env.sh — окружение для сборки под arm-uclinuxfdpiceabi (FDPIC, thumb) # env.sh — окружение для сборки под arm-uclinuxfdpiceabi (FDPIC, thumb)
# #
# Использование: # Использование:
# . ./env.sh [arflags] # . ./env.sh --toolchain --register /path/to/install [arflags]
# (по умолчанию: --register и путь берётся из текущей директории: ./arm-uclinuxfdpiceabi) # . ./env.sh --toolchain --unregister
# . ./env.sh --register /path/to/install [arflags]
# . ./env.sh --unregister
_env_usage() { _env_usage() {
echo "Использование:" echo "Использование:"
echo " . ./env.sh [arflags]" echo " . ./env.sh"
echo " (по умолчанию: --register, тулчейн в ./arm-uclinuxfdpiceabi)" echo " . ./env.sh --toolchain --register /path/to/install [arflags]"
echo " . ./env.sh --register /path/to/install [arflags]" echo " . ./env.sh --toolchain --unregister"
echo " . ./env.sh --unregister"
} }
_env_register() { _env_register() {
@@ -102,6 +99,43 @@ _env_unregister() {
echo "Окружение деактивировано, PATH восстановлен" echo "Окружение деактивировано, PATH восстановлен"
} }
if [ $# -eq 0 ]; then
TOP="$(pwd)"
TARGET="arm-uclinuxfdpiceabi"
TOOLCHAIN="${TARGET}"
TOOLCHAIN_PATH="${TOP}/${TARGET}/bin"
CFLAGS_TOOLSET='-O2'
CFLAGS_TARGET='-Os -mthumb'
if [ -z "${_ENV_ORIG_PATH:-}" ]; then
_ENV_ORIG_PATH="$PATH"
fi
CFLAGS="${CFLAGS_TOOLSET}"
CFLAGS_FOR_TARGET="${CFLAGS_TARGET}"
CXXFLAGS_FOR_TARGET="${CFLAGS_TARGET}"
PATH="${TOOLCHAIN_PATH}:${_ENV_ORIG_PATH}"
export TOP TARGET TOOLCHAIN TOOLCHAIN_PATH
export CFLAGS_TOOLSET CFLAGS_TARGET
export CFLAGS CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET
export SUBARCH=armv7-m
export SUBMODE=thumb
export PATH
echo "Окружение по умолчанию активировано"
echo " TOP = $TOP"
echo " TARGET = $TARGET"
echo " PATH = $TOOLCHAIN_PATH:\$PATH"
return 0 2>/dev/null || exit 0
fi
if [ "${1:-}" != "--toolchain" ]; then
_env_usage
return 1 2>/dev/null || exit 1
fi
shift
case "${1:-}" in case "${1:-}" in
--register) --register)
shift shift
@@ -110,16 +144,7 @@ case "${1:-}" in
--unregister) --unregister)
_env_unregister _env_unregister
;; ;;
"")
# Нет аргументов => автоматом register для тулчейна из текущей директории
_env_register "" ""
;;
*) *)
# Если аргумент не начинается с "--", трактуем как [arflags] для тулчейна из текущей директории _env_usage
if [[ "$1" != --* ]]; then
_env_register "" "$1"
else
_env_usage
fi
;; ;;
esac esac