]> git.eshelyaron.com Git - emacs.git/commitdiff
Add --with-native-compilation=aot configuration option
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 3 Oct 2022 10:45:21 +0000 (12:45 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 3 Oct 2022 10:45:21 +0000 (12:45 +0200)
* configure.ac: Allow --with-native-compilation=aot to switch full
ahead-of-time on.

* lisp/Makefile.in: Use the setting from configure.

configure.ac
etc/NEWS
lisp/Makefile.in

index 4590ed3506e3076af19a09819b9a8c4307457ec5..2d8434405030935f783e99c00e76744b3b174d6f 100644 (file)
@@ -494,7 +494,6 @@ OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
 OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support])
 OPTION_DEFAULT_ON([modules],[don't compile with dynamic modules support])
 OPTION_DEFAULT_ON([threads],[don't compile with elisp threading support])
-OPTION_DEFAULT_OFF([native-compilation],[compile with Emacs Lisp native compiler support])
 OPTION_DEFAULT_OFF([cygwin32-native-compilation],[use native compilation on 32-bit Cygwin])
 OPTION_DEFAULT_ON([xinput2],[don't use version 2 of the X Input Extension for input])
 OPTION_DEFAULT_OFF([small-ja-dic],[generate a smaller-size Japanese dictionary])
@@ -1009,6 +1008,29 @@ AC_ARG_ENABLE([gcc-warnings],
          [gl_GCC_VERSION_IFELSE([5], [3], [gl_gcc_warnings=warn-only])])
    fi])
 
+NATIVE_COMPILATION_AOT=no
+AC_ARG_WITH([native-compilation],
+  [AS_HELP_STRING([--with-native-compilation@<:@=TYPE@:>@],
+                  [compile with Emacs Lisp native compiler support.  The TYPE
+                  'yes' (or empty) means to enable it and compile natively
+                  preloaded Lisp files; 'no' means to disable it;
+                  'aot' will make the build process compile all the Lisp
+                  files in the tree natively ahead of time.  (This will
+                  usually be quite slow.)])],
+  [
+  case $withval in
+     aot)
+       withval=yes
+       NATIVE_COMPILATION_AOT=yes
+       ;;
+     yes|no) ;;
+     *)      AC_MSG_ERROR([bad value $withval for native-compilation option]) ;;
+   esac
+   with_native_compilation=$withval],
+  [with_native_compilation=no]
+)
+AC_SUBST([NATIVE_COMPILATION_AOT])
+
 AC_ARG_ENABLE([check-lisp-object-type],
   [AS_HELP_STRING([--enable-check-lisp-object-type],
      [Enable compile time checks for the Lisp_Object data type,
index 8f9b0a03301bec89cc3130830527e5d366c78f40..db7c675edb5e8b39d1f3fd7930925e82b01b6f91 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,6 +24,12 @@ applies, and please also update docstrings as needed.
 \f
 * Installation Changes in Emacs 29.1
 
+---
+** Ahead-of-time native compilation can now be specified via configure.
+Use --with-native-compilation=aot to specify that all the Lisp files
+in the Emacs tree should be natively compiled ahead of time.  (This is
+slow on most machines.)
+
 +++
 ** Emacs can be built with built-in support for accessing SQLite databases.
 This uses the popular sqlite3 library, and can be disabled by using
index 4c26e423701af49e234eb96dab983108f01e7370..256017f6c5bdbfc568f72f54e632d5805e60613d 100644 (file)
@@ -31,10 +31,16 @@ EXEEXT = @EXEEXT@
 XARGS_LIMIT = @XARGS_LIMIT@
 
 HAVE_NATIVE_COMP = @HAVE_NATIVE_COMP@
+NATIVE_COMPILATION_AOT = @NATIVE_COMPILATION_AOT@
 ifeq ($(HAVE_NATIVE_COMP),yes)
+# Environment variable to enable Ahead-Of-Time compilation.
 ifndef NATIVE_FULL_AOT
 NATIVE_SKIP_NONDUMP = 1
 endif
+# Configured for Ahead-Of-Time compilation.
+ifeq ($(NATIVE_COMPILATION_AOT),yes)
+NATIVE_SKIP_NONDUMP = ""
+endif
 endif
 
 -include ${top_builddir}/src/verbose.mk