SRB2/src/android
2014-04-18 11:16:18 -04:00
..
i_cdmus.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_main.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_net.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_sound.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_system.c Update interfaces I_UpdateMumble function 2014-04-18 11:16:18 -04:00
i_video.c SRB2 2.1 release 2014-03-15 13:11:35 -04:00
i_video.h SRB2 2.1 release 2014-03-15 13:11:35 -04:00
jni_main.h SRB2 2.1 release 2014-03-15 13:11:35 -04:00
README SRB2 2.1 release 2014-03-15 13:11:35 -04:00

SRB2 for Google Android!

SYNOPSIS

Port of SRB2 to Android, tested against version 1.6 (donut).

I did this with a full Android tree, rather than the NDK thing.

BUILDING

Assuming a pretty standard Android tree, at $REPO, and the SRB2
tree at $REPO/packages/apps/srb2 (that is, the *whole* SRB2
tree, not just this android/ directory):

  cd $REPO
  source build/envsetup.sh # this gives us the mm command,
                           # which is useful for selectively
                           # building only one component.
  cd packages/apps/srb2
  mm

An APK is dumped out at (or similar):
out/target/product/generic/system/app/SRB2.apk

Naturally, an SRB2 APK is architecture specific.  Since most
Android devices are currently ARMEL, this is pretty okay.

NB. It appears that the Java app (the thing that becomes the APK)
is *not* rebuilt if changes are only made to libsrb2.  Grr.

REGENERATION OF JNI HEADERS

Whenever the Java classes in org.srb2.nativecode change,
the C header files that describe the JNI interface to them
need to be regnererated.  Make sure you have the project
built (so that the jar files are up to date), and then:

  cd $REPO/out/target/common/obj/APPS/SRB2_intermediates

  javah -classpath classes.jar -o $REPO/packages/apps/srb2/src/android/jni_main.h org.srb2.nativecode.Main

# ... and no, I don't know how to mash all that into the
# Android.mk build system...