From: Po Lu Date: Tue, 11 Jul 2023 08:47:13 +0000 (+0800) Subject: Fix doc file generation on Android X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fcf53bf9f5894665af07499137d7e8ef888cdcdd;p=emacs.git Fix doc file generation on Android * .gitignore: Ignore cross/etc/DOC. * configure.ac: Make the directory `cross/etc'. * cross/Makefile.in (CLEAN_SUBDIRS): Clean files inside `etc' as well. * java/Makefile.in (install_temp): Copy cross/etc/DOC to the package if it is available. * src/Makefile.in (SOME_MACHINE_OBJECTS): Add androidselect.c, sfntfont-android.c and sfntfont.c. (libemacs.so): Depend on $(etc)/DOC. --- diff --git a/.gitignore b/.gitignore index c95bccccfbf..889008dd96d 100644 --- a/.gitignore +++ b/.gitignore @@ -107,6 +107,7 @@ cross/lib-src/* cross/sys/* cross/config.status cross/*.bak +cross/etc/DOC cross/ndk-build/Makefile cross/ndk-build/ndk-build.mk diff --git a/configure.ac b/configure.ac index 48d474f6888..86abf54911e 100644 --- a/configure.ac +++ b/configure.ac @@ -7828,6 +7828,12 @@ if test "$XCONFIGURE" != "android"; then AS_MKDIR_P([cross/lib/sys]) AS_MKDIR_P([cross/lib-src]) + dnl Make cross/etc; this directory will hold the documentation file + dnl holding doc strings for Android specific C files that aren't + dnl built during the initial compilation of Emacs for the build + dnl machine. + AS_MKDIR_P([cross/etc]) + dnl Link gnulib files to cross/lib as well. dnl af_alg.h and lib/save-cwd.h are copied manually from dnl gnulib, and as such aren't specified in gl_FILE_LIST. diff --git a/cross/Makefile.in b/cross/Makefile.in index 5976272b253..a7b5700440e 100644 --- a/cross/Makefile.in +++ b/cross/Makefile.in @@ -51,7 +51,7 @@ LIB_SRC_TOP_SRCDIR = $(realpath $(top_src)) LIBSRC_BINARIES = lib-src/etags lib-src/ctags lib-src/emacsclient \ lib-src/ebrowse lib-src/hexl lib-src/movemail -CLEAN_SUBDIRS=src lib-src lib +CLEAN_SUBDIRS = src lib-src lib etc .PHONY: all all: lib/libgnu.a src/libemacs.so src/android-emacs $(LIBSRC_BINARIES) diff --git a/cross/verbose.mk.android b/cross/verbose.mk.android index 998f9843c7d..d41d6b6aac0 100644 --- a/cross/verbose.mk.android +++ b/cross/verbose.mk.android @@ -45,7 +45,7 @@ have_working_info = $(filter notintermediate,$(value .FEATURES)) # since the bug is not annoying elsewhere. AM_V_AR = @$(info $ AR $@) -AM_V_at = @ +AM_V_at = @ AM_V_CC = @$(info $ CC $@) AM_V_CXX = @$(info $ CXX $@) AM_V_CCLD = @$(info $ CCLD $@) diff --git a/java/Makefile.in b/java/Makefile.in index 84173cd9655..d11278e6110 100644 --- a/java/Makefile.in +++ b/java/Makefile.in @@ -191,6 +191,11 @@ install_temp: $(CROSS_BINS) $(CROSS_LIBS) $(RESOURCE_FILES) $(AM_V_SILENT) cp -r $(top_srcdir)/lisp install_temp/assets $(AM_V_SILENT) cp -r $(top_srcdir)/etc install_temp/assets $(AM_V_SILENT) cp -r $(top_srcdir)/info install_temp/assets +# Replace etc/DOC generated by compiling Emacs for the build machine +# with etc/DOC from the cross-compiled Emacs. + $(AM_V_SILENT) test -f $(top_builddir)/cross/etc/DOC \ + && cp -r $(top_builddir)/cross/etc/DOC \ + install_temp/assets/etc # Remove undesirable files from those directories. $(AM_V_SILENT) \ for subdir in `find install_temp -type d -print`; do \ diff --git a/src/Makefile.in b/src/Makefile.in index 9d43af4dad6..8cbdd67378c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -494,7 +494,7 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ w16select.o widget.o xfont.o ftfont.o xftfont.o gtkutil.o \ xsettings.o xgselect.o termcap.o hbfont.o \ haikuterm.o haikufns.o haikumenu.o haikufont.o androidterm.o androidfns.o \ - androidfont.o + androidfont.o androidselect.c sfntfont-android.c sfntfont.c ## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. GMALLOC_OBJ=@GMALLOC_OBJ@ @@ -749,11 +749,11 @@ ifeq ($(DUMPING),unexec) endif ifeq ($(XCONFIGURE),android) -## The Android package internally links to and communicates with a -## shared library named `libemacs.so' at startup. This is built -## almost the same way temacs is. But it is position independent. It -## is not dumped here. Instead, it dumps itself the first time it -## starts on the user's device. +## The Android package internally links to a shared library named +## `libemacs.so' at startup. It is built almost the same way temacs +## is. But it is position independent, and is not dumped here. +## Instead, it dumps itself the first time it starts on the user's +## device. # Include ndk-build.mk in order to build Emacs dependencies. old_top_builddir := $(top_builddir) @@ -763,7 +763,7 @@ top_builddir := $(old_top_builddir) libemacs.so: $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \ $(MAKE_PDUMPER_FINGERPRINT) $(NDK_BUILD_SHARED) \ - $(NDK_BUILD_STATIC) + $(NDK_BUILD_STATIC) $(etc)/DOC $(AM_V_CCLD)$(CC) -o $@ $(ALL_CFLAGS) $(TEMACS_LDFLAGS) \ $(ANDROID_LDFLAGS) $(LDFLAGS) -shared $(ALLOBJS) \ $(LIBEGNU_ARCHIVE) $(LIBES)