summaryrefslogtreecommitdiff
path: root/java/INSTALL
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-08-12 20:58:13 +0800
committerPo Lu <luangruo@yahoo.com>2023-08-12 20:59:10 +0800
commit69a1a63ebda282830a75e774f2cedbb84893a109 (patch)
tree0eb18c0374e1023263b365a0553e0f99b62e3411 /java/INSTALL
parenta4171e94667eb9e75053e77c092cdd57a0377bc0 (diff)
downloademacs-69a1a63ebda282830a75e774f2cedbb84893a109.tar.gz
; * java/INSTALL (LOCATING NECESSARY FILES): New section.
Diffstat (limited to 'java/INSTALL')
-rw-r--r--java/INSTALL54
1 files changed, 52 insertions, 2 deletions
diff --git a/java/INSTALL b/java/INSTALL
index ef05b811989..7ee39a71e9a 100644
--- a/java/INSTALL
+++ b/java/INSTALL
@@ -39,8 +39,7 @@ script like so:
Replacing the paths in the command line above with:
- the path to the `android.jar' headers which come with the Android
- SDK. They must correspond to Android version 13 (API level 33) or
- later.
+ SDK. They must correspond to Android version 13 (API level 33.)
- the path to the C compiler in the Android NDK, for the kind of CPU
you are building Emacs to run on.
@@ -69,6 +68,57 @@ The generated package can be uploaded onto an SD card (or similar
medium) and installed on-device.
+LOCATING NECESSARY FILES
+
+As illustrated above, building Emacs for Android requires the presence
+three separate components of the Android SDK and NDK. Subsequent to
+their installation, the contents of the Android development tools are
+organized into several directories, of which those pertinent to the
+Emacs compilation process are:
+
+ platforms
+ ndk
+ build-tools
+
+The platforms directory contains one subdirectory for each API level
+whose headers have been installed. Each of these directories in turn
+includes the android.jar archive for that version of Android, also
+necessary for compiling Emacs.
+
+It is imperative that Emacs is compiled using the headers for the
+exact API level that it is written for. This is currently API level
+33, so the correct android.jar archive is located within a directory
+whose name begins with `android-33'. Minor revisions to the headers
+are inconsequential towards the Emacs compilation process; if there is
+a directory named `android-33-extN' (where N represents a revision to
+the Android SDK), whether you provide `configure' with that
+directory's android.jar or the android.jar contained within the
+directory named `android-33' is of no special importance.
+
+The ndk directory contains one subdirectory for each version of the
+Android NDK installed. This directory in turn contains the C and C++
+compilation system. In contrast to the Java headers mentioned within
+the previous paragraph, the version of the NDK used does not affect
+Emacs to the extent the version of android.jar does. Having said
+that, each version of the NDK only supports a limited range of API
+levels; your choice of C compiler binary (or __ANDROID_API__) bears
+upon the earliest version of Android the compiled package will
+support.
+
+In most cases, each subdirectory contains a folder named `toolchains',
+holding an `llvm' directory and one directory for each GCC toolchain
+supplied by the NDK. The C compiler is then positioned within
+`prebuilt/*/bin' inside that directory.
+
+The build-tools directory holds subdirectories containing the utility
+programs used to convert class files output by the Java compiler to
+the DEX format employed by Android. There is one subdirectory for
+each version of the build tools, but the version you opt for is not of
+paramount significance: if your version does not work, configure will
+protest, so install a newer one. We anticipate that most recent
+releases will work, such as those from the 33.0.x and 34.0.x series.
+
+
BUILDING WITH OLD NDK VERSIONS
Building Emacs with an old version of the Android NDK requires special