|
|
|
@ -1,9 +1,25 @@ |
|
|
|
#!/bin/sh |
|
|
|
#!/bin/sh |
|
|
|
#pkg install -y autoconf openssl |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mkdir -p m4 |
|
|
|
|
|
|
|
set -e |
|
|
|
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 ===" |
|
|
|
echo "=== Полная пересборка uTun ===" |
|
|
|
|
|
|
|
|
|
|
|
# 1. Очистка |
|
|
|
# 1. Очистка |
|
|
|
@ -12,18 +28,33 @@ make distclean 2>/dev/null || true |
|
|
|
rm -f config.h config.status config.log |
|
|
|
rm -f config.h config.status config.log |
|
|
|
rm -f configure.log autoreconf.log build.log |
|
|
|
rm -f configure.log autoreconf.log build.log |
|
|
|
|
|
|
|
|
|
|
|
# 2. Автогенерация (autoreconf) |
|
|
|
# 2. Генерация configure |
|
|
|
echo "[2/4] Автогенерация (autoreconf -fi)..." |
|
|
|
echo "[2/4] Автогенерация..." |
|
|
|
autoreconf -fi 2>&1 | tee autoreconf.log |
|
|
|
autoreconf -fi 2>&1 | tee autoreconf.log |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Проверяем, появился ли configure |
|
|
|
|
|
|
|
if [ ! -f configure ]; then |
|
|
|
|
|
|
|
echo "Ошибка: autoreconf не создал configure." |
|
|
|
|
|
|
|
exit 1 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chmod +x configure |
|
|
|
|
|
|
|
|
|
|
|
# 3. Конфигурация |
|
|
|
# 3. Конфигурация |
|
|
|
echo "[3/4] Конфигурация..." |
|
|
|
echo "[3/4] Конфигурация..." |
|
|
|
./configure --prefix=/usr/local 2>&1 | tee configure.log |
|
|
|
./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. Сборка |
|
|
|
# 4. Сборка |
|
|
|
echo "[4/4] Сборка..." |
|
|
|
echo "[4/4] Сборка..." |
|
|
|
make -j$(nproc) 2>&1 | tee build.log |
|
|
|
make -j"$JOBS" 2>&1 | tee build.log |
|
|
|
|
|
|
|
|
|
|
|
echo "" |
|
|
|
echo |
|
|
|
echo "=== Готово ===" |
|
|
|
echo "=== Готово ===" |
|
|
|
echo "Бинарный файл: src/utun" |
|
|
|
echo "Бинарный файл: src/utun" |
|
|
|
|