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.

129 lines
3.1 KiB

  1. #!/bin/bash
  2. # Slackware build script for puNES
  3. # Originally written by Hunter Sezen.
  4. # Modified and now maintained by B. Watson <urchlay@slackware.uk>.
  5. # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
  6. # 20240828 bkw:
  7. # - new maintainer.
  8. # - relicense as WTFPL.
  9. # - update for v0.111.
  10. # - expand README and slack-desc.
  11. # - include a man page.
  12. # - add CG=no and QT6=yes options, document in README.
  13. cd $(dirname $0) ; CWD=$(pwd)
  14. PRGNAM=puNES
  15. VERSION=${VERSION:-0.111}
  16. BUILD=${BUILD:-1}
  17. TAG=${TAG:-_SBo}
  18. PKGTYPE=${PKGTYPE:-tgz}
  19. if [ -z "$ARCH" ]; then
  20. case "$( uname -m )" in
  21. i?86) ARCH=i586 ;;
  22. arm*) ARCH=arm ;;
  23. *) ARCH=$( uname -m ) ;;
  24. esac
  25. fi
  26. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
  27. echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
  28. exit 0
  29. fi
  30. TMP=${TMP:-/tmp/SBo}
  31. PKG=$TMP/package-$PRGNAM
  32. OUTPUT=${OUTPUT:-/tmp}
  33. if [ "$ARCH" = "i586" ]; then
  34. SLKCFLAGS="-O2 -march=i586 -mtune=i686"
  35. elif [ "$ARCH" = "i686" ]; then
  36. SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  37. elif [ "$ARCH" = "x86_64" ]; then
  38. SLKCFLAGS="-O2 -fPIC"
  39. else
  40. SLKCFLAGS="-O2"
  41. fi
  42. set -e
  43. if [ -x /usr/bin/cgc -a "${CG:-yes}" = "yes" ]; then
  44. WITHCG=WITH
  45. CGOPT="-DENABLE_OPENGL_CG=ON"
  46. else
  47. WITHCG=without
  48. CGOPT=""
  49. fi
  50. # 20240829 bkw: Qt6 is supported, but the user has to ask for it
  51. # specifically. I don't see much difference in the UI either way.
  52. # This may break horribly any time qt6 is updated, and I don't much care.
  53. if [ -x /usr/bin/qmake-qt6 -a "${QT6:-no}" = "yes" ]; then
  54. QTVER=6
  55. QTOPT="-DENABLE_QT6_LIBS=ON"
  56. else
  57. QTVER=5
  58. QTOPT=""
  59. fi
  60. rm -rf $PKG
  61. mkdir -p $TMP $PKG $OUTPUT
  62. cd $TMP
  63. rm -rf $PRGNAM-$VERSION
  64. tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
  65. cd $PRGNAM-$VERSION
  66. chown -R root:root .
  67. find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
  68. \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
  69. # 20240828 bkw: make .desktop file validate properly.
  70. sed -i -e '/^Encoding/d' \
  71. -e '/^Comment/d' \
  72. misc/*.desktop.in
  73. # 20240828 bkw: upstream switched from autocrap to cmake.
  74. mkdir -p build
  75. cd build
  76. cmake \
  77. $CGOPT \
  78. $QTOPT \
  79. -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
  80. -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
  81. -DCMAKE_INSTALL_PREFIX=/usr \
  82. -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \
  83. -DCMAKE_INSTALL_BINDIR=/usr/games \
  84. -DCMAKE_BUILD_TYPE=Release ..
  85. make
  86. make install/strip DESTDIR=$PKG
  87. cd ..
  88. # 20240828 bkw: install/strip creates this empty dir...
  89. rmdir $PKG/usr/bin
  90. # 20240829 bkw: wrote a man page. Wasn't going to, but the --help
  91. # option is too annoying to use (prints output in an X window instead
  92. # of stdout).
  93. mkdir -p $PKG/usr/man/man6
  94. gzip -9c < $CWD/punes.6 > $PKG/usr/man/man6/punes.6.gz
  95. ln -s punes.6.gz $PKG/usr/man/man6/$PRGNAM.6.gz
  96. PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
  97. mkdir -p $PKGDOC
  98. cp -a COPYING $PKGDOC
  99. cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
  100. mkdir -p $PKG/install
  101. sed -e "s,@WITHCG@,$WITHCG," \
  102. -e "s,@QTVER@,$QTVER," \
  103. < $CWD/slack-desc \
  104. > $PKG/install/slack-desc
  105. cat $CWD/doinst.sh > $PKG/install/doinst.sh
  106. cat $CWD/doinst.sh > $PKG/install/douninst.sh
  107. cd $PKG
  108. /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE