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).
fuente
Respuestas:
Se recomienda que los usuarios lean todo el
../emacs/nt/INSTALL
contenido 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
git
instalación es:C:\git
La
MinGW
instalació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
git
y 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) requierengit
que 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 loexport
establecido a continuación. El Emacsautogen.sh
busca elgit
comando en la RUTA y se queja si no se puede encontrar.Paso número 2 : instalar
MinGW
http://www.mingw.org/wiki/Getting_Started
mingw-get-setup.exe
Paso número 3 : descargue los siguientes
ezwinports
paquetes comprimidos y extráigalos en elmingw
directorio 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-bash
shell.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
Descomprima todo el contenido de
gnutls-3.3.11-w32-bin.zip
toC:\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.
EZWINPORTS
MINGW
MSYS
fuente
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:
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):
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:
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:
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:
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:
Ejecute autogen
Si está creando las fuentes de desarrollo, ejecute autogen para generar el script de configuración:
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.
Corre hacer
Esto compilará Emacs y compilará los ejecutables, colocándolos en el directorio src:
Para acelerar el proceso, puede intentar ejecutar
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:
También puede decir
para instalarlos en otro lugar.
Prueba Emacs
Para probarlo, ejecuta
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/ .
fuente
cp /c/msys64/mingw64/bin/*.dll bin
. Sin embargo, no sé mucho sobre gnutls, ¿hay alguna manera simple de probarlo?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).gnutls-available-p
devuelve 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.