HowToBuildStendhal/BuildTools

From Arianne
Jump to navigation Jump to search

JDK

The Stendhal server and legacy client are both written in Java. To run either requires a Java Runtime Environment (JRE). To compile server or client, a Java Development Kit (JDK) is necessary. Most JDK distributions include a JRE.

JDK on Unix

Some Unix/Linux/BSD systems have a JDK pre-installed (usually OpenJDK). If not, most will have a version available from the system package manager.

Example of installing on Ubuntu:

# install version 17
$ sudo apt install openjdk-17-jdk

Example of installing on Arch:

# install default version
$ sudo pacman -S jdk-openjdk

# install version 17
$ sudo pacman -S jdk17-openjdk

Example of installing on FreeBSD:

# install pre-built package of version 17
$ sudo pkg install openjdk17

# compile version 17 from Ports source
$ cd /usr/ports/java/openjdk17
$ sudo make install clean

JDK on Windows

Packages for Windows can be downloaded from either oracle.com or for OpenJDK, from jdk.java.net. If you download a portable .zip package, you will need to manually configure the PATH environment variable so the system knows where the java and javac executables are located. It may also be necessary to configure the JAVA_HOME environment variable. The recommended method is to use an installer package (.exe or .msi) as these will configure the necessary environment variables automatically.

Alternatively, a JDK can be installed from the Windows Package Manager (WinGet).

Example of installing on Windows using WinGet:

:: install Oracle JDK version 17
> winget install Oracle.JDK.17

:: install OpenJDK version 17
> winget install ojdkbuild.openjdk.17.jdk

JDK on macOS

Packages for macOS can be downloaded from either oracle.com or for OpenJDK, from jdk.java.net. But the recommended method is to install from the Homebrew Package Manager as it will configure the necessary environment variables automatically.

Example of installing on macOS using Homebrew:

# install version 17
$ brew install openjdk@17


Ant

Apache Ant is the main tool for building from the command line. All components can be built using this method. However, some components are built using another tool to which Ant serves as a wrapper to call its commands. For example, the Android app is built using Gradle (or a Gradle Wrapper). In this case, Gradle builds the app. Ant simply calls Gradle as a sub-command.

Apache provides executables for multiple systems from their downloads page. Alternatively, see the following instructions for specific systems.

Ant on Unix

Most Unix/Linux/BSD distributions have a version of Ant available from the default package manager.

Example of installing on Ubuntu:

$ sudo apt install ant

Example of installing on Arch:

$ sudo pacman -S ant

Example of installing on FreeBSD:

# install pre-built package
$ sudo pkg install apache-ant

# compile from Ports source
$ cd /usr/ports/devel/apache-ant
$ sudo make install clean

Ant on Windows

For Windows, follow these steps:

  1. Download one of the apache-ant-<version>-bin packages from the link above (Windows supports .zip archives by default).
  2. Extract the package contents to a unique directory.
  3. Add the directory path to your system's PATH environment variable.
  4. Open a command prompt (cmd). Type ant -version and press "enter". If it is set up correctly, version information will be printed.

Ant on macOS

For macOS, the same instructions for Windows can be used. Alternatively, it is also provided through Homebrew.

Example of installing on macOS using Homebrew:

$ brew install ant


Node

Node.js is the system used for building the Stendhal web client. Like other tools, Node.js build commands can be executed directly. But it is recommended to use the appropriate Ant wrapper command.

When Node is installed, the commands node, npm (Node Package Manager), and npx (Node Package Executor) will be available. Optionally, from the Stendhal source code root directory, you can execute npm install --no-package-lock to install the required Node modules. If you do not, they will automatically be installed when you execute any build instructions for a component that uses the Node build system (such as the web client).

In addition to the instructions below, the download page includes instructions on how to install/manage Node using the Node Version Manager (NVM) for common desktop systems.

Node on Unix

Most Unix/Linux/BSD distributions have a version of Node available from the system package manager.

Example of installing on Ubuntu:

$ sudo apt install nodejs ant

Example of installing on Arch:

$ sudo pacman -S nodejs npm

Example of installing on FreeBSD:

# install pre-built version 24 package
$ sudo pkg install node24

# compile version 24 from Ports source
$ cd /usr/ports/www/node24
$ sudo make install clean

Node on Windows

Node for Windows can be downloaded as an installer or portable .zip package from the download page (.zip requires manual configuration of environment variables). It is also available from the Windows Package Manager.

Example of installing on Windows using WinGet:

> winget install OpenJS.NodeJS.LTS

Node on macOS

Node for macOS can be downloaded as an installer or portable .zip package from the download page (.zip requires manual configuration of environment variables). It is also available from Homebrew.

Example of installing on macOS using Homebrew:

$ brew install node


Gradle

The software comes bundled with a Gradle Wrapper which is used to build the Android game client app. So it isn't necessary to install a version of Gradle on your system. But if you wish to, the instructions are similar to those of installing other build tools.

  • Unix-like systems will have a version of Gradle available from the system package manager.
  • Portable .zip packages can be downloaded directly from gradle.org which contain executables for multiple systems.


IDE

Alternatively to building from the command line, an Integrated Development Environment can be used to build and run the software. The recommended IDE is Eclipse, but others may work as well.

Eclipse

See Stendhal on Eclipse for setup instructions.