wine_build/wine_build.sh

76 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
if [ -z $1 ]; then
echo "You had to input Wine version."
exit 0
fi
# The directory where wine compiles
WORKDIR="/home/rinaldus/Мастерская/wine"
# Number of CPU cores +1 (e.g, if you have 8 cores CPU, you have to set -j9)
MAKEOPTS="-j9"
# You can change wine build flags if you need
BUILD_FLAGS="--with-x --without-gstreamer"
#do not modify these variables
WINE_NAME="wine-$1"
ARCHIVE_NAME="wine-$1.tar.xz"
BRANCH_VERSION="`echo $1 | awk 'BEGIN {FS="."}{print $1".x"}' | awk 'BEGIN {FS="-"}{print $1}'`"
SRC_URL="https://dl.winehq.org/wine/source/$BRANCH_VERSION/$ARCHIVE_NAME"
# Delete all necessary directories if they are already exist
rm -rf "$WORKDIR/src/$WINE_NAME"
rm -rf "$WORKDIR/build/$WINE_NAME"
rm -rf "$WORKDIR/install/$WINE_NAME"
# Create necessary directories
mkdir -p "$WORKDIR/src"
mkdir -p "$WORKDIR/build/$WINE_NAME/wine64"
mkdir -p "$WORKDIR/build/$WINE_NAME/wine32"
mkdir -p "$WORKDIR/install"
echo "Which version of Wine we are going to build?"
echo "1. Staging (Wine + several useful patches)"
echo "2. Vanilla (original version)"
echo "Choose one variant (1 or 2)"
read KEYPRESS
case $KEYPRESS in
"1" )
STAGING_NAME="wine-staging-$1"
STAGING_ARCHIVE_NAME="v$1.tar.gz"
BUILD_NAME=$STAGING_NAME
STAGING_SRC_URL="https://github.com/wine-staging/wine-staging/archive/$STAGING_ARCHIVE_NAME"
cd "$WORKDIR/src"
wget "$SRC_URL"
tar xvJf $ARCHIVE_NAME
wget "$STAGING_SRC_URL"
tar xvf $STAGING_ARCHIVE_NAME
"$WORKDIR/src/$STAGING_NAME/patches/patchinstall.sh" DESTDIR="$WORKDIR/src/$WINE_NAME" --all
;;
"2" )
BUILD_NAME=$WINE_NAME
cd "$WORKDIR/src"
wget "$SRC_URL"
tar xvJf $ARCHIVE_NAME
;;
esac
# Configure and build Wine64
cd "$WORKDIR/build/$WINE_NAME/wine64"
"$WORKDIR/src/$WINE_NAME/configure" $BULD_FLAGS --enable-win64 --prefix="$WORKDIR/install/$BUILD_NAME" && make depend && make $MAKEOPTS && make install
# Configure and build Wine32
cd "$WORKDIR/build/$WINE_NAME/wine32"
"$WORKDIR/src/$WINE_NAME/configure" $BUILD_FLAGS --prefix="$WORKDIR/install/$BUILD_NAME" --with-wine64=../wine64 && make depend && make $MAKEOPTS && make install
# Pack installed Wine to archive
cd "$WORKDIR/install"
tar -zcvf $BUILD_NAME.tar.gz $BUILD_NAME
# Cleaning
rm -rf "$WORKDIR/src"
rm -rf "$WORKDIR/build"
rm -rf "$WORKDIR/install/$BUILD_NAME"