author | richarddeurtje@gmail.com |
Tue, 24 Jan 2012 00:20:14 +0000 | |
changeset 199 | 2db424bc559b |
parent 160 | 8196e13b5b61 |
child 200 | f56abd8cfc50 |
permissions | -rw-r--r-- |
119 | 1 |
#summary Instructions for building Hedgewars for Android |
2 |
= Hedgewars for Android = |
|
3 |
== Introduction == |
|
4 |
||
5 |
This guide will take you through the steps needed to succesfully compile Hedgewars for Android |
|
6 |
||
7 |
==Download== |
|
8 |
||
199 | 9 |
We need to download these packages: |
119 | 10 |
|
11 |
* [http://code.google.com/p/hedgewars/ Hedgewars Source]<br> |
|
12 |
* [http://developer.android.com/sdk/index.html Android SDK] (Latest version will do)<br> |
|
13 |
* [http://developer.android.com/sdk/ndk/index.html Android NDK] (current version is r5b but anything up will probably work)<br> |
|
14 |
* [http://freepascal.org/down/source/sources.var FreePascal] (Latest (stable) version will do)<br> |
|
160 | 15 |
* [http://ant.apache.org/ Ant] (Linux distro should just use their package manager to get it, version isn't really important)<br> |
158
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
16 |
* Java compiler, make sure you get JDK (not JRE) version 6 and up |
119 | 17 |
|
18 |
==Hedgewars Source== |
|
19 |
||
20 |
Using mercurial you can pull the hedgeroid branch using |
|
21 |
{{{ |
|
22 |
hg clone https://hedgewars.googlecode.com/hg/ hedgewars |
|
23 |
hg up hedgeroid |
|
24 |
}}} |
|
25 |
||
26 |
==Android SDK== |
|
27 |
||
28 |
Download the latest version using the link above. And unzip it at a place you can remember, I’ll refer to the location with `<`SDK`>`. Once you’ve unzipped/extracted the tar navigate to `<`SDK`>`/tools and execute ‘android’. This should bring up a GUI select ‘Available packages’, then ‘Android Repository’ and check atleast SDK Platform Android 1.6 / 2.1 / 2.2. I would recommend checking all of them, but it’s up to you. Next select ‘Install Selected’ press ‘Next’ a couple of times and you should have the SDK installed. |
|
29 |
||
158
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
30 |
Optionally you could permanently add `<`SDK`>`/platform-tools to your $PATH, this makes it easier to use ‘adb’. Adb is the main program to communicate with Android, think logging/pushing and pulling files/shell. |
119 | 31 |
|
32 |
If you do not have a real android device you can create an emulator if you do I’d skip this and continue at Android NDK |
|
33 |
||
34 |
You can use either the GUI, run android and follow the signs or from cli |
|
35 |
||
36 |
{{{android create avd -n <name> -t 4}}} |
|
37 |
-n is a name of your choice -t stands for the target ID |
|
38 |
||
39 |
See this for more information |
|
40 |
||
41 |
To run the emulator navigate to `<`SDK`>`/tools and run |
|
42 |
||
43 |
{{{emulator -avd <name>}}} |
|
44 |
where `<`name`>` is the same name as when you created it with the line above. |
|
45 |
||
46 |
==Android NDK== |
|
47 |
||
48 |
Download and untar it, ill refer to the ndk as `<`NDK`>`. That’s it :) |
|
49 |
||
122
8a5eb06794eb
Edited wiki page HedgeroidGuide through web user interface.
richarddeurtje@gmail.com
parents:
121
diff
changeset
|
50 |
==!FreePascal == |
119 | 51 |
|
52 |
We need to download the sources from the Freepascal website and compile the crosscompiler. I have grabbed the latest stable release 2.4.4 , though any version will work. Once downloaded, extract the tar/zip and place the files in a known directory. I will refer to the directory with `<`fpc`>` from now on. Next navigate to the `<`fpc`>` directory and compile it, for this various tools are needed, ‘make’ for instance. But also a fpc compiler for your system. Some apt-get/aptitude magic will solve these problems, make a comment if you run in to problems. Use this to compile the crosscompiler: |
|
53 |
||
54 |
{{{ |
|
55 |
make crossinstall CPU_TARGET=arm OS_TARGET=linux CROSSBINDIR=<ndk>/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin BINUTILSPREFIX=arm-linux-androideabi- OPT=-dFPC_ARMEL INSTALL_PREFIX=<fpc>/fpc_install |
|
56 |
}}} |
|
57 |
||
58 |
==Final== |
|
59 |
||
60 |
Next we will create the scripts to compile hedgewars and move SDL directories first you’ll need to make sure cmake knows where all the compilers are |
|
61 |
||
159 | 62 |
Add `<`NDK`>`:`<`SDK`>`/platform-tools:`<`FPC`>`/compiler to your path, on debian based system I would do it as follows: |
119 | 63 |
|
158
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
64 |
{{{ |
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
65 |
export PATH=$PATH:/home/xeli/SoftDev/android/ndk |
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
66 |
export PATH=$PATH:/home/xeli/SoftDev/android/sdk/platform-tools |
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
67 |
export PATH=$PATH:/home/xeli/SoftDev/android/fpc-2.4.4/compiler |
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
68 |
}}} |
119 | 69 |
|
158
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
70 |
(Check google on how to do it for your specific OS if you don't know how) |
119 | 71 |
|
199 | 72 |
Now we're gonna download sdl and a couple of its libraries, if you're on linux there's a script you can use |
73 |
{{{ |
|
74 |
cd <hedgewars-root>/project_files/Android-build |
|
75 |
chmod +x download_libs.sh (might not be needed) |
|
76 |
./download_libs.sh |
|
77 |
}}} |
|
78 |
This will download and unzip sdl to the expected folders |
|
79 |
||
80 |
TODO: make script for windows and verify if it works for osx |
|
81 |
||
82 |
||
119 | 83 |
Next you can use cmake to create the scripts |
84 |
||
85 |
{{{ |
|
86 |
cd <hedgewars-root> |
|
87 |
cmake . |
|
88 |
}}} |
|
89 |
And that’s it. To compile: |
|
90 |
||
91 |
{{{ |
|
92 |
cd <hedgewars-root>/project_files/Android-build/ |
|
158
3c2429fd0b51
updated to the current build process
richarddeurtje@gmail.com
parents:
122
diff
changeset
|
93 |
make -f Makefile.android |
119 | 94 |
}}} |
95 |
and it should be installed on your emulator/device if it was connected. |
|
96 |
||
97 |
On the device/emulator start the application up :) |
|
98 |
||
99 |
||
120
230afa501524
Edited wiki page HedgeroidGuide through web user interface.
richarddeurtje@gmail.com
parents:
119
diff
changeset
|
100 |
|
230afa501524
Edited wiki page HedgeroidGuide through web user interface.
richarddeurtje@gmail.com
parents:
119
diff
changeset
|
101 |
|
119 | 102 |
TODO verify that it works on Windows and OS X add dependency list of utilities (ant, fpc compiler for host, make etcetc) |