Guest User

epsxe/PKGBUILD

a guest
Sep 29th, 2024
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.08 KB | None | 0 0
  1. #
  2. # Maintainer: Alexej Magura <sickhadas.code at gmail dot com>
  3. # Contributor: Swen Simon <swsimon at gmail dot com>
  4. # Contributor: RaphaΓ«l Doursenaud <[email protected]>
  5. #
  6.  
  7. pkgname=epsxe
  8. _pkgname=ePSXe
  9. pkgver=2.0.5
  10. _plgnver=1.9.95
  11. pkgrel=34
  12. pkgdesc="Enhanced PSX emulator"
  13. url="https://epsxe.com"
  14. arch=('x86_64')
  15. depends=(bash libcurl-compat gtk3 sdl_ttf libxt libcanberra libcurl-compat libxv libcdio libarchive)
  16. makedepends=(unzip tar cmake mesa intltool nasm valgrind)
  17. license=('unknown')
  18. install=${pkgname}.install
  19. options=(!strip)
  20. source=("${pkgname}.desktop"
  21.         "${pkgname}.png"
  22.         "${pkgname}.sh"
  23.         https://www.epsxe.com/files/shaders.zip
  24.         "https://www.epsxe.com/files/${_pkgname}${pkgver//./}linux_x64.zip"
  25.         "https://archive.org/download/archlinux_pkg_ncurses/ncurses-5.9_20141101-1-${CARCH}.pkg.tar.xz"
  26.         "https://archive.org/download/archlinux_pkg_openssl/openssl-1.0.2.k-1-${CARCH}.pkg.tar.xz"
  27.         # 64-bit Plugins
  28.         "pcsxr-${_plgnver}.tar.gz::https://github.com/frealgagu/PCSX-Reloaded/archive/${_plgnver}.tar.gz"
  29.         Makefile.patch
  30.         pcsxr-fix-undefined-operations.patch
  31.         configure_ac.patch
  32.         peopsxgl_gpu_c.patch
  33.         dfxvideo_cfg_c.patch
  34.         )
  35. conflicts=(bin32-epsxe)
  36. noextract=(shaders.zip
  37.            "ncurses-5.9_20141101-1-${CARCH}.pkg.tar.xz"
  38.            "openssl-1.0.2.k-1-${CARCH}.pkg.tar.xz")
  39. md5sums=('aeb34e2ca34f968630ca133ea821c61c'
  40.          'eb0c46b8ae1355c589792f6be1835e47'
  41.          '6239ab64858d131acc3d2629d5834701'
  42.          'a863740899adb064b8a28c3fa47d5280'
  43.          '79fefeb4bff26bf1d374befb35b390df'
  44.          'd435d3e9481e5786b9e377abe63ce325'
  45.          '97143b513250660ec38c539783c6517b'
  46.          'ee0f9dfd003d9a5350aafc8cca0cdeee'
  47.          '65b85557db7af4fbb775ce3256d9784c'
  48.          '96a82dcc66851160f452160a538cd6f8'
  49.          'f84d9eff59ac127eb37be4088c599fe6'
  50.          '5576cd7ddfe7e025f7e64ba532875420'
  51.          '97dba4a28e162cd93882194d3a02bbf1')
  52.  
  53.  
  54.  
  55. prepare()
  56. {
  57.   cd "${srcdir}"
  58.  
  59.   mv "${pkgname}_x64" "${pkgname}"
  60.  
  61.   tar xf "ncurses-5.9_20141101-1-${CARCH}.pkg.tar.xz" usr/lib/libncursesw.so.5.9 2>/dev/null
  62.   mv usr/lib/libncursesw.so.5.9 .
  63.  
  64.   tar xf "openssl-1.0.2.k-1-${CARCH}.pkg.tar.xz" usr/lib/libcrypto.so.1.0.0 2>/dev/null
  65.   mv usr/lib/libcrypto.so.1.0.0 .
  66.  
  67.   rm -rf usr
  68.  
  69.   ## process shaders ##
  70.   rm -rf shaders tmp
  71.   mkdir tmp
  72.   unzip -q shaders.zip -d tmp
  73.   mv tmp/shaders "${srcdir}"
  74.  
  75.   cd "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr"
  76.   patch < "${srcdir}/Makefile.patch"
  77.   patch < "${srcdir}/configure_ac.patch"
  78.   cd ..
  79.   patch -Np1 -i "${srcdir}"/pcsxr-fix-undefined-operations.patch
  80.   mkdir -p "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr/include"
  81.   patch -Np1 -i "${srcdir}"/peopsxgl_gpu_c.patch "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr/plugins/peopsxgl/gpu.c"
  82.   patch -Np1 -i "${srcdir}"/dfxvideo_cfg_c.patch "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr/plugins/dfxvideo/cfg.c"
  83.  
  84.   cd "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr"
  85.  
  86.  
  87.   ## Replace ~/.pcsxr with ~/.epsxe
  88.   # # sed -i 's|\.pcsxr/plugins/|.epsxe/config/|' plugins/dfxvideo/cfg.c
  89.   # sed -i 's|\.pcsxr/plugins/cfg/||' gui/Linux.h
  90.   sed -i 's|\.pcsxr|.epsxe|' gui/Linux.h
  91.  
  92.   ## Fix several implict function definitions (waitpid)
  93.   sed -ri 's|(#include "pad.h")|\1\n#include <sys/wait.h>|' plugins/dfinput/pad.c
  94.   sed -ri 's|(#include "stdafx.h")|\1\n#include <sys/wait.h>|' plugins/dfsound/cfg.c
  95.   sed -ri 's|(#include "cdr.h")|\1\n#include <sys/wait.h>|' plugins/dfcdrom/cdr.c
  96.   sed -ri 's|(#include "sio1.h")|\1\n#include <sys/wait.h>|' plugins/bladesio1/sio1.c
  97.   # sed -ri 's|(#include "stdafx.h")|\1\n#include <sys/wait.h>|' plugins/peopsxgl/gpu.c
  98.  
  99.   ## Fix implicit function definitions (fork)
  100.   sed -ri 's|(#include "sio1.h")|\1\n#include <unistd.h>|' plugins/bladesio1/sio1.c
  101.  
  102.   ## Fix incorrect assignment
  103.   # sed -i 's|\*disp=(unsigned long \*)display;\(.*\)|disp\1|' plugins/peopsxgl/gpu.c
  104.   # sed -i 's/pcsxr/epsxe/g' configure.ac
  105.  
  106.   sed -i 's|/games/psemu\/||g' plugins/peopsxgl/Makefile.am
  107.   sed -i 's|\/psemu\/||g' plugins/peopsxgl/Makefile.am
  108. }
  109.  
  110. build() {
  111.   cd "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr"
  112.  
  113.   export CC="gcc"
  114.   export CXX="g++"
  115.   export CFLAGS+=" -fcommon -I/usr/include/harfbuzz"
  116.   export CXXFLAGS+=" -I/usr/include/harfbuzz"
  117.   export PKG_CONFIG_PATH='/usr/lib/pkgconfig'
  118.  
  119.   autoreconf -fi
  120.   intltoolize --force
  121.  
  122.   ./configure \
  123.     --prefix=/opt/epsxe \
  124.     --enable-libcdio \
  125.     --enable-opengl \
  126.     --libdir="/opt/${pkgname}/plugins" \
  127.     --datadir="/opt/${pkgname}/config" \
  128.     --bindir="/opt/${pkgname}/plugins" \
  129.     --datarootdir="/opt/${pkgname}/config"
  130.   # make clean
  131.   make # DATADIR="/opt/${pkgname}/cfg"
  132. }
  133.  
  134. package()
  135. {
  136.   cd "${srcdir}"
  137.   install -d "${pkgdir}"/usr/share/doc/${pkgname}
  138.   install -d "${pkgdir}"/opt/${pkgname}/config \
  139.     "${pkgdir}"/opt/${pkgname}/plugins \
  140.     "${pkgdir}"/opt/${pkgname}/shaders
  141.  
  142.   ## Docs and Shaders
  143.  
  144.   find ./docs -name 'e???e_*.txt' -execdir install -m 644 -t "${pkgdir}/usr/share/doc/${pkgname}" \{\} +
  145.   find ./shaders -type d -mindepth 1 -maxdepth 1 -exec cp -r {} "${pkgdir}/opt/${pkgname}/shaders" \;
  146.   find "${pkgdir}/opt/${pkgname}/shaders" -type d -exec chmod 755 {} +
  147.   find "${pkgdir}/opt/${pkgname}/shaders" -type f -exec chmod 644 {} +
  148.  
  149.   ## Executable and images
  150.  
  151.   install -Dm 755 "${pkgname}" "${pkgdir}/opt/${pkgname}/${pkgname}"
  152.  
  153.   install -Dm 755 "${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
  154.   install -Dm 644 "${srcdir}/epsxe.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
  155.   install -Dm 644 "${srcdir}/epsxe.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
  156.  
  157.   ## CURL
  158.   ln -sf /usr/lib/libcurl-compat.so.4.8.0 "${pkgdir}/opt/epsxe/libcurl.so.4"
  159.  
  160.   ## NCURSES
  161.  
  162.   # ln -sf "${HOME}/.${pkgname}/${pkgname}rc "${pkgdir}/opt/${pkgname}/.${pkgname}rc"
  163.   install -m 644 "${srcdir}/libncursesw.so.5.9" "${pkgdir}/opt/${pkgname}/libncursesw.so.5.9"
  164.   cd "${pkgdir}/opt/${pkgname}"
  165.   ln -sf libncursesw.so.5.9 libncurses.so.5
  166.   ln -sf libncursesw.so.5.9 libtinfo.so.5
  167.  
  168.   ## OpenSSL
  169.  
  170.   install -m 644 "${srcdir}/libcrypto.so.1.0.0" "${pkgdir}/opt/${pkgname}/libcrypto.so.1.0.0"
  171.  
  172.   ## Plugins
  173.   cd "${srcdir}/PCSX-Reloaded-${_plgnver}/pcsxr"
  174.   make DESTDIR="${pkgdir}" install
  175.   # cd build
  176.  
  177.   # make DESTDIR="${pkgdir}" install
  178.  
  179.   # cd "${pkgdir}/opt/${pkgname}/plugins/"
  180.  
  181.   ## PeopsSoftX
  182.   ln -sf /opt/"${pkgname}"/config/peopsxgl.ui "${pkgdir}"/opt/epsxe/config/cfgpeopsxgl.ui
  183.   #
  184.   # install -m 755 -t "${pkgdir}/opt/${pkgname}/plugins" \
  185.   #   opt/epsxe/plugins/libpeopsxgl.la \
  186.   #   opt/epsxe/plugins/libpeopsxgl.so
  187.   # install -m 755 usr/lib/games/psemu/cfgpeopsxgl "${pkgdir}/opt/${pkgname}/cfg"
  188.   # install -m 755 usr/lib/games/psemu/cfgpeopsxgl "${pkgdir}/opt/${pkgname}/"
  189.  
  190.   chgrp games -R "${pkgdir}/opt/epsxe"
  191.   chmod g+rwx -R "${pkgdir}/opt/epsxe"
  192.  
  193.   # cd
  194.   #
  195.   # for plugindir in "${pkgdir}/opt/${pkgname}/plugins"; do
  196.   #   echo "Installing Peops"
  197.   #   cd "${plugindir}"
  198.   #   install -m 755 usr/lib/games/psemu/libpeopsxgl.so "${plugindir}"
  199.   #   mv usr/lib/games/psemu/cfgpeopsxgl "${plugindir}/../cfg"
  200.   # done
  201.   # cd ..
  202. }
  203.  
Advertisement
Add Comment
Please, Sign In to add comment