aboutsummaryrefslogtreecommitdiff
path: root/games/xarchon
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-08-12 23:24:58 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2016-08-12 23:24:58 +0700
commitcf097d5fa6ec1829ecb9933568518736698acc99 (patch)
tree35f1df9ddc18626554b25d60dc1127bff44a7dcf /games/xarchon
parentfd81ce18f55827c8461ec7bca7203795451e7e7e (diff)
games/xarchon: Added (fantasy-themed board game).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/xarchon')
-rw-r--r--games/xarchon/README14
-rw-r--r--games/xarchon/doinst.sh3
-rw-r--r--games/xarchon/patches/compilefix.diff169
-rw-r--r--games/xarchon/patches/joystick.diff11
-rw-r--r--games/xarchon/patches/manpage.diff28
-rw-r--r--games/xarchon/patches/remove_gtk.diff82
-rw-r--r--games/xarchon/patches/remove_theme_option.diff12
-rw-r--r--games/xarchon/slack-desc19
-rw-r--r--games/xarchon/xarchon.SlackBuild133
-rw-r--r--games/xarchon/xarchon.default72
-rw-r--r--games/xarchon/xarchon.desktop8
-rw-r--r--games/xarchon/xarchon.info10
12 files changed, 561 insertions, 0 deletions
diff --git a/games/xarchon/README b/games/xarchon/README
new file mode 100644
index 000000000000..b62fba9e8a3a
--- /dev/null
+++ b/games/xarchon/README
@@ -0,0 +1,14 @@
+xarchon (fantasy-themed board game)
+
+Archon: The Light and the Dark is a 1983 video game developed by Free
+Fall Associates and one of the first five games published by Electronic
+Arts. It's similar in concept to Chess, except that landing on another
+player's piece results in an arcade-style fight to determine the victor.
+
+xarchon is a rewrite of Archon and Archon II: Adept for modern systems.
+Single-player against the computer is supported, as well as multiplayer
+on the same computer or over the network.
+
+xarchon uses esd (the Enlightened Sound Daemon) for audio. esd must be
+running for the game to make sound (e.g. started by ~/.xinitrc, or by
+your desktop environment, or manually by typing "esd &" in a terminal).
diff --git a/games/xarchon/doinst.sh b/games/xarchon/doinst.sh
new file mode 100644
index 000000000000..5fb28930db0b
--- /dev/null
+++ b/games/xarchon/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
diff --git a/games/xarchon/patches/compilefix.diff b/games/xarchon/patches/compilefix.diff
new file mode 100644
index 000000000000..2d9a2709635f
--- /dev/null
+++ b/games/xarchon/patches/compilefix.diff
@@ -0,0 +1,169 @@
+diff -Naur xarchon-0.60.orig/acinclude.m4 xarchon-0.60/acinclude.m4
+--- xarchon-0.60.orig/acinclude.m4 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/acinclude.m4 2016-08-10 15:44:42.085582512 -0400
+@@ -176,13 +176,13 @@
+ QT_LDFLAGS="-L $qtdir/lib"
+ CFLAGS="$CFLAGS $QT_INCLUDES"
+ LDFLAGS="$LDFLAGS $QT_LDFLAGS"
+-AC_CHECK_LIB(qt, qVersion__Fv, [
++AC_CHECK_LIB(qt-mt, qt_C_sigchldHnd, [
+ AC_PATH_PROG(MOC, moc, notfound, $PATH:$qtdir/bin)
+ if test "x$MOC" = xnotfound; then
+ AC_MSG_WARN([Moc is missing; the Qt interface will not be built])
+ [$3]
+ else
+- QT_LDFLAGS="$QT_LDFLAGS -lqt"
++ QT_LDFLAGS="$QT_LDFLAGS -lqt-mt -lX11"
+ AC_SUBST(QT_INCLUDES)
+ AC_SUBST(QT_LDFLAGS)
+ [$2]
+diff -Naur xarchon-0.60.orig/aclocal.m4 xarchon-0.60/aclocal.m4
+--- xarchon-0.60.orig/aclocal.m4 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/aclocal.m4 2016-08-10 15:44:49.089582758 -0400
+@@ -189,13 +189,13 @@
+ QT_LDFLAGS="-L $qtdir/lib"
+ CFLAGS="$CFLAGS $QT_INCLUDES"
+ LDFLAGS="$LDFLAGS $QT_LDFLAGS"
+-AC_CHECK_LIB(qt, qVersion__Fv, [
++AC_CHECK_LIB(qt-mt, _Z8qVersionv, [
+ AC_PATH_PROG(MOC, moc, notfound, $PATH:$qtdir/bin)
+ if test "x$MOC" = xnotfound; then
+ AC_MSG_WARN([Moc is missing; the Qt interface will not be built])
+ [$3]
+ else
+- QT_LDFLAGS="$QT_LDFLAGS -lqt"
++ QT_LDFLAGS="$QT_LDFLAGS -lqt-mt"
+ AC_SUBST(QT_INCLUDES)
+ AC_SUBST(QT_LDFLAGS)
+ [$2]
+diff -Naur xarchon-0.60.orig/data/Makefile.am xarchon-0.60/data/Makefile.am
+--- xarchon-0.60.orig/data/Makefile.am 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/data/Makefile.am 2016-08-11 06:10:28.727404448 -0400
+@@ -11,8 +11,8 @@
+ echo "--> Installing theme '$$theme'"; \
+ THEME_DIRS=`find $$theme -type d`; \
+ for p in $$THEME_DIRS; do \
+- echo "mkdir $(pkgdatadir)/$$p"; \
+- mkdir $(pkgdatadir)/$$p; \
++ echo "mkdir -p $(DESTDIR)$(pkgdatadir)/$$p"; \
++ mkdir -p $(DESTDIR)$(pkgdatadir)/$$p; \
+ done; \
+ THEME_FILES=`find $$theme -type f`; \
+ for p in $$THEME_FILES; do \
+diff -Naur xarchon-0.60.orig/src/Genetic.hpp xarchon-0.60/src/Genetic.hpp
+--- xarchon-0.60.orig/src/Genetic.hpp 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/Genetic.hpp 2016-08-11 06:02:50.212388366 -0400
+@@ -1,6 +1,7 @@
+ #ifndef GENETIC_HPP
+ #define GENETIC_HPP
+
++#include <cstdlib>
+ #include <list>
+ using namespace std;
+
+@@ -216,9 +217,9 @@
+ virtual Genetic_Operator<T> *Choose_Operator(void)
+ {
+ int max=(int)total_op_weight;
+- list<Genetic_Operator<T> *>::iterator start=operators.begin();
+- list<Genetic_Operator<T> *>::iterator end=operators.end();
+- list<Genetic_Operator<T> *>::iterator iter;
++ typename list<Genetic_Operator<T> *>::iterator start=operators.begin();
++ typename list<Genetic_Operator<T> *>::iterator end=operators.end();
++ typename list<Genetic_Operator<T> *>::iterator iter;
+ int r=rand()%max;
+ int count=0;
+ for (iter=start;iter!=end;iter++) {
+@@ -264,7 +265,7 @@
+ cur_size++;
+ }
+ }
+- newpop->Eval_Fitness(fit_func);
++ newpop->Eval_Fitness(this->fit_func);
+ return newpop;
+ }
+
+diff -Naur xarchon-0.60.orig/src/Problem.hpp xarchon-0.60/src/Problem.hpp
+--- xarchon-0.60.orig/src/Problem.hpp 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/Problem.hpp 2016-08-11 05:59:58.156382332 -0400
+@@ -306,14 +306,14 @@
+ virtual G Goal_Value(T *a)
+ {
+ if (depth==0)
+- return tester->Goal_Value(a);
++ return this->tester->Goal_Value(a);
+
+- Goal_Test<G,T> *endtester=tester;
+- tester=new Minimax_Goal_Test(depth-1,generator,other_acc,goal_acc,tester);
++ Goal_Test<G,T> *endtester=this->tester;
++ this->tester=new Minimax_Goal_Test(depth-1,this->generator,other_acc,this->goal_acc,this->tester);
+ G ret_val=Successor_Goal_Test<G,T>::Goal_Value(a);
+- delete tester;
+- tester=endtester;
+- delete next;
++ delete this->tester;
++ this->tester=endtester;
++ delete this->next;
+
+ return ret_val;
+ }
+@@ -340,19 +340,19 @@
+
+ virtual G Goal_Value(T *a)
+ {
+- Goal_Accumulator <G,T> *old=goal_acc;
++ Goal_Accumulator <G,T> *old=this->goal_acc;
+ Multi_Goal_Accumulator <G,T,greater<G> > *mga=new Multi_Goal_Accumulator<G,T,greater<G> >(branch);
+- goal_acc=mga;
++ this->goal_acc=mga;
+ Successor_Goal_Test<G,T>::Goal_Value(a);
+- goal_acc=old;
++ this->goal_acc=old;
+ for (mga->Init();!mga->IsEnd();mga->Next()) {
+ T *state=mga->Get_State();
+- Multi_Minimax_Goal_Test *next=new Multi_Minimax_Goal_Test(d-1,b,gen,other,goal_acc,tester);
++ Multi_Minimax_Goal_Test *next=new Multi_Minimax_Goal_Test(this->d-1,this->b,this->gen,other,this->goal_acc,this->tester);
+ next->Goal_Value(state);
+- goal_acc->Put(accumulator->value,acc->state,acc->op);
++ this->goal_acc->Put(this->accumulator->value,this->acc->state,this->acc->op);
+ }
+- goal_acc->Put(mga->Get_State(),mga->Get_Operator(),mga->Get_Result());
+- return goal_acc->Get_Value();
++ this->goal_acc->Put(mga->Get_State(),mga->Get_Operator(),mga->Get_Result());
++ return this->goal_acc->Get_Value();
+ }
+ };
+
+diff -Naur xarchon-0.60.orig/src/Xarchon_Problem.cpp xarchon-0.60/src/Xarchon_Problem.cpp
+--- xarchon-0.60.orig/src/Xarchon_Problem.cpp 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/Xarchon_Problem.cpp 2016-08-11 06:03:37.472390024 -0400
+@@ -1,3 +1,4 @@
++#include <cstring>
+ #include "Xarchon_Problem.hpp"
+ #include "Xarchon_Interface.hpp"
+
+diff -Naur xarchon-0.60.orig/src/board.h xarchon-0.60/src/board.h
+--- xarchon-0.60.orig/src/board.h 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/board.h 2016-08-10 16:20:27.874657772 -0400
+@@ -98,7 +98,6 @@
+ /*--------------------------------------------------------------------------*/
+
+ extern int board_turn;
+-extern int board_frame_time;
+ extern CELL board_cells[BOARD_YCELLS][BOARD_XCELLS];
+ extern int spell_avails[3][SPELL_COUNT_2]; /* row 0 is light, row 1 is dark */
+ extern int init_board_cells[NUM_GAMES][BOARD_YCELLS][BOARD_XCELLS];
+diff -Naur xarchon-0.60.orig/src/qt/qtplayersdialog.h xarchon-0.60/src/qt/qtplayersdialog.h
+--- xarchon-0.60.orig/src/qt/qtplayersdialog.h 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/qt/qtplayersdialog.h 2016-08-10 16:18:46.872654229 -0400
+@@ -5,9 +5,9 @@
+ #ifndef __MY_QT_PLAYERS_DIALOG_H
+ #define __MY_QT_PLAYERS_DIALOG_H
+
++#include "iface.h"
+ #include <qdialog.h>
+
+-struct IFACE_PLAYER;
+ class QtPlayerWidget;
+ class QButtonGroup;
+
diff --git a/games/xarchon/patches/joystick.diff b/games/xarchon/patches/joystick.diff
new file mode 100644
index 000000000000..43514bfd6239
--- /dev/null
+++ b/games/xarchon/patches/joystick.diff
@@ -0,0 +1,11 @@
+diff -Naur xarchon-0.60.orig/src/qt/qthumaniface.cpp xarchon-0.60.joypatch/src/qt/qthumaniface.cpp
+--- xarchon-0.60.orig/src/qt/qthumaniface.cpp 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60.joypatch/src/qt/qthumaniface.cpp 2016-08-11 08:07:19.978650355 -0400
+@@ -133,7 +133,6 @@
+ if (!human_joystick_init(non_keyboard)) {
+ #endif
+ toolkit_message_box("Joystick not available");
+- return false;
+ #ifdef HAVE_LINUX_JOYSTICK_H
+ }
+ #endif
diff --git a/games/xarchon/patches/manpage.diff b/games/xarchon/patches/manpage.diff
new file mode 100644
index 000000000000..d7bf2ec84b89
--- /dev/null
+++ b/games/xarchon/patches/manpage.diff
@@ -0,0 +1,28 @@
+diff -Naur xarchon-0.60.orig/src/xarchon.6 xarchon-0.60/src/xarchon.6
+--- xarchon-0.60.orig/src/xarchon.6 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60/src/xarchon.6 2016-08-11 17:12:47.505798215 -0400
+@@ -304,18 +304,21 @@
+
+ .SH THE GRAPHICAL USER INTERFACE
+
++.B NOTE:
++This section of the manual describes an older version of the
++game. The user interface has been simplified, but there is
++still some useful information here.
++
+ The graphical user interface is your means of telling the progam
+ exactly how you want to play. Using the GUI, you can:
+
+ - define players, select two players to play on either side;
+-- select a graphical theme (although currently there is only
+-one theme to choose from);
+ - start and end games;
+ - and toggle sound.
+
+ .SS DEFINING PLAYERS
+
+-the program has a concept of "players." A player is merely
++The program has a concept of "players." A player is merely
+ a collection of configuration choices. For example, one
+ configuration choice is who plays for this player (a human
+ at the console, the computer, or perhaps it is played
diff --git a/games/xarchon/patches/remove_gtk.diff b/games/xarchon/patches/remove_gtk.diff
new file mode 100644
index 000000000000..81f28f2994d2
--- /dev/null
+++ b/games/xarchon/patches/remove_gtk.diff
@@ -0,0 +1,82 @@
+diff -Naur xarchon-0.60/configure.in xarchon-0.60.nogtk/configure.in
+--- xarchon-0.60/configure.in 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60.nogtk/configure.in 2016-08-11 17:32:05.385838825 -0400
+@@ -69,22 +69,6 @@
+ TOOLKIT_LIBS=""
+ TOOLKIT_LDADDS=""
+
+-GTK_SUBDIR=""
+-AM_PATH_GTK(1.2.0, have_gtk=yes, )
+-if test "x$have_gtk" = xyes; then
+- AC_PATH_PROG(GLADE, glade, notfound, $PATH:$gtk_config_exec_prefix/bin)
+- if test "x$GLADE" = xnotfound; then
+- AC_MSG_WARN([Glade is missing; the GTK+ interface will not be built])
+- have_gtk=""
+- else
+- GTK_SUBDIR="gtk"
+- TOOLKIT_LIBS="$TOOLKIT_LIBS gtk/libgtk.a"
+- TOOLKIT_LDADDS="$TOOLKIT_LDADDS $GTK_LIBS"
+- AC_DEFINE(HAVE_GTK)
+- fi
+-fi
+-AC_SUBST(GTK_SUBDIR)
+-
+ QT_SUBDIR=""
+ XC_PATH_QT(whatever, have_qt=yes, )
+ if test "x$have_qt" = xyes; then
+@@ -104,11 +88,6 @@
+
+ def_toolkit="none"
+
+-AC_ARG_WITH(default-gtk,
+- [ --with-default-gtk default to GTK+ toolkit ],
+- def_toolkit="gtk",
+-)
+-
+ AC_ARG_WITH(default-qt,
+ [ --with-default-qt default to Qt toolkit ],
+ def_toolkit="qt",
+@@ -118,22 +97,11 @@
+
+ case $def_toolkit in
+ none)
+- if test "x$have_gtk" = xyes; then
+- DEFAULT_TOOLKIT="GTK+"
+- elif test "x$have_qt" = xyes; then
++ if test "x$have_qt" = xyes; then
+ DEFAULT_TOOLKIT="Qt"
+ else
+ AC_MSG_ERROR([
+- Neither GTK+ nor Qt toolkits were found])
+- fi
+- ;;
+-
+- gtk)
+- if test "x$have_gtk" = xyes; then
+- DEFAULT_TOOLKIT="GTK+"
+- else
+- AC_MSG_ERROR([
+- GTK+ was requested, but could not be found])
++ Qt3 toolkit not found])
+ fi
+ ;;
+
+@@ -265,7 +233,6 @@
+ AC_OUTPUT(
+ Makefile
+ src/Makefile
+-src/gtk/Makefile
+ src/qt/Makefile
+ data/Makefile
+ stamp.h)
+diff -Naur xarchon-0.60/src/Makefile.am xarchon-0.60.nogtk/src/Makefile.am
+--- xarchon-0.60/src/Makefile.am 2016-08-11 17:36:55.973849017 -0400
++++ xarchon-0.60.nogtk/src/Makefile.am 2016-08-11 17:37:05.196849341 -0400
+@@ -1,6 +1,6 @@
+ ## Process this file with automake to produce Makefile.in
+
+-SUBDIRS = @GTK_SUBDIR@ @QT_SUBDIR@
++SUBDIRS = @QT_SUBDIR@
+
+ INCLUDES = @X_CFLAGS@ @ESD_CFLAGS@
+
diff --git a/games/xarchon/patches/remove_theme_option.diff b/games/xarchon/patches/remove_theme_option.diff
new file mode 100644
index 000000000000..20a40b2e9e43
--- /dev/null
+++ b/games/xarchon/patches/remove_theme_option.diff
@@ -0,0 +1,12 @@
+diff -Naur xarchon-0.60.orig/src/qt/qtguiwidget.cpp xarchon-0.60.menu/src/qt/qtguiwidget.cpp
+--- xarchon-0.60.orig/src/qt/qtguiwidget.cpp 2002-01-09 13:34:33.000000000 -0500
++++ xarchon-0.60.menu/src/qt/qtguiwidget.cpp 2016-08-11 09:10:20.179782939 -0400
+@@ -46,8 +46,6 @@
+
+ menubar->insertItem("settingsPlayers", popup, "Configure &Players...",
+ this, SLOT(settingsPlayers()));
+- menubar->insertItem("settingsTheme", popup, "Select &Theme...",
+- this, SLOT(settingsTheme()));
+ menubar->insertItem("settingsSound", popup, "Toggle &Sound",
+ this, SLOT(settingsSound()), Qt::Key_F11);
+ menubar->setChecked("settingsSound", TRUE);
diff --git a/games/xarchon/slack-desc b/games/xarchon/slack-desc
new file mode 100644
index 000000000000..a1ff39078c40
--- /dev/null
+++ b/games/xarchon/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+xarchon: xarchon (fantasy-themed board game)
+xarchon:
+xarchon: Archon: The Light and the Dark is a 1983 video game developed by
+xarchon: Free Fall Associates and one of the first five games published
+xarchon: by Electronic Arts. It's similar in concept to Chess, except that
+xarchon: landing on another player's piece results in an arcade-style fight
+xarchon: to determine the victor.
+xarchon:
+xarchon: xarchon is a rewrite of Archon and Archon II: Adept for modern
+xarchon: systems.
+xarchon:
diff --git a/games/xarchon/xarchon.SlackBuild b/games/xarchon/xarchon.SlackBuild
new file mode 100644
index 000000000000..c8f3c27bb9f5
--- /dev/null
+++ b/games/xarchon/xarchon.SlackBuild
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+# Slackware build script for xarchon
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# note: xarchon plays Archon and Archon II: Adept. I can't tell if the
+# Adept game is complete or correct, because I never could understand
+# how to play it, even as a video-game-obsessed kid in the 1980s.
+
+PRGNAM=xarchon
+VERSION=${VERSION:-0.60}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+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 {} \;
+
+# hammer old C++ code into building on gcc-5.3, plus autoconf fixes
+# to get qt3 detected & linked properly.
+patch -p1 < $CWD/patches/compilefix.diff
+
+# theoretically xarchon can be built with gtk+-1.x, but it requires an
+# ancient gtk1-compatible version of glade... plus the gtk1 stuff won't
+# compile under gcc-5.3. went through the trouble of patching the qt UI,
+# so we don't bother with gtk1.
+patch -p1 < $CWD/patches/remove_gtk.diff
+
+# stop the GUI from getting stuck in Configure Players, when no joysticks
+# are plugged in. Without the patch, it continually complains "Joystick
+# not available" and won't allow saving the settings, even if joystick
+# control isn't selected. With the patch, it still complains, but only
+# once (per human player), then it saves the settings and exits Configure
+# Players correctly.
+patch -p1 < $CWD/patches/joystick.diff
+
+# remove "Select Theme" from the menu. it's unimplemented, plus there
+# aren't any themes to choose (just the default one).
+patch -p1 < $CWD/patches/remove_theme_option.diff
+
+# add warning to the man page about the GUI section being outdated,
+# remove mention of selecting themes.
+patch -p1 < $CWD/patches/manpage.diff
+
+# configure script is from 2002, no thank you.
+rm -f configure
+autoreconf -if
+
+# don't rely on /etc/profile.d/qt.sh being executable.
+export QTDIR=/opt/kde3/lib64/qt3
+export PATH=$QTDIR/bin:$PATH
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -fpermissive" \
+./configure \
+ --with-default-qt \
+ --prefix=/usr \
+ --bindir=/usr/games \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --datadir=/usr/share/games/ \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --build=$ARCH-slackware-linux
+
+make
+make install-strip DESTDIR=$PKG
+gzip -9 $PKG/usr/man/man6/$PRGNAM.6
+
+# default to mouse control, not joystick. note that keyboard control is
+# always active, regardless of this setting. also by default player 2
+# is the AI. this allows people to quickly fire up a single-player game
+# (the most common case) without going through the config menu. this
+# just changes the default; users can change it as desired.
+cat $CWD/$PRGNAM.default > $PKG/usr/share/games/$PRGNAM/$PRGNAM.default
+
+# .desktop written for this build.
+mkdir -p $PKG/usr/share/pixmaps $PKG/usr/share/applications
+ln -s ../games/$PRGNAM/icon.xpm $PKG/usr/share/pixmaps/$PRGNAM.xpm
+cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a AUTHORS COPYING ChangeLog NEWS README $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:-tgz}
diff --git a/games/xarchon/xarchon.default b/games/xarchon/xarchon.default
new file mode 100644
index 000000000000..3b5388e097ed
--- /dev/null
+++ b/games/xarchon/xarchon.default
@@ -0,0 +1,72 @@
+5
+Qt
+Qt-Left Qt-Right
+1
+6
+
+
+the-good-guy
+1
+0xFF09 0x77 0x78 0x61 0x64 0x71 0x7A 0x65 0x63
+0xFF0D 0xFF52 0xFF54 0xFF51 0xFF53 0xFF50 0xFF57 0xFF55 0xFF56
+-1
+
+easy 0
+
+no.host 9999
+
+
+the-easy-bad-guy
+2
+0xFF09 0x77 0x78 0x61 0x64 0x71 0x7A 0x65 0x63
+0xFF0D 0xFF52 0xFF54 0xFF51 0xFF53 0xFF50 0xFF57 0xFF55 0xFF56
+-1
+
+easy 1
+
+no.host 9999
+
+
+the-hard-bad-guy
+2
+0xFF09 0x77 0x78 0x61 0x64 0x71 0x7A 0x65 0x63
+0xFF0D 0xFF52 0xFF54 0xFF51 0xFF53 0xFF50 0xFF57 0xFF55 0xFF56
+-1
+
+hard 0
+
+no.host 9999
+
+
+network-player
+3
+0x2D 0x67 0x75 0x79 0x0 0x7A59 0x0 0x0 0x0
+0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
+-1
+
+easy 0
+
+address.of.network.player 25336
+
+
+Qt-Left
+1
+0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
+0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
+5
+
+easy 0
+
+ 0
+
+
+Qt-Right
+2
+0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
+0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
+0
+
+easy 0
+
+ 0
+
diff --git a/games/xarchon/xarchon.desktop b/games/xarchon/xarchon.desktop
new file mode 100644
index 000000000000..6063650580bc
--- /dev/null
+++ b/games/xarchon/xarchon.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=xarchon
+Comment=Classic Fantasy Chess Game
+Exec=xarchon
+Icon=xarchon
+Terminal=false
+Type=Application
+Categories=Game;BoardGame;
diff --git a/games/xarchon/xarchon.info b/games/xarchon/xarchon.info
new file mode 100644
index 000000000000..b3fc70256958
--- /dev/null
+++ b/games/xarchon/xarchon.info
@@ -0,0 +1,10 @@
+PRGNAM="xarchon"
+VERSION="0.60"
+HOMEPAGE="http://xarchon.seul.org/"
+DOWNLOAD="http://xarchon.seul.org/xarchon-0.60.tar.gz"
+MD5SUM="d7f3fc32b2ddbbfb8578a3366400c5c6"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="qt3"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"