diff --git a/env.sh b/env.sh index 51e7126..a36d398 100755 --- a/env.sh +++ b/env.sh @@ -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"