Subject: bug#50818: 28.0.50; .eln files need to be executable on Cygwin

From: Ken Brown <[email-masked]>
Date: Mon, 27 Sep 2021 14:52:15 -0400

On 9/26/2021 12:57 PM, Ken Brown wrote:
> On 9/26/2021 12:04 PM, Eli Zaretskii wrote:
>> Please define a new INSTALL_ELN macro for that purpose.
> 
> OK.  But I'd like to hear first (maybe from Andrea?) whether there's a reason 
> for this to be Cygwin-specific, and whether INSTALL_DATA is in fact typically 
> used for installing libraries on other platforms.

I decide to go ahead with a Cygwin-specific patch (attached).  If Andrea or 
someone else decides this would be good for all platforms, they can do that later.

OK to push?

Ken
>From 6bec21243d20df015875ee8576bc722224480acb Mon Sep 17 00:00:00 2001
From: Ken Brown <[email-masked]>
Date: Mon, 27 Sep 2021 14:46:41 -0400
Subject: [PATCH] Make .eln files executable on Cygwin

* Makefile.in (INSTALL_ELN): New variable, equal to $(INSTALL) on
Cygwin and $(INSTALL_DATA) on other platforms.
(install-eln): Use INSTALL_ELN instead of INSTALL_DATA.
(Bug#50818)
---
 Makefile.in | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Makefile.in b/Makefile.in
index 235b707673..5fc1edc7a3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -285,10 +285,16 @@ use_gamedir=
 # not use an absolute path.  So we must take care to always run
 # INSTALL-type commands from the directory containing the Makefile.
 # This explains (I think) the cd thisdir seen in several install rules.
+SYSTEM_TYPE = @SYSTEM_TYPE@
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_INFO = @INSTALL_INFO@
+ifeq ($(SYSTEM_TYPE),cygwin)
+  INSTALL_ELN = $(INSTALL)
+else
+  INSTALL_ELN = $(INSTALL_DATA)
+endif
 # By default, we uphold the dignity of our programs.
 INSTALL_STRIP =
 MKDIR_P = @MKDIR_P@
@@ -791,7 +797,7 @@ install-eln:
 ifeq ($(HAVE_NATIVE_COMP),yes)
 	umask 022 ; \
 	find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}" \; ; \
-	find native-lisp -type f -exec ${INSTALL_DATA} "{}" "$(ELN_DESTDIR){}" \;
+	find native-lisp -type f -exec ${INSTALL_ELN} "{}" "$(ELN_DESTDIR){}" \;
 endif
 
 ### Build Emacs and install it, stripping binaries while installing them.
-- 
2.33.0