mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-29 13:00:32 +01:00
05efdf7963
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
208 lines
5.6 KiB
Bash
208 lines
5.6 KiB
Bash
#!/bin/sh
|
|
|
|
# Slackware build script for Bochs
|
|
# Copyright 2012, 2013, 2014, 2015 Bojan Popovic, Belgrade, Serbia
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use of this script, with or without modification, is
|
|
# permitted provided that the following conditions are met:
|
|
#
|
|
# 1. Redistributions of this script must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
# Modified by the slackbuilds.org project
|
|
|
|
# ChangeLog:
|
|
#
|
|
# * 2014-01-29:
|
|
# New upstream version (2.6.2). Solved the problem with dynamic
|
|
# linking on x86_64.
|
|
# * 2015-08-03:
|
|
# New upstream version (2.6.8). You can now override most of the
|
|
# configure options on the command line.
|
|
|
|
PRGNAM=bochs
|
|
VERSION=${VERSION:-2.6.8}
|
|
BUILD=${BUILD:-1}
|
|
TAG=${TAG:-_SBo}
|
|
|
|
if [ -z "$ARCH" ]; then
|
|
case "$( uname -m )" in
|
|
i?86) ARCH=i486 ;;
|
|
arm*) ARCH=arm ;;
|
|
*) ARCH=$( uname -m ) ;;
|
|
esac
|
|
fi
|
|
|
|
# Fine tuning Bochs features (without experimental features)
|
|
IDLE_HACK=${IDLE_HACK:-no} # Supposedly works only with X11 and term gui
|
|
PLUGINS=${PLUGINS:-yes}
|
|
A20_PIN=${A20_PIN:-yes}
|
|
x86_64=${x86_64:-yes}
|
|
SMP=${SMP:-yes}
|
|
CPU_LEVEL=${CPU_LEVEL:-6} # (3/4/5/6)
|
|
DEBUGGER=${DEBUGGER:-no}
|
|
DISASM=${DISASM:-no}
|
|
GDB_STUB=${GDB_STUB:-no}
|
|
IODEBUG=${IODEBUG:-no}
|
|
READLINE=${READLINE:-yes}
|
|
LOGGING=${LOGGING:-yes}
|
|
STATS=${STATS:-yes}
|
|
FPU=${FPU:-yes}
|
|
VMX=${VMX:-no} # (no/1/2)
|
|
SVM=${SVM:-no}
|
|
AVX=${AVX:-no}
|
|
EVEX=${EVEX:-no}
|
|
PCI=${PCI:-yes}
|
|
USB=${USB:-yes}
|
|
USB_OHCI=${USB_OHCI:-yes}
|
|
USB_XHCI=${USB_XHCI:-yes}
|
|
NE2K=${NE2K:-yes}
|
|
PNIC=${PNIC:-yes}
|
|
E1K=${E1K:-yes}
|
|
CIRRUS=${CIRRUS:-yes}
|
|
VOODOO=${VOODOO:-yes}
|
|
CDROM=${CDROM:-yes}
|
|
SB16=${SB16:-yes}
|
|
ES1370=${ES1370:-yes}
|
|
GAMEPORT=${GAMEPORT:-yes}
|
|
BUSMOUSE=${BUSMOUSE:-yes}
|
|
|
|
# Frontend interfaces
|
|
TERM=${TERM:-yes}
|
|
RFB=${RFB:-yes}
|
|
VNCSRV=${VNCSRV:-yes}
|
|
X11=${X11:-yes}
|
|
WX=${WX:-no}
|
|
SDL=${SDL:-yes}
|
|
SDL2=${SDL2:-no} # Note: buggy on my machine.
|
|
|
|
# SDL and SDL2 interfaces are mutually exclusive. SDL interface seems to be
|
|
# more stable, so default to SDL.
|
|
if [ "$SDL" = "yes" -a "$SDL2" = "yes" ]; then
|
|
echo "Warning: You can't enable both SDL and SDL2. Defaulting to SDL."
|
|
SDL2=no
|
|
fi
|
|
|
|
CWD=$(pwd)
|
|
TMP=${TMP:-/tmp/SBo}
|
|
PKG=$TMP/package-$PRGNAM
|
|
OUTPUT=${OUTPUT:-/tmp}
|
|
|
|
DOCS="CHANGES COPYING PARAM_TREE.txt README* TESTFORM.txt TODO"
|
|
|
|
if [ "$ARCH" = "i486" ]; then
|
|
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
|
LIBDIRSUFFIX=""
|
|
elif [ "$ARCH" = "i686" ]; then
|
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
|
LIBDIRSUFFIX=""
|
|
elif [ "$ARCH" = "x86_64" ]; then
|
|
SLKCFLAGS="-O2 -fPIC"
|
|
LIBDIRSUFFIX="64"
|
|
else
|
|
SLKCFLAGS="-O2"
|
|
LIBDIRSUFFIX=""
|
|
fi
|
|
|
|
set -e
|
|
|
|
rm -rf $PKG
|
|
mkdir -p $TMP $PKG $OUTPUT
|
|
cd $TMP
|
|
rm -rf $PRGNAM-$VERSION
|
|
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
|
cd $PRGNAM-$VERSION
|
|
chown -R root:root .
|
|
find -L . \
|
|
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
|
-o -perm 511 \) -exec chmod 755 {} \; -o \
|
|
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
|
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
|
|
|
# We need this on x86_64 to fix a libtldl problem
|
|
libtoolize -c
|
|
rm -rf libltdl
|
|
aclocal
|
|
autoconf
|
|
|
|
CFLAGS="$SLKCFLAGS" \
|
|
CXXFLAGS="$SLKCFLAGS" \
|
|
./configure \
|
|
--prefix=/usr \
|
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
|
--sysconfdir=/etc \
|
|
--localstatedir=/var \
|
|
--mandir=/usr/man \
|
|
--enable-idle-hack=${IDLE_HACK} \
|
|
--enable-plugins=${PLUGINS} \
|
|
--enable-a20-pin=${A20_PIN} \
|
|
--enable-x86_64=${x86_64} \
|
|
--enable-smp=${SMP} \
|
|
--enable-cpu-level=${CPU_LEVEL} \
|
|
--enable-debugger=${DEBUGGER} \
|
|
--enable-disasm=${DISASM} \
|
|
--enable-gdb-stub=${GDB_STUB} \
|
|
--enable-iodebug=${IODEBUG} \
|
|
--enable-readline=${READLINE} \
|
|
--enable-logging=${LOGGING} \
|
|
--enable-stats=${STATS} \
|
|
--enable-fpu=${FPU} \
|
|
--enable-vmx=${VMX} \
|
|
--enable-svm=${SVM} \
|
|
--enable-avx=${AVX} \
|
|
--enable-evex=${EVE} \
|
|
--enable-pci=${PCI} \
|
|
--enable-usb=${USB} \
|
|
--enable-usb-ohci=${USB_OHCI} \
|
|
--enable-usb-xhci=${USB_XHCI} \
|
|
--enable-ne2000=${NE2K} \
|
|
--enable-pnic=${PNIC} \
|
|
--enable-e1000=${E1K} \
|
|
--enable-clgd54xx=${CIRRUS} \
|
|
--enable-voodoo=${VOODOO} \
|
|
--enable-cdrom=${CDROM} \
|
|
--enable-sb16=${SB16} \
|
|
--enable-es1370=${ES1370} \
|
|
--enable-gameport=${GAMEPORT} \
|
|
--enable-busmouse=${BUSMOUSE} \
|
|
--with-term=${TERM} \
|
|
--with-rfb=${RFB} \
|
|
--with-vncsrv=${VNCSRV} \
|
|
--with-sdl=${SDL} \
|
|
--with-sdl2=${SDL2} \
|
|
--with-x11=${X11} \
|
|
--with-wx=${WX} \
|
|
--build=$ARCH-slackware-linux
|
|
|
|
|
|
|
|
make
|
|
make install DESTDIR=$PKG
|
|
|
|
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
|
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
|
|
|
# Move docs in the proper place
|
|
mkdir -p $PKG/usr/doc
|
|
mv $PKG/usr/share/doc/$PRGNAM $PKG/usr/doc/$PRGNAM-$VERSION
|
|
rmdir $PKG/usr/share/doc
|
|
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
|
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
|
|
|
mkdir -p $PKG/install
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
|
|
cd $PKG
|
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
|