mirror of https://github.com/PurpleI2P/i2pd.git
R4SAS
8 years ago
3 changed files with 62 additions and 113 deletions
@ -0,0 +1,62 @@
@@ -0,0 +1,62 @@
|
||||
@echo off |
||||
setlocal enableextensions enabledelayedexpansion |
||||
title Building i2pd |
||||
|
||||
REM Copyright (c) 2013-2017, The PurpleI2P Project |
||||
REM This file is part of Purple i2pd project and licensed under BSD3 |
||||
REM See full license text in LICENSE file at top of project tree |
||||
|
||||
REM To use that script, you must have installed in your MSYS installation theese packages: |
||||
REM Base: git make zip |
||||
REM x86_64: mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-gcc |
||||
REM i686: mingw-w64-i686-boost mingw-w64-i686-openssl mingw-w64-i686-gcc |
||||
|
||||
REM setting up variables for MSYS |
||||
REM Note: if you installed MSYS64 to different path, edit WD variable (only C:\msys64 needed to edit)! |
||||
set "WD=C:\msys64\usr\bin\" |
||||
set MSYS2_PATH_TYPE=inherit |
||||
set CHERE_INVOKING=enabled_from_arguments |
||||
set MSYSTEM=MSYS |
||||
|
||||
REM detecting number of processors and subtract 1. |
||||
set /a threads=%NUMBER_OF_PROCESSORS%-1 |
||||
|
||||
REM we must work in root of repo |
||||
cd .. |
||||
|
||||
echo Receiving latest commit and cleaning up... |
||||
"%WD%bash" -lc "git pull && make clean" > build/build_git.log 2>&1 |
||||
echo. |
||||
|
||||
REM set to variable current commit hash |
||||
FOR /F "usebackq" %%a IN (`%WD%bash -lc 'git describe --tags'`) DO ( |
||||
set tag=%%a |
||||
) |
||||
|
||||
REM starting building |
||||
set MSYSTEM=MINGW32 |
||||
set bitness=32 |
||||
call :BUILDING |
||||
echo. |
||||
|
||||
set MSYSTEM=MINGW64 |
||||
set bitness=64 |
||||
call :BUILDING |
||||
echo. |
||||
|
||||
echo Build complete... |
||||
pause |
||||
exit /b 0 |
||||
|
||||
:BUILDING |
||||
echo Building i2pd %tag% for win%bitness%: |
||||
echo Build AVX+AESNI... |
||||
"%WD%bash" -lc "make USE_UPNP=yes USE_AVX=1 USE_AESNI=1 -j%threads% && zip -9 build/i2pd_%tag%_win%bitness%_mingw_avx_aesni.zip i2pd.exe && make clean" > build/build_win%bitness%_avx_aesni.log 2>&1 |
||||
echo Build AVX... |
||||
"%WD%bash" -lc "make USE_UPNP=yes USE_AVX=1 -j%threads% && zip -9 build/i2pd_%tag%_win%bitness%_mingw_avx.zip i2pd.exe && make clean" > build/build_win%bitness%_avx.log 2>&1 |
||||
echo Build AESNI... |
||||
"%WD%bash" -lc "make USE_UPNP=yes USE_AESNI=1 -j%threads% && zip -9 build/i2pd_%tag%_win%bitness%_mingw_aesni.zip i2pd.exe && make clean" > build/build_win%bitness%_aesni.log 2>&1 |
||||
echo Build without extensions... |
||||
"%WD%bash" -lc "make USE_UPNP=yes -j%threads% && zip -9 build/i2pd_%tag%_win%bitness%_mingw.zip i2pd.exe && make clean" > build/build_win%bitness%.log 2>&1 |
||||
|
||||
:EOF |
@ -1,25 +0,0 @@
@@ -1,25 +0,0 @@
|
||||
@echo off |
||||
setlocal |
||||
|
||||
title Building i2pd |
||||
|
||||
set "WD=C:\msys64\usr\bin\" |
||||
set MSYS2_PATH_TYPE=inherit |
||||
set CHERE_INVOKING=enabled_from_arguments |
||||
set MSYSCON= |
||||
|
||||
echo Building i2pd for win32. Press Enter after the end of compilation... |
||||
set MSYSTEM=MINGW32 |
||||
set CONTITLE=MinGW x32 |
||||
start "%CONTITLE%" /WAIT "%WD%bash" --login build_mingw.sh |
||||
pause > nul |
||||
|
||||
echo Building i2pd for win64. Press Enter after the end of compilation... |
||||
set MSYSTEM=MINGW64 |
||||
set CONTITLE=MinGW x64 |
||||
start "%CONTITLE%" /WAIT "%WD%bash" --login build_mingw.sh |
||||
pause > nul |
||||
|
||||
echo Build complete... |
||||
pause |
||||
exit /b 0 |
@ -1,88 +0,0 @@
@@ -1,88 +0,0 @@
|
||||
#!/bin/sh |
||||
|
||||
# Определяем архитектуру. |
||||
if [ $MSYSTEM == MINGW64 ]; then |
||||
export arch="win64" |
||||
elif [ $MSYSTEM == MINGW32 ]; then |
||||
export arch="win32" |
||||
else |
||||
echo "Не могу понять, какая у вас архитектура, используемая для сборки."; |
||||
echo "Вы точно запустили скрипт в оболочке MSYS2 MinGW [64/32]-bit ?"; |
||||
echo "Обычно её можно запустить выполнив c:\msys64\mingw64.exe или c:\msys64\mingw32.exe"; |
||||
exit 1; |
||||
fi; |
||||
|
||||
# Задаём переменной contrib текущий путь и переходим на уровень выше. |
||||
export contrib=$PWD |
||||
cd .. |
||||
|
||||
# Очистка от предыдущей сборки (на всякий случай =) ). |
||||
make clean >> /dev/null |
||||
|
||||
# Обновляем репозиторий, и получаем хеш последнего коммита. |
||||
echo "Получаем обновления из репозитория."; |
||||
git pull |
||||
if [ "$?" != 0 ]; then |
||||
echo "Не удалось обновить локальный репозиторий."; |
||||
echo "Вы точно запустили скрипт в папке репозитория?"; |
||||
exit 1; |
||||
fi; |
||||
|
||||
export commit=$(git rev-parse --verify HEAD | cut -c -7) |
||||
if [ -z commit ]; then |
||||
echo "Не удалось получить хеш последнего коммита."; |
||||
echo "Вы точно запустили скрипт в папке репозитория?"; |
||||
exit 1; |
||||
fi; |
||||
|
||||
# Получаем версию приложения |
||||
export version=$(grep -E "I2PD_VERSION_(MAJOR|MINOR|MICRO)\ " version.h | grep -oE '[^ ]+$' | tr '\n' '.'|head -c -1) |
||||
|
||||
# Получаем количество ядер, и уменьшаем количество потоков на 1 от количества ядер (если их больше чем 1). |
||||
if [ $NUMBER_OF_PROCESSORS -ge 2 ]; then |
||||
export threads=$(( $NUMBER_OF_PROCESSORS - 1 )) |
||||
else |
||||
export threads=$NUMBER_OF_PROCESSORS |
||||
fi; |
||||
|
||||
echo "Собираем i2pd ${version} (коммит ${commit}) для ${arch}."; |
||||
|
||||
# Собираем приложение с разными параметрами, и архивируем в zip архивы. |
||||
echo "Сборка AVX+AESNI"; |
||||
make USE_UPNP=yes USE_AVX=1 USE_AESNI=1 -j ${threads} > ${contrib}/build_${arch}_avx_aesni.log 2>&1 |
||||
if [ "$?" != 0 ]; then |
||||
echo "Сборка не удалась. Смотрите в build_avx_aesni.log"; |
||||
exit 1; |
||||
fi; |
||||
zip -9 ${contrib}/i2pd_${version}_${commit}_${arch}_mingw_avx_aesni.zip i2pd.exe >> /dev/null |
||||
make clean >> /dev/null |
||||
|
||||
echo "Сборка AVX"; |
||||
make USE_UPNP=yes USE_AVX=1 -j ${threads} > ${contrib}/build_${arch}_avx.log 2>&1 |
||||
if [ "$?" != 0 ]; then |
||||
echo "Сборка не удалась. Смотрите в build_avx.log."; |
||||
exit 1; |
||||
fi; |
||||
zip -9 ${contrib}/i2pd_${version}_${commit}_${arch}_mingw_avx.zip i2pd.exe >> /dev/null |
||||
make clean >> /dev/null |
||||
|
||||
echo "Сборка AESNI"; |
||||
make USE_UPNP=yes USE_AESNI=1 -j ${threads} > ${contrib}/build_${arch}_aesni.log 2>&1 |
||||
if [ "$?" != 0 ]; then |
||||
echo "Сборка не удалась. Смотрите в build_aesni.log"; |
||||
exit 1; |
||||
fi; |
||||
zip -9 ${contrib}/i2pd_${version}_${commit}_${arch}_mingw_aesni.zip i2pd.exe >> /dev/null |
||||
make clean >> /dev/null |
||||
|
||||
echo "Сборка без дополнительных инструкций"; |
||||
make USE_UPNP=yes -j ${threads} > ${contrib}/build_${arch}.log 2>&1 |
||||
if [ "$?" != 0 ]; then |
||||
echo "Сборка не удалась. Смотрите в build.log"; |
||||
exit 1; |
||||
fi; |
||||
zip -9 ${contrib}/i2pd_${version}_${commit}_${arch}_mingw.zip i2pd.exe >> /dev/null |
||||
make clean >> /dev/null |
||||
|
||||
echo "Сборка i2pd ${version} для ${arch} завершена."; |
||||
exit 0; |
Loading…
Reference in new issue