@@ -8,21 +8,31 @@ The instructions below assume you're running a form of Linux (WSL or native).
88* Python 3.6 or newer with [ pip] ( https://pip.pypa.io/en/stable/installation/ )
99* Ninja
1010* CMake 3.13+
11- * If you are on Ubuntu 18.04, you must first [ update CMake by using the official CMake APT repository] ( https://apt.kitware.com/ ) .
11+ * If you are on Ubuntu 18.04, you must
12+ first [ update CMake by using the official CMake APT repository] ( https://apt.kitware.com/ ) .
1213* ccache (to speed up builds)
13- * xdelta3
14- * clang (for compiling Rust tools)
14+ * llvm-objdump
1515
1616Ubuntu users can install those dependencies by running:
1717
1818``` shell
19- sudo apt install python3 ninja-build cmake ccache xdelta3 clang libssl-dev libncurses5
19+ sudo apt install python3 ninja-build cmake ccache libssl-dev libncurses5 llvm
2020```
2121
22+ If you are running Ubuntu 23.10 or later, the ` libncurses5 ` package won't be available anymore. You can install it from
23+ the archive using:
24+
25+ ``` shell
26+ wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.deb && sudo dpkg -i libtinfo5_6.3-2_amd64.deb && rm -f libtinfo5_6.3-2_amd64.deb
27+ ```
28+
29+ For other systems, please check for the corresponding ` libncurses5 ` backport, for
30+ example [ ncurses5-compat-libs] ( https://aur.archlinux.org/packages/ncurses5-compat-libs ) for Arch-based distributions.
31+
2232Additionally, you'll also need:
2333
2434* A Rust toolchain ([ follow the instructions here] ( https://www.rust-lang.org/tools/install ) )
25- * The following Python modules: ` capstone colorama cxxfilt pyelftools ansiwrap watchdog python-Levenshtein toml ` (install them with ` pip install ... ` )
35+ * The following Python modules: ` pip install capstone colorama cxxfilt pyelftools ansiwrap watchdog python-Levenshtein toml`
2636
2737## 2. Set up the project
2838
@@ -37,6 +47,7 @@ Additionally, you'll also need:
3747 * install tools/check to check for differences in decompiled code
3848 * convert the executable if necessary
3949 * set up [ Clang 4.0.1] ( https://releases.llvm.org/download.html#4.0.1 ) by downloading it from the official LLVM website
50+ * patch Clang to match Nintendo's changes
4051 * create a build directory in ` build/ `
4152 * If something goes wrong, follow the instructions given to you by the script.
4253 * If you wish to use a CMake generator that isn't Ninja, use ` --cmake_backend ` to specify it.
@@ -46,13 +57,15 @@ Additionally, you'll also need:
4657To start the build, just run
4758
4859``` shell
49- ninja -C build
60+ python3 tools/ build.py
5061```
5162
5263By default, a multithreaded build is performed.
5364
5465To check whether everything built correctly, just run ` tools/check ` after the build completes.
5566
67+ You can check the current progress with ` python3 tools/common/progress.py ` .
68+
5669## 4. Decompilers
5770
58- For instructions on setting up a decompiler, see [ DECOMPILERS.md] ( DECOMPILERS.md ) .
71+ For instructions on setting up a decompiler, see [ DECOMPILERS.md] ( DECOMPILERS.md ) .
0 commit comments