[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Avoid duplicate emacs.exe / emacs-$version.exe
From: |
Juan José García-Ripoll |
Subject: |
Avoid duplicate emacs.exe / emacs-$version.exe |
Date: |
Sat, 28 Mar 2020 17:53:00 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.90 (windows-nt) |
Right now in my hard disk I have two copies of statically linked Emacs.
~/emacs-27/bin/emacs.exe
~/emacs-27/bin/emacs-27.0.90.exe (let me call it emacs-$version.exe)
Each of them is 128Mb large and waste space. I understand the latter is
only meant to be used when the version is required. runemacs.exe and
tools actually seem to rely on emacs.exe, because if I delete
emacs-$version.exe it still works fine. Same goes for earlier releases.
I would suggest one of these options
a) Remove emacs-$version.exe during installation.
b) Same as a), but install a script emacs-$version.cmd containing just two
lines
@echo off
%~dp0\emacs.exe %*
c) Instead, remove emacs.exe and leave only emacs-$version.exe Make emacs.cmd a
script
@echo off
%~dp0\emacs-$version.exe %*
where $version is replaced with the current version. We also have to change
runemacs.exe to look for emacs-$version.exe
Option a) only invokes a change in Makefile.in. Option b) includes that change,
plus the creation of the script. This is in a patch attached to this
message. Option c) would be the most intrusive. I personally do not like it
because it binds a general utility, runemacs.exe, to a particular version.
After the patch:
juanj@DESKTOP-3A8AAJ0 MINGW64 ~/emacs-build/build/juanjo
$ du -smc ~/emacs-27/*
135 /c/Users/juanj/emacs-27/bin
1 /c/Users/juanj/emacs-27/include
1 /c/Users/juanj/emacs-27/lib
17 /c/Users/juanj/emacs-27/libexec
98 /c/Users/juanj/emacs-27/share
249 total
Before the patch:
juanj@DESKTOP-3A8AAJ0 MINGW64 ~/emacs-build/build/juanjo
$ du -smc ~/emacs-27/*
252 /c/Users/juanj/emacs-27/bin
1 /c/Users/juanj/emacs-27/include
1 /c/Users/juanj/emacs-27/lib
17 /c/Users/juanj/emacs-27/libexec
98 /c/Users/juanj/emacs-27/share
366 total
A 32% reduction in size.
--
Juan José García Ripoll
http://juanjose.garciaripoll.com
http://quinfog.hbar.es
diff --git a/Makefile.in b/Makefile.in
index 67e15cf..67c14f2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -499,10 +499,13 @@ install-arch-dep:
endif
-chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)"
ifndef NO_BIN_LINK
+ifeq ($(NTDIR),nt)
+ cd "$(DESTDIR)${bindir}" && mv "$(EMACSFULL)" "$(EMACS)"
+else
rm -f "$(DESTDIR)${bindir}/$(EMACS)"
cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) "$(EMACSFULL)" "$(EMACS)"
endif
-else
+endif
subdir=${ns_appresdir}/site-lisp && ${write_subdir}
rm -rf ${ns_appresdir}/share
endif
diff --git a/nt/Makefile.in b/nt/Makefile.in
index 6bdf824..7af6e78 100644
--- a/nt/Makefile.in
+++ b/nt/Makefile.in
@@ -167,7 +167,7 @@ LINK_CFLAGS =
## Unused.
CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS}
-all: ${EXE_FILES}
+all: ${EXE_FILES} emacs-$(version).cmd
.PHONY: all
@@ -194,6 +194,7 @@ install:
for file in ${INSTALLABLES} ; do \
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file}
"$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e
'$(TRANSFORM)'`${EXEEXT} ; \
done
+ $(INSTALL_PROGRAM) emacs-$(version).cmd "$(DESTDIR)${bindir}"
${MKDIR_P} "$(DESTDIR)${datadir}/emacs/$(version)"
$(INSTALL_DATA) ${srcdir}/README.W32
"$(DESTDIR)${datadir}/emacs/$(version)"
@@ -251,6 +252,10 @@ cmdproxy${EXEEXT}:
runemacs${EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES)
$(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $^ -mwindows -o $@
+emacs-$(version).cmd:
+ echo '@echo off' > $@
+ echo '%~dp0\emacs.exe %*' >> $@
+
## Also used in ../src/Makefile.
emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \
${srcdir}/icons/hand.cur ${srcdir}/$(EMACS_MANIFEST)
- Avoid duplicate emacs.exe / emacs-$version.exe,
Juan José García-Ripoll <=
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Eli Zaretskii, 2020/03/28
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Juan José García-Ripoll, 2020/03/28
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Phillip Lord, 2020/03/28
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Eli Zaretskii, 2020/03/28
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Juan José García-Ripoll, 2020/03/29
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Phillip Lord, 2020/03/29
- Re: Avoid duplicate emacs.exe / emacs-$version.exe, Eli Zaretskii, 2020/03/29
Re: Avoid duplicate emacs.exe / emacs-$version.exe, Eli Zaretskii, 2020/03/28