Cómo construir la rama maestra de Emacs (también conocida como troncal) en MS-Windows

11

Hoy me lancé y comencé mi búsqueda para construir la versión más reciente del desarrollador de la rama maestra de Emacs, también conocida como Emacs Trunk, para MS-Windows.

Encontré un blog antiguo y realicé el procedimiento, solo para recibir un mensaje de error que me decía que ese método en particular ya no era compatible. El mensaje de error que me remitieron a leer: .../emacs/nt/INSTALL. Bueno, eso está muy bien si la infraestructura para construir Emacs ya se ha instalado / configurado.

Seguramente sería útil si hubiera un paso 1, 2, 3 que describa qué herramientas se necesitan y cómo instalarlas / configurarlas con un ojo específico para construir Emacs en MS-Windows.

En caso de que a alguien le gustaría preparar un informe detallado, no dude en publicar una respuesta. Si no, escribiré uno yo mismo una vez que descubra cómo hacerlo. Me encontré con obstáculos adicionales y he enviado un informe de error en el ínterin. Todavía no sé si soy yo, o tal vez un error: https://debbugs.gnu.org/cgi/bugreport.cgi? error = 21582

Creo que más personas se sentirían inclinadas a construir sus propios Emacs si hubiera una "hoja de trucos" que pudieran utilizar los programadores principiantes o aficionados como yo (que no son programadores por oficio).

lista de leyes
fuente
Creo que puede compilar Emacs en Windows de más de una forma (es decir, muy probablemente MingW / MS VCC, pero también posiblemente clang. Puede buscar aquí la lista de bibliotecas necesarias (hay muchas) emacswiki.org/emacs / BuildingEmacsWithMinGW pero esta información seguramente está fechada (¡probablemente diez años más o menos!)
wvxvw
Para una compilación de 64 bits, hay una buena escritura de emacsbinw64 en sourceforge.net/p/emacsbinw64/wiki/… : utiliza MSYS2 y MinGW-w64. ¿Quizás las notas nt / INSTALL deberían actualizarse para incluir también esta opción?
Brian Burns
@ bburns.km: gracias por el enlace. Me preguntaba cómo construir el 64-bit, pero no tuve el tiempo libre para invertir innumerables horas descubriéndolo. En el futuro, definitivamente revisaré el enlace para ver si se trata de un paso 1, 2, 3 o simplemente un resumen donde los programadores avanzados saben cómo completar los espacios en blanco que faltan. Las instrucciones como nt / INSTALL son básicamente inútiles para un novato como yo: es significativo para un programador, pero no significa prácticamente nada para mí, mientras que mis 5 pasos fáciles son realmente 1, 2, 3 que cualquiera puede seguir.
ley
@lawlist Sí, es una buena crítica: intenté hace un año o dos hacer la compilación de 32 bits, pero algo salió mal y / o me perdí en ella, como usted dice que es bastante complejo para alguien que no está acostumbrado a construir cosas desde la fuente. Pero las instrucciones de emacsbinw64 son un poco más simples y funcionan bastante bien, solo tomó unas horas para revisarlo todo y hacerlo funcionar. Creo que preguntaré en el devlist sobre la actualización del documento nt / INSTALL: podría haber secciones de 32 bits y 64 bits. Empecé a escribir un documento, pero me di cuenta de que no agregaba demasiado a las instrucciones de emacsbinw64, pero podía usarse allí.
Brian Burns, el

Respuestas:

9

Se recomienda que los usuarios lean todo el ../emacs/nt/INSTALLcontenido del código fuente de Emacs.


Inicio rápido - 5 pasos sencillos :

Esta respuesta fue probada en Windows XP - SP3. Las rutas de instalación deberán ajustarse según las preferencias individuales del usuario. En este ejemplo:

  • El escritorio es: C:\Documents and Settings\lawlist\Desktop

  • La gitinstalación es: C:\git

  • La MinGWinstalación es: C:\mingw

  • La ubicación de descarga de git de la rama maestra de Emacs es: C:\Documents and Settings\lawlist\Desktop\emacs

  • El objetivo para la instalación de Emacs es: C:\Documents and Settings\lawlist\Desktop\trunk

Paso número 1 : instale gity asegúrese de seleccionar "pagar como está, confirmar como está" durante la instalación:

https://git-scm.com/download/win

Git-2.5.3-32-bit.exe

Ejecute el instalador.

próximo

próximo

El directorio de instalación estándar es C:\Program Files\Git, pero elegí en su lugar: c:\git

Seleccionar componentes: el valor predeterminado está bien, pero no elegí nada.

Seleccione la carpeta del menú de inicio: por defecto está bien, pero elegí no crear una carpeta.

Ajuste de su entorno PATH: el valor predeterminado está bien: use Git de Bash solamente.

;; Para la siguiente sección, preste mucha atención a la configuración no predeterminada: vea el error Emacs # 21582.

Configure las conversiones de final de línea: Emacs requiere una configuración no predeterminada de "finalizar la compra tal cual, confirmar tal cual"

Configuración del emulador de terminal para usar con Git Bash: el valor predeterminado está bien: use MinTTY (el terminal predeterminado de MSys2)

Configuración de ajustes de rendimiento experimentales: elegí NO "Habilitar el almacenamiento en caché del sistema de archivos".

Finalizar [ver notas de la versión si así lo desea]

NOTA: autogen.sh(y tal vez algunos programas de terceros) requieren gitque se establezca la RUTA para que se pueda llamar a los ejecutables sin utilizar la ruta absoluta. El autor de esta respuesta tiene una preferencia personal por usar rutas absolutas y no modificar la RUTA; sin embargo, la mayoría de las personas parecen preferir modificar la RUTA para las sesiones actuales y futuras. En Windows XP, por ejemplo, la RUTA se puede configurar dentro del Panel de control / Propiedades del sistema / pestaña Avanzado / botón Variables ambientales, y parece haber dos (2) vistas / opiniones sobre si un usuario debe establecer las Variables de usuario o el Sistema Variables: las rutas están separadas por punto y coma sin espacios. Esta respuesta simplemente establece la RUTA para la duración de la sesión usando lo exportestablecido a continuación. El Emacs autogen.shbusca elgit comando en la RUTA y se queja si no se puede encontrar.

Paso número 2 : instalarMinGW

http://www.mingw.org/wiki/Getting_Started

mingw-get-setup.exe

c:\mingw\bin\mingw-get install mingw32-base

c:\mingw\bin\mingw-get install msys-base

c:\mingw\bin\mingw-get install autoconf

c:\mingw\bin\mingw-get install automake

c:\mingw\bin\mingw-get install msys-coreutils

c:\mingw\bin\mingw-get remove mingw32-libiconv

c:\mingw\bin\mingw-get install "libiconv=1.13.1-1"

c:\mingw\msys\1.0\msys.bat

mount c:/mingw /mingw

Paso número 3 : descargue los siguientes ezwinportspaquetes comprimidos y extráigalos en el mingwdirectorio raíz .

https://sourceforge.net/projects/ezwinports/files/

;; descomprima todos los siguientes paquetes de ezwinports c:/mingw, sobrescribiendo cualquier duplicado.

cairo-1.12.16-w32-bin.zip

gdk-pixbuf-2.30.2-w32-bin.zip

giflib-5.1.0-w32-bin.zip

glib-2.38.2-w32-bin.zip

gnutls-3.3.11-w32-bin.zip

jpeg-v9a-w32-bin.zip

libpng-1.6.12-w32-bin.zip

librsvg-2.40.1-2-w32-bin.zip

libtasn1-4.2-w32-bin.zip

libxml2-2.7.8-w32-bin.zip

libXpm-3.5.11-2-w32-bin.zip

nettle-2.7.1-w32-bin.zip

p11-kit-0.9-w32-bin.zip

pixman-0.32.4-w32-bin.zip

pkg-config-0.28-w32-bin.zip

tiff-4.0.3-w32-bin.zip

zlib-1.2.8-2-w32-bin.zip

Paso número 4 : descargue los últimos archivos fuente de la rama maestra de Emacs utilizando un git-bashshell.

c:\git\git-bash.exe

cd /c/docume~1/lawlist/desktop/

git clone -b master git://git.sv.gnu.org/emacs.git

exit

Paso número 5 : Construya la rama maestra de Emacs y copie sobre los archivos .dll cuando haya terminado.

;; abrir símbolo del sistema genérico

c:\mingw\msys\1.0\msys.bat

export PATH=$PATH:/c/git/bin

cd /c/docume~1/lawlist/desktop/emacs

./autogen.sh

./configure --prefix=/c/docume~1/lawlist/desktop/trunk

make

make install

;; copy the following files to the `/bin` directory where `emacs.exe` is located.

cp /c/mingw/bin/libXpm-noX4.dll /c/docume~1/lawlist/desktop/trunk/bin/libXpm-noX4.dll

cp /c/mingw/bin/libpng16-16.dll /c/docume~1/lawlist/desktop/trunk/bin/libpng16-16.dll

cp /c/mingw/bin/libtiff-5.dll /c/docume~1/lawlist/desktop/trunk/bin/libtiff-5.dll

cp /c/mingw/bin/libjpeg-9.dll /c/docume~1/lawlist/desktop/trunk/bin/libjpeg-9.dll

cp /c/mingw/bin/libgif-7.dll /c/docume~1/lawlist/desktop/trunk/bin/libgif-7.dll

cp /c/mingw/bin/librsvg-2-2.dll /c/docume~1/lawlist/desktop/trunk/bin/librsvg-2-2.dll

cp /c/mingw/bin/libgdk_pixbuf-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libgdk_pixbuf-2.0-0.dll

cp /c/mingw/bin/libglib-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libglib-2.0-0.dll

cp /c/mingw/bin/libgobject-2.0-0.dll /c/docume~1/lawlist/desktop/trunk/bin/libgobject-2.0-0.dll

cp /c/mingw/bin/libxml2-2.dll /c/docume~1/lawlist/desktop/trunk/bin/libxml2-2.dll

cp /c/mingw/bin/zlib1.dll /c/docume~1/lawlist/desktop/trunk/bin/zlib1.dll

Descomprima todo el contenido de gnutls-3.3.11-w32-bin.ziptoC:\Documents and Settings\lawlist\Desktop\trunk


INSTALACIÓN MANUAL - MinGW / MSYS / EZwinports

Para aquellas almas aventureras que están interesadas en hacer una instalación manual de MinGW / MSYS / EZwinports, los siguientes son los archivos utilizados por este autor en Windows XP para crear una compilación exitosa de 32 bits con las siguientes opciones de configuración habilitadas por defecto. La configuración y la configuración variarán según las preferencias personales de los usuarios individuales, y está fuera del alcance de esta respuesta.

Configured for 'i686-pc-mingw32'.
Where should the build process find the source code?    .
What compiler should emacs be built with?               gcc -std=gnu99  -g3 -O 2 -gdwarf-2
Should Emacs use the GNU version of malloc?             no
  (The GNU allocators don't work with this system configuration.)
Should Emacs use a relocating allocator for buffers?    no
Should Emacs use mmap(2) for buffer allocation?         yes
What window system should Emacs use?                    w32
What toolkit should Emacs use?                          none
Where do we find X Windows header files?                NONE
Where do we find X Windows libraries?                   NONE
Does Emacs use -lXaw3d?                                 no
Does Emacs use -lXpm?                                   yes
Does Emacs use -ljpeg?                                  yes
Does Emacs use -ltiff?                                  yes
Does Emacs use a gif library?                           yes
Does Emacs use a png library?                           yes
Does Emacs use -lrsvg-2?                                yes
Does Emacs use cairo?                                   no
Does Emacs use imagemagick?                             no
Does Emacs support sound?                               yes
Does Emacs use -lgpm?                                   no
Does Emacs use -ldbus?                                  no
Does Emacs use -lgconf?                                 no
Does Emacs use GSettings?                               no
Does Emacs use a file notification library?             yes (w32)
Does Emacs use access control lists?                    yes
Does Emacs use -lselinux?                               no
Does Emacs use -lgnutls?                                yes
Does Emacs use -lxml2?                                  yes
Does Emacs use -lfreetype?                              no
Does Emacs use -lm17n-flt?                              no
Does Emacs use -lotf?                                   no
Does Emacs use -lxft?                                   no
Does Emacs directly use zlib?                           yes
Does Emacs use toolkit scroll bars?                     yes

EZWINPORTS

cairo-1.12.16-w32-bin.zip
gdk-pixbuf-2.30.2-w32-bin.zip
giflib-5.1.0-w32-bin.zip
glib-2.38.2-w32-bin.zip
gnutls-3.3.11-w32-bin.zip
jpeg-v9a-w32-bin.zip
libXpm-3.5.11-2-w32-bin.zip
libpng-1.6.12-w32-bin.zip
librsvg-2.40.1-2-w32-bin.zip
libtasn1-4.2-w32-bin.zip
libxml2-2.7.8-w32-bin.zip
nettle-2.7.1-w32-bin.zip
p11-kit-0.9-w32-bin.zip
pixman-0.32.4-w32-bin.zip
pkg-config-0.28-w32-bin.zip
tiff-4.0.3-w32-bin.zip
zlib-1.2.8-2-w32-bin.zip

MINGW

autoconf-10-1-mingw32-bin.tar.lzma
autoconf-10-1-mingw32-lic.tar.lzma
autoconf2.1-2.13-4-mingw32-bin.tar.lzma
autoconf2.5-2.68-1-mingw32-bin.tar.lzma
automake-4-1-mingw32-bin.tar.lzma
automake-4-1-mingw32-lic.tar.lzma
automake1.10-1.10.2-1-mingw32-bin.tar.lzma
automake1.11-1.11.1-1-mingw32-bin.tar.lzma
automake1.4-1.4p6-1-mingw32-bin.tar.lzma
automake1.5-1.5-1-mingw32-bin.tar.lzma
automake1.6-1.6.3-1-mingw32-bin.tar.lzma
automake1.7-1.7.9-1-mingw32-bin.tar.lzma
automake1.8-1.8.5-1-mingw32-bin.tar.lzma
automake1.9-1.9.6-3-mingw32-bin.tar.lzma
binutils-2.25.1-1-mingw32-bin.tar.xz
gcc-core-4.8.1-4-mingw32-bin.tar.lzma
gcc-core-4.8.1-4-mingw32-dev.tar.lzma
gcc-core-4.8.1-4-mingw32-dll.tar.lzma
gcc-core-4.8.1-4-mingw32-lic.tar.lzma
gdb-7.6.1-1-mingw32-bin.tar.lzma
gmp-5.1.2-1-mingw32-dll.tar.lzma
libcharset-1.13.1-1-mingw32-dll-1.tar.lzma
libiconv-1.13.1-1-mingw32-bin.tar.lzma
libiconv-1.13.1-1-mingw32-dev.tar.lzma
libiconv-1.13.1-1-mingw32-dll-2.tar.lzma
libiconv-1.13.1-1-mingw32-doc.tar.lzma
libiconv-1.13.1-1-mingw32-lic.tar.lzma
libintl-0.17-1-mingw32-dll-8.tar.lzma
libmpc-1.0.2-mingw32-dll-3.tar.xz
make-3.82.90-2-mingw32-cvs-20120902-bin.tar.lzma
mingwrt-3.21.1-mingw32-dev.tar.xz
mingwrt-3.21.1-mingw32-dll.tar.xz
mpfr-3.1.2-2-mingw32-dll.tar.lzma
pthreads-w32-2.9.1-1-mingw32-dll.tar.lzma
w32api-3.17-2-mingw32-dev.tar.lzma

MSYS

bash-3.1.23-1-msys-1.0.18-bin.tar.xz
bzip2-1.0.6-1-msys-1.0.17-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
coreutils-5.97-3-msys-1.0.13-doc.tar.lzma
coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
coreutils-5.97-3-msys-1.0.13-lang.tar.lzma
coreutils-5.97-3-msys-1.0.13-lic.tar.lzma
diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
dos2unix-7.2.3-1-msys-1.0.18-bin.tar.lzma
file-5.04-1-msys-1.0.13-bin.tar.lzma
findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma
grep-2.5.4-2-msys-1.0.13-bin.tar.lzma
gzip-1.3.12-2-msys-1.0.13-bin.tar.lzma
less-436-2-msys-1.0.13-bin.tar.lzma
libbz2-1.0.6-1-msys-1.0.17-dll-1.tar.lzma
libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma
libexpat-2.0.1-1-msys-1.0.13-dll-1.tar.lzma
libgdbm-1.8.3-3-msys-1.0.13-dll-3.tar.lzma
libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma
libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma
liblzma-5.0.3-1-msys-1.0.17-dll-5.tar.lzma
libmagic-5.04-1-msys-1.0.13-dll-1.tar.lzma
libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
libxml2-2.7.6-1-msys-1.0.13-dll-2.tar.lzma
m4-1.4.16-2-msys-1.0.17-bin.tar.lzma
make-3.81-3-msys-1.0.13-bin.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-doc.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-ext.tar.lzma
msysCORE-1.0.18-1-msys-1.0.18-lic.tar.lzma
perl-5.8.8-1-msys-1.0.17-bin.tar.lzma
sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
tar-1.23-1-msys-1.0.13-bin.tar.lzma
termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
texinfo-4.13a-2-msys-1.0.13-bin.tar.lzma
xz-5.0.3-1-msys-1.0.17-bin.tar.lzma
zlib-1.2.7-1-msys-1.0.17-dll.tar.lzma
lista de leyes
fuente
1

Había intentado las instrucciones en emacs / nt / INSTALL el año pasado para la compilación de 32 bits, pero algo salió mal (no recuerdo qué, exactamente), así que recientemente probé las instrucciones para emacsbinw64 , funcionó muy bien y funcionó muy bien. Fue más sencillo obtener las bibliotecas necesarias también. Utiliza MSYS2 y MinGW-w64 para una compilación de 64 bits: el proyecto emacsbinw64 proporciona binarios en https://sourceforge.net/projects/emacsbinw64/files/ .

Así que escribí algunas instrucciones siguiendo ese esquema, con comentarios de Eli Zaretski y el autor Chris Zheng: la versión completa está disponible en http://git.savannah.gnu.org/cgit/emacs.git/plain/nt/INSTALL .W64? H = emacs-25 (solo incluye construir desde un tarball de lanzamiento también).

Esto tomó aproximadamente 90 minutos en total en un Intel i3 y una conexión a Internet de alta velocidad: YMMV. Tenga en cuenta que la mayor parte del trabajo para compilar en Windows es simplemente configurar el entorno de compilación ...


Requisitos

El espacio total requerido es de 3 GB: 1,8 GB para MSYS2 / MinGW-w64 y 1,2 GB para Emacs con el repositorio completo.

Descargue e instale MinGW-w64 y MSYS2

Descargue la versión x86_64 de MSYS2 (es decir, msys2-x86_64-.exe) de https://sourceforge.net/projects/msys2/files/Base/x86_64 .

Ejecute este archivo para instalar MSYS2 en su directorio preferido, por ejemplo, el C: \ msys64 predeterminado; esto también instalará MinGW-w64. Tenga en cuenta que los nombres de directorio que contienen espacios pueden causar problemas.

Luego, deberá agregar los siguientes directorios a su variable de entorno PATH de Windows:

c:\msys64\usr\bin;c:\msys64\mingw64\bin

puede hacerlo a través del Panel de control / Sistema y seguridad / Sistema / Configuración avanzada del sistema / Variables de entorno / Editar ruta.

Agregar estos directorios a su RUTA le dice a Emacs dónde encontrar las DLL que necesita ejecutar, y algunos comandos opcionales como grep y find. Estos comandos también estarán disponibles en la consola de Windows.

Descargue e instale los paquetes necesarios

Ejecute msys2_shell.bat en su directorio MSYS2 y verá una ventana BASH abierta.

En el indicador BASH, use el siguiente comando para instalar los paquetes necesarios (puede copiarlo y pegarlo en el shell con Shift + Insert):

pacman -S base-devel \
mingw-w64-x86_64-toolchain \
mingw-w64-x86_64-xpm-nox \
mingw-w64-x86_64-libtiff \
mingw-w64-x86_64-giflib \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-libjpeg-turbo \
mingw-w64-x86_64-librsvg \
mingw-w64-x86_64-libxml2 \
mingw-w64-x86_64-gnutls

Ahora tiene un entorno de compilación completo para Emacs.

Instale Git (opcional) y deshabilite autocrlf

Si aún no tiene Git en su sistema, puede instalarlo en su entorno MSYS2 con:

pacman -S git

La función autocrlf de Git puede interferir con el archivo de configuración, por lo que es mejor deshabilitar esta función ejecutando el comando:

git config core.autocrlf false

Obtenga el código fuente de Emacs

Para descargar el repositorio de Git, haga algo como lo siguiente: esto colocará la fuente de Emacs en C: \ emacs \ emacs-25:

mkdir /c/emacs
cd /c/emacs
git clone git://git.sv.gnu.org/emacs.git emacs-25

Construye Emacs

Ahora está listo para construir e instalar Emacs con autogen, configure, make e make install.

Primero necesitamos cambiar al entorno MinGW-w64. Salga de la consola MSYS2 BASH y ejecute mingw64_shell.bat en la carpeta C: \ msys64, luego regrese a su directorio de origen de Emacs, por ejemplo:

cd /c/emacs/emacs-25

Ejecute autogen

Si está creando las fuentes de desarrollo, ejecute autogen para generar el script de configuración:

./autogen.sh

Ejecutar configurar

Ahora puede ejecutar configure, que construirá los distintos Makefiles.

La opción '--prefix' especifica una ubicación para los archivos binarios resultantes, que 'make install' usará; en este ejemplo, la configuramos en C: \ emacs \ emacs-25. Si no se especifica un prefijo, los archivos se colocarán en los directorios estándar de Unix ubicados en su directorio C: \ msys64, pero esto no se recomienda.

Tenga en cuenta también que necesitamos deshabilitar Imagemagick porque Emacs aún no lo admite en Windows.

PKG_CONFIG_PATH=/mingw64/lib/pkgconfig \
./configure --prefix=/c/emacs/emacs-25 --without-imagemagick

Corre hacer

Esto compilará Emacs y compilará los ejecutables, colocándolos en el directorio src:

make

Para acelerar el proceso, puede intentar ejecutar

make -jN

donde N es el número de núcleos en su sistema: si su MSYS2 admite la ejecución paralela, se ejecutará significativamente más rápido.

Ejecute make install

Ahora puede ejecutar "make install", que copiará el archivo ejecutable y otros archivos a la ubicación especificada en el paso de configuración. Esto creará los directorios bin, libexec, share y var:

make install

También puede decir

make install prefix=/c/somewhere

para instalarlos en otro lugar.

Prueba Emacs

Para probarlo, ejecuta

./bin/runemacs.exe -Q

y si todo salió bien, tendrá una nueva versión de Emacs de 64 bits.

Hacer un atajo

Para hacer un acceso directo para ejecutar el nuevo Emacs, haga clic derecho en la ubicación donde desea colocarlo, por ejemplo, el Escritorio, seleccione Nuevo / Acceso directo, luego seleccione runemacs.exe en la carpeta bin del nuevo Emacs, y asígnele un nombre .

Puede establecer cualquier opción de línea de comando haciendo clic derecho en el acceso directo resultante, seleccione Propiedades, luego agregue cualquier opción al comando Destino, por ejemplo --debug-init.

Créditos

Gracias a Chris Zheng por el esquema de compilación original utilizado por el proyecto emacsbinw64, ubicado en https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/ .

Licencia

Este archivo es parte de GNU Emacs.

GNU Emacs es software libre: puede redistribuirlo y / o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior.

GNU Emacs se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o APTITUD PARA UN PROPÓSITO EN PARTICULAR. Vea la Licencia Pública General de GNU para más detalles.

Debería haber recibido una copia de la Licencia Pública General de GNU junto con GNU Emacs. Si no, vea http://www.gnu.org/licenses/ .

Brian Burns
fuente
Considere agregar un paso para copiar sobre cualquier archivo .dll que deba colocarse directamente en el mismo ejecutable de Emacs una vez que se complete la compilación, para que Emacs no necesite depender de una ruta definida en todo el sistema para encontrarlos archivos. Además, probablemente sea necesario copiar los ejecutables para gnutls en el directorio ejecutable de Emacs. Los últimos pasos probablemente deberían ser bastante similares a la compilación Emacs 32 en la respuesta alternativa.
ley el
Sí, las instrucciones originales se escribieron de esa manera, pero Eli pensó que era mejor usar la RUTA: lists.gnu.org/archive/html/bug-gnu-emacs/2015-12/msg01476.html. Sin embargo, es otra opción: si desea hacerlo de esa manera, puede copiar todas las DLL en C: \ msys64 \ mingw64 \ bin a la carpeta bin de emacs (solo tienen unos 32 MB) cp /c/msys64/mingw64/bin/*.dll bin. Sin embargo, no sé mucho sobre gnutls, ¿hay alguna manera simple de probarlo?
Brian Burns, el
En el sentido más general, sin usarlo realmente para correo electrónico o algo así, la prueba general es con la función gnutls-available-p Entiendo la razón de la simplicidad cuando me refiero a las rutas del sistema, pero a veces las personas pueden querer usar la compilación Emacs en una computadora diferente y se preguntarán por qué las imágenes y otras cosas no funcionan de manera inmediata. Hay muchos subprocesos con personas que preguntan por qué los archivos pdf parecen galimatías en un búfer regular (es decir, debido a la falta de compatibilidad con PNG), o por qué no pueden hacer doc-view o vista previa en AUCTeX (mismo motivo).
abogados el
De acuerdo, gnutls-available-pdevuelve t usando solo la configuración PATH, por lo que asumiré que está funcionando por ahora; sin embargo, enviaré un parche con el método alternativo para copiar las DLL, y posiblemente los ex de gnutls, si es necesario, y actualizarlos aquí más tarde.
Brian Burns, el