Subject: bug#32763: closed (Re: [PATCH] Install emacs-module.h (Bug#31929))

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 03 Oct 2018 20:03:03 +0000

Your bug report

#31929: 26.1; emacs-module.h isn't installed with Emacs for module development

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
31929: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31929
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [PATCH] Install emacs-module.h (Bug#31929)
From: Philipp Stephani <[email-masked]>
To: [email-masked]
Cc: Philipp Stephani <[email-masked]>
Date: Wed, 3 Oct 2018 22:02:08 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Since there were no more comments, I've installed (a tiny variant of) this
patch as 00ea749f2a.

Philipp Stephani <[email-masked]> schrieb am Fr., 21. Sep. 2018 um
15:28 Uhr:

> * Makefile.in (includedir): New variable.
> (install-arch-indep): Install emacs-module.h.
> (uninstall): Uninstall emacs-module.h.
> ---
>  Makefile.in | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/Makefile.in b/Makefile.in
> index 19bf7c423f..5346429264 100644
> --- a/Makefile.in
> +++ b/Makefile.in
> @@ -151,6 +151,9 @@ libexecdir=
>  # Currently only used for the systemd service file.
>  libdir=@libdir@
>
> +# Where to install emacs-module.h.
> +includedir=@includedir@
> +
>  # Where to install Emacs's man pages.
>  # Note they contain cross-references that expect them to be in section 1.
>  mandir=@mandir@
> @@ -558,6 +561,8 @@ set_installuser=
>  ## See also these comments from 2004 about cp -r working fine:
>  ## https://lists.gnu.org/r/autoconf-patches/2004-11/msg00005.html
>  install-arch-indep: lisp install-info install-man
> ${INSTALL_ARCH_INDEP_EXTRA}
> +       $(MKDIR_P) -m 0755 $(includedir)
> +       $(INSTALL_DATA) src/emacs-module.h $(includedir)/emacs-module.h
>         -set ${COPYDESTS} ; \
>         unset CDPATH; \
>         $(set_installuser); \
> @@ -741,6 +746,7 @@ install-strip:
>  ###
>  ### Don't delete the lisp and etc directories if they're in the source
> tree.
>  uninstall: uninstall-$(NTDIR) uninstall-doc
> +       rm -f $(includedir)/emacs-module.h
>         $(MAKE) -C lib-src uninstall
>         -unset CDPATH; \
>         for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; do    \
> --
> 2.19.0
>
>

Subject: 26.1; emacs-module.h isn't installed with Emacs for module development
From: Vasilij Schneidermann <[email-masked]>
To: [email-masked]
Date: Tue, 18 Sep 2018 20:08:10 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

I've recently developed a simple module and ran into a surprising issue
with the skeleton: I couldn't locate the emacs-module.h in my system
matching the Emacs installation the module is compiled against.  I
eventually gave up and just bundled the emacs-module.h from a Git
checkout with my module's source code.  It makes up for most of the code
in the project.

This is far from ideal.  If I give an Emacs user the source code of a
module without that header file, they can't easily compile it for their
system.  This severely hamper a workflow where a package manager would
be extended to handle module compilation as I haven't found other Emacs
modules bundling the header file.  Is this an oversight in the
installation process or a deliberate design decision?