2019-04-11 15:04:24 -04:00
|
|
|
|
.. -*- mode: rst; coding: utf-8 -*-
|
2020-12-29 18:56:27 -05:00
|
|
|
|
.. role:: filename(literal)
|
|
|
|
|
.. default-role:: filename
|
2019-04-11 15:04:24 -04:00
|
|
|
|
|
|
|
|
|
============================================
|
|
|
|
|
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::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
./configure
|
|
|
|
|
make
|
|
|
|
|
make install
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The first two commands may be run as an ordinary user; the last may need
|
2011-07-25 02:31:35 -04:00
|
|
|
|
to be done as the system administrator (root).
|
|
|
|
|
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
|
|
|
2011-07-25 02:31:35 -04:00
|
|
|
|
Prerequisites
|
|
|
|
|
=============
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Star Traders requires the following components for successful compilation
|
2011-07-25 02:31:35 -04:00
|
|
|
|
and installation:
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
1. A working C compiler conforming to ISO/IEC 9899:1999 (also known as
|
2022-08-02 15:04:10 -04:00
|
|
|
|
C99) or later. Any recent version of the GNU Compiler Collection
|
|
|
|
|
(GCC) or the Clang LLVM Compiler is more than adequate.
|
2018-07-24 06:28:05 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
In actual fact, Star Traders uses the GNU Portability Library, so
|
|
|
|
|
many older systems may also work without modification.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2024-01-01 21:00:02 -05:00
|
|
|
|
4. The GNU Gettext library, version 0.21 or later, to allow the game to
|
2021-01-07 03:04:54 -05:00
|
|
|
|
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.
|
2011-08-17 05:48:39 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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
|
2021-01-13 16:05:34 -05:00
|
|
|
|
later, or on macOS 10.3 or newer.
|
2018-07-24 06:28:05 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
7. The GNU Perfect Hash Function Generator, ``gperf``. This utility
|
|
|
|
|
program may be required for parts of the GNU Portability Library.
|
2011-08-07 22:33:25 -04:00
|
|
|
|
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
|
============
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The installation of Star Traders can be broken down into three main
|
|
|
|
|
steps: configuration, compilation and the installation proper.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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`__.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
This version of the configure script understands the following additional
|
2011-07-25 02:31:35 -04:00
|
|
|
|
command line options:
|
|
|
|
|
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--disable-nls
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Don’t use Native Language Support. Star Traders will only
|
|
|
|
|
show untranslated US English text and only accept US ASCII
|
|
|
|
|
keyboard input.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--with-libintl-prefix=DIR
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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).
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--with-libiconv-prefix=DIR
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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`.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--with-ncurses
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Force the use of Ncurses over the system’s Curses library.
|
|
|
|
|
In other words, do not search for a native Curses library at
|
|
|
|
|
all.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--with-ncursesw
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Force the use of the NcursesW library with wide-character
|
|
|
|
|
support. If NcursesW cannot be found, abort the
|
|
|
|
|
``configure`` script.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--without-ncursesw
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--without-ncurses
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2018-07-24 06:34:56 -04:00
|
|
|
|
--disable-assert
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Turn off all debugging :code:`assert()` statements.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
./configure --prefix=$HOME/opt/trader
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
./configure CFLAGS="-g -O2 -Wall"
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The ``configure`` script has many other options. You may obtain a list
|
|
|
|
|
of these by running::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
./configure --help
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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
|
2022-08-06 18:29:40 -04:00
|
|
|
|
`$HOME/src/trader-7.19`, you could run something like::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2022-08-06 18:29:40 -04:00
|
|
|
|
mkdir $HOME/build/trader-build-7.19
|
|
|
|
|
cd $HOME/build/trader-build-7.19
|
|
|
|
|
$HOME/src/trader-7.19/configure
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Once again, the `Autoconf manual`__ describes these options (and many
|
|
|
|
|
others).
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
__ https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
make all
|
|
|
|
|
make install
|
|
|
|
|
make clean
|
|
|
|
|
make distclean
|
|
|
|
|
make uninstall
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The command ``make all`` does the same thing as running ``make`` by
|
|
|
|
|
itself: compile the package source code into an executable.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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
|
2011-07-25 02:31:35 -04:00
|
|
|
|
system administrator (root).
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
.. compound::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
make install DESTDIR=/tmp/trader-install
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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!
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
|
2018-08-22 21:57:42 -04:00
|
|
|
|
Tested Systems
|
|
|
|
|
==============
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The following operating systems and compilers have been successfully
|
|
|
|
|
tested with this version of Star Traders:
|
|
|
|
|
|
2024-01-04 20:43:55 -05:00
|
|
|
|
==================================== ====== ===== =========================
|
2022-08-03 03:15:12 -04:00
|
|
|
|
Linux distribution Arch Glibc Compiler
|
2024-01-04 20:43:55 -05:00
|
|
|
|
==================================== ====== ===== =========================
|
2024-01-04 19:44:41 -05:00
|
|
|
|
Debian GNU/Linux Unstable (Sid) x86_64 2.37 GNU C Compiler 13.2.0
|
|
|
|
|
Debian GNU/Linux Unstable (Sid) x86_64 2.37 Clang (LLVM) 16.0.6
|
|
|
|
|
Debian GNU/Linux 12.4 (Bookworm) x86_64 2.36 GNU C Compiler 12.2.0
|
|
|
|
|
Debian GNU/Linux 12.4 (Bookworm) x86_64 2.36 Clang (LLVM) 14.0.6
|
|
|
|
|
Ubuntu 23.10 (Mantic Minotaur) x86_64 2.38 GNU C Compiler 13.2.0
|
|
|
|
|
Ubuntu 23.10 (Mantic Minotaur) x86_64 2.38 Clang (LLVM) 16.0.6
|
|
|
|
|
Ubuntu 22.04.3 LTS (Jammy Jellyfish) x86_64 2.35 GNU C Compiler 11.4.0
|
|
|
|
|
Ubuntu 22.04.3 LTS (Jammy Jellyfish) x86_64 2.35 Clang (LLVM) 14.0.0
|
|
|
|
|
Ubuntu 20.04.6 LTS (Focal Fossa) x86_64 2.31 GNU C Compiler 9.4.0
|
|
|
|
|
Ubuntu 20.04.6 LTS (Focal Fossa) x86_64 2.31 Clang (LLVM) 10.0.0
|
2022-08-03 03:15:12 -04:00
|
|
|
|
Ubuntu 18.04.6 LTS (Bionic Beaver) x86_64 2.27 GNU C Compiler 7.5.0
|
2024-01-04 19:44:41 -05:00
|
|
|
|
Ubuntu 18.04.6 LTS (Bionic Beaver) x86_64 2.27 Clang (LLVM) 6.0
|
2024-01-04 20:32:27 -05:00
|
|
|
|
Fedora Linux 39 x86_64 2.38 GNU C Compiler 13.2.1
|
|
|
|
|
Red Hat Enterprise Linux 9.3 x86_64 2.34 GNU C Compiler 11.4.1
|
|
|
|
|
Red Hat Enterprise Linux 8.9 x86_64 2.28 GNU C Compiler 8.5.0
|
2022-08-03 03:15:12 -04:00
|
|
|
|
Red Hat Enterprise Linux 7.9 x86_64 2.17 GNU C Compiler 4.8.5
|
|
|
|
|
Red Hat Enterprise Linux 6.10 x86_64 2.12 GNU C Compiler 4.4.7
|
2024-01-04 20:32:27 -05:00
|
|
|
|
CentOS Stream 9 x86_64 2.34 GNU C Compiler 11.4.1
|
2022-08-03 03:15:12 -04:00
|
|
|
|
CentOS Stream 8 x86_64 2.28 GNU C Compiler 8.5.0
|
|
|
|
|
CentOS 7.9.2009 x86_64 2.17 GNU C Compiler 4.8.5
|
2024-01-04 19:58:50 -05:00
|
|
|
|
Rocky Linux 8.8 x86_64 2.28 GNU C Compiler 8.5.0
|
2024-01-04 20:43:55 -05:00
|
|
|
|
Rocky Linux 8.8 x86_64 2.28 Intel oneAPI C 2023.2.0
|
|
|
|
|
Rocky Linux 8.8 x86_64 2.28 Intel C Classic 2021.10.0
|
2024-01-04 21:42:25 -05:00
|
|
|
|
openSUSE Leap 15.5 x86_64 2.31 GNU C Compiler 7.5.0
|
|
|
|
|
Arch Linux (2024.01.05) x86_64 2.38 GNU C Compiler 13.2.1
|
2024-01-04 20:43:55 -05:00
|
|
|
|
==================================== ====== ===== =========================
|
2022-08-03 03:15:12 -04:00
|
|
|
|
|
2024-01-05 00:38:11 -05:00
|
|
|
|
========================== ====== ============================ ============
|
|
|
|
|
Operating system Arch Compiler Notes
|
|
|
|
|
========================== ====== ============================ ============
|
|
|
|
|
FreeBSD 14.0 x86_64 Clang (LLVM) 16.0.6 [#freebsd1]_
|
|
|
|
|
NetBSD 9.3 x86_64 GNU C Compiler 7.5.0 [#netbsd1]_
|
|
|
|
|
macOS 12.6 x86_64 Apple Clang (LLVM) 14.0.0 [#macos1]_
|
|
|
|
|
macOS 12.6 x86_64 Apple Clang (LLVM) 14.0.0 [#macos2]_
|
|
|
|
|
Solaris 11.4.42 (x86_64) x86_64 GNU C Compiler 11.2.0 [#solaris1]_
|
|
|
|
|
Solaris 11.4.42 (x86_64) i386 GNU C Compiler 11.2.0 [#solaris2]_
|
|
|
|
|
Solaris 11.4.42 (x86_64) x86_64 Oracle Developer Studio 12.6 [#solaris3]_
|
|
|
|
|
Solaris 11.4.42 (x86_64) i386 Oracle Developer Studio 12.6 [#solaris4]_
|
|
|
|
|
Haiku R1/beta4 x86_64 GNU C Compiler 13.2.0
|
|
|
|
|
Cygwin 3.4.10 (Windows 10) x86_64 GNU C Compiler 11.4.0
|
|
|
|
|
========================== ====== ============================ ============
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
.. [#freebsd1] FreeBSD with the ``gettext``, ``gettext-runtime``,
|
|
|
|
|
``gettext-tools`` and ``libiconv`` binary packages installed with
|
|
|
|
|
``pkg``\(1), using::
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
|
|
|
|
./configure --with-libiconv-prefix=/usr/local \
|
|
|
|
|
--with-libintl-prefix=/usr/local
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
.. [#netbsd1] NetBSD with the ``gettext``, ``libiconv`` and ``ncursesw``
|
2021-01-13 16:06:47 -05:00
|
|
|
|
packages installed with ``pkgin``\(1), using::
|
2018-08-24 07:14:43 -04:00
|
|
|
|
|
2021-01-11 19:13:20 -05:00
|
|
|
|
./configure LDFLAGS=-L/usr/pkg/lib
|
2018-08-24 07:14:43 -04:00
|
|
|
|
|
2021-01-18 23:18:36 -05:00
|
|
|
|
Note that current versions of NetBSD have a known bug in their
|
|
|
|
|
:code:`strfmon()` function: if the locale is not ``C`` or ``C.UTF-8``,
|
|
|
|
|
amounts may be displayed incorrectly. For example, under the
|
|
|
|
|
``en_US.UTF-8`` locale, an amount of $6000 is displayed as
|
|
|
|
|
``$6,000.0,000.00`` instead of ``$6,000.00``.
|
|
|
|
|
|
|
|
|
|
If the current locale is ``C``, game loads and saves may fail with the
|
|
|
|
|
error message ``trader: iconv_open: Invalid argument``. The
|
|
|
|
|
``C.UTF-8`` locale works correctly.
|
|
|
|
|
|
2019-11-12 05:09:10 -05:00
|
|
|
|
.. [#macos1] macOS with Xcode command line tools, with the ``gettext``
|
2024-01-04 20:24:43 -05:00
|
|
|
|
and ``pkg-config`` packages installed with Homebrew, using::
|
2018-08-25 01:34:44 -04:00
|
|
|
|
|
2024-01-04 20:24:43 -05:00
|
|
|
|
./configure
|
2018-08-25 01:34:44 -04:00
|
|
|
|
|
2019-11-12 05:09:10 -05:00
|
|
|
|
.. [#macos2] macOS with Xcode command line tools, with the ``gettext``,
|
|
|
|
|
``ncurses`` and ``pkg-config`` packages installed with Homebrew,
|
|
|
|
|
using::
|
|
|
|
|
|
2024-01-04 20:24:43 -05:00
|
|
|
|
./configure PKG_CONFIG_PATH=/usr/local/opt/ncurses/lib/pkgconfig
|
2019-11-12 05:09:10 -05:00
|
|
|
|
|
2022-08-03 03:15:12 -04:00
|
|
|
|
.. [#solaris1] Solaris,
|
|
|
|
|
using::
|
|
|
|
|
|
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig
|
|
|
|
|
./configure CC="gcc -m64"
|
|
|
|
|
|
|
|
|
|
.. [#solaris2] Solaris,
|
|
|
|
|
using::
|
|
|
|
|
|
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib/32/pkgconfig
|
|
|
|
|
./configure CC="gcc -m32"
|
2019-04-11 15:04:24 -04:00
|
|
|
|
|
2022-08-03 03:15:12 -04:00
|
|
|
|
.. [#solaris3] Solaris with Oracle Developer Studio,
|
|
|
|
|
using::
|
|
|
|
|
|
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig
|
|
|
|
|
./configure CC="/opt/developerstudio12.6/bin/cc -m64"
|
|
|
|
|
|
|
|
|
|
.. [#solaris4] Solaris with Oracle Developer Studio,
|
|
|
|
|
using::
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
2022-08-03 03:15:12 -04:00
|
|
|
|
export PKG_CONFIG_PATH=/usr/lib/32/pkgconfig
|
|
|
|
|
./configure CC="/opt/developerstudio12.6/bin/cc -m32"
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The following systems are known *not* to work at the current time; this
|
|
|
|
|
list is almost certainly not exhaustive:
|
|
|
|
|
|
|
|
|
|
================ ====== ==================== ============
|
|
|
|
|
Operating system Arch Compiler Notes
|
|
|
|
|
================ ====== ==================== ============
|
2024-01-04 19:44:41 -05:00
|
|
|
|
Linux (any) x86_64 NVIDIA HPC SDK 23.11 [#nvidia1]_
|
2024-01-05 00:38:11 -05:00
|
|
|
|
OpenBSD 7.4 x86_64 Clang (LLVM) 13.0.0 [#openbsd1]_
|
2019-04-11 15:04:24 -04:00
|
|
|
|
================ ====== ==================== ============
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
2024-01-04 19:44:41 -05:00
|
|
|
|
.. [#nvidia1] The `NVIDIA HPC SDK`__ 23.11 compiler (and possibly earlier
|
|
|
|
|
versions) does not work due to a bug in ``nvc -E`` preprocessor
|
|
|
|
|
output. See the `bug report`__ for further details.
|
|
|
|
|
|
|
|
|
|
__ https://developer.nvidia.com/nvidia-hpc-sdk-releases
|
|
|
|
|
__ https://forums.developer.nvidia.com/t/hpc-sdk-does-not-work-with-autoconf-automake-based-projects/277894
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
.. [#openbsd1] The OpenBSD C library does not include
|
|
|
|
|
:code:`<monetary.h>` nor its associated functions, particularly
|
|
|
|
|
:code:`strfmon()`.
|
2018-08-22 21:55:03 -04:00
|
|
|
|
|
|
|
|
|
|
2016-12-12 05:31:30 -05:00
|
|
|
|
Git Repository
|
|
|
|
|
==============
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
You can always download the latest version of Star Traders directly from
|
2022-07-31 14:59:32 -04:00
|
|
|
|
the Git repository on The ZAP Group Australia server::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2016-12-12 05:31:30 -05:00
|
|
|
|
git clone git://git.zap.org.au/data/git/trader.git
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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:
|
|
|
|
|
|
2022-07-31 20:01:41 -04:00
|
|
|
|
1. `Autoconf`__ v2.71 or later
|
2024-01-01 21:00:02 -05:00
|
|
|
|
2. `Automake`__ v1.16 or later
|
2021-01-13 16:02:55 -05:00
|
|
|
|
3. `pkgconf`__ v0.9.0 or later, or `pkg-config`__ v0.29 or later
|
2019-04-11 15:04:24 -04:00
|
|
|
|
4. `GNU Portability Library`__
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
__ https://www.gnu.org/software/autoconf/
|
|
|
|
|
__ https://www.gnu.org/software/automake/
|
2021-01-13 16:02:55 -05:00
|
|
|
|
__ https://git.sr.ht/~kaniini/pkgconf
|
|
|
|
|
__ https://www.freedesktop.org/wiki/Software/pkg-config/
|
2019-04-11 15:04:24 -04:00
|
|
|
|
__ https://www.gnu.org/software/gnulib/
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
The GNU Portability Library may be installed by retrieving the latest
|
|
|
|
|
Gnulib source code from the Git repository::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
git clone git://git.savannah.gnu.org/gnulib.git
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Once you have these tools, change to the Star Traders source code tree
|
|
|
|
|
and type::
|
2011-07-25 02:31:35 -04:00
|
|
|
|
|
|
|
|
|
PATH=${PATH}:/path/to/gnulib-tool ./build-aux/bootstrap
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For Translators
|
|
|
|
|
===============
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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
|
2016-12-12 05:31:30 -05:00
|
|
|
|
either case, you may find the following workflow useful.
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
First, run ``./build-aux/bootstrap`` if needed (only for unreleased
|
|
|
|
|
versions of Star Traders).
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
Next, configure and install Star Traders into your home directory::
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
|
|
|
|
./configure --prefix=$HOME/opt/trader
|
|
|
|
|
make
|
|
|
|
|
make install
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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)::
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
|
|
|
|
(cd po; msginit --locale=zz --width=132)
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
To test your PO file, compile and run Star Traders (replace “``zz``” with
|
|
|
|
|
your language code, of course)::
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
|
|
|
|
make && make -C po zz.gmo && make install
|
|
|
|
|
LANGUAGE=zz $HOME/opt/trader/bin/trader
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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,
|
2014-10-02 19:51:31 -04:00
|
|
|
|
repeat as needed.
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
__ https://translationproject.org/domain/trader.html
|
|
|
|
|
__ https://translationproject.org/html/translators.html
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
To clean up your install directory, simply run::
|
2014-10-02 19:51:31 -04:00
|
|
|
|
|
|
|
|
|
rm -fr $HOME/opt/trader
|
|
|
|
|
|
2019-04-11 15:04:24 -04:00
|
|
|
|
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.
|