Enhance build-libraries.sh and env.sh for improved toolchain configuration
- Updated build-libraries.sh to set up environment variables for the arm-uclinuxfdpiceabi toolchain, including compiler flags and paths. - Removed the dependency on env.sh for initial environment setup, simplifying the script logic. - Streamlined the export and unset of environment variables to ensure a clean build environment. - Adjusted the handling of CFLAGS and related variables for better clarity and consistency in the build process.
This commit is contained in:
@@ -9,13 +9,38 @@ TOP="$(pwd)"
|
||||
INSTALL_DIR="${TOP}/build/install"
|
||||
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
|
||||
SYSROOT_DIR="${INSTALL_DIR}/sysroot"
|
||||
TARGET="arm-uclinuxfdpiceabi"
|
||||
TOOLCHAIN="${TARGET}"
|
||||
TOOLCHAIN_PATH="${INSTALL_DIR}/bin"
|
||||
CFLAGS_TOOLSET='-O2'
|
||||
CFLAGS_TARGET='-Os -mthumb'
|
||||
_ORIG_PATH="$PATH"
|
||||
|
||||
# Запускаем предварительно для того чтобы подтянуть переменные
|
||||
. ./env.sh --global --path "${INSTALL_DIR}"
|
||||
|
||||
# Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX
|
||||
export SYSROOT="${SYSROOT_DIR}"
|
||||
export PREFIX="${SYSROOT_DIR}/usr"
|
||||
export TARGET TOOLCHAIN TOOLCHAIN_PATH
|
||||
export CC="${TOOLCHAIN_PATH}/${TOOLCHAIN}-gcc ${CFLAGS_TOOLSET} ${CFLAGS_TARGET}"
|
||||
export CXX="${TOOLCHAIN_PATH}/${TOOLCHAIN}-g++ ${CFLAGS_TOOLSET} ${CFLAGS_TARGET}"
|
||||
export CPP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-cpp"
|
||||
export LD="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ld"
|
||||
export AR="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ar"
|
||||
# Без флагов (rc) zlib/Makefile вызывает «ar libz.a …» — ar воспринимает имя архива как опции.
|
||||
export ARFLAGS='rc'
|
||||
export AS="${TOOLCHAIN_PATH}/${TOOLCHAIN}-as"
|
||||
export NM="${TOOLCHAIN_PATH}/${TOOLCHAIN}-nm"
|
||||
export RANLIB="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ranlib"
|
||||
export STRIP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-strip"
|
||||
export OBJCOPY="${TOOLCHAIN_PATH}/${TOOLCHAIN}-objcopy"
|
||||
export OBJDUMP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-objdump"
|
||||
export CFLAGS=""
|
||||
export CXXFLAGS=""
|
||||
export LDFLAGS=""
|
||||
export CFLAGS_FOR_TARGET="${CFLAGS_TARGET}"
|
||||
export CXXFLAGS_FOR_TARGET="${CFLAGS_TARGET}"
|
||||
export LDFLAGS_FOR_TARGET='-Wl,--fdpic'
|
||||
export SUBARCH=armv7-m
|
||||
export SUBMODE=thumb
|
||||
export PATH="${TOOLCHAIN_PATH}:${_ORIG_PATH}"
|
||||
|
||||
# Подготавливаем пути к разделам
|
||||
|
||||
@@ -25,22 +50,6 @@ SYSROOT_USR_DIR="${SYSROOT_DIR}/usr"
|
||||
BUILD_SRC_DIR="${TOP}/build"
|
||||
LIB_BUILD_DIR="${BUILD_SRC_DIR}/src/libs"
|
||||
|
||||
# ==================================================================
|
||||
# Проверка файла окружения
|
||||
# ==================================================================
|
||||
|
||||
# Проверяем существует ли файл
|
||||
if [ ! -f ./env.sh ]; then
|
||||
echo "Ошибка: файл env.sh не найден"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверяем имеет ли файл права на исполнение
|
||||
if [ ! -x ./env.sh ]; then
|
||||
echo "env.sh не имеет права на выполнение, добавляю..."
|
||||
chmod +x ./env.sh || { echo "Не удалось установить права"; exit 1; }
|
||||
fi
|
||||
|
||||
# ==================================================================
|
||||
# Распаковка библиотек
|
||||
# ==================================================================
|
||||
@@ -73,15 +82,6 @@ shopt -u nullglob
|
||||
|
||||
echo "== Распаковка завершена =="
|
||||
|
||||
# ==================================================================
|
||||
# Установка окружения
|
||||
# ==================================================================
|
||||
|
||||
cd "${TOP}"
|
||||
. ./env.sh --global --path "${INSTALL_DIR}"
|
||||
export CFLAGS=""
|
||||
export CXXFLAGS=""
|
||||
|
||||
cd "${LIB_BUILD_DIR}/zlib-${ZLIB_VER}"
|
||||
./configure --prefix=${SYSROOT_USR_DIR} --libdir=${SYSROOT_USR_DIR}/lib --static
|
||||
make -j$(nproc)
|
||||
@@ -89,11 +89,6 @@ make install
|
||||
|
||||
# ==================================================================
|
||||
|
||||
cd "${TOP}"
|
||||
. ./env.sh --global --path "${INSTALL_DIR}"
|
||||
export CFLAGS=""
|
||||
export CXXFLAGS=""
|
||||
|
||||
OPENSSL_S_SERVER_FILE="${LIB_BUILD_DIR}/openssl-${OPENSSL_VER}/apps/s_server.c"
|
||||
if [ -f "${OPENSSL_S_SERVER_FILE}" ] && ! grep -q '^#include <sys/stat.h>$' "${OPENSSL_S_SERVER_FILE}"; then
|
||||
echo "== Патч OpenSSL: добавляю <sys/stat.h> в apps/s_server.c =="
|
||||
@@ -179,4 +174,10 @@ make install
|
||||
|
||||
# ==================================================================
|
||||
|
||||
cd "${TOP}"
|
||||
cd "${TOP}"
|
||||
export PATH="${_ORIG_PATH}"
|
||||
unset SYSROOT PREFIX TARGET TOOLCHAIN TOOLCHAIN_PATH
|
||||
unset CC CXX CPP LD AR ARFLAGS AS NM RANLIB STRIP OBJCOPY OBJDUMP
|
||||
unset CFLAGS CXXFLAGS LDFLAGS
|
||||
unset CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET
|
||||
unset SUBARCH SUBMODE CFLAGS_TOOLSET CFLAGS_TARGET _ORIG_PATH
|
||||
Reference in New Issue
Block a user