bash

bash

bash

#!/bin/bash

if [ -z $1 ]; then

  echo "You had to input Wine version."

  exit 0

fi


WORKDIR="/usr/local/Workshop/Wine"

MAKEOPTS="-j3"

GCC_VERSION="gcc-4.9.3"


echo "Which version of Wine we are going to build?"

echo "1. Staging (Wine + several useful patches)"

echo "2. Vanilla (original version)"

echo "git. Latest development version from Git (vanilla only)"

echo "Choose one variant (1 or 2 or git)"

read KEYPRESS

case $KEYPRESS in

  "1" )

    NAME="wine-$1-staging"

    ORIGINAL_NAME="wine-patched-staging-$1"

ARCHIVE_NAME="staging-$1.tar.gz"

    SRC_URL="https://github.com/wine-compholio/wine-patched/archive/$ARCHIVE_NAME"

    TAR_KEYS="xvf"

  ;;

  "2" )

    ORIGINAL_NAME="wine-$1"

    NAME="wine-$1-vanilla"

    ARCHIVE_NAME="wine-$1.tar.bz2"

BRANCH_VERSION="`echo $1 | awk 'BEGIN {FS="."}{print $1"."$2}' | awk 'BEGIN {FS="-"}{print $1}'`"

    SRC_URL="https://dl.winehq.org/wine/source/$BRANCH_VERSION/$ARCHIVE_NAME"

    TAR_KEYS="xvjf"

  ;;

  "git" )

   ORIGINAL_NAME="wine-master"

NAME="wine-git"

ARCHIVE_NAME="master.tar.gz"

SRC_URL="https://github.com/wine-mirror/wine/archive/master.tar.gz"

TAR_KEYS="xvf"

  ;;

esac


# Create necessary directories

mkdir -p "$WORKDIR/src"

mkdir -p "$WORKDIR/build"

mkdir -p "$WORKDIR/install"


# Delete all necessary directories if they are already exist

rm -rf "$WORKDIR/src/$NAME"

rm -rf "$WORKDIR/build/$NAME"

rm -rf "$WORKDIR/install/$NAME"


# Create necessary directories

mkdir -p "$WORKDIR/build/$NAME/wine64"

mkdir -p "$WORKDIR/build/$NAME/wine32"

mkdir -p "$WORKDIR/install/$NAME"


# Download and unpack sources

cd "$WORKDIR/src"

wget "$SRC_URL"

tar $TAR_KEYS $ARCHIVE_NAME

mv "$WORKDIR/src/$ORIGINAL_NAME" "$WORKDIR/src/$NAME"


# Configure and build Wine64

cd "$WORKDIR/build/$NAME/wine64"

CC=$GCC_VERSION ../../../src/$NAME/configure --enable-win64 --with-x --prefix=$WORKDIR/install/$NAME && make depend && make $MAKEOPTS && make install


# Configure and build Wine32

cd "$WORKDIR/build/$NAME/wine32"

CC=$GCC_VERSION ../../../src/$NAME/configure --prefix=$WORKDIR/install/$NAME --with-wine64=../wine64 --with-x && make depend && make $MAKEOPTS && make install


# Pack installed Wine to archive

cd "$WORKDIR/install"

tar -zcvf $NAME.tar.gz $NAME


# Cleaning

rm -rf "$WORKDIR/src"

rm -rf "$WORKDIR/build"

rm -rf "$WORKDIR/install/$NAME"


Report Page