Added the ability to create an environment for the compiler

This commit is contained in:
2025-12-04 22:57:02 +03:00
parent bbb3c07a0f
commit a46724cc90

52
env.sh
View File

@@ -1,45 +1,57 @@
#!/bin/bash
# env.sh — окружение для сборки под arm-uclinuxfdpiceabi (FDPIC, thumb)
TOP=`pwd`
PREFIX="${1:-${TOP}/arm-uclinuxfdpiceabi/sysroot/usr}"
TOP="$(pwd)"
TARGET=arm-uclinuxfdpiceabi
TOOLCHAIN=arm-uclinuxfdpiceabi
# Флаги, которые любит именно тулчейн
# Если передали путь — используем его, иначе берём bin в текущей папке
# Пример вызова: ./env.sh /opt/toolchains/arm/bin
TOOLCHAIN_PATH="${1:-${TOP}/${TARGET}/bin}"
# Проверка, что путь существует
if [ ! -d "$TOOLCHAIN_PATH" ]; then
echo "Ошибка: директория с тулчейном не найдена: $TOOLCHAIN_PATH"
exit 1
fi
PREFIX="${TOOLCHAIN_ROOT}/sysroot/usr"
# Флаги тулчейна
CFLAGS_TOOLSET='-O2'
ARFLAGS_TARGET=""
CFLAGS_TARGET='-Os -mthumb'
CXXFLAGS_TARGET=$CFLAGS_TARGET
LDFLAGS_TARGET='-Wl,--fdpic'
# Самое важное — сразу указываем компилятор и линковщик
CC="${TOOLCHAIN}-gcc ${CFLAGS_TOOLSET} ${CFLAGS_TARGET}"
CXX="${TOOLCHAIN}-g++ ${CFLAGS_TOOLSET} ${CXXFLAGS_TARGET}"
CPP="${TOOLCHAIN}-cpp"
LD="${TOOLCHAIN}-ld"
AR="${TOOLCHAIN}-ar ${ARFLAGS_TARGET}"
AS="${TOOLCHAIN}-as"
NM="${TOOLCHAIN}-nm"
RANLIB="${TOOLCHAIN}-ranlib"
STRIP="${TOOLCHAIN}-strip"
OBJCOPY="${TOOLCHAIN}-objcopy"
OBJDUMP="${TOOLCHAIN}-objdump"
# Указание полного пути к компиляторам
CC="${TOOLCHAIN_PATH}/${TOOLCHAIN}-gcc ${CFLAGS_TOOLSET} ${CFLAGS_TARGET}"
CXX="${TOOLCHAIN_PATH}/${TOOLCHAIN}-g++ ${CFLAGS_TOOLSET} ${CXXFLAGS_TARGET}"
CPP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-cpp"
LD="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ld"
AR="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ar ${ARFLAGS_TARGET}"
AS="${TOOLCHAIN_PATH}/${TOOLCHAIN}-as"
NM="${TOOLCHAIN_PATH}/${TOOLCHAIN}-nm"
RANLIB="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ranlib"
STRIP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-strip"
OBJCOPY="${TOOLCHAIN_PATH}/${TOOLCHAIN}-objcopy"
OBJDUMP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-objdump"
# Путь к бинарникам тулчейна — в самое начало PATH
PATH="${TOP}/${TARGET}/bin:${PATH}"
# PATH — toolchain/bin должен быть в начале
PATH="${TOOLCHAIN_PATH}:${PATH}"
# Экспортируем переменные
# Экспорт
export PREFIX
export TARGET
export TOOLCHAIN
export CC CXX CPP LD AR AS NM RANLIB STRIP STRIP OBJCOPY OBJDUMP
export CC CXX CPP LD AR AS NM RANLIB STRIP OBJCOPY OBJDUMP
export CFLAGS CXXFLAGS LDFLAGS
export CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET
export PATH
export SUBARCH=armv7-m
export SUBMODE=thumb
echo "Окружение для ${TARGET} (Thumb/FDPIC/Thumb) активировано"
echo "Окружение для ${TARGET} (Thumb/FDPIC) активировано"
echo " TOOLCHAIN_PATH = $TOOLCHAIN_PATH"
echo " CC = $CC"
echo " CXX = $CXX"