aboutsummaryrefslogtreecommitdiffstats
path: root/java/Makefile.in
diff options
context:
space:
mode:
authorPo Lu2023-01-19 22:19:06 +0800
committerPo Lu2023-01-19 22:19:06 +0800
commita496509cedb17109d0e6297a74e2ff8ed526333c (patch)
tree46f3db2be263de7074675a5188796e25f21d4888 /java/Makefile.in
parent6253e7e74249c7cdfa86723f0b91a1d207cb143e (diff)
downloademacs-a496509cedb17109d0e6297a74e2ff8ed526333c.tar.gz
emacs-a496509cedb17109d0e6297a74e2ff8ed526333c.zip
Update Android port
* .gitignore: Add new files. * INSTALL.android: Explain how to build Emacs for ancient versions of Android. * admin/merge-gnulib (GNULIB_MODULES): Add getdelim. * build-aux/config.guess (timestamp, version): * build-aux/config.sub (timestamp, version): Autoupdate. * configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK): (ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS. Add new configure tests for Android API version when not explicitly specified. * doc/emacs/android.texi (Android): Add reference to ``Other Input Devices''. (Android File System): Remove restrictions on directory-files on the assets directory. * doc/emacs/emacs.texi (Top): Add Other Input Devices to menu. * doc/emacs/input.texi (Other Input Devices): New node. * doc/lispref/commands.texi (Touchscreen Events): Document changes to touchscreen input events. * doc/lispref/frames.texi (Pop-Up Menus): Likewise. * etc/NEWS: Announce changes. * java/Makefile.in: Use lib-src/asset-directory-tool to generate an `directory-tree' file placed in /assets. * java/debug.sh: Large adjustments to support Android 2.2 and later. * java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems): * java/org/gnu/emacs/EmacsCopyArea.java (perform): * java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): * java/org/gnu/emacs/EmacsDrawLine.java (perform): * java/org/gnu/emacs/EmacsDrawRectangle.java (perform): * java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable): * java/org/gnu/emacs/EmacsFillPolygon.java (perform): * java/org/gnu/emacs/EmacsFillRectangle.java (perform): * java/org/gnu/emacs/EmacsGC.java (EmacsGC): * java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): (destroyHandle): * java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid redundant canvas saves and restores. * java/org/gnu/emacs/EmacsService.java (run): * java/org/gnu/emacs/EmacsView.java (EmacsView): (handleDirtyBitmap): * java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground) (EmacsWindow): Make compatible with Android 2.2 and later. * lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool on Android.:(asset-directory-tool{EXEEXT}): New target. * lib-src/asset-directory-tool.c (struct directory_tree, xmalloc) (main_1, main_2, main): New file. * lib, m4: Merge from gnulib. This will be reverted before merging to master. * lisp/button.el (button-map): (push-button): * lisp/frame.el (display-popup-menus-p): Improve touchscreen support. * lisp/subr.el (event-start): (event-end): Handle touchscreen events. * lisp/touch-screen.el (touch-screen-handle-timeout): (touch-screen-handle-point-update): (touch-screen-handle-point-up): (touch-screen-track-tap): (touch-screen-track-drag): (touch-screen-drag-mode-line-1): (touch-screen-drag-mode-line): New functions. ([mode-line touchscreen-begin]): ([bottom-divider touchscreen-begin]): Bind new events. * lisp/wid-edit.el (widget-event-point): (widget-keymap): (widget-event-start): (widget-button--check-and-call-button): (widget-button-click): Improve touchscreen support. * src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC. (mark_pinned_symbols): Likewise. * src/android.c (struct android_emacs_window): New struct. (window_class): New variable. (android_run_select_thread): Add workaround for Android platform bug. (android_extract_long, android_scan_directory_tree): New functions. (android_file_access_p): Use those functions instead. (android_init_emacs_window): New function. (android_init_emacs_gc_class): Update signature of `markDirty'. (android_change_gc, android_set_clip_rectangles): Tell the GC whether or not clip rects were dirtied. (android_swap_buffers): Do not look up method every time. (struct android_dir): Adjust for new directory tree lookup. (android_opendir, android_readdir, android_closedir): Likewise. (android_four_corners_bilinear): Fix coding style. (android_ftruncate): New function. * src/android.h: Update prototypes. Replace ftruncate with android_ftruncate when necessary. * src/androidterm.c (handle_one_android_event): Pacify GCC. Fix touch screen tool bar bug. * src/emacs.c (using_utf8): Fix compilation error. * src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o is not built. * src/filelock.c (BOOT_TIME_FILE): Fix definition for Android. * src/frame.c (Fx_parse_geometry): Fix uninitialized variable uses. * src/keyboard.c (lispy_function_keys): Fix `back'. * src/menu.c (x_popup_menu_1): Handle touch screen events. (Fx_popup_menu): Document changes. * src/sfnt.c (main): Improve tests. * src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix minor problem. (init_sfntfont_android): Check for HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL. * src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle' and `languages'. (sfnt_parse_style): Append tokens to adstyle. (sfnt_parse_languages): New function. (sfnt_enum_font_1): Parse supported languages and adstyle. (sfntfont_list_1): Handle new fields. (sfntfont_text_extents): Fix uninitialized variable use. (syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
Diffstat (limited to 'java/Makefile.in')
-rw-r--r--java/Makefile.in37
1 files changed, 32 insertions, 5 deletions
diff --git a/java/Makefile.in b/java/Makefile.in
index c539fb0f1fb..22c912fdce5 100644
--- a/java/Makefile.in
+++ b/java/Makefile.in
@@ -21,6 +21,10 @@ top_builddir = @top_builddir@
21top_srcdir = @top_srcdir@ 21top_srcdir = @top_srcdir@
22version = @version@ 22version = @version@
23 23
24# This is the host lib-src and lib, not the cross compiler's lib-src.
25libsrc = ../lib-src
26EXEEXT = @EXEEXT@
27
24-include ${top_builddir}/src/verbose.mk 28-include ${top_builddir}/src/verbose.mk
25 29
26SHELL = @SHELL@ 30SHELL = @SHELL@
@@ -29,14 +33,25 @@ AAPT = @AAPT@
29D8 = @D8@ 33D8 = @D8@
30ZIPALIGN = @ZIPALIGN@ 34ZIPALIGN = @ZIPALIGN@
31JARSIGNER = @JARSIGNER@ 35JARSIGNER = @JARSIGNER@
36JARSIGNER_FLAGS =
32ANDROID_JAR = @ANDROID_JAR@ 37ANDROID_JAR = @ANDROID_JAR@
33ANDROID_ABI = @ANDROID_ABI@ 38ANDROID_ABI = @ANDROID_ABI@
39ANDROID_SDK_18_OR_EARLIER = @ANDROID_SDK_18_OR_EARLIER@
34 40
35WARN_JAVAFLAGS = -Xlint:deprecation 41WARN_JAVAFLAGS = -Xlint:deprecation
36JAVAFLAGS = -classpath "$(ANDROID_JAR):." -target 1.7 -source 1.7 \ 42JAVAFLAGS = -classpath "$(ANDROID_JAR):." -target 1.7 -source 1.7 \
37 $(WARN_JAVAFLAGS) 43 $(WARN_JAVAFLAGS)
38 44
39SIGN_EMACS = -keystore emacs.keystore -storepass emacs1 45# Android 4.3 and earlier require Emacs to be signed with a different
46# digital signature algorithm.
47
48ifneq (,$(ANDROID_SDK_18_OR_EARLIER))
49JARSIGNER_FLAGS = -sigalg MD5withRSA -digestalg SHA1
50else
51JARSIGNER_FLAGS =
52endif
53
54SIGN_EMACS = -keystore emacs.keystore -storepass emacs1 $(JARSIGNER_FLAGS)
40 55
41JAVA_FILES = $(shell find . -type f -name *.java) 56JAVA_FILES = $(shell find . -type f -name *.java)
42CLASS_FILES = $(foreach file,$(JAVA_FILES),$(basename $(file)).class) 57CLASS_FILES = $(foreach file,$(JAVA_FILES),$(basename $(file)).class)
@@ -82,7 +97,14 @@ CROSS_LIBS = ../xcompile/src/libemacs.so
82../xcompile/lib-src/ctags ../xcompile/lib-src/ebrowse &: 97../xcompile/lib-src/ctags ../xcompile/lib-src/ebrowse &:
83 make -C ../xcompile lib-src/$(notdir $@) 98 make -C ../xcompile lib-src/$(notdir $@)
84 99
85emacs.apk-in: $(CROSS_BINS) $(CROSS_LIBS) AndroidManifest.xml 100# This is needed to generate the ``.directory-tree'' file used by the
101# Android emulations of readdir and faccessat.
102
103$(libsrc)/asset-directory-tool:
104 $(MAKE) -C $(libsrc) $(notdir $@)
105
106emacs.apk-in: $(CROSS_BINS) $(CROSS_LIBS) $(libsrc)/asset-directory-tool \
107 AndroidManifest.xml
86# Make the working directory for this stuff 108# Make the working directory for this stuff
87 rm -rf install_temp 109 rm -rf install_temp
88 mkdir -p install_temp/lib/$(ANDROID_ABI) 110 mkdir -p install_temp/lib/$(ANDROID_ABI)
@@ -106,6 +128,9 @@ emacs.apk-in: $(CROSS_BINS) $(CROSS_LIBS) AndroidManifest.xml
106 rm -rf $${subdir}/[mM]akefile*[.-]in ; \ 128 rm -rf $${subdir}/[mM]akefile*[.-]in ; \
107 rm -rf $${subdir}/Makefile; \ 129 rm -rf $${subdir}/Makefile; \
108 done 130 done
131# Generate the directory tree for those directories.
132 $(libsrc)/asset-directory-tool install_temp/assets \
133 install_temp/assets/directory-tree
109# Install architecture dependents to lib/$(ANDROID_ABI). This 134# Install architecture dependents to lib/$(ANDROID_ABI). This
110# perculiar naming scheme is required to make Android preserve these 135# perculiar naming scheme is required to make Android preserve these
111# binaries upon installation. 136# binaries upon installation.
@@ -120,10 +145,12 @@ emacs.apk-in: $(CROSS_BINS) $(CROSS_LIBS) AndroidManifest.xml
120 cp -f $$file install_temp/lib/$(ANDROID_ABI); \ 145 cp -f $$file install_temp/lib/$(ANDROID_ABI); \
121 fi \ 146 fi \
122 done 147 done
123# Package everything. 148# Package everything. Specifying the assets on this command line is
124 $(AAPT) package -I "$(ANDROID_JAR)" -F $@ -f -M AndroidManifest.xml 149# necessary for AAssetManager_getNextFileName to work on old versions
150# of Android.
151 $(AAPT) package -I "$(ANDROID_JAR)" -F $@ -f -M AndroidManifest.xml \
152 -A install_temp/assets
125 pushd install_temp; $(AAPT) add ../$@ `find lib -type f`; popd 153 pushd install_temp; $(AAPT) add ../$@ `find lib -type f`; popd
126 pushd install_temp; $(AAPT) add ../$@ `find assets -type f`; popd
127 rm -rf install_temp 154 rm -rf install_temp
128 155
129# Makefile itself. 156# Makefile itself.