#!/bin/bash # Slackware build script for game-devices-udev # Copyright 2024-2026 Jeremy Hansen # 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. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=game-devices-udev VERSION=${VERSION:-1.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} ARCH=noarch if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} 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 {} \; # Allow disabling individual rules, but default to enabled if [ "${_8BITDO:-YES}" == "NO" ]; then _8BITDO='-D8bitdo=false'; else _8BITDO=""; fi if [ "${ALPHA:-YES}" == "NO" ]; then ALPHA='-Dalpha_imaging_technology=false'; else ALPHA=""; fi if [ "${ASTRO:-YES}" == "NO" ]; then ASTRO='-Dastro_gaming=false'; else ASTRO=""; fi if [ "${BETOP:-YES}" == "NO" ]; then BETOP='-Dbetop=false'; else BETOP=""; fi if [ "${BIGSCREEN:-YES}" == "NO" ]; then BIGSCREEN='-Dbigscreen=false'; else BIGSCREEN=""; fi if [ "${CYPRESS:-YES}" == "NO" ]; then CYPRESS='-Dcypress_semiconductor_corp=false'; else CYPRESS=""; fi if [ "${GOOGLE:-YES}" == "NO" ]; then GOOGLE='-Dgoogle=false'; else GOOGLE=""; fi if [ "${HORI:-YES}" == "NO" ]; then HORI='-Dhori=false'; else HORI=""; fi if [ "${HTC:-YES}" == "NO" ]; then HTC='-Dhtc=false'; else HTC=""; fi if [ "${LOGITECH:-YES}" == "NO" ]; then LOGITECH='-Dlogitech=false'; else LOGITECH=""; fi if [ "${MADCATZ:-YES}" == "NO" ]; then MADCATZ='-Dmad_catz=false'; else MADCATZ=""; fi if [ "${MICROSOFT:-YES}" == "NO" ]; then MICROSOFT='-Dmicrosoft=false'; else MICROSOFT=""; fi if [ "${NACON:-YES}" == "NO" ]; then NACON='-Dnacon=false'; else NACON=""; fi if [ "${NINTENDO:-YES}" == "NO" ]; then NINTENDO='-Dnintendo=false'; else NINTENDO=""; fi if [ "${NVIDIA:-YES}" == "NO" ]; then NVIDIA='-Dnvidia=false'; else NVIDIA=""; fi if [ "${PDP:-YES}" == "NO" ]; then PDP='-Dpdp=false'; else PDP=""; fi if [ "${PERSONALCOMM:-YES}" == "NO" ]; then PERSONALCOMM='-Dpersonal_communication_systems_inc=false'; else PERSONALCOMM=""; fi if [ "${PIDCODES:-YES}" == "NO" ]; then PIDCODES='-Dpid_codes=false'; else PIDCODES=""; fi if [ "${POWERA:-YES}" == "NO" ]; then POWERA='-Dpowera=false'; else POWERA=""; fi if [ "${RASPBERRYPI:-YES}" == "NO" ]; then RASPBERRYPI='-Draspberry_pi_ltd=false'; else RASPBERRYPI=""; fi if [ "${RAZER:-YES}" == "NO" ]; then RAZER='-Drazer=false'; else RAZER=""; fi if [ "${SONY:-YES}" == "NO" ]; then SONY='-Dsony=false'; else SONY=""; fi if [ "${THRUSTMASTER:-YES}" == "NO" ]; then THRUSTMASTER='-Dthrustmaster=false'; else THRUSTMASTER=""; fi if [ "${UINPUT:-YES}" == "NO" ]; then UINPUT='-Duinput_dev_early_creation=false'; else UINPUT=""; fi if [ "${VALVE:-YES}" == "NO" ]; then VALVE='-Dvalve=false'; else VALVE=""; fi if [ "${VKBSIM:-YES}" == "NO" ]; then VKBSIM='-Dvkb_sim=false'; else VKBSIM=""; fi if [ "${ZEROPLUS:-YES}" == "NO" ]; then ZEROPLUS='-Dzeroplus_technology_corporation=false'; else ZEROPLUS=""; fi mkdir build cd build CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ meson setup .. \ --buildtype=release \ --infodir=/usr/info \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --localstatedir=/var \ --mandir=/usr/man \ --prefix=/usr \ --sysconfdir=/etc \ -Dstrip=true \ $_8BITDO \ $ALPHA \ $ASTRO \ $BETOP \ $BIGSCREEN \ $CYPRESS \ $GOOGLE \ $HORI \ $HTC \ $LOGITECH \ $MADCATZ \ $MICROSOFT \ $NACON \ $NINTENDO \ $NVIDIA \ $PDP \ $PERSONALCOMM \ $PIDCODES \ $POWERA \ $RASPBERRYPI \ $RAZER \ $SONY \ $THRUSTMASTER \ $UINPUT \ $VALVE \ $VKBSIM \ $ZEROPLUS "${NINJA:=ninja}" DESTDIR=$PKG $NINJA install cd .. mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a \ LICENSE README.md \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild cat $CWD/README.devices > $PKG/usr/doc/$PRGNAM-$VERSION/README.devices mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE