Added build-libraries.sh
This commit is contained in:
116
build-libraries.sh
Executable file
116
build-libraries.sh
Executable file
@@ -0,0 +1,116 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Подготавливаем переменные
|
||||||
|
|
||||||
|
TOP="$(pwd)"
|
||||||
|
INSTALL_DIR="${TOP}/install"
|
||||||
|
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
|
||||||
|
|
||||||
|
# Запускаем предварительно для того чтобы подтянуть переменные
|
||||||
|
. ./env.sh "${INSTALL_BIN_DIR}"
|
||||||
|
|
||||||
|
# Подготавливаем пути к разделам
|
||||||
|
|
||||||
|
LIB_DIR="${TOP}/lib"
|
||||||
|
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"
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# Проверка файла окружения
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
# Проверяем существует ли файл
|
||||||
|
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
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# Распаковка библиотек
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
echo "== Распаковка библиотек =="
|
||||||
|
|
||||||
|
# Создаем каталог для сборки библиотек
|
||||||
|
mkdir -p "${LIB_BUILD_DIR}"
|
||||||
|
|
||||||
|
echo "== Поиск и распаковка архивов в ${LIB_DIR} =="
|
||||||
|
|
||||||
|
# Проходимся по *.tar.xz и *.tar.gz
|
||||||
|
shopt -s nullglob
|
||||||
|
for archive in "${LIB_DIR}"/*.tar.xz "${LIB_DIR}"/*.tar.gz; do
|
||||||
|
# Если файлов нет – ничего не делаем
|
||||||
|
[ -e "$archive" ] || continue
|
||||||
|
|
||||||
|
fname="$(basename "$archive")"
|
||||||
|
pkg="${fname%.tar.*}" # имя папки после распаковки
|
||||||
|
|
||||||
|
echo "--------------------------------------"
|
||||||
|
echo "Найден архив: $fname"
|
||||||
|
echo "Распаковка в: ${LIB_BUILD_DIR}/${pkg}"
|
||||||
|
echo "--------------------------------------"
|
||||||
|
|
||||||
|
mkdir -p "${LIB_BUILD_DIR}/${pkg}"
|
||||||
|
tar -xf "$archive" -C "${LIB_BUILD_DIR}/${pkg}" --strip-components=1
|
||||||
|
done
|
||||||
|
shopt -u nullglob
|
||||||
|
|
||||||
|
echo "== Распаковка завершена =="
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# Установка окружения
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
cd ${TOP}
|
||||||
|
./env.sh "${INSTALL_BIN_DIR}" "rc"
|
||||||
|
|
||||||
|
cd "${LIB_BUILD_DIR}/zlib-1.2.13"
|
||||||
|
./configure --prefix=${SYSROOT_USR_DIR} --libdir=${SYSROOT_USR_DIR}/lib
|
||||||
|
make -j$(nproc)
|
||||||
|
make install
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
cd ${TOP}
|
||||||
|
./env.sh "${INSTALL_BIN_DIR}"
|
||||||
|
|
||||||
|
cd "${LIB_BUILD_DIR}/openssl-3.0.13"
|
||||||
|
./Configure linux-armv4 \
|
||||||
|
--prefix=${SYSROOT_USR_DIR} \
|
||||||
|
--libdir=${SYSROOT_USR_DIR}/lib \
|
||||||
|
--openssldir=${SYSROOT_ETC_DIR}/ssl \
|
||||||
|
shared no-async no-comp no-idea no-tests no-threads no-asm no-secure-memory no-seed no-weak-ssl-ciphers \
|
||||||
|
-DNO_FORK -DHAVE_FORK=0
|
||||||
|
|
||||||
|
make -j$(nproc) build_libs
|
||||||
|
make install_dev
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
cd "${LIB_BUILD_DIR}/LibVNCServer-0.9.14"
|
||||||
|
rm -rf build
|
||||||
|
mkdir -p build && cd build
|
||||||
|
cmake -S .. -B . \
|
||||||
|
-DWITH_THREADS=OFF \
|
||||||
|
-DWITH_TESTS=OFF \
|
||||||
|
-DWITH_EXAMPLES=OFF \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DOPENSSL_ROOT_DIR="${SYSROOT_USR_DIR}" \
|
||||||
|
-DOPENSSL_LIBRARIES="${SYSROOT_USR_DIR}/lib/libssl.so;${SYSROOT_USR_DIR}/lib/libcrypto.so" \
|
||||||
|
-DOPENSSL_INCLUDE_DIR="${SYSROOT_USR_DIR}/include" \
|
||||||
|
-DCMAKE_FIND_ROOT_PATH="${SYSROOT_DIR}" \
|
||||||
|
-DCMAKE_SYSROOT="${SYSROOT_DIR}" \
|
||||||
|
-DCMAKE_STAGING_PREFIX="${SYSROOT_USR_DIR}"
|
||||||
|
|
||||||
|
make -j${nproc}
|
||||||
|
make install
|
||||||
@@ -183,6 +183,12 @@ make -j$(nproc)
|
|||||||
make install
|
make install
|
||||||
cd "${TOP}"
|
cd "${TOP}"
|
||||||
|
|
||||||
|
# ==================================================================
|
||||||
|
# Установка библиотек
|
||||||
|
# ==================================================================
|
||||||
|
|
||||||
|
. ./build_libraries.sh
|
||||||
|
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
# Strip и упаковка
|
# Strip и упаковка
|
||||||
# ==================================================================
|
# ==================================================================
|
||||||
|
|||||||
6
env.sh
6
env.sh
@@ -15,11 +15,12 @@ if [ ! -d "$TOOLCHAIN_PATH" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PREFIX="${TOOLCHAIN_ROOT}/sysroot/usr"
|
SYSROOT="${TOOLCHAIN_ROOT}/sysroot"
|
||||||
|
PREFIX="${SYSROOT}/usr"
|
||||||
|
|
||||||
# Флаги тулчейна
|
# Флаги тулчейна
|
||||||
CFLAGS_TOOLSET='-O2'
|
CFLAGS_TOOLSET='-O2'
|
||||||
ARFLAGS_TARGET=""
|
ARFLAGS_TARGET="${2:-}"
|
||||||
CFLAGS_TARGET='-Os -mthumb'
|
CFLAGS_TARGET='-Os -mthumb'
|
||||||
CXXFLAGS_TARGET=$CFLAGS_TARGET
|
CXXFLAGS_TARGET=$CFLAGS_TARGET
|
||||||
LDFLAGS_TARGET='-Wl,--fdpic'
|
LDFLAGS_TARGET='-Wl,--fdpic'
|
||||||
@@ -41,6 +42,7 @@ OBJDUMP="${TOOLCHAIN_PATH}/${TOOLCHAIN}-objdump"
|
|||||||
PATH="${TOOLCHAIN_PATH}:${PATH}"
|
PATH="${TOOLCHAIN_PATH}:${PATH}"
|
||||||
|
|
||||||
# Экспорт
|
# Экспорт
|
||||||
|
export SYSROOT
|
||||||
export PREFIX
|
export PREFIX
|
||||||
export TARGET
|
export TARGET
|
||||||
export TOOLCHAIN
|
export TOOLCHAIN
|
||||||
|
|||||||
Reference in New Issue
Block a user