From 162b60a05bea84a10d51e054df3a03a527b851f4 Mon Sep 17 00:00:00 2001 From: r4sas Date: Sun, 22 Jan 2017 10:53:53 +0300 Subject: [PATCH] Added script - builder for mingw. --- contrib/build_mingw.sh | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 contrib/build_mingw.sh diff --git a/contrib/build_mingw.sh b/contrib/build_mingw.sh new file mode 100644 index 00000000..564c8a79 --- /dev/null +++ b/contrib/build_mingw.sh @@ -0,0 +1,77 @@ +#!/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) + +echo "Собираем i2pd ${version} (коммит ${commit}) для ${arch}."; + +# Собираем приложение с разными параметрами, и архивируем в zip архивы. +make USE_UPNP=yes USE_AVX=1 USE_AESNI=1 -j $NUMBER_OF_PROCESSORS > ${contrib}/build_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 +make clean >> /dev/null + +make USE_UPNP=yes USE_AVX=1 -j $NUMBER_OF_PROCESSORS > ${contrib}/build_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 +make clean >> /dev/null + +make USE_UPNP=yes USE_AESNI=1 -j $NUMBER_OF_PROCESSORS > ${contrib}/build_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 +make clean >> /dev/null + +make USE_UPNP=yes -j $NUMBER_OF_PROCESSORS > ${contrib}/build.log 2>&1 +if [ "$?" != 0 ]; then + echo "Сборка не удалась. Смотрите в build.log"; + exit 1; +fi; +zip -9 ${contrib}/i2pd_${version}_${commit}_${arch}_mingw.zip i2pd.exe +make clean >> /dev/null + +echo "Сборка i2pd ${version} для ${arch} завершена."; +exit 0;