-
Notifications
You must be signed in to change notification settings - Fork 13
Compilation guide (android from windows)
You need a complete android development environment ready to develop native apps. That means:
- Cygwin
- Android SDK
- Android NDK
- Eclipse with appropriate plugins
Use Google to figure out how to install all that. Everything in this page happens in a Cygwin shell and in Eclipse. Make sure you set NDK_ROOT to the path to your NDK and add that to your PATH in the Cygwin shell. For example, edit your .bashrc to add these lines:
export NDK_ROOT=/cygdrive/d/Dev/Libs/Android/android-ndk-r8e
export PATH=$NDK_ROOT:$PATH
git clone https://github.com/libretro/libretro-super.git
cd libretro-super
./libretro-fetch.sh # can fail on fork() calls, repeat until all are up to date
./libretro-build-android.sh # some cores may fail to compile (g++ "Argument list too long" error)
# see https://github.com/libretro/libretro-super/issues/10
git clone https://github.com/Themaister/RetroArch.git
cd RetroArch/android/native
ndk-build clean; ndk-build # build native libs
cd ../phoenix
mkdir libs
cp -R ../native/libs/* libs # copy native libs
cp -R ../../../libretro-super/dist/* libs # copy libretro cores
cp -R ../../media/overlays/* assets/Overlays # copy overlays
When you need to rebuild the native code, run this from RetroArch/android/native:
ndk-build; /bin/cp -R -f libs/* ../phoenix/libs
In Eclipse, set your workspace root to .../RetroArch/android. Then do "Import... - General - Existing Projects into Workspace" to get the native and phoenix projects in your workspace. I also copied the project.properties from phoenix to native, and created a src directory in native, to stop Eclipse from complaining, but that may just be because I'm using a really old version.
Then, when you want to deploy to your device (make sure USB debugging is enabled) right-click on the phoenix project and select "Run As - Android Application" or use Debug to attach the debugger. When the native libs change I will tend to Clean before doing Run, to make sure the libs were repackaged in the apk. Google for more info about running and debugging Android apps in Eclipse.