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)"
INSTALL_DIR="${TOP}/install"
INSTALL_DIR="${TOP}/build/install"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
# Запускаем предварительно для того чтобы подтянуть переменные
. ./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_ETC_DIR="${SYSROOT_DIR}/etc"
SYSROOT_USR_DIR="${SYSROOT_DIR}/usr"
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}
./env.sh "${INSTALL_BIN_DIR}" "rc"
. ./env.sh "${INSTALL_BIN_DIR}" "rc"
export CFLAGS=""
export CXXFLAGS=""
cd "${LIB_BUILD_DIR}/zlib-1.2.13"
./configure --prefix=${SYSROOT_USR_DIR} --libdir=${SYSROOT_USR_DIR}/lib --static
@@ -82,7 +88,9 @@ make install
# ==================================================================
cd ${TOP}
./env.sh "${INSTALL_BIN_DIR}"
. ./env.sh "${INSTALL_BIN_DIR}"
export CFLAGS=""
export CXXFLAGS=""
cd "${LIB_BUILD_DIR}/openssl-3.0.13"
./Configure linux-armv4 \

View File

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

View File

@@ -1,45 +1,63 @@
#!/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 файлов для загрузки
files=(
cd "$target_dir" || exit 1
for url in "${urls[@]}"; do
filename=$(basename "$url")
if [ -f "$filename" ]; then
echo "⊘ Пропускаю (уже загружен): $filename"
continue
fi
echo "Загружаю: $filename"
wget -q --show-progress "$url"
if [ $? -eq 0 ]; then
echo "✓ Успешно: $filename"
else
echo "✗ Ошибка при загрузке: $filename"
fi
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'..."
echo "=== Загрузка исходников тулчейна в 'src/toolchain' ==="
download_files src/toolchain "${toolchain_files[@]}"
# Загружаем каждый файл
for url in "${files[@]}"; do
filename=$(basename "$url")
if [ -f "$filename" ]; then
echo "⊘ Пропускаю (уже загружен): $filename"
continue
fi
echo "Загружаю: $filename"
wget -q --show-progress "$url"
if [ $? -eq 0 ]; then
echo "✓ Успешно: $filename"
else
echo "✗ Ошибка при загрузке: $filename"
fi
done
echo ""
echo "=== Загрузка исходников библиотек в 'src/libs' ==="
download_files src/libs "${libs_files[@]}"
echo ""
echo "Загрузка завершена!"
echo "Файлы сохранены в папку: $(pwd)"
echo ""
echo "Список загруженных файлов:"
ls -la *.tar.*
echo "Тулчейн (src/toolchain):"
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}"
CPP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-cpp"
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"
NM="${TOOLCHAIN_PATH}/${TOOLCHAIN}-nm"
RANLIB="${TOOLCHAIN_PATH}/${TOOLCHAIN}-ranlib"
@@ -40,7 +41,7 @@ export SYSROOT
export PREFIX
export TARGET
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_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET
export PATH