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