aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorPo Lu2023-08-12 20:58:13 +0800
committerPo Lu2023-08-12 20:59:10 +0800
commit69a1a63ebda282830a75e774f2cedbb84893a109 (patch)
tree0eb18c0374e1023263b365a0553e0f99b62e3411 /java
parenta4171e94667eb9e75053e77c092cdd57a0377bc0 (diff)
downloademacs-69a1a63ebda282830a75e774f2cedbb84893a109.tar.gz
emacs-69a1a63ebda282830a75e774f2cedbb84893a109.zip
; * java/INSTALL (LOCATING NECESSARY FILES): New section.
Diffstat (limited to 'java')
-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:
39Replacing the paths in the command line above with: 39Replacing the paths in the command line above with:
40 40
41 - the path to the `android.jar' headers which come with the Android 41 - the path to the `android.jar' headers which come with the Android
42 SDK. They must correspond to Android version 13 (API level 33) or 42 SDK. They must correspond to Android version 13 (API level 33.)
43 later.
44 43
45 - the path to the C compiler in the Android NDK, for the kind of CPU 44 - the path to the C compiler in the Android NDK, for the kind of CPU
46 you are building Emacs to run on. 45 you are building Emacs to run on.
@@ -69,6 +68,57 @@ The generated package can be uploaded onto an SD card (or similar
69medium) and installed on-device. 68medium) and installed on-device.
70 69
71 70
71LOCATING NECESSARY FILES
72
73As illustrated above, building Emacs for Android requires the presence
74three separate components of the Android SDK and NDK. Subsequent to
75their installation, the contents of the Android development tools are
76organized into several directories, of which those pertinent to the
77Emacs compilation process are:
78
79 platforms
80 ndk
81 build-tools
82
83The platforms directory contains one subdirectory for each API level
84whose headers have been installed. Each of these directories in turn
85includes the android.jar archive for that version of Android, also
86necessary for compiling Emacs.
87
88It is imperative that Emacs is compiled using the headers for the
89exact API level that it is written for. This is currently API level
9033, so the correct android.jar archive is located within a directory
91whose name begins with `android-33'. Minor revisions to the headers
92are inconsequential towards the Emacs compilation process; if there is
93a directory named `android-33-extN' (where N represents a revision to
94the Android SDK), whether you provide `configure' with that
95directory's android.jar or the android.jar contained within the
96directory named `android-33' is of no special importance.
97
98The ndk directory contains one subdirectory for each version of the
99Android NDK installed. This directory in turn contains the C and C++
100compilation system. In contrast to the Java headers mentioned within
101the previous paragraph, the version of the NDK used does not affect
102Emacs to the extent the version of android.jar does. Having said
103that, each version of the NDK only supports a limited range of API
104levels; your choice of C compiler binary (or __ANDROID_API__) bears
105upon the earliest version of Android the compiled package will
106support.
107
108In most cases, each subdirectory contains a folder named `toolchains',
109holding an `llvm' directory and one directory for each GCC toolchain
110supplied by the NDK. The C compiler is then positioned within
111`prebuilt/*/bin' inside that directory.
112
113The build-tools directory holds subdirectories containing the utility
114programs used to convert class files output by the Java compiler to
115the DEX format employed by Android. There is one subdirectory for
116each version of the build tools, but the version you opt for is not of
117paramount significance: if your version does not work, configure will
118protest, so install a newer one. We anticipate that most recent
119releases will work, such as those from the 33.0.x and 34.0.x series.
120
121
72BUILDING WITH OLD NDK VERSIONS 122BUILDING WITH OLD NDK VERSIONS
73 123
74Building Emacs with an old version of the Android NDK requires special 124Building Emacs with an old version of the Android NDK requires special