aboutsummaryrefslogtreecommitdiffstats
path: root/emulators
diff options
context:
space:
mode:
authorjylefort <jylefort@FreeBSD.org>2005-07-16 23:05:22 +0800
committerjylefort <jylefort@FreeBSD.org>2005-07-16 23:05:22 +0800
commit203d574915efa2d870a7062e774a250700e42292 (patch)
treef25f79b9dd4a0094b49e3e6b8cbcc7e9a77aa449 /emulators
parent4411b70fd64f44b3182ecfea44eb8f59504998ae (diff)
downloadfreebsd-ports-gnome-203d574915efa2d870a7062e774a250700e42292.tar.gz
freebsd-ports-gnome-203d574915efa2d870a7062e774a250700e42292.tar.zst
freebsd-ports-gnome-203d574915efa2d870a7062e774a250700e42292.zip
- Remove epsxe-install; the epsxe shell script now maintains ~/.epsxe
- Explicitly depend on linux_base-8 - Reword and improve pkg-message - Polish the Makefile
Diffstat (limited to 'emulators')
-rw-r--r--emulators/linux-ePSXe/Makefile50
-rw-r--r--emulators/linux-ePSXe/files/epsxe15
-rw-r--r--emulators/linux-ePSXe/files/epsxe-install.in72
-rw-r--r--emulators/linux-ePSXe/files/epsxe-wrapper.in54
-rw-r--r--emulators/linux-ePSXe/pkg-message32
-rw-r--r--emulators/linux-ePSXe/pkg-plist1
6 files changed, 77 insertions, 147 deletions
diff --git a/emulators/linux-ePSXe/Makefile b/emulators/linux-ePSXe/Makefile
index 4d328358dc62..1bbdba50df36 100644
--- a/emulators/linux-ePSXe/Makefile
+++ b/emulators/linux-ePSXe/Makefile
@@ -7,6 +7,7 @@
PORTNAME= epsxe
PORTVERSION= 1.6.0
+PORTREVISION= 1
CATEGORIES= emulators linux
MASTER_SITES= http://www.epsxe.com/files/
PKGNAMEPREFIX= linux-
@@ -15,66 +16,33 @@ DISTNAME= epsxe160lin
MAINTAINER= jylefort@FreeBSD.org
COMMENT= A Sony Playstation emulator (Linux version)
-# The binary is built against glibc 2.3, so we need linux_base-8.
RUN_DEPENDS= ${LINUXBASE}/usr/lib/libgtk-1.2.so.0:${PORTSDIR}/x11-toolkits/linux-gtk
-USE_LINUX= yes
+USE_LINUX= 8 # the epsxe binary is linked against glibc 2.3
USE_X_PREFIX= yes
USE_ZIP= yes
NO_WRKSUBDIR= yes
+NO_BUILD= yes
ONLY_FOR_ARCHS= i386
-.include <bsd.port.pre.mk>
-
-EPSXE= ${PREFIX}/libexec/epsxe
-
-PSEMUPRO_PLUGINS_DIR= ${PREFIX}/lib/psemupro/plugins
-PSEMUPRO_CFGBINS_DIR= ${PREFIX}/libexec/psemupro/cfg
-PSEMUPRO_CFGFILES_DIR= ${PREFIX}/share/psemupro/cfg
-
-do-build:
- ${MKDIR} ${WRKSRC}/FreeBSD
- ${SED} \
- -e "s,@EPSXE@,${EPSXE},g" \
- -e "s,@DATADIR@,${DATADIR},g" \
- -e "s,@PSEMUPRO_PLUGINS_DIR@,${PSEMUPRO_PLUGINS_DIR},g" \
- -e "s,@PSEMUPRO_CFGBINS_DIR@,${PSEMUPRO_CFGBINS_DIR},g" \
- -e "s,@PSEMUPRO_CFGFILES_DIR@,${PSEMUPRO_CFGFILES_DIR},g" \
- ${FILESDIR}/epsxe-install.in \
- >${WRKSRC}/FreeBSD/epsxe-install
+SUB_FILES= epsxe-wrapper
do-install:
- ${MKDIR} ${PREFIX}/bin
- ${INSTALL_SCRIPT} \
- ${FILESDIR}/epsxe \
- ${WRKSRC}/FreeBSD/epsxe-install \
- ${PREFIX}/bin
-
- ${MKDIR} ${PREFIX}/libexec
- ${INSTALL_PROGRAM} ${WRKSRC}/epsxe ${EPSXE}
- ${BRANDELF} -t Linux ${EPSXE}
+ ${INSTALL_SCRIPT} ${WRKDIR}/epsxe-wrapper ${PREFIX}/bin/epsxe
+ ${INSTALL_PROGRAM} ${WRKSRC}/epsxe ${PREFIX}/libexec
${MKDIR} ${DATADIR}
${INSTALL_DATA} ${WRKSRC}/keycodes.lst ${DATADIR}
${MKDIR} ${DATADIR}/cheats
- ${INSTALL_DATA} \
- ${WRKSRC}/cheats/breath_of_fire_4_usa.cht \
- ${WRKSRC}/cheats/chrono_cross_ntsc.cht \
- ${WRKSRC}/cheats/tarzan_pal.cht \
- ${DATADIR}/cheats
+ ${INSTALL_DATA} ${WRKSRC}/cheats/* ${DATADIR}/cheats
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} \
- ${WRKSRC}/docs/epsxe_en.txt \
- ${WRKSRC}/docs/epsxe_linux_en.txt \
- ${WRKSRC}/docs/epsxe_linux_sp.txt \
- ${WRKSRC}/docs/epsxe_sp.txt \
- ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/docs/* ${DOCSDIR}
.endif
post-install:
@${CAT} ${PKGMESSAGE}
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/emulators/linux-ePSXe/files/epsxe b/emulators/linux-ePSXe/files/epsxe
deleted file mode 100644
index b50f5f52c02a..000000000000
--- a/emulators/linux-ePSXe/files/epsxe
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-# epsxe - ePSXe launcher
-#
-# (c) 2002-2003 Jean-Yves Lefort.
-# All rights reserved.
-
-USERDIR=$HOME/.epsxe
-
-if [ ! -x $USERDIR/epsxe ]; then
- echo "$USERDIR/epsxe not found or not executable."
- echo "You should run epsxe-install."
- exit 1
-fi
-
-cd $USERDIR && exec ./epsxe "$@"
diff --git a/emulators/linux-ePSXe/files/epsxe-install.in b/emulators/linux-ePSXe/files/epsxe-install.in
deleted file mode 100644
index 5c0e81eee4c8..000000000000
--- a/emulators/linux-ePSXe/files/epsxe-install.in
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-# epsxe-install - ePSXe user installation
-#
-# (c) 2002-2003 Jean-Yves Lefort.
-# All rights reserved.
-
-EPSXE=@EPSXE@
-DATADIR=@DATADIR@
-PSEMUPRO_PLUGINS_DIR=@PSEMUPRO_PLUGINS_DIR@
-PSEMUPRO_CFGBINS_DIR=@PSEMUPRO_CFGBINS_DIR@
-PSEMUPRO_CFGFILES_DIR=@PSEMUPRO_CFGFILES_DIR@
-
-USERDIR=$HOME/.epsxe
-
-_mkdir () {
- if [ ! -e $1 ]; then
- echo "Creating directory $1"
- mkdir -p $1
- fi
-}
-
-_ln () {
- if [ ! -e $2 ]; then
- echo "Creating symlink $2"
- ln -sf $1 $2
- fi
-}
-
-_install () {
- if [ ! -e $2 ]; then
- echo "Copying $1 to $2"
- install -m $3 $1 $2
- fi
-}
-
-for d in \
- $USERDIR \
- $USERDIR/bios \
- $USERDIR/cfg \
- $USERDIR/cheats \
- $USERDIR/memcards \
- $USERDIR/patches \
- $USERDIR/plugins \
- $USERDIR/snap \
- $USERDIR/sstates; do
- _mkdir $d || exit $?
-done
-
-_ln $EPSXE $USERDIR/epsxe || exit $?
-
-for f in \
- keycodes.lst \
- cheats/breath_of_fire_4_usa.cht \
- cheats/chrono_cross_ntsc.cht \
- cheats/tarzan_pal.cht; do
- _ln $DATADIR/$f $USERDIR/$f || exit $?
-done
-
-for p in $PSEMUPRO_PLUGINS_DIR/*; do
- [ -e $p ] || break
- _ln $p $USERDIR/plugins/`basename $p` || exit $?
-done
-
-for c in $PSEMUPRO_CFGBINS_DIR/*; do
- [ -e $c ] || break
- _ln $c $USERDIR/cfg/`basename $c` || exit $?
-done
-
-for c in $PSEMUPRO_CFGFILES_DIR/*; do
- [ -e $c ] || break
- _install $c $USERDIR/cfg/`basename $c` 0644 || exit $?
-done
diff --git a/emulators/linux-ePSXe/files/epsxe-wrapper.in b/emulators/linux-ePSXe/files/epsxe-wrapper.in
new file mode 100644
index 000000000000..e50fd69ad8e2
--- /dev/null
+++ b/emulators/linux-ePSXe/files/epsxe-wrapper.in
@@ -0,0 +1,54 @@
+#!/bin/sh
+# $FreeBSD$
+
+EPSXE=%%PREFIX%%/libexec/epsxe
+DATADIR=%%DATADIR%%
+PSEMUPRO_PLUGINS_DIR=%%PREFIX%%/lib/psemupro/plugins
+PSEMUPRO_CFGBINS_DIR=%%PREFIX%%/libexec/psemupro/cfg
+PSEMUPRO_CFGFILES_DIR=%%PREFIX%%/share/psemupro/cfg
+
+USERDIR=$HOME/.epsxe
+
+remove_stale_symlinks () {
+ dir="$1"
+
+ for f in $dir/*; do
+ [ "x$f" = "x$dir/*" ] && break
+
+ target=`readlink $f`
+ if [ -n "$target" ] && [ ! -e "$target" ]; then
+ rm -f $f
+ fi
+ done
+}
+
+### create $USERDIR hierarchy
+
+for d in bios cfg cheats memcards patches plugins snap sstates; do
+ mkdir -p $USERDIR/$d || exit 1
+done
+
+### remove stale symlinks
+
+for d in plugins cfg; do
+ remove_stale_symlinks $USERDIR/$d || exit 1
+done
+
+### populate $USERDIR
+
+ln -sf $EPSXE $USERDIR/epsxe || exit 1
+
+for f in keycodes.lst cheats/breath_of_fire_4_usa.cht \
+ cheats/chrono_cross_ntsc.cht cheats/tarzan_pal.cht; do
+ ln -sf $DATADIR/$f $USERDIR/$f || exit 1
+done
+
+ln -sf $PSEMUPRO_PLUGINS_DIR/* $USERDIR/plugins 2>/dev/null
+ln -sf $PSEMUPRO_CFGBINS_DIR/* $USERDIR/cfg 2>/dev/null
+cp -n $PSEMUPRO_CFGFILES_DIR/* $USERDIR/cfg 2>/dev/null
+chmod u+w $USERDIR/cfg/* 2>/dev/null
+
+### run the emulator
+
+cd $USERDIR || exit 1
+exec ./epsxe "$@"
diff --git a/emulators/linux-ePSXe/pkg-message b/emulators/linux-ePSXe/pkg-message
index 44c607c3a89c..0dee003525eb 100644
--- a/emulators/linux-ePSXe/pkg-message
+++ b/emulators/linux-ePSXe/pkg-message
@@ -1,25 +1,21 @@
--------------------------------------------------------------------------------
-You should now log into your normal user account and issue a
+===============================================================================
+To do anything useful with the emulator, you need:
- epsxe-install
+ - a GPU (graphical processing unit) plugin, choose between:
-in order to create and populate ~/.epsxe, needed to run the program.
+ emulators/linux-peops-softgpu
+ emulators/linux-pete-xgl2gpu
+ emulators/linux-pete-mesagpu
-To do anything useful with the emulator, you'll need a GPU and a SPU
-plugin (the Ports Collection contains a number of those), and a
-Playstation BIOS image. From the port's documentation:
+ - a SPU (sound processing unit) plugin:
- "During testing we found out that the scph1001.bin and
- scph7502.bin BIOS are compatible, but the scph1000.bin
- won't work."
+ emulators/linux-peops-spu
-Note that you may only be in possession of the copyrighted BIOS if
-you're legally entitled to do so.
+ - a Playstation BIOS image:
-When you install a PSEmu Pro plugin from a FreeBSD port or package,
-you should re-run
+ The port documentation says: "during testing we found out that the
+ scph1001.bin and scph7502.bin BIOS are compatible, but the scph1000.bin
+ won't work".
- epsxe-install
-
-in order to make the plugin available to ePSXe.
--------------------------------------------------------------------------------
+ Please keep in mind that the Playstation BIOS is copyrighted software.
+===============================================================================
diff --git a/emulators/linux-ePSXe/pkg-plist b/emulators/linux-ePSXe/pkg-plist
index a02f45649850..2c66b1cef76c 100644
--- a/emulators/linux-ePSXe/pkg-plist
+++ b/emulators/linux-ePSXe/pkg-plist
@@ -1,5 +1,4 @@
bin/epsxe
-bin/epsxe-install
libexec/epsxe
share/epsxe/keycodes.lst
share/epsxe/cheats/breath_of_fire_4_usa.cht