You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							120 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							120 lines
						
					
					
						
							3.9 KiB
						
					
					
				| #!/bin/bash | |
|  | |
| # Slackware build script for dosbox-x | |
| 
 | |
| # Copyright 2019-2020 Leonardo Citrolo, Italy | |
| # Copyright 2023 Yth | Pont-en-Royans, France | yth@ythogtha.org | |
| # 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=dosbox-x | |
| VERSION=${VERSION:-2025.05.03} | |
| BUILD=${BUILD:-1} | |
| TAG=${TAG:-_SBo} | |
| PKGTYPE=${PKGTYPE:-tgz} | |
| 
 | |
| if [ -z "$ARCH" ]; then | |
|   case "$( uname -m )" in | |
|     i?86) ARCH=i586 ;; | |
|     arm*) ARCH=arm ;; | |
|        *) ARCH=$( uname -m ) ;; | |
|   esac | |
| fi | |
| 
 | |
| # If the variable PRINT_PACKAGE_NAME is set, then this script will report what | |
| # the name of the created package would be, and then exit. This information | |
| # could be useful to other scripts. | |
| 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} | |
| 
 | |
| if [ "$ARCH" = "i586" ]; then | |
|   SLKCFLAGS="-O2 -march=i586 -mtune=i686" | |
|   LIBDIRSUFFIX="" | |
| elif [ "$ARCH" = "i686" ]; then | |
|   SLKCFLAGS="-O2 -march=i686 -mtune=i686" | |
|   LIBDIRSUFFIX="" | |
| elif [ "$ARCH" = "x86_64" ]; then | |
|   SLKCFLAGS="-O2 -fPIC" | |
|   LIBDIRSUFFIX="64" | |
| elif [ "$ARCH" = "aarch64" ]; then | |
|   SLKCFLAGS="-O2 -fPIC" | |
|   LIBDIRSUFFIX="64" | |
| else | |
|   SLKCFLAGS="-O2" | |
|   LIBDIRSUFFIX="" | |
| fi | |
| 
 | |
| set -e | |
| 
 | |
| rm -rf $PKG | |
| mkdir -p $TMP $PKG $OUTPUT | |
| cd $TMP | |
| # handle duplicated $PRGNAM, which may appear (due to upstream mistake, I guess) | |
| # in the sources tarball filename and/or main dirname | |
| rm -rf $PRGNAM-v$VERSION $PRGNAM-$PRGNAM-v$VERSION | |
| tar xvf $CWD/$PRGNAM-v$VERSION.tar.gz || tar xvf $CWD/$PRGNAM-$PRGNAM-v$VERSION.tar.gz | |
| cd $PRGNAM-v$VERSION 2>/dev/null || cd $PRGNAM-$PRGNAM-v$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 {} \; | |
| 
 | |
| # Don't force make -j3 | |
| sed -i 's#make -j3#make#' build-sdl2 | |
| CFLAGS="$SLKCFLAGS" \ | |
| CXXFLAGS="$SLKCFLAGS" \ | |
| ./build-sdl2 \ | |
|   --prefix=/usr \ | |
|   --mandir=/usr/man \ | |
|   --build=$ARCH-slackware-linux \ | |
|   --enable-sdl2 \ | |
|   --enable-d3d9 \ | |
|   --enable-d3d-shaders \ | |
|   --enable-avcodec | |
| 
 | |
| 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 | |
| 
 | |
| find $PKG/usr/man -type f -exec gzip -9 {} \; | |
| for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done | |
| 
 | |
| mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION | |
| cp -a AUTHORS CHANGELOG CODE_OF_CONDUCT.md CONTRIBUTING.md COPYING \ | |
|   CREDITS.md INSTALL.md NEWS README* THANKS \ | |
|   $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 | |
| cat $CWD/doinst.sh > $PKG/install/doinst.sh | |
| 
 | |
| cd $PKG | |
| /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
 |