mirror of
https://git.zap.org.au/git/trader.git
synced 2025-02-02 15:08:13 -05:00
Convert all text files to reStructuredText (ReST) format
The reStructuredText (ReST) format is still quite readable as raw text, and is much more capable than the myriad all-slightly-incompatible variants of Markdown.
This commit is contained in:
parent
34eadca382
commit
9414aa7ad6
458
INSTALL
458
INSTALL
@ -1,160 +1,161 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
Star Traders is written in the C99 programming language and uses Autoconf
|
||||
and Automake to handle compilation and installation. Assuming you have
|
||||
the needed tools, all you should need to do is run the following commands
|
||||
from the source directory:
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
Star Traders is written in the C99 programming language and uses Autoconf
|
||||
and Automake to handle compilation and installation. Assuming you have
|
||||
the needed tools, all you should need to do is run the following commands
|
||||
from the source directory::
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
The first two commands may be run as an ordinary user; the last may need
|
||||
The first two commands may be run as an ordinary user; the last may need
|
||||
to be done as the system administrator (root).
|
||||
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Prerequisites
|
||||
=============
|
||||
|
||||
Star Traders requires the following components for successful compilation
|
||||
Star Traders requires the following components for successful compilation
|
||||
and installation:
|
||||
|
||||
1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as
|
||||
C99). Any recent version of the GNU Compiler Collection (GCC) or the
|
||||
1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as
|
||||
C99). Any recent version of the GNU Compiler Collection (GCC) or the
|
||||
Clang LLVM Compiler is more than adequate.
|
||||
|
||||
2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX)
|
||||
or to the Open Group Single UNIX Specification version 4 or later. In
|
||||
short, any modern Unix or Unix-like system like Linux almost certainly
|
||||
qualifies.
|
||||
2. An operating system ideally conforming to ISO/IEC 9945-1:2008 (POSIX)
|
||||
or to the Open Group Single UNIX Specification version 4 or later.
|
||||
In short, any modern Unix or Unix-like system like Linux almost
|
||||
certainly qualifies.
|
||||
|
||||
In actual fact, Star Traders uses the GNU Portability Library, so many
|
||||
older systems may also work without modification.
|
||||
In actual fact, Star Traders uses the GNU Portability Library, so
|
||||
many older systems may also work without modification.
|
||||
|
||||
3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses
|
||||
is preferred over system-native libraries, if present. Locales with
|
||||
multibyte character sequences (such as UTF-8) require a wide-character
|
||||
version of Curses, such as NcursesW, to work correctly.
|
||||
3. A working X/Open Curses-compatible library, such as Ncurses. Ncurses
|
||||
is preferred over system-native libraries, if present. Locales with
|
||||
multibyte character sequences (such as UTF-8) require a
|
||||
wide-character version of Curses, such as NcursesW, to work
|
||||
correctly.
|
||||
|
||||
4. The GNU Gettext library, version 0.19.8 or later, to allow the game to
|
||||
use languages other than English; this is also called Native Language
|
||||
Support. If you do not have this library (and do not wish to install
|
||||
it), you may pass "--disable-nls" to the configure script.
|
||||
4. The GNU Gettext library, version 0.19.8 or later, to allow the game
|
||||
to use languages other than English; this is also called Native
|
||||
Language Support. If you do not have this library (and do not wish
|
||||
to install it), you may pass ``--disable-nls`` to the configure
|
||||
script.
|
||||
|
||||
5. The GNU libiconv library for supporting multiple character encodings,
|
||||
if required by the GNU Gettext library. This is not needed on systems
|
||||
with the GNU C Library (glibc) version 2.2 or later, or on Mac OS X
|
||||
(now called macOS) 10.3 or newer.
|
||||
5. The GNU ``libiconv`` library for supporting multiple character
|
||||
encodings, if required by the GNU Gettext library. This is not
|
||||
needed on systems with the GNU C Library (``glibc``) version 2.2 or
|
||||
later, or on Mac OS X (now called macOS) 10.3 or newer.
|
||||
|
||||
6. Development libraries and header files for all of the above. On many
|
||||
systems, these files are part of XXX-dev or XXX-devel packages.
|
||||
6. Development libraries and header files for all of the above. On many
|
||||
systems, these files are part of ``XXX-dev`` or ``XXX-devel``
|
||||
packages.
|
||||
|
||||
7. The GNU Perfect Hash Function Generator, gperf. This utility program
|
||||
may be required for parts of the GNU Portability Library.
|
||||
7. The GNU Perfect Hash Function Generator, ``gperf``. This utility
|
||||
program may be required for parts of the GNU Portability Library.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
The installation of Star Traders can be broken down into three main steps:
|
||||
configuration, compilation and the installation proper.
|
||||
The installation of Star Traders can be broken down into three main
|
||||
steps: configuration, compilation and the installation proper.
|
||||
|
||||
The first step is configuring the package for your compiler and operating
|
||||
system environment. As Star Traders uses Autoconf and Automake, all you
|
||||
need to do in most cases is run "./configure" from the top-level directory
|
||||
of the Star Traders source tree. The configure script understands all of
|
||||
the usual Autoconf options; these are explained in detail in the Autoconf
|
||||
manual:
|
||||
The first step is configuring the package for your compiler and operating
|
||||
system environment. As Star Traders uses Autoconf and Automake, all you
|
||||
need to do in most cases is run ``./configure`` from the top-level
|
||||
directory of the Star Traders source tree. The configure script
|
||||
understands all of the usual Autoconf options; these are explained in
|
||||
detail in the `Autoconf manual`__.
|
||||
|
||||
https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
||||
__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
||||
|
||||
This version of the configure script understands the following additional
|
||||
This version of the configure script understands the following additional
|
||||
command line options:
|
||||
|
||||
--disable-nls
|
||||
Don't use Native Language Support. Star Traders will only
|
||||
show untranslated US English text and only accept US ASCII
|
||||
keyboard input.
|
||||
|
||||
Don’t use Native Language Support. Star Traders will only
|
||||
show untranslated US English text and only accept US ASCII
|
||||
keyboard input.
|
||||
--with-libintl-prefix=DIR
|
||||
Find the GNU Gettext library installed in the DIR/lib and
|
||||
DIR/include directories. This option is needed if your
|
||||
library is not installed in /usr/lib and /usr/include (or,
|
||||
more precisely, if the C compiler cannot find the library
|
||||
".so" or ".a" archive file using the standard "-l" command
|
||||
line parameter or the relevant header files using standard
|
||||
"#include" directives).
|
||||
|
||||
Find the GNU Gettext library installed in the *DIR*\ `/lib`
|
||||
and *DIR*\ `/include` directories. This option is needed if
|
||||
your library is not installed in `/usr/lib` and
|
||||
`/usr/include` (or, more precisely, if the C compiler cannot
|
||||
find the library “``.so``” or “``.a``” archive file using the
|
||||
standard “``-l``” command line parameter or the relevant
|
||||
header files using standard :code:`#include` directives).
|
||||
--with-libiconv-prefix=DIR
|
||||
Find the GNU libiconv library installed in the DIR/lib and
|
||||
DIR/include directories. This option is needed if the GNU
|
||||
Gettext library requires libiconv on your system, and that
|
||||
library is not installed in /usr/lib and /usr/include.
|
||||
|
||||
Find the GNU ``libiconv`` library installed in the *DIR*\
|
||||
`/lib` and *DIR*\ `/include` directories. This option is
|
||||
needed if the GNU Gettext library requires ``libiconv`` on
|
||||
your system, and that library is not installed in `/usr/lib`
|
||||
and `/usr/include`.
|
||||
--with-ncurses
|
||||
Force the use of Ncurses over the system's Curses library.
|
||||
In other words, do not search for a native Curses library
|
||||
at all.
|
||||
|
||||
Force the use of Ncurses over the system’s Curses library.
|
||||
In other words, do not search for a native Curses library at
|
||||
all.
|
||||
--with-ncursesw
|
||||
Force the use of the NcursesW library with wide-character
|
||||
support. If NcursesW cannot be found, abort the configure
|
||||
script.
|
||||
|
||||
Force the use of the NcursesW library with wide-character
|
||||
support. If NcursesW cannot be found, abort the
|
||||
``configure`` script.
|
||||
--without-ncursesw
|
||||
Don't use the NcursesW library. This will prevent non-8-
|
||||
bit character encodings like UTF-8 from working correctly
|
||||
and is thus not recommended.
|
||||
|
||||
Don’t use the NcursesW library. This will prevent non-8-bit
|
||||
character encodings like UTF-8 from working correctly and is
|
||||
thus not recommended.
|
||||
--without-ncurses
|
||||
Don't use the Ncurses library: use either NcursesW (unless
|
||||
"--without-ncursesw" is also specified) or the system's
|
||||
normal Curses library. This option is not recommended.
|
||||
|
||||
Don’t use the Ncurses library: use either NcursesW (unless
|
||||
``--without-ncursesw`` is also specified) or the system’s
|
||||
normal Curses library. This option is not recommended.
|
||||
--disable-assert
|
||||
Turn off all debugging assert() statements.
|
||||
Turn off all debugging :code:`assert()` statements.
|
||||
|
||||
By default, configure uses "/usr/local" as the top-level (prefix) install
|
||||
directory. You can change this by specifying "--prefix=DIR" to use DIR
|
||||
instead. For example, you can use a directory in your own home directory
|
||||
by specifying something like:
|
||||
By default, ``configure`` uses `/usr/local` as the top-level (prefix)
|
||||
install directory. You can change this by specifying ``--prefix=``\
|
||||
*DIR* to use *DIR* instead. For example, you can use a directory in your
|
||||
own home directory by specifying something like::
|
||||
|
||||
./configure --prefix=$HOME/opt/trader
|
||||
|
||||
You may also specify certain configuration and/or compilation variables on
|
||||
the command line to override choices made by configure. For example, you
|
||||
can specify the compiler flags to use by passing the CFLAGS variable:
|
||||
You may also specify certain configuration and/or compilation variables
|
||||
on the command line to override choices made by ``configure``. For
|
||||
example, you can specify the compiler flags to use by passing the
|
||||
``CFLAGS`` variable::
|
||||
|
||||
./configure CFLAGS="-g -O2 -Wall"
|
||||
|
||||
The configure script has many other options. You may obtain a list of
|
||||
these by running:
|
||||
The ``configure`` script has many other options. You may obtain a list
|
||||
of these by running::
|
||||
|
||||
./configure --help
|
||||
|
||||
You can also run configure in a separate build-only directory tree. This
|
||||
feature requires GNU Make and allows you to keep the source code tree from
|
||||
being modified by the compilation process. To use this option, create a
|
||||
separate build directory, then run configure. For example, if you placed
|
||||
the Star Traders source code tree in $HOME/src/trader-7.13, you could run
|
||||
something like:
|
||||
You can also run ``configure`` in a separate build-only directory tree.
|
||||
This feature requires GNU Make and allows you to keep the source code
|
||||
tree from being modified by the compilation process. To use this option,
|
||||
create a separate `build` directory, then run ``configure``. For
|
||||
example, if you placed the Star Traders source code tree in
|
||||
`$HOME/src/trader-7.13`, you could run something like::
|
||||
|
||||
mkdir $HOME/build/trader-build-7.13
|
||||
cd $HOME/build/trader-build-7.13
|
||||
$HOME/src/trader-7.13/configure
|
||||
|
||||
Once again, the Autoconf manual describes these options (and many others):
|
||||
Once again, the `Autoconf manual`__ describes these options (and many
|
||||
others).
|
||||
|
||||
https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
||||
__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
||||
|
||||
Once the package has been configured, you can type "make" to compile it,
|
||||
then "make install" to install it. You can specify the following command
|
||||
lines, amongst others:
|
||||
Once the package has been configured, you can type ``make`` to compile
|
||||
it, then ``make install`` to install it. You can specify the following
|
||||
command lines, amongst others::
|
||||
|
||||
make all
|
||||
make install
|
||||
@ -162,84 +163,88 @@ lines, amongst others:
|
||||
make distclean
|
||||
make uninstall
|
||||
|
||||
The command "make all" does the same thing as running "make" by itself:
|
||||
compile the package source code into an executable.
|
||||
The command ``make all`` does the same thing as running ``make`` by
|
||||
itself: compile the package source code into an executable.
|
||||
|
||||
Running "make install" copies the executable program and all associated
|
||||
data and documentation files to those directories specified during
|
||||
configuration. If any of these directories require system administrator
|
||||
access privileges for writing, you will need to run "make install" as
|
||||
Running ``make install`` copies the executable program and all associated
|
||||
data and documentation files to those directories specified during
|
||||
configuration. If any of these directories require system administrator
|
||||
access privileges for writing, you will need to run ``make install`` as
|
||||
system administrator (root).
|
||||
|
||||
If you like, you can specify the DESTDIR variable to copy all installation
|
||||
files to a temporary location before installing them later. For example,
|
||||
if the prefix directory is "/usr/local", typing:
|
||||
.. compound::
|
||||
|
||||
make install DESTDIR=/tmp/trader-install
|
||||
If you like, you can specify the ``DESTDIR`` variable to copy all
|
||||
installation files to a temporary location before installing them
|
||||
later. For example, if the prefix directory is `/usr/local`, typing::
|
||||
|
||||
will copy the final program "trader" to /tmp/trader-install/usr/local/bin,
|
||||
the manual page to /tmp/trader-install/usr/local/share/man/man6 and so on.
|
||||
make install DESTDIR=/tmp/trader-install
|
||||
|
||||
The "make clean" command will remove most build-generated files, such as
|
||||
object files generated by the compiler, from the source code or build
|
||||
directory. Running "make distclean" will do the same, but will remove the
|
||||
Makefiles generated by configure as well. In other words, if you run
|
||||
"make distclean", you will need to rerun "configure" if you would like to
|
||||
recompile Star Traders at a later date.
|
||||
will copy the final program ``trader`` to
|
||||
`/tmp/trader-install/usr/local/bin`, the manual page to
|
||||
`/tmp/trader-install/usr/local/share/man/man6` and so on.
|
||||
|
||||
Finally, "make uninstall" will remove the executable program "trader" and
|
||||
associated data and documentation files from their final installation
|
||||
location. This assumes, of course, that you have NOT run "make distclean"
|
||||
to remove the Makefiles that know the path to which those files were
|
||||
installed!
|
||||
The ``make clean`` command will remove most build-generated files, such
|
||||
as object files generated by the compiler, from the source code or build
|
||||
directory. Running ``make distclean`` will do the same, but will remove
|
||||
the Makefiles generated by ``configure`` as well. In other words, if you
|
||||
run ``make distclean``, you will need to rerun ``configure`` if you would
|
||||
like to recompile Star Traders at a later date.
|
||||
|
||||
Finally, ``make uninstall`` will remove the executable program ``trader``
|
||||
and associated data and documentation files from their final installation
|
||||
location. This assumes, of course, that you have *not* run ``make
|
||||
distclean`` to remove the Makefiles that know the path to which those
|
||||
files were installed!
|
||||
|
||||
|
||||
Tested Systems
|
||||
==============
|
||||
|
||||
The following operating systems and compilers have been successfully test-
|
||||
ed with this version of Star Traders:
|
||||
The following operating systems and compilers have been successfully
|
||||
tested with this version of Star Traders:
|
||||
|
||||
+-------------------------+--------+-------+-------------------------+---+
|
||||
| Linux distribution | Arch | Glibc | Compiler | N |
|
||||
+-------------------------+--------+-------+-------------------------+---+
|
||||
| Debian GNU/Linux Sid | x86_64 | 2.27 | GNU C Compiler 8.2.0 | |
|
||||
| Debian GNU/Linux Sid | i686 | 2.27 | GNU C Compiler 8.2.0 | |
|
||||
| Debian GNU/Linux 9.5 | x86_64 | 2.24 | GNU C Compiler 6.3.0 | |
|
||||
| Ubuntu 18.04 | x86_64 | 2.27 | GNU C Compiler 7.3.0 | |
|
||||
| Ubuntu 18.04 | x86_64 | 2.27 | Clang (LLVM) 6.0.0 | |
|
||||
| Ubuntu 18.04 | x86_64 | 2.27 | Portland PGI C/C++ 18.5 | |
|
||||
| Fedora 28 | x86_64 | 2.27 | GNU C Compiler 8.1.1 | |
|
||||
| CentOS 7.5 | x86_64 | 2.17 | GNU C Compiler 4.8.5 | |
|
||||
| CentOS 6.10 | x86_64 | 2.12 | GNU C Compiler 4.4.7 | |
|
||||
| CentOS 6.10 | x86_64 | 2.12 | Portland PGI C/C++ 18.3 | |
|
||||
| CentOS 6.9 | x86_64 | 2.12 | Intel C/C++ 18.0.3 | |
|
||||
| OpenSUSE Leap 15.0 | x86_64 | 2.26 | GNU C Compiler 7.3.1 | |
|
||||
+-------------------------+--------+-------+-------------------------+---+
|
||||
==================== ====== ===== ======================= =====
|
||||
Linux distribution Arch Glibc Compiler Notes
|
||||
==================== ====== ===== ======================= =====
|
||||
Debian GNU/Linux Sid x86_64 2.27 GNU C Compiler 8.2.0
|
||||
Debian GNU/Linux Sid i686 2.27 GNU C Compiler 8.2.0
|
||||
Debian GNU/Linux 9.5 x86_64 2.24 GNU C Compiler 6.3.0
|
||||
Ubuntu 18.04 x86_64 2.27 GNU C Compiler 7.3.0
|
||||
Ubuntu 18.04 x86_64 2.27 Clang (LLVM) 6.0.0
|
||||
Ubuntu 18.04 x86_64 2.27 Portland PGI C/C++ 18.5
|
||||
Fedora 28 x86_64 2.27 GNU C Compiler 8.1.1
|
||||
CentOS 7.5 x86_64 2.17 GNU C Compiler 4.8.5
|
||||
CentOS 6.10 x86_64 2.12 GNU C Compiler 4.4.7
|
||||
CentOS 6.10 x86_64 2.12 Portland PGI C/C++ 18.3
|
||||
CentOS 6.9 x86_64 2.12 Intel C/C++ 18.0.3
|
||||
OpenSUSE Leap 15.0 x86_64 2.26 GNU C Compiler 7.3.1
|
||||
==================== ====== ===== ======================= =====
|
||||
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
| Operating system | Arch | Compiler | N |
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
| FreeBSD 11.2 | x86_64 | Clang (LLVM) 6.0.0 | 1 |
|
||||
| NetBSD 8.0 | x86_64 | GNU C Compiler 5.5.0 | 2 |
|
||||
| macOS 10.13 | x86_64 | Apple Clang (LLVM) 9.1.0 | 3 |
|
||||
| Solaris 11.3 (x86_64) | i386 | GNU C Compiler 4.8.2 | |
|
||||
| Solaris 11.3 (x86_64) | x86_64 | GNU C Compiler 4.8.2 | 4 |
|
||||
| Solaris 11.3 (x86_64) | i386 | Oracle Developer Studio 12.6 | 5 |
|
||||
| Solaris 11.3 (x86_64) | x86_64 | Oracle Developer Studio 12.6 | 6 |
|
||||
| Cygwin 2.10.0 (Win7SP1) | i686 | GNU C Compiler 7.3.0 | |
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
======================= ====== ============================ ============
|
||||
Operating system Arch Compiler Notes
|
||||
======================= ====== ============================ ============
|
||||
FreeBSD 11.2 x86_64 Clang (LLVM) 6.0.0 [#freebsd1]_
|
||||
NetBSD 8.0 x86_64 GNU C Compiler 5.5.0 [#netbsd1]_
|
||||
macOS 10.13 x86_64 Apple Clang (LLVM) 9.1.0 [#macos1]_
|
||||
Solaris 11.3 (x86_64) i386 GNU C Compiler 4.8.2
|
||||
Solaris 11.3 (x86_64) x86_64 GNU C Compiler 4.8.2 [#solaris1]_
|
||||
Solaris 11.3 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris2]_
|
||||
Solaris 11.3 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_
|
||||
Cygwin 2.10.0 (Win7SP1) i686 GNU C Compiler 7.3.0
|
||||
======================= ====== ============================ ============
|
||||
|
||||
Notes:
|
||||
|
||||
1. FreeBSD with the gettext, gettext-runtime, gettext-tools and libiconv
|
||||
binary packages installed with "pkg", using:
|
||||
.. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``,
|
||||
``gettext-tools`` and ``libiconv`` binary packages installed with
|
||||
``pkg``\(1), using::
|
||||
|
||||
./configure --with-libiconv-prefix=/usr/local \
|
||||
--with-libintl-prefix=/usr/local
|
||||
|
||||
2. NetBSD with the gettext, libiconv and ncursesw packages installed with
|
||||
"pkg_add", using:
|
||||
.. [#netbsd1] NetBSD with the ``gettext``, ``libiconv`` and ``ncursesw``
|
||||
packages installed with ``pkg_add``\(1), using::
|
||||
|
||||
./configure --with-libiconv-prefix=/usr/pkg \
|
||||
--with-libintl-prefix=/usr/pkg \
|
||||
@ -247,121 +252,130 @@ Notes:
|
||||
CURSES_CFLAGS=-I/usr/pkg/include \
|
||||
LDFLAGS=-L/usr/pkg/lib
|
||||
|
||||
3. macOS with the gettext package installed with Homebrew, using:
|
||||
.. [#macos1] macOS with the ``gettext`` package installed with Homebrew,
|
||||
using::
|
||||
|
||||
./configure --with-libintl-prefix=/usr/local/opt/gettext
|
||||
|
||||
4. Using "./configure CC='gcc -m64'" for 64-bit user-space.
|
||||
5. Using "./configure CC='/opt/developerstudio12.6/bin/cc'".
|
||||
6. Using "./configure CC='/opt/developerstudio12.6/bin/cc -m64'".
|
||||
.. [#solaris1] Using ``./configure CC='gcc -m64'`` for 64-bit user-space.
|
||||
|
||||
The following systems are known not to work at the current time; this list
|
||||
is almost certainly not exhaustive:
|
||||
.. [#solaris2] Using ``./configure CC='/opt/developerstudio12.6/bin/cc'``.
|
||||
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
| Operating system | Arch | Compiler | N |
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
| OpenBSD 6.3 | x86_64 | GNU C Compiler 4.2.1 | 1 |
|
||||
| OpenBSD 6.3 | x86_64 | Clang (LLVM) 5.0.1 | 1 |
|
||||
+-------------------------+--------+---------------------------------+---+
|
||||
.. [#solaris3] Using ``./configure CC='/opt/developerstudio12.6/bin/cc
|
||||
-m64'``.
|
||||
|
||||
The following systems are known *not* to work at the current time; this
|
||||
list is almost certainly not exhaustive:
|
||||
|
||||
================ ====== ==================== ============
|
||||
Operating system Arch Compiler Notes
|
||||
================ ====== ==================== ============
|
||||
OpenBSD 6.3 x86_64 GNU C Compiler 4.2.1 [#openbsd1]_
|
||||
OpenBSD 6.3 x86_64 Clang (LLVM) 5.0.1 [#openbsd1]_
|
||||
================ ====== ==================== ============
|
||||
|
||||
Notes:
|
||||
|
||||
1. The OpenBSD C library does not include <monetary.h> nor its associated
|
||||
functions, particularly strfmon().
|
||||
.. [#openbsd1] The OpenBSD C library does not include
|
||||
:code:`<monetary.h>` nor its associated functions, particularly
|
||||
:code:`strfmon()`.
|
||||
|
||||
|
||||
Git Repository
|
||||
==============
|
||||
|
||||
You can always download the latest version of Star Traders directly from
|
||||
the Git repository on the ZAP Group server:
|
||||
You can always download the latest version of Star Traders directly from
|
||||
the Git repository on the ZAP Group server::
|
||||
|
||||
git clone git://git.zap.org.au/data/git/trader.git
|
||||
|
||||
Released versions of Star Traders include all scripts and files needed for
|
||||
installation. If you are cloning the source code from the Git repository,
|
||||
however, you will need to update these files yourself. You will need the
|
||||
following additional tools installed on your system to do so:
|
||||
Released versions of Star Traders include all scripts and files needed
|
||||
for installation. If you are cloning the source code from the Git
|
||||
repository, however, you will need to update these files yourself. You
|
||||
will need the following additional tools installed on your system to do
|
||||
so:
|
||||
|
||||
1. Autoconf v2.69 or later (https://www.gnu.org/software/autoconf/)
|
||||
2. Automake v1.15 or later (https://www.gnu.org/software/automake/)
|
||||
3. pkg-config v0.9.0 or later (https://pkg-config.freedesktop.org/)
|
||||
4. GNU Portability Library (https://www.gnu.org/software/gnulib/)
|
||||
1. `Autoconf`__ v2.69 or later
|
||||
2. `Automake`__ v1.15 or later
|
||||
3. `pkg-config`__ v0.9.0 or later
|
||||
4. `GNU Portability Library`__
|
||||
|
||||
The GNU Portability Library may be installed by retrieving the latest
|
||||
Gnulib source code from the Git repository:
|
||||
__ https://www.gnu.org/software/autoconf/
|
||||
__ https://www.gnu.org/software/automake/
|
||||
__ https://pkg-config.freedesktop.org/
|
||||
__ https://www.gnu.org/software/gnulib/
|
||||
|
||||
The GNU Portability Library may be installed by retrieving the latest
|
||||
Gnulib source code from the Git repository::
|
||||
|
||||
git clone git://git.savannah.gnu.org/gnulib.git
|
||||
|
||||
Once you have these tools, change to the Star Traders source code tree and
|
||||
type:
|
||||
Once you have these tools, change to the Star Traders source code tree
|
||||
and type::
|
||||
|
||||
PATH=${PATH}:/path/to/gnulib-tool ./build-aux/bootstrap
|
||||
|
||||
where "/path/to/gnulib-tool" is, of course, the directory containing the
|
||||
Gnulib "gnulib-tool" script. You should be ready to run "./configure &&
|
||||
make && make install" now.
|
||||
where ``/path/to/gnulib-tool`` is, of course, the directory containing
|
||||
the Gnulib ``gnulib-tool`` script. You should be ready to run
|
||||
``./configure && make && make install`` now.
|
||||
|
||||
|
||||
For Translators
|
||||
===============
|
||||
|
||||
Thank you for even considering to translate Star Traders into your native
|
||||
language! You may use either a released version of Star Traders, or an
|
||||
unreleased one, as discussed in the Git Repository section above. In
|
||||
Thank you for even considering to translate Star Traders into your native
|
||||
language! You may use either a released version of Star Traders, or an
|
||||
unreleased one, as discussed in the Git Repository section above. In
|
||||
either case, you may find the following workflow useful.
|
||||
|
||||
First, run "./build-aux/bootstrap" if needed (only for unreleased versions
|
||||
of Star Traders).
|
||||
First, run ``./build-aux/bootstrap`` if needed (only for unreleased
|
||||
versions of Star Traders).
|
||||
|
||||
Next, configure and install Star Traders into your home directory:
|
||||
Next, configure and install Star Traders into your home directory::
|
||||
|
||||
./configure --prefix=$HOME/opt/trader
|
||||
make
|
||||
make install
|
||||
|
||||
If you are adding a new translation, add its GNU Gettext language code to
|
||||
the file po/LINGUAS, then create the template file for that language ("zz"
|
||||
is used here):
|
||||
If you are adding a new translation, add its GNU Gettext language code to
|
||||
the file `po/LINGUAS`, then create the template file for that language
|
||||
(“``zz``” is used here)::
|
||||
|
||||
(cd po; msginit --locale=zz --width=132)
|
||||
|
||||
Now, modify the PO file for your language using your favourite editor or
|
||||
translation tool. Please note that the generated PO file has extensive
|
||||
documentation in its translator comments. If anything is unclear, please
|
||||
feel free to ask the author and maintainer; contact details are available
|
||||
in the README file.
|
||||
Now, modify the PO file for your language using your favourite editor or
|
||||
translation tool. Please note that the generated PO file has extensive
|
||||
documentation in its translator comments. If anything is unclear, please
|
||||
feel free to ask the author and maintainer; contact details are available
|
||||
in the `README` file.
|
||||
|
||||
To test your PO file, compile and run Star Traders (replace "zz" with your
|
||||
language code, of course):
|
||||
To test your PO file, compile and run Star Traders (replace “``zz``” with
|
||||
your language code, of course)::
|
||||
|
||||
make && make -C po zz.gmo && make install
|
||||
LANGUAGE=zz $HOME/opt/trader/bin/trader
|
||||
|
||||
The "make -C po zz.gmo" forces the rebuilding of the GMO output file; the
|
||||
"LANGUAGE=zz" parameter sets the language of the messages to use.
|
||||
The ``make -C po zz.gmo`` forces the rebuilding of the GMO output file;
|
||||
the ``LANGUAGE=zz`` parameter sets the language of the messages to use.
|
||||
|
||||
This process of editing and testing the PO file can be done iteratively,
|
||||
of course: make a change, recompile, run the program to see the changes,
|
||||
This process of editing and testing the PO file can be done iteratively,
|
||||
of course: make a change, recompile, run the program to see the changes,
|
||||
repeat as needed.
|
||||
|
||||
Once you have finished your translation, please submit the PO file to the
|
||||
Translation Project. The relevant web page for Star Traders is:
|
||||
Once you have finished your translation, please submit the PO file to the
|
||||
Translation Project (TP). See the `TP Star Traders`__ web page or read
|
||||
their `Translators and the TP`__ page for additional information.
|
||||
|
||||
https://translationproject.org/domain/trader.html
|
||||
__ https://translationproject.org/domain/trader.html
|
||||
__ https://translationproject.org/html/translators.html
|
||||
|
||||
More information for translators is available at:
|
||||
|
||||
https://translationproject.org/html/translators.html
|
||||
|
||||
To clean up your install directory, simply run:
|
||||
To clean up your install directory, simply run::
|
||||
|
||||
rm -fr $HOME/opt/trader
|
||||
|
||||
By the way, as mentioned in the translator comments, formatting the help
|
||||
text is probably the most complicated and tedious part of translating Star
|
||||
Traders. The author and maintainer of this game is more than happy to
|
||||
help you with this task: if you are able to provide a translation, even if
|
||||
it is not formatted correctly, the maintainer will perform the necessary
|
||||
adjustments for word-wrapping and justification.
|
||||
By the way, as mentioned in the translator comments, formatting the help
|
||||
text is probably the most complicated and tedious part of translating
|
||||
Star Traders. The author and maintainer of this game is more than happy
|
||||
to help you with this task: if you are able to provide a translation,
|
||||
even if it is not formatted correctly, the maintainer will perform the
|
||||
necessary adjustments for word-wrapping and justification.
|
||||
|
316
NEWS
316
NEWS
@ -1,40 +1,50 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
Star Traders is a simple game of interstellar trading, where the objective
|
||||
is to create companies, buy and sell shares, borrow and repay money, in
|
||||
order to become the wealthiest player (the winner).
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
The following history is presented in reverse chronological order. If you
|
||||
would like to see a list of detailed changes to this project, you should
|
||||
browse the Git repository on The ZAP Group web server at the following
|
||||
location: https://www.zap.org.au/cgit/trader.git
|
||||
Star Traders is a simple game of interstellar trading, where the
|
||||
objective is to create companies, buy and sell shares, borrow and repay
|
||||
money, in order to become the wealthiest player (the winner).
|
||||
|
||||
The following history is presented in reverse chronological order. If
|
||||
you would like to see a list of detailed changes to this project, you
|
||||
should browse the `Star Traders Git repository`__ on `The ZAP Group web
|
||||
server`__.
|
||||
|
||||
__ https://www.zap.org.au/cgit/trader.git
|
||||
__ https://www.zap.org.au/
|
||||
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Version 7.13 (not yet released)
|
||||
-------------------------------
|
||||
|
||||
Modified the code to work more reliably on non-GNU C Library (glibc) plat-
|
||||
forms, particularly FreeBSD, Solaris and Cygwin, when using the standard
|
||||
POSIX locale. Extensively tested the build procedure on multiple operat-
|
||||
ing systems and compilers, and submitted code upstream to the Autoconf
|
||||
Archive project to make this work more robustly. Listed tested operating
|
||||
system and compiler combinations in the INSTALL file.
|
||||
Converted all text files to reStructuredText (ReST) format. This format
|
||||
is still quite readable as raw text, and is much more capable than the
|
||||
myriad all-slightly-incompatible variants of Markdown.
|
||||
|
||||
Added the Spanish translation, with thanks to Francisco Javier Serrador.
|
||||
Modified the source code to work more reliably on non-GNU C Library
|
||||
(``glibc``) platforms, particularly FreeBSD, Solaris and Cygwin, when
|
||||
using the standard POSIX locale. Extensively tested the build procedure
|
||||
on multiple operating systems and compilers, and submitted code upstream
|
||||
to the Autoconf Archive project to make this work more robustly. Listed
|
||||
tested operating system and compiler combinations in the `INSTALL` file.
|
||||
|
||||
Added the Spanish translation, with thanks to Francisco Javier Serrador.
|
||||
Updated the Esperanto translation, with thanks to Felipe Castro.
|
||||
|
||||
Updated one string in the game for consistency with other labels; updated
|
||||
all PO translations to suit. Also added strings from obsolete versions of
|
||||
the GNU C Library so that Star Traders can provide translations for them.
|
||||
Updated one string in the game for consistency with other labels; updated
|
||||
all PO translations to suit. Also added strings from obsolete versions
|
||||
of the GNU C Library so that Star Traders can provide translations for
|
||||
them.
|
||||
|
||||
Updated to the latest snapshot of the Gnulib GNU Portability Library. In
|
||||
addition, updated the list of prerequisites in the INSTALL file and listed
|
||||
some more command line options for the configure script.
|
||||
Updated to the latest snapshot of the Gnulib GNU Portability Library. In
|
||||
addition, updated the list of prerequisites in the `INSTALL` file and
|
||||
listed some more command line options for the ``configure`` script.
|
||||
|
||||
|
||||
Version 7.12 (24th August, 2017)
|
||||
@ -46,40 +56,44 @@ Updated the Serbian translation, with thanks to Мирослав Николић.
|
||||
Version 7.11 (18th June, 2017)
|
||||
------------------------------
|
||||
|
||||
Bug fix: some architectures (such as ARM, PowerPC and S390) treat "char"
|
||||
as "unsigned char", and this caused b64decode() to fail while loading a
|
||||
saved game. Changed the relevant type from "char" to "int" to fix this.
|
||||
Bug fix: some architectures (such as ARM, PowerPC and S390) treat
|
||||
:code:`char` as :code:`unsigned char`, and this caused
|
||||
:code:`b64decode()` to fail while loading a saved game. Changed the
|
||||
relevant type from :code:`char` to :code:`int` to fix this.
|
||||
|
||||
|
||||
Version 7.10 (2nd June, 2017)
|
||||
-----------------------------
|
||||
|
||||
Added a data directory that contains a desktop file and appropriate icons.
|
||||
Adjusted the game constants for more dynamic play: allow the share prices
|
||||
and returns to change a bit more frequently and more rapidly. Tweaked the
|
||||
colours in the example monochrome retro-computing command lines, including
|
||||
adding an amber monitor version.
|
||||
Added a `data` directory that contains a desktop file and appropriate
|
||||
icons. Adjusted the game constants for more dynamic play: allow the
|
||||
share prices and returns to change a bit more frequently and more
|
||||
rapidly. Tweaked the colours in the example monochrome retro-computing
|
||||
command lines, including adding an amber monitor version.
|
||||
|
||||
Added a Serbian translation, with thanks to Мирослав Николић. Updated the
|
||||
Danish, French, Swedish, Hungarian, Norwegian Bokmål and German transla-
|
||||
tions, in that order, with thanks to Joe Hansen, Frédéric Marchal, Anders
|
||||
Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas respectively.
|
||||
Added a Serbian translation, with thanks to Мирослав Николић. Updated
|
||||
the Danish, French, Swedish, Hungarian, Norwegian Bokmål and German
|
||||
translations, in that order, with thanks to Joe Hansen, Frédéric Marchal,
|
||||
Anders Jonsson, Balázs Úr, Johnny A. Solbu and Philipp Thomas
|
||||
respectively.
|
||||
|
||||
Updated translatable strings to overcome a limitation of msgfmt(1): if a
|
||||
string starts or ends with a new-line character, its translation must do
|
||||
so as well. This has an impact on labels in particular. Also changed the
|
||||
help text string "Page N of M" to allow translations of the form "Of M
|
||||
pages, this is page N", and all quoted strings using the obsolete GNU form
|
||||
`like this' to 'this'. In addition, newer versions of lib/getopt.c have
|
||||
different strings. All translations have been updated as a result.
|
||||
Updated translatable strings to overcome a limitation of ``msgfmt``\(1):
|
||||
if a string starts or ends with a new-line character, its translation
|
||||
must do so as well. This has an impact on labels in particular. Also
|
||||
changed the help text string “Page *N* of *M*” to allow translations of
|
||||
the form “Of *M* pages, this is page *N*”, and all quoted strings using
|
||||
the obsolete GNU form ```like this'`` to ``'this'``. In addition, newer
|
||||
versions of `lib/getopt.c` have different strings. All translations have
|
||||
been updated as a result.
|
||||
|
||||
Removed the obsolete Gnulib gettext module and updated to the latest Git
|
||||
snapshot of Gnulib. Updated the dependency version numbers for Autoconf,
|
||||
Automake and Gettext. Also updated all macros from the Autoconf Archive.
|
||||
Removed the obsolete Gnulib ``gettext`` module and updated to the latest
|
||||
Git snapshot of Gnulib. Updated the dependency version numbers for
|
||||
Autoconf, Automake and Gettext. Also updated all macros from the
|
||||
Autoconf Archive.
|
||||
|
||||
Migrated the source code repository from Subversion to Git. Updated the
|
||||
documentation to suit, and also listed specific required version numbers
|
||||
for the Autoconf and Automake tools in the INSTALL file.
|
||||
Migrated the source code repository from Subversion to Git. Updated the
|
||||
documentation to suit, and also listed specific required version numbers
|
||||
for the Autoconf and Automake tools in the `INSTALL` file.
|
||||
|
||||
|
||||
Version 7.9 (5th January, 2016)
|
||||
@ -91,169 +105,171 @@ Updated the Danish translation, with thanks to Joe Hansen.
|
||||
Version 7.8 (10th September, 2015)
|
||||
----------------------------------
|
||||
|
||||
Changed the name of the seventh company from "Gemeni Inc" to "Gemini Inc":
|
||||
a spelling mistake that has been present since 1990! Special thanks to
|
||||
Anders Jonsson for pointing this out.
|
||||
Changed the name of the seventh company from “Gemeni Inc” to “Gemini
|
||||
Inc”: a spelling mistake that has been present since 1990! Special
|
||||
thanks to Anders Jonsson for pointing this out.
|
||||
|
||||
Added the Swedish translation, with thanks to Anders Jonsson. Minor code
|
||||
changes were made to accommodate this language. Incorporated changes made
|
||||
by the translators for German, French and Norwegian Bokmål, in that order,
|
||||
with thanks to Philipp Thomas, Frédéric Marchal and Johnny A. Solbu. Also
|
||||
updated all references to GNU Gettext to version 0.19.5.
|
||||
Added the Swedish translation, with thanks to Anders Jonsson. Minor code
|
||||
changes were made to accommodate this language. Incorporated changes
|
||||
made by the translators for German, French and Norwegian Bokmål, in that
|
||||
order, with thanks to Philipp Thomas, Frédéric Marchal and
|
||||
Johnny A. Solbu. Also updated all references to GNU Gettext to version
|
||||
0.19.5.
|
||||
|
||||
|
||||
Version 7.7 (18th August, 2015)
|
||||
-------------------------------
|
||||
|
||||
Added the Hungarian translation, with thanks to Balázs Úr. Minor code
|
||||
changes were made to accommodate this language. Also added documentation
|
||||
in the file INSTALL to translate Star Traders into another language.
|
||||
Added the Hungarian translation, with thanks to Balázs Úr. Minor code
|
||||
changes were made to accommodate this language. Also added documentation
|
||||
in the file `INSTALL` to translate Star Traders into another language.
|
||||
|
||||
|
||||
Version 7.6 (13th August, 2014)
|
||||
-------------------------------
|
||||
|
||||
A minor release to fix compilation bugs under Cygwin: the libiconv library
|
||||
must be listed AFTER the GNU Portability Library on that platform.
|
||||
A minor release to fix compilation bugs under Cygwin: the ``libiconv``
|
||||
library must be listed *after* the GNU Portability Library on that
|
||||
platform.
|
||||
|
||||
In addition, the minimum and maximum share return values were changed from
|
||||
-10% to -15% and 20% to 25% respectively. This gives more incentive to
|
||||
borrow money from the Interstellar Trading Bank, whose interest rate can
|
||||
reach a maximum of 20%.
|
||||
In addition, the minimum and maximum share return values were changed
|
||||
from -10% to -15% and 20% to 25% respectively. This gives more incentive
|
||||
to borrow money from the Interstellar Trading Bank, whose interest rate
|
||||
can reach a maximum of 20%.
|
||||
|
||||
|
||||
Version 7.5 (24th May, 2014)
|
||||
----------------------------
|
||||
|
||||
Rewrote the file input and output routines so that saved games are now
|
||||
stored in a much more reliable (scrambled) ASCII format. However, saved
|
||||
games from older versions will no longer load: the workaround is to start
|
||||
the older version of Star Traders with the "--dont-encrypt" command line
|
||||
option, load the relevant game and save it again straight away, change the
|
||||
second line in the game file from "File API 7.2" to "File API 7.5", then
|
||||
run the new version of Star Traders.
|
||||
Rewrote the file input and output routines so that saved games are now
|
||||
stored in a much more reliable (scrambled) ASCII format. However, saved
|
||||
games from older versions will no longer load: the workaround is to start
|
||||
the older version of Star Traders with the ``--dont-encrypt`` command
|
||||
line option, load the relevant game and save it again straight away,
|
||||
change the second line in the game file from “``File API 7.2``” to
|
||||
“``File API 7.5``”, then run the new version of Star Traders.
|
||||
|
||||
Added translations for Norwegian Bokmål, Danish and Esperanto (in that
|
||||
order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro.
|
||||
Updated auxiliary files to the latest versions available from the Gnulib
|
||||
Added translations for Norwegian Bokmål, Danish and Esperanto (in that
|
||||
order), with thanks to Johnny A. Solbu, Joe Hansen and Felipe Castro.
|
||||
Updated auxiliary files to the latest versions available from the Gnulib
|
||||
GNU Portability Library and the GNU Autoconf project.
|
||||
|
||||
|
||||
Version 7.4 (9th May, 2012)
|
||||
---------------------------
|
||||
|
||||
For the first time since the CP/M-80 version of Star Traders, the game
|
||||
algorithms have been carefully reviewed and revised. In particular,
|
||||
companies may now have negative returns, making players lose money on such
|
||||
shares. This may encourage players to use the "Sell shares" option at
|
||||
appropriate times... In addition, changes in share prices, returns and
|
||||
bank interest rates have been made much "smoother", less prone to wild
|
||||
variations. These new algorithms were first modelled using Gnuplot and
|
||||
For the first time since the CP/M-80 version of Star Traders, the game
|
||||
algorithms have been carefully reviewed and revised. In particular,
|
||||
companies may now have negative returns, making players lose money on
|
||||
such shares. This may encourage players to use the “Sell shares” option
|
||||
at appropriate times… In addition, changes in share prices, returns and
|
||||
bank interest rates have been made much “smoother”, less prone to wild
|
||||
variations. These new algorithms were first modelled using Gnuplot and
|
||||
Perl before being implemented in C.
|
||||
|
||||
The "configure" script now prints a prominent warning if a wide-character
|
||||
version of Curses, such as NcursesW, is not available when compiling the
|
||||
game. It is a warning and not an error as single-byte locales (such as
|
||||
US-ASCII and ISO8859-1) do not require NcursesW, even if the compilation
|
||||
environment itself is a multibyte one (such as UTF-8).
|
||||
The ``configure`` script now prints a prominent warning if a
|
||||
wide-character version of Curses, such as NcursesW, is not available when
|
||||
compiling the game. It is a warning and not an error as single-byte
|
||||
locales (such as US-ASCII and ISO8859-1) do not require NcursesW, even if
|
||||
the compilation environment itself is a multibyte one (such as UTF-8).
|
||||
|
||||
The Russian translation has been updated, with thanks to Vladimir Tsarkov
|
||||
and Pavel Maryanov. Translations for French, German, Finnish and Croatian
|
||||
have been added (in that order), with thanks to Frédéric Marchal, Philipp
|
||||
Thomas, Jorma Karvonen and Tomislav Krznar. Special thanks also to the
|
||||
Translation Project, which brings free (open-source) software developers
|
||||
and translators together.
|
||||
The Russian translation has been updated, with thanks to Vladimir Tsarkov
|
||||
and Pavel Maryanov. Translations for French, German, Finnish and
|
||||
Croatian have been added (in that order), with thanks to Frédéric
|
||||
Marchal, Philipp Thomas, Jorma Karvonen and Tomislav Krznar. Special
|
||||
thanks also to the Translation Project, which brings free (open-source)
|
||||
software developers and translators together.
|
||||
|
||||
|
||||
Version 7.3 (16th March, 2012)
|
||||
------------------------------
|
||||
|
||||
Star Traders has been translated into Russian. In addition, a number of
|
||||
bugs with internationalisation have been fixed. The "default value" key
|
||||
(originally "=" or ";" as the first key-press in any input field) has been
|
||||
incorporated into the language translation files.
|
||||
Star Traders has been translated into Russian. In addition, a number of
|
||||
bugs with internationalisation have been fixed. The “default value” key
|
||||
(originally “``=``” or “``;``” as the first key-press in any input field)
|
||||
has been incorporated into the language translation files.
|
||||
|
||||
|
||||
Version 7.2 (29th August, 2011)
|
||||
-------------------------------
|
||||
|
||||
Star Traders has been internationalised! As part of this update, all
|
||||
input and output routines have been rewritten to handle multibyte strings.
|
||||
English (Australian, British, Canadian and US) translations have been
|
||||
included. Translations for other languages (and corrections to existing
|
||||
languages) are more than welcome!
|
||||
Star Traders has been internationalised! As part of this update, all
|
||||
input and output routines have been rewritten to handle multibyte
|
||||
strings. English (Australian, British, Canadian and US) translations
|
||||
have been included. Translations for other languages (and corrections to
|
||||
existing languages) are more than welcome!
|
||||
|
||||
Game files are now stored in UTF-8 format (once decrypted!) and can be
|
||||
loaded under any locale with automatic character set translation. This
|
||||
does mean, however, that game files from versions 7.0 and 7.1 of Star
|
||||
Game files are now stored in UTF-8 format (once decrypted!) and can be
|
||||
loaded under any locale with automatic character set translation. This
|
||||
does mean, however, that game files from versions 7.0 and 7.1 of Star
|
||||
Traders will not load under this release.
|
||||
|
||||
The program now better handles terminal resizing events (for versions of
|
||||
Curses supporting such events). It also tries to restore the terminal
|
||||
The program now better handles terminal resizing events (for versions of
|
||||
Curses supporting such events). It also tries to restore the terminal
|
||||
environment correctly when receiving a terminating signal.
|
||||
|
||||
|
||||
Version 7.1 (29th July, 2011)
|
||||
-----------------------------
|
||||
|
||||
A minor updated release to fix configuration problems on some platforms.
|
||||
In particular, some systems could not find the Curses libraries or header
|
||||
files, so the Autoconf macro that performed the search was rewritten and
|
||||
A minor updated release to fix configuration problems on some platforms.
|
||||
In particular, some systems could not find the Curses libraries or header
|
||||
files, so the Autoconf macro that performed the search was rewritten and
|
||||
extended.
|
||||
|
||||
|
||||
Version 7.0 (25th July, 2011)
|
||||
-----------------------------
|
||||
|
||||
Released the first version of Star Traders for Unix-like operating systems
|
||||
such as Linux. It requires a text console or window of at least 80x24 in
|
||||
size. The code is written in the C99 programming language as a learning
|
||||
exercise for a number of software tools and libraries; the algorithms in
|
||||
the original Pascal and Visual Basic versions are reused for the game
|
||||
logic.
|
||||
Released the first version of Star Traders for Unix-like operating
|
||||
systems such as Linux. It requires a text console or window of at least
|
||||
80×24 in size. The code is written in the C99 programming language as a
|
||||
learning exercise for a number of software tools and libraries; the
|
||||
algorithms in the original Pascal and Visual Basic versions are reused
|
||||
for the game logic.
|
||||
|
||||
Note that versions 7.0 and 7.1 of Star Traders did NOT handle locales with
|
||||
multibyte character sequences (such as UTF-8) correctly. Each byte in a
|
||||
such a sequence was treated as a separate character. Eight-bit locales
|
||||
(such as US-ASCII, ISO8859-1, etc.) worked correctly.
|
||||
Note that versions 7.0 and 7.1 of Star Traders did *not* handle locales
|
||||
with multibyte character sequences (such as UTF-8) correctly. Each byte
|
||||
in a such a sequence was treated as a separate character. Eight-bit
|
||||
locales (such as US-ASCII, ISO8859-1, etc.) worked correctly.
|
||||
|
||||
|
||||
Early history
|
||||
-------------
|
||||
|
||||
The original (and very primitive) Star Traders game was written by S. J.
|
||||
Singer in 1984 using Altair Basic. This was modified for Microsoft Basic
|
||||
(MBASIC) running under the CP/M-80 operating system by John Zaitseff and
|
||||
The original (and very primitive) Star Traders game was written by S. J.
|
||||
Singer in 1984 using Altair Basic. This was modified for Microsoft Basic
|
||||
(MBASIC) running under the CP/M-80 operating system by John Zaitseff and
|
||||
released on 7th March, 1988.
|
||||
|
||||
Star Traders was then completely rewritten in 1990 for the Australian-
|
||||
designed 8-bit MicroBee computer running CP/M-80 on a Zilog Z80 processor,
|
||||
using Turbo Pascal 3.01a. Essentially, only the name of the game and some
|
||||
of the ideas were retained in this version. Version 4.1 of Star Traders
|
||||
was released on 1st August, 1991.
|
||||
Star Traders was then completely rewritten in 1990 for the
|
||||
Australian-designed 8-bit MicroBee computer running CP/M-80 on a Zilog
|
||||
Z80 processor, using Turbo Pascal 3.01a. Essentially, only the name of
|
||||
the game and some of the ideas were retained in this version. Version
|
||||
4.1 of Star Traders was released on 1st August, 1991.
|
||||
|
||||
In 1992, it was recompiled for the NEC Advanced Personal Computer (with
|
||||
8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo
|
||||
Pascal 2.0. This version had colour added to it in the form of ANSI
|
||||
In 1992, it was recompiled for the NEC Advanced Personal Computer (with
|
||||
8-inch floppy drives!) running CP/M-86 on an 8086 processor, using Turbo
|
||||
Pascal 2.0. This version had colour added to it in the form of ANSI
|
||||
escape sequences; version 4.4 was released on 2nd August, 1993.
|
||||
|
||||
The next version came in 1993, when the program was recompiled to run on
|
||||
IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0 was
|
||||
used for this. The ANSI escape sequences were slightly different under
|
||||
MS-DOS than under the NEC, in that the NEC supported a number of extra
|
||||
character attributes. In other words, the MS-DOS version looked worse
|
||||
than the one running under CP/M-86!
|
||||
The next version came in 1993, when the program was recompiled to run on
|
||||
IBM-compatible machines running MS-DOS and ANSI.SYS. Turbo Pascal 6.0
|
||||
was used for this. The ANSI escape sequences were slightly different
|
||||
under MS-DOS than under the NEC, in that the NEC supported a number of
|
||||
extra character attributes. In other words, the MS-DOS version looked
|
||||
worse than the one running under CP/M-86!
|
||||
|
||||
Star Traders was recompiled again in 1994 for IBM-compatible machines with
|
||||
VGA/EGA/CGA video graphics adapters. The output routines were recoded to
|
||||
use a "windowed" look. Borland Pascal 7.0 was used for this purpose,
|
||||
along with a number of text window manipulation modules. Version 5.4 was
|
||||
released on 1st June, 1994.
|
||||
Star Traders was recompiled again in 1994 for IBM-compatible machines
|
||||
with VGA/EGA/CGA video graphics adapters. The output routines were
|
||||
recoded to use a “windowed” look. Borland Pascal 7.0 was used for this
|
||||
purpose, along with a number of text window manipulation modules.
|
||||
Version 5.4 was released on 1st June, 1994.
|
||||
|
||||
In 1995, Star Traders was completely rewritten for the 16-bit Microsoft
|
||||
Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used
|
||||
for this purpose. Although completely rewritten, the original algorithms
|
||||
were reused from previous versions. Version 6.0 of the game was released
|
||||
In 1995, Star Traders was completely rewritten for the 16-bit Microsoft
|
||||
Windows 3.1 graphical environment. Microsoft Visual Basic 3.0 was used
|
||||
for this purpose. Although completely rewritten, the original algorithms
|
||||
were reused from previous versions. Version 6.0 of the game was released
|
||||
on 15th September, 1995.
|
||||
|
||||
Star Traders was then to languish until almost 16 years later...
|
||||
Star Traders was then to languish until almost 16 years later…
|
||||
|
86
README
86
README
@ -1,81 +1,79 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
Welcome to Star Traders! This is a simple game of interstellar trading,
|
||||
where the objective is to create companies, buy and sell shares, borrow
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
Welcome to Star Traders! This is a simple game of interstellar trading,
|
||||
where the objective is to create companies, buy and sell shares, borrow
|
||||
and repay money, in order to become the wealthiest player (the winner).
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Full instructions for installing Star Traders are contained in the file
|
||||
INSTALL. Please note that that file does NOT contain generic GNU Autoconf
|
||||
instructions! For the impatient, the short version is:
|
||||
Full instructions for installing Star Traders are contained in the file
|
||||
`INSTALL`. Please note that that file does *not* contain generic GNU
|
||||
Autoconf instructions! For the impatient, the short version is::
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
The final command needs to be run as the system administrator (root), of
|
||||
The final command needs to be run as the system administrator (root), of
|
||||
course.
|
||||
|
||||
|
||||
How to Play
|
||||
===========
|
||||
|
||||
Star Traders comes with quite extensive in-built instructions on how to
|
||||
play the game. Start by running "trader" from the command line. You will
|
||||
be prompted for the number of players; from one to eight people can play
|
||||
(although, in this version, they will all have to share the one keyboard
|
||||
and screen!). After entering the names of the players, you will have the
|
||||
opportunity to read instructions on how to play the game. Do so---and
|
||||
good luck in the game!
|
||||
Star Traders comes with quite extensive in-built instructions on how to
|
||||
play the game. Start by running ``trader`` from the command line. You
|
||||
will be prompted for the number of players; from one to eight people can
|
||||
play (although, in this version, they will all have to share the one
|
||||
keyboard and screen!). After entering the names of the players, you will
|
||||
have the opportunity to read instructions on how to play the game. Do
|
||||
so—and good luck in the game!
|
||||
|
||||
The manual page for Star Traders contains more information on command line
|
||||
options, as well as some suggestions for running a retro-computing green-
|
||||
screen nostalgia-tour version of the game... Try running the following,
|
||||
for example (all on one line):
|
||||
The manual page for Star Traders contains more information on command
|
||||
line options, as well as some suggestions for running a retro-computing
|
||||
green-screen nostalgia-tour version of the game… Try running the
|
||||
following, for example (all on one line)::
|
||||
|
||||
xterm -g 80x24 -fa Mono -fs 18 -bg '#181818' -fg '#2CAB00' -bc +sb \
|
||||
+bdc +fbx -xrm 'XTerm*colorBD: #41FF00' -e trader --no-colour &
|
||||
|
||||
To read the manual page, type "man trader" from the command line.
|
||||
To read the manual page, type ``man trader`` from the command line.
|
||||
|
||||
|
||||
Feedback
|
||||
========
|
||||
|
||||
Your comments, suggestions, corrections and enhancements are always warmly
|
||||
welcomed! Please send these to:
|
||||
Your comments, suggestions, corrections and enhancements are always
|
||||
warmly welcomed! Please send these to:
|
||||
|
||||
Postal: John Zaitseff,
|
||||
The ZAP Group,
|
||||
Unit 6, 116 Woodburn Road,
|
||||
Berala, NSW, 2141,
|
||||
Australia
|
||||
|
||||
E-mail: J.Zaitseff@zap.org.au
|
||||
Web: https://www.zap.org.au/software/trader/
|
||||
FTP: https://ftp.zap.org.au/pub/trader/
|
||||
ftp://ftp.zap.org.au/pub/trader/
|
||||
:Postal: | John Zaitseff,
|
||||
| The ZAP Group,
|
||||
| Unit 6, 116 Woodburn Road,
|
||||
| Berala, NSW, 2141,
|
||||
| Australia
|
||||
:Email: | J.Zaitseff@zap.org.au
|
||||
:Web: | https://www.zap.org.au/software/trader/
|
||||
:FTP: | https://ftp.zap.org.au/pub/trader/
|
||||
| ftp://ftp.zap.org.au/pub/trader/
|
||||
|
||||
|
||||
Copyright
|
||||
=========
|
||||
|
||||
Copyright (C) 1990-2019, John Zaitseff.
|
||||
**Copyright © 1990–2019, John Zaitseff.**
|
||||
|
||||
Star Traders is free software that is distributed under the terms of the
|
||||
GNU General Public License. You can redistribute it and/or modify it
|
||||
under the terms of that License as published by the Free Software
|
||||
Star Traders is free software that is distributed under the terms of the
|
||||
GNU General Public License. You can redistribute it and/or modify it
|
||||
under the terms of that License as published by the Free Software
|
||||
Foundation, either version 3 or (at your option) any later version.
|
||||
|
||||
This game is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in
|
||||
the file COPYING for more details.
|
||||
This game is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in
|
||||
the file `COPYING` for more details.
|
||||
|
@ -1,17 +1,16 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, build-aux, contains auxiliary build-related files for Star
|
||||
Traders. The following scripts are specific to this package:
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
bootstrap - Generate auxiliary files needed for building
|
||||
msgfmt-desktop - Use msgfmt(1) or cp(1) to copy desktop files
|
||||
This directory, `build-aux`, contains auxiliary build-related files for
|
||||
Star Traders. The following scripts are specific to this package:
|
||||
|
||||
All other files in this directory (other than this README file, of course)
|
||||
are generated by Autoconf, Automake or Gnulib. The bootstrap shell script
|
||||
generates these files by running those tools in the correct order; see the
|
||||
top-level INSTALL file for more details.
|
||||
* `bootstrap`: Generate auxiliary files needed for building
|
||||
* `msgfmt-desktop`: Use ``msgfmt``\(1) or ``cp``\(1) to copy desktop files
|
||||
|
||||
All other files in this directory (other than this `README` file, of
|
||||
course) are generated by Autoconf, Automake or Gnulib. The bootstrap
|
||||
shell script generates these files by running those tools in the correct
|
||||
order; see the top-level `INSTALL` file for more details.
|
||||
|
15
data/README
15
data/README
@ -1,9 +1,8 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, data, contains non-code data related to Star Traders. In
|
||||
particular, the desktop file and icons are located here.
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
This directory, `data`, contains non-code data related to Star Traders.
|
||||
In particular, the desktop file and icons are located here.
|
||||
|
16
doc/README
16
doc/README
@ -1,9 +1,9 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, doc, contains documentation related to Star Traders. In
|
||||
particular, the Unix manual page for the game is in the file "trader.6".
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
This directory, `doc`, contains documentation related to Star Traders.
|
||||
In particular, the Unix manual page for the game is in the file
|
||||
`trader.6`.
|
||||
|
31
lib/README
31
lib/README
@ -1,20 +1,23 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, lib, contains source code as generated by the Gnulib GNU
|
||||
Portability Library "gnulib-tool" script. See the project web site at
|
||||
https://www.gnu.org/software/gnulib/ for more information.
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
The following file is used by xopen-source.m4 to redefine _XOPEN_SOURCE
|
||||
appropriately. It is not part of the GNU Portability Library:
|
||||
This directory, `lib`, contains source code as generated by the `Gnulib
|
||||
GNU Portability Library`__ ``gnulib-tool`` script. See that project web
|
||||
site for more information.
|
||||
|
||||
xopen-source.h
|
||||
__ https://www.gnu.org/software/gnulib/
|
||||
|
||||
The following file provides translatable strings for obsolete versions of
|
||||
|
||||
The following file is used by `xopen-source.m4` to redefine
|
||||
``_XOPEN_SOURCE`` appropriately. It is not part of the GNU Portability
|
||||
Library:
|
||||
|
||||
* `xopen-source.h`
|
||||
|
||||
The following file provides translatable strings for obsolete versions of
|
||||
various libraries. It is not part of the GNU Portability Library:
|
||||
|
||||
obsolete-strings.c
|
||||
* `obsolete-strings.c`
|
||||
|
46
m4/README
46
m4/README
@ -1,28 +1,34 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
This directory, `m4`, contains M4 macros used by Autoconf.
|
||||
|
||||
This directory, m4, contains M4 macros used by Autoconf.
|
||||
|
||||
The following macro is custom-defined for Star Traders:
|
||||
|
||||
xopen-source.m4
|
||||
* `xopen-source.m4`
|
||||
|
||||
The following macros are from the Autoconf Archive project, as detailed on
|
||||
that project's web site, https://www.gnu.org/software/autoconf-archive/:
|
||||
|
||||
ax_c___attribute__.m4
|
||||
ax_cflags_warn_all.m4
|
||||
ax_compiler_vendor.m4
|
||||
ax_prepend_flag.m4
|
||||
ax_require_defined.m4
|
||||
ax_with_curses.m4
|
||||
The following macros are from the `Autoconf Archive project`__, as
|
||||
detailed on that project’s web site:
|
||||
|
||||
The following macro was generated by running the GNU Portability Library
|
||||
"gnulib-tool" with appropriate command line options, as detailed on that
|
||||
project's web site, https://www.gnu.org/software/gnulib/:
|
||||
* `ax_c___attribute__.m4`
|
||||
* `ax_cflags_warn_all.m4`
|
||||
* `ax_compiler_vendor.m4`
|
||||
* `ax_prepend_flag.m4`
|
||||
* `ax_require_defined.m4`
|
||||
* `ax_with_curses.m4`
|
||||
|
||||
gnulib-cache.m4
|
||||
__ https://www.gnu.org/software/autoconf-archive/
|
||||
|
||||
|
||||
The following macro was generated by running the `GNU Portability
|
||||
Library`__ ``gnulib-tool`` with appropriate command line options, as
|
||||
detailed on that project’s web site:
|
||||
|
||||
* `gnulib-cache.m4`
|
||||
|
||||
__ https://www.gnu.org/software/gnulib/
|
||||
|
17
po/README
17
po/README
@ -1,9 +1,10 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, po, contains translations for text strings used in Star
|
||||
Traders. The GNU Gettext project is used for this purpose.
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
This directory, `po`, contains translations for text strings used in Star
|
||||
Traders. The `GNU Gettext project`__ is used for this purpose.
|
||||
|
||||
__ https://www.gnu.org/software/gettext/
|
||||
|
35
src/README
35
src/README
@ -1,20 +1,19 @@
|
||||
**************************************************************************
|
||||
* *
|
||||
* Star Traders: A Game of Interstellar Trading *
|
||||
* Copyright (C) 1990-2019, John Zaitseff *
|
||||
* *
|
||||
**************************************************************************
|
||||
.. -*- mode: rst; coding: utf-8 -*-
|
||||
|
||||
This directory, src, contains the main source code for Star Traders. The
|
||||
source code is split up among the following files:
|
||||
============================================
|
||||
Star Traders: A Game of Interstellar Trading
|
||||
============================================
|
||||
|
||||
trader.c trader.h - Main program, command-line interface
|
||||
globals.c globals.h - Global game constants and variables
|
||||
game.c game.h - Game start, end and (some) display functions
|
||||
move.c move.h - Functions for making and processing a move
|
||||
exch.c exch.h - Stock Exchange and Bank functions
|
||||
fileio.c fileio.h - Load and save game file functions
|
||||
help.c help.h - Help text functions: how to play the game
|
||||
intf.c intf.h - Basic text input/output functions
|
||||
utils.c utils.h - Utility functions needed by Star Traders
|
||||
system.h - All system header files are included here
|
||||
This directory, `src`, contains the main source code for Star Traders.
|
||||
The source code is split up among the following files:
|
||||
|
||||
* `trader.c`, `trader.h`: Main program, command-line interface
|
||||
* `globals.c`, `globals.h`: Global game constants and variables
|
||||
* `game.c`, `game.h`: Game start, end and (some) display functions
|
||||
* `move.c`, `move.h`: Functions for making and processing a move
|
||||
* `exch.c`, `exch.h`: Stock Exchange and Bank functions
|
||||
* `fileio.c`, `fileio.h`: Load and save game file functions
|
||||
* `help.c`, `help.h`: Help text functions: how to play the game
|
||||
* `intf.c`, `intf.h`: Basic text input/output functions
|
||||
* `utils.c`, `utils.h`: Utility functions needed by Star Traders
|
||||
* `system.h`: All system header files are included here
|
||||
|
Loading…
Reference in New Issue
Block a user