distributable:
  url: https://ftp.gnu.org/gnu/emacs/emacs-{{ version.raw }}.tar.xz
  strip-components: 1

versions:
  github: emacs-mirror/emacs/tags
  strip: /^emacs-/

dependencies:
  gnome.org/libxml2: ^2.10.3
  invisible-island.net/ncurses: ^6.3.0
  libjpeg-turbo.org: ^2.1.5.1
  gnu.org/sed: ^4.9.0
  gnu.org/texinfo: ^7.0.1
  gnu.org/libidn2: ^2.3
  gnutls.org: ^3.6
  zlib.net: ^1.2

runtime:
  env:
    EMACS_ROOT: ${{prefix}}
    EMACSLOADPATH: ${{prefix}}/share/emacs/lisp
    EMACSDATA: ${{prefix}}/share/emacs/etc

build:
  dependencies:
    freedesktop.org/pkg-config: ^0.29.2
  script: |
    ./configure $ARGS
    make --jobs {{ hw.concurrency }} install

    # we specify this with the env-var
    cd {{prefix}}/share/emacs
    mv {{version.marketing}}/lisp .
    mv site-lisp/* lisp
    rmdir site-lisp

    # doing it step by step to prove we didn’t leave anything here
    rm {{version.marketing}}/site-lisp/subdirs.el
    rmdir {{version.marketing}}/site-lisp

    mv {{version.marketing}}/etc .
    rmdir {{version.marketing}}

  env:
    ARGS:
      - --prefix="{{prefix}}"
      - --enable-check-lisp-object-type
      - --disable-silent-rules
      - --with-gnutls
      - --without-x
      - --with-xml2
      - --without-dbus
      - --with-modules
      - --without-ns
      - --without-imagemagick
      - --without-selinux
      - --with-x-toolkit=no
provides:
  - bin/emacs

test:
  script: |
    emacs --version | grep "GNU Emacs {{version.marketing}}"

    four=$(emacs --batch --eval="(print (+ 2 2))")
    test $four = 4

    emacs -batch -l $FIXTURE
  fixture: |
    (require 'simple)
    (defun my-print-message ()
      "Print a message to the *Messages* buffer"
      (message "This is a message from my script"))
    (my-print-message)