Refactor build scripts to improve directory structure and enhance file handling

This commit is contained in:
2026-02-16 14:46:24 +03:00
parent a3a929ff40
commit c581c66f74
4 changed files with 62 additions and 35 deletions

View File

@@ -4,20 +4,24 @@ set -e
# Подготавливаем переменные # Подготавливаем переменные
TOP="$(pwd)" TOP="$(pwd)"
INSTALL_DIR="${TOP}/install" INSTALL_DIR="${TOP}/build/install"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin" INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
# Запускаем предварительно для того чтобы подтянуть переменные # Запускаем предварительно для того чтобы подтянуть переменные
. ./env.sh "${INSTALL_BIN_DIR}" . ./env.sh "${INSTALL_BIN_DIR}"
# Сбрасываем CFLAGS/CXXFLAGS — все флаги уже встроены в CC/CXX
export CFLAGS=""
export CXXFLAGS=""
# Подготавливаем пути к разделам # Подготавливаем пути к разделам
LIB_DIR="${TOP}/lib" LIB_DIR="${TOP}/src/libs"
SYSROOT_DIR="${INSTALL_DIR}${SYSROOT}" SYSROOT_DIR="${INSTALL_DIR}${SYSROOT}"
SYSROOT_ETC_DIR="${SYSROOT_DIR}/etc" SYSROOT_ETC_DIR="${SYSROOT_DIR}/etc"
SYSROOT_USR_DIR="${SYSROOT_DIR}/usr" SYSROOT_USR_DIR="${SYSROOT_DIR}/usr"
BUILD_SRC_DIR="${TOP}/build" BUILD_SRC_DIR="${TOP}/build"
LIB_BUILD_DIR="${BUILD_SRC_DIR}/lib" LIB_BUILD_DIR="${BUILD_SRC_DIR}/src/libs"
# ================================================================== # ==================================================================
# Проверка файла окружения # Проверка файла окружения
@@ -72,7 +76,9 @@ echo "== Распаковка завершена =="
# ================================================================== # ==================================================================
cd ${TOP} cd ${TOP}
./env.sh "${INSTALL_BIN_DIR}" "rc" . ./env.sh "${INSTALL_BIN_DIR}" "rc"
export CFLAGS=""
export CXXFLAGS=""
cd "${LIB_BUILD_DIR}/zlib-1.2.13" cd "${LIB_BUILD_DIR}/zlib-1.2.13"
./configure --prefix=${SYSROOT_USR_DIR} --libdir=${SYSROOT_USR_DIR}/lib --static ./configure --prefix=${SYSROOT_USR_DIR} --libdir=${SYSROOT_USR_DIR}/lib --static
@@ -82,7 +88,9 @@ make install
# ================================================================== # ==================================================================
cd ${TOP} cd ${TOP}
./env.sh "${INSTALL_BIN_DIR}" . ./env.sh "${INSTALL_BIN_DIR}"
export CFLAGS=""
export CXXFLAGS=""
cd "${LIB_BUILD_DIR}/openssl-3.0.13" cd "${LIB_BUILD_DIR}/openssl-3.0.13"
./Configure linux-armv4 \ ./Configure linux-armv4 \

View File

@@ -27,9 +27,9 @@ SUBMODE="thumb"
TOP="$(pwd)" TOP="$(pwd)"
CONFIGS_DIR="${TOP}/config" CONFIGS_DIR="${TOP}/config"
SRC_DIR="${TOP}/src" SRC_DIR="${TOP}/src/toolchain"
BUILD_DIR="${TOP}/build" BUILD_DIR="${TOP}/build"
BUILD_SRC_DIR="${BUILD_DIR}/src" BUILD_SRC_DIR="${BUILD_DIR}/src/toolchain"
INSTALL_DIR="${BUILD_DIR}/install" INSTALL_DIR="${BUILD_DIR}/install"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin" INSTALL_BIN_DIR="${INSTALL_DIR}/bin"

View File

@@ -1,27 +1,17 @@
#!/bin/bash #!/bin/bash
# Создаем папку src, если она не существует # Создаем папки для исходников
mkdir -p src mkdir -p src/toolchain src/libs
# Переходим в папку src # Функция загрузки файлов в указанную папку
cd src || exit 1 download_files() {
local target_dir="$1"
shift
local urls=("$@")
# Массив с URL файлов для загрузки cd "$target_dir" || exit 1
files=(
"https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz"
"https://ftp.gnu.org/gnu/gcc/gcc-13.4.0/gcc-13.4.0.tar.xz"
"https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.224.tar.xz"
"https://downloads.uclibc-ng.org/releases/1.0.34/uClibc-ng-1.0.34.tar.xz"
"https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz"
"https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.14.tar.gz"
"https://www.openssl.org/source/openssl-3.0.13.tar.gz"
"https://zlib.net/fossils/zlib-1.2.13.tar.gz"
)
echo "Начинаю загрузку файлов в папку 'src'..." for url in "${urls[@]}"; do
# Загружаем каждый файл
for url in "${files[@]}"; do
filename=$(basename "$url") filename=$(basename "$url")
if [ -f "$filename" ]; then if [ -f "$filename" ]; then
echo "⊘ Пропускаю (уже загружен): $filename" echo "⊘ Пропускаю (уже загружен): $filename"
@@ -37,9 +27,37 @@ for url in "${files[@]}"; do
fi fi
done done
cd - > /dev/null
}
# Исходники тулчейна
toolchain_files=(
"https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz"
"https://ftp.gnu.org/gnu/gcc/gcc-13.4.0/gcc-13.4.0.tar.xz"
"https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.224.tar.xz"
"https://downloads.uclibc-ng.org/releases/1.0.34/uClibc-ng-1.0.34.tar.xz"
)
# Исходники библиотек
libs_files=(
"https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz"
"https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.14.tar.gz"
"https://www.openssl.org/source/openssl-3.0.13.tar.gz"
"https://zlib.net/fossils/zlib-1.2.13.tar.gz"
)
echo "=== Загрузка исходников тулчейна в 'src/toolchain' ==="
download_files src/toolchain "${toolchain_files[@]}"
echo ""
echo "=== Загрузка исходников библиотек в 'src/libs' ==="
download_files src/libs "${libs_files[@]}"
echo "" echo ""
echo "Загрузка завершена!" echo "Загрузка завершена!"
echo "Файлы сохранены в папку: $(pwd)"
echo "" echo ""
echo "Список загруженных файлов:" echo "Тулчейн (src/toolchain):"
ls -la *.tar.* ls -la src/toolchain/*.tar.* 2>/dev/null
echo ""
echo "Библиотеки (src/libs):"
ls -la src/libs/*.tar.* 2>/dev/null

5
env.sh
View File

@@ -24,7 +24,8 @@ CC="${TOOLCHAIN_PATH}/${TOOLCHAIN}-gcc ${CFLAGS_TOOLSET} ${CFLAGS_TARGET}"
CXX="${TOOLCHAIN_PATH}/${TOOLCHAIN}-g++ ${CFLAGS_TOOLSET} ${CXXFLAGS_TARGET}" CXX="${TOOLCHAIN_PATH}/${TOOLCHAIN}-g++ ${CFLAGS_TOOLSET} ${CXXFLAGS_TARGET}"
CPP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-cpp" CPP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-cpp"
LD="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ld" LD="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ld"
AR="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ar ${ARFLAGS_TARGET}" AR="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ar"
ARFLAGS="${ARFLAGS_TARGET}"
AS="${TOOLCHAIN_PATH}/${TOOLCHAIN}-as" AS="${TOOLCHAIN_PATH}/${TOOLCHAIN}-as"
NM="${TOOLCHAIN_PATH}/${TOOLCHAIN}-nm" NM="${TOOLCHAIN_PATH}/${TOOLCHAIN}-nm"
RANLIB="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ranlib" RANLIB="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ranlib"
@@ -40,7 +41,7 @@ export SYSROOT
export PREFIX export PREFIX
export TARGET export TARGET
export TOOLCHAIN export TOOLCHAIN
export CC CXX CPP LD AR AS NM RANLIB STRIP OBJCOPY OBJDUMP export CC CXX CPP LD AR ARFLAGS 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