Added the ability to create an environment for the compiler
This commit is contained in:
52
env.sh
52
env.sh
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user