1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# Linux
Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM).
Then run the following commands.
export DEVKITPRO=/opt/devkitPro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
git clone https://github.com/pret/pokeruby
git clone https://github.com/pret/agbcc
cd agbcc
./build.sh
./install.sh ../pokeruby
cd ../pokeruby
To build **pokeruby.gba**:
make -j4
# Mac
Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM).
Then in **Terminal**, run the following commands.
xcode-select --install
export DEVKITPRO=${HOME}/devkitPro
echo "export DEVKITPRO=${DEVKITPRO}" >> ~/.bashrc
export DEVKITARM=${DEVKITPRO}/devkitARM
echo "export DEVKITARM=${DEVKITARM}" >> ~/.bashrc
git clone https://github.com/pret/pokeruby
git clone https://github.com/pret/agbcc
cd agbcc
./build.sh
./install.sh ../pokeruby
cd ../pokeruby
To build **pokeruby.gba**:
make -j4
# Windows
Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM) to the default directory (C:/devkitpro).
Then download [**Cygwin**](http://cygwin.com/install.html): **setup-x86_64.exe** for 64-bit Windows, **setup-x86.exe** for 32-bit.
Run the Cygwin setup and leave the default settings. At "Select Packages", set the view to "Full" and choose to install the following:
- `make`
- `git`
- `gcc-core`
- `gcc-g++`
- `libpng-devel`
In the **Cygwin terminal**, enter these commands:
export DEVKITPRO=/cygdrive/c/devkitpro
echo export DEVKITPRO=$DEVKITPRO >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo export DEVKITARM=$DEVKITARM >> ~/.bashrc
git clone https://github.com/pret/pokeruby
git clone https://github.com/pret/agbcc
cd agbcc
./build.sh
./install.sh ../pokeruby
cd ../pokeruby
To build **pokeruby.gba**:
make -j4
# Compiling Sapphire and later revisions
When you simply enter `make` and don't specify a target, then Pokémon Ruby 1.0 will be built. However, Sapphire can also be built, along with revisions 1 and 2 of both Ruby and Sapphire. Here is a listing of each ROM that can be made, along with the command to make the ROM.
Version | Command
-------------|---------------------
Ruby 1.0 | `make ruby`
Ruby 1.1 | `make ruby_rev1`
Ruby 1.2 | `make ruby_rev2`
Sapphire 1.0 | `make sapphire`
Sapphire 1.1 | `make sapphire_rev1`
Sapphire 1.2 | `make sapphire_rev2`
# Faster builds
After the first build, subsequent builds are faster. You can further speed up the build:
## Parallel build
This significantly speeds up the build on modern machines.
By default `make` only runs a single thread. You can tell `make` to run on multiple threads with `make -j`. See the manfile for usage (`man make`).
The optimal value for `-j` is the number of logical cores on your machine. You can run `nproc` to see the exact number.
$ nproc
8
If you have 8 cores, run:
make -j8
`-j` on its own will spawn a new thread for each job. A clean build will have thousands of jobs, which will be slower than not using -j at all.
## Disable the dependency scanning
If you've only changed `.c` or `.s` files, you can turn off the dependency scanning temporarily. Changes to any other files will be ignored, and the build will either fail or not reflect those changes.
make NODEP=1
|