Enable native compilation for debian
authorRob Browning <rlb@defaultvalue.org>
Sat, 25 Jun 2022 19:03:48 +0000 (14:03 -0500)
committerRob Browning <rlb@defaultvalue.org>
Sat, 25 Jun 2022 19:06:03 +0000 (14:06 -0500)
Thanks to Aymeric Agon-Rambosson for noting that the native-lisp tree
is flavor specific.

debian/control
debian/rules

index 3c262f3b2a42ebde55b873a7f549f1bcfdfee60f..d20825a56916f1f6e98a305b722b6a61bed0e619 100644 (file)
@@ -4,6 +4,7 @@ Priority: optional
 Maintainer: Rob Browning <rlb@defaultvalue.org>
 Build-Depends: bsd-mailx | mailx, libncurses5-dev, texinfo, liblockfile-dev, librsvg2-dev,
  dbus-x11,
+ gcc-11,
  git,
  gnupg-agent,
  libgif-dev,
@@ -22,6 +23,7 @@ Build-Depends: bsd-mailx | mailx, libncurses5-dev, texinfo, liblockfile-dev, lib
  sharutils,
  imagemagick,
  libcairo-dev,
+ libgccjit-11-dev,
  libgmp-dev,
  libgtk-3-dev,
  libgnutls28-dev, libxml2-dev, libselinux1-dev [linux-any],
index 6b624354c63776fbbad0484861f9a5a25d6c8ed1..818eb7a5f7ba0dc7ed48311143daf634d946da08 100755 (executable)
@@ -252,6 +252,9 @@ debian/emacs-common.README.Debian: \
          >> debian/emacs-common.README.tmp
        mv debian/emacs-common.README.tmp $@
 
+# Uncomment to experiment with NATIVE_FULL_AOT - tests don't appear to pass yet.
+#export NATIVE_FULL_AOT ?= 1
+
 # common configure flags
 confflags += --prefix=/usr
 confflags += --sharedstatedir=/var/lib
@@ -265,6 +268,7 @@ confflags += --enable-locallisppath=$(local_lpath)
 confflags += --with-sound=alsa
 confflags += --without-gconf
 confflags += --with-mailutils
+confflags += --with-native-compilation
 
 # x configure flags
 confflags_gtk := $(confflags)
@@ -291,6 +295,7 @@ confflags_lucid += --without-gsettings
 define cfg_tree
   cd $(1) && \
     CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" \
+    CC=gcc-11 \
     REL_ALLOC=no \
       $(CURDIR)/debian/build-src/configure $(confflags) $(2)
 endef
@@ -346,6 +351,10 @@ define install_common_binpkg_bits
   install -d $(2)/$(libexec_dir_emacs)
   cp -a $(1)/$(libexec_dir_emacs)/emacs.pdmp $(2)/$(libexec_dir_emacs)/
 
+  install -d $(2)/usr/lib/emacs/$(runtime_ver)
+  cp -a $(1)/usr/lib/emacs/$(runtime_ver)/native-lisp \
+       $(2)/usr/lib/emacs/$(runtime_ver)
+
   install -d $(2)/usr/share/emacs/$(runtime_ver)/etc
   cp -a $(1)/usr/share/emacs/$(runtime_ver)/etc/DOC \
        $(2)/usr/share/emacs/$(runtime_ver)/etc/
@@ -385,6 +394,8 @@ override_dh_auto_install: $(autogen_install_files)
          cd $(pkgdir_common)/usr \
            && rmdir --parents libexec/emacs/$(runtime_ver)/$(DEB_HOST_GNU_TYPE)
 
+       rm -r $(pkgdir_common)/usr/lib/emacs/$(runtime_ver)/native-lisp
+
        cd $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc \
          && test -f DOC
        cd $(pkgdir_common)/usr/share/emacs/$(runtime_ver)/etc \