#!/bin/sh set -e # Проверка и установка зависимостей need_install="" for cmd in autoreconf aclocal automake libtoolize; do if ! command -v "$cmd" >/dev/null 2>&1; then need_install=1 break fi done if [ -n "$need_install" ]; then echo "Устанавливаются необходимые пакеты..." pkg update pkg install -y autoconf automake libtool pkgconf openssl fi mkdir -p m4 echo "=== Полная пересборка uTun ===" # 1. Очистка echo "[1/4] Очистка..." make distclean 2>/dev/null || true rm -f config.h config.status config.log rm -f configure.log autoreconf.log build.log # 2. Генерация configure echo "[2/4] Автогенерация..." autoreconf -fi 2>&1 | tee autoreconf.log # Проверяем, появился ли configure if [ ! -f configure ]; then echo "Ошибка: autoreconf не создал configure." exit 1 fi chmod +x configure # 3. Конфигурация echo "[3/4] Конфигурация..." ./configure --prefix=/usr/local 2>&1 | tee configure.log # Определяем количество ядер if command -v nproc >/dev/null 2>&1; then JOBS=$(nproc) else JOBS=$(sysctl -n hw.ncpu) fi # 4. Сборка echo "[4/4] Сборка..." make -j"$JOBS" 2>&1 | tee build.log echo echo "=== Готово ===" echo "Бинарный файл: src/utun"