parent
4701b3d7f2
commit
ca0bbf5572
@ -0,0 +1,135 @@ |
|||||||
|
# OpenRS2 Natives |
||||||
|
|
||||||
|
## Introduction |
||||||
|
|
||||||
|
OpenRS2 Natives are open-source replacements for the jaggl, jaggl\_dri and |
||||||
|
jagmisc native libraries. |
||||||
|
|
||||||
|
## Prerequisites |
||||||
|
|
||||||
|
Building OpenRS2 Natives requires the following pieces of software on all |
||||||
|
platforms: |
||||||
|
|
||||||
|
* [Java Development Kit][jdk] (version 12 or later) |
||||||
|
* [Apache Maven][maven] (version 3.3.9 or later) |
||||||
|
|
||||||
|
### Platform-specific dependencies |
||||||
|
|
||||||
|
Your platform's standard C compiler and [OpenGL][opengl] development headers |
||||||
|
must be installed. |
||||||
|
|
||||||
|
#### Windows |
||||||
|
|
||||||
|
Install the [Build Tools for Visual Studio][visualstudio] (2019 or later), |
||||||
|
which provide a command-line version of the Visual C++ compiler. The full GUI |
||||||
|
version of Visual Studio will also work, but it is not required. |
||||||
|
|
||||||
|
The Visual C++ tools must be present on your `%PATH%` when building OpenRS2 |
||||||
|
Natives. The easiest way to achieve this is to open the command prompt with the |
||||||
|
'Developer Command Prompt for VS 2019' item from the start menu. |
||||||
|
|
||||||
|
The Java Development Kit and Apache Maven `bin` directories must be manually |
||||||
|
[added to your `%PATH%` variable][path]. |
||||||
|
|
||||||
|
##### Cross-compiling |
||||||
|
|
||||||
|
To compile a 32-bit DLL on a 64-bit Windows system, open the 'x64\_x86 Cross |
||||||
|
Tools Command Prompt for VS 2019' instead. |
||||||
|
|
||||||
|
Maven's `nar.javaHome` variable must point to a 32-bit JDK and `nar.arch` must |
||||||
|
be set to `x86`: |
||||||
|
|
||||||
|
-Dnar.javaHome="C:\Program Files (x86)\path\to\jdk" -Dnar.arch=x86 |
||||||
|
|
||||||
|
#### macOS |
||||||
|
|
||||||
|
Run `xcode-select --install` from the terminal to install the [Xcode][xcode] |
||||||
|
command-line tools. |
||||||
|
|
||||||
|
The easiest way to install the Java Development Kit and Apache Maven is with the |
||||||
|
[Homebrew][homebrew] package manager. After installing Homebrew, run |
||||||
|
`brew cask install java` and `brew install maven`. |
||||||
|
|
||||||
|
##### Cross-compiling |
||||||
|
|
||||||
|
The last version of Java to support the 32-bit version of Mac OS X is the |
||||||
|
[legacy Java 6 runtime][mac-legacy-java]. |
||||||
|
|
||||||
|
Pass the following flags to Maven to compile against the 32-bit version of the |
||||||
|
legacy runtime on a 64-bit macOS system: |
||||||
|
|
||||||
|
-Dnar.javaHome=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home -Dnar.arch=i386 |
||||||
|
|
||||||
|
#### UNIX |
||||||
|
|
||||||
|
OpenRS2 Natives requires the [GNU Compiler Collection][gcc] and the [Mesa 3D |
||||||
|
Graphics Library][mesa] on UNIX-like systems (e.g. Linux). |
||||||
|
|
||||||
|
The easiest way to install all the dependencies is with your system's package |
||||||
|
manager. For example: |
||||||
|
|
||||||
|
* Debian-based systems: `apt install openjdk-12-jdk maven gcc libgl1-mesa-dev` |
||||||
|
* RPM-based systems: `yum install java-12-openjdk-devel maven gcc mesa-libGL-devel` |
||||||
|
* ArchLinux-based systems: `pacman -S jdk-openjdk maven gcc mesa` |
||||||
|
|
||||||
|
As OpenRS2 Natives depends on a modern version of Java (at the time of writing), |
||||||
|
you will probably need to use a similarly modern version of your Linux |
||||||
|
distribution or enable its backports repository. |
||||||
|
|
||||||
|
`-headless` packages are not sufficient as the `gl-natives` module is linked |
||||||
|
with `libjawt`. |
||||||
|
|
||||||
|
##### Compatibility |
||||||
|
|
||||||
|
The `aol.properties` file uses the normalized `os.name` property as part of the |
||||||
|
architecture/operating system/linker key. It currently only contains properties |
||||||
|
for Linux. While the default settings will probably work for other UNIX-like |
||||||
|
systems, the defaults are not ideal. For example, `g++` will be used as the |
||||||
|
linker instead of `gcc`, introducing a redundant dependency on `libstdc++`. |
||||||
|
|
||||||
|
##### Cross-compiling |
||||||
|
|
||||||
|
To compile a 32-bit shared object on a 64-bit UNIX system, Maven's |
||||||
|
`nar.javaHome` variable must point to a 32-bit JDK and `nar.arch` must be set |
||||||
|
to `i386`: |
||||||
|
|
||||||
|
-Dnar.javaHome=/path/to/jdk -Dnar.arch=i386 |
||||||
|
|
||||||
|
## Building |
||||||
|
|
||||||
|
Run `mvn verify` to build the code and package it. |
||||||
|
|
||||||
|
## License |
||||||
|
|
||||||
|
All code and data is licensed under version 3.0 (and only version 3.0) of the |
||||||
|
[GNU Lesser General Public License][lgpl]. The full terms are available in the |
||||||
|
`COPYING.LESSER` file. |
||||||
|
|
||||||
|
|
||||||
|
## Copyright |
||||||
|
|
||||||
|
Copyright (c) 2019 OpenRS2 Authors |
||||||
|
|
||||||
|
OpenRS2 Natives is free software: you can redistribute it and/or modify it under |
||||||
|
the terms of version 3.0 of the GNU Lesser General Public License as published |
||||||
|
by the Free Software Foundation. |
||||||
|
|
||||||
|
OpenRS2 Natives 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 Lesser General Public License for more |
||||||
|
details. |
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public License along |
||||||
|
with OpenRS2 Natives. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
|
||||||
|
[gcc]: https://gcc.gnu.org/ |
||||||
|
[homebrew]: https://brew.sh/ |
||||||
|
[jdk]: https://jdk.java.net/ |
||||||
|
[lgpl]: https://www.gnu.org/licenses/lgpl-3.0.html |
||||||
|
[mac-legacy-java]: https://support.apple.com/kb/DL1572 |
||||||
|
[maven]: https://maven.apache.org/ |
||||||
|
[mesa]: https://www.mesa3d.org/ |
||||||
|
[opengl]: https://www.opengl.org/ |
||||||
|
[path]: https://www.java.com/en/download/help/path.xml |
||||||
|
[visualstudio]: https://visualstudio.microsoft.com/downloads/ |
||||||
|
[xcode]: https://developer.apple.com/xcode/ |
@ -1,17 +0,0 @@ |
|||||||
# OpenRS2 GL DRI Natives |
|
||||||
|
|
||||||
## Copyright |
|
||||||
|
|
||||||
Copyright (c) 2019 OpenRS2 Authors |
|
||||||
|
|
||||||
OpenRS2 GL DRI Natives is free software: you can redistribute it and/or modify |
|
||||||
it under the terms of version 3.0 of the GNU Lesser General Public License as |
|
||||||
published by the Free Software Foundation. |
|
||||||
|
|
||||||
OpenRS2 GL DRI Natives 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 Lesser General Public License for |
|
||||||
more details. |
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along |
|
||||||
with OpenRS2 GL DRI Natives. If not, see <https://www.gnu.org/licenses/>. |
|
@ -1,17 +0,0 @@ |
|||||||
# OpenRS2 Misc Natives |
|
||||||
|
|
||||||
## Copyright |
|
||||||
|
|
||||||
Copyright (c) 2019 OpenRS2 Authors |
|
||||||
|
|
||||||
OpenRS2 Misc Natives is free software: you can redistribute it and/or modify it |
|
||||||
under the terms of version 3.0 of the GNU Lesser General Public License as |
|
||||||
published by the Free Software Foundation. |
|
||||||
|
|
||||||
OpenRS2 Misc Natives 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 Lesser General Public License for |
|
||||||
more details. |
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along |
|
||||||
with OpenRS2 Misc Natives. If not, see <https://www.gnu.org/licenses/>. |
|
Loading…
Reference in new issue