Como construir o ramo principal do Emacs (também conhecido como tronco) no MS-Windows

11

Tomei a iniciativa hoje e comecei minha missão de criar a mais recente versão do desenvolvedor do ramo mestre do Emacs - o Emacs Trunk - para MS-Windows.

Encontrei um blog antigo e segui o procedimento, apenas para receber uma mensagem de erro informando que um método específico não era mais suportado. A mensagem de erro remeteu-me para ler: .../emacs/nt/INSTALL. Bem, está tudo bem e elegante se a infraestrutura para a construção do Emacs já tiver sido instalada / configurada.

Certamente seria útil se houvesse uma etapa 1, 2, 3 que descreva quais ferramentas são necessárias e como proceder para instalá-las / configurá-las com um olhar específico para a criação do Emacs no MS-Windows.

Caso alguém deseje preparar um artigo detalhado, sinta-se à vontade para postar uma resposta. Caso contrário, eu mesmo escreverei um assim que descobrir como fazê-lo. Fui recebido com bloqueios adicionais e enviei um relatório de bug nesse meio tempo - ainda não sei se sou eu, ou talvez seja um bug: https://debbugs.gnu.org/cgi/bugreport.cgi? bug = 21582

Eu acho que mais pessoas estariam inclinadas a construir seu próprio Emacs se houvesse um "truque" que pudesse ser usado por programadores iniciantes ou entusiastas como eu (que não são programadores por profissão).

lista de leis
fonte
Eu acho que você pode criar o Emacs no Windows de mais de uma maneira (ou seja, provavelmente MingW / MS VCC, mas também possivelmente clang. Você pode procurar aqui a lista de bibliotecas necessárias (existem muitas) emacswiki.org/emacs / BuildingEmacsWithMinGW mas esta informação é, seguramente, datada (com maior probabilidade dez anos ou mais!)
wvxvw
Para uma compilação de 64 bits, há uma boa redação do emacsbinw64 em sourceforge.net/p/emacsbinw64/wiki/… - ele usa MSYS2 e MinGW-w64. Talvez as notas nt / INSTALL também devam ser atualizadas para incluir essa opção?
Brian Burns
@ bburns.km - obrigado pelo link. Fiquei me perguntando como construir o de 64 bits, mas não tinha tempo livre para investir inúmeras horas para descobrir isso. No futuro, definitivamente vou verificar o link para ver se é algo que é uma etapa 1, 2, 3 ou apenas um esboço em que programadores avançados sabem como preencher os espaços em branco que estão faltando. As instruções como o nt / INSTALL são basicamente inúteis para um iniciante como eu - é significativo para um programador, mas não significa praticamente nada para mim - enquanto meus 5 passos fáceis são realmente 1, 2, 3 verdadeiros Pode seguir.
Law13 /
@lawlist Sim, é uma boa redação - tentei há um ou dois anos fazer a compilação de 32 bits, mas algo deu errado e / ou me perdi nela - como você diz que é bastante complexo para alguém que não está acostumado a criar coisas a partir da fonte. Mas as instruções do emacsbinw64 são um pouco mais simples e funcionaram muito bem - levou apenas algumas horas para passar por tudo e fazê-lo funcionar. Acho que vou perguntar na devlist sobre a atualização do documento nt / INSTALL - pode haver seções de 32 e 64 bits. Eu comecei a escrever um documento, mas percebi que não adicionava muito às instruções emacsbinw64, mas poderia ser usado lá.
Brian Burns

Respostas:

9

É recomendável que os usuários leiam todo o ../emacs/nt/INSTALLconteúdo do código-fonte do Emacs.


Início rápido - 5 etapas fáceis :

Esta resposta foi testada no WindowsXP-SP3. Os caminhos da instalação precisarão ser ajustados com base nas preferências individuais do usuário. Neste exemplo:

  • A área de trabalho é: C:\Documents and Settings\lawlist\Desktop

  • A gitinstalação é: C:\git

  • A MinGWinstalação é: C:\mingw

  • O local do download git do ramo principal do Emacs é: C:\Documents and Settings\lawlist\Desktop\emacs

  • O destino para a instalação do Emacs é: C:\Documents and Settings\lawlist\Desktop\trunk

Etapa número 1 : instale gite certifique-se de selecionar "checkout como está, confirmar como está" durante a instalação:

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

Git-2.5.3-32-bit.exe

Execute o instalador.

Próximo

Próximo

O diretório de instalação padrão é C:\Program Files\Git, mas eu escolhi: c:\git

Selecionar componentes: o padrão é bom, mas não escolhi nada.

Selecione a pasta do menu Iniciar: o padrão é bom, mas optei por não criar uma pasta.

Ajustando seu ambiente PATH: o padrão é bom: use o Git apenas do Bash.

;; Para esta próxima seção, preste muita atenção à configuração não padrão - consulte o bug # 21582 do Emacs.

Configure as conversões de final de linha: O Emacs requer uma configuração não padrão de "check-out como está, confirmar como está"

Configurar o emulador de terminal para usar com o Git Bash: o padrão é bom: use MinTTY (o terminal padrão do MSys2)

Configurando ajustes de desempenho experimental: escolhi NÃO para "Ativar o cache do sistema de arquivos".

Concluir [veja as notas de versão, se desejar]

NOTA: autogen.sh(e talvez alguns programas de terceiros) exigem que o gitPATH seja definido para que os executáveis ​​possam ser chamados sem usar o caminho absoluto. O autor desta resposta tem uma preferência pessoal por usar caminhos absolutos e não modificar o PATH; no entanto, a maioria das pessoas parece preferir modificar o PATH para sessões atuais e futuras. No Windows XP, por exemplo, o PATH pode ser definido no painel Painel de Controle / Propriedades do Sistema / guia Avançado / botão Variáveis ​​Ambientais, e parece haver duas (2) visualizações / opiniões sobre se um usuário deve definir as Variáveis ​​do Usuário ou o Sistema Variáveis ​​- os caminhos são separados por ponto e vírgula sem espaços. Esta resposta simplesmente define o CAMINHO para a duração da sessão export, conforme estabelecido abaixo. O Emacs autogen.shprocura ogit comando no PATH e reclama se não puder ser encontrado.

Etapa 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

Etapa número 3 : Faça o download dos seguintes ezwinportspacotes compactados e extraia para o mingwdiretório raiz .

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

;; descompacte todos os seguintes pacotes ezwinports em c:/mingw, substituindo quaisquer duplicatas.

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

Etapa número 4 : Faça o download dos arquivos de origem da ramificação principal do Emacs mais recentes usando um 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

Etapa número 5 : crie a ramificação principal do Emacs e copie os arquivos .dll quando terminar.

;; Prompt de comando genérico aberto

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

Descompacte todo o conteúdo de gnutls-3.3.11-w32-bin.zipparaC:\Documents and Settings\lawlist\Desktop\trunk


INSTALAÇÃO MANUAL - MinGW / MSYS / EZwinports

Para as almas aventureiras que estão interessadas em fazer uma instalação manual do MinGW / MSYS / EZwinports, a seguir estão os arquivos usados ​​por este autor no Windows XP para criar uma compilação de 32 bits bem-sucedida com as seguintes opções de configuração ativadas por padrão. A instalação e a configuração variarão de acordo com as preferências pessoais dos usuários individuais e estão além do escopo desta resposta.

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 leis
fonte
1

Eu tentei as instruções no emacs / nt / INSTALL no ano passado para a compilação de 32 bits, mas algo deu errado (não me lembro exatamente), então recentemente tentei as instruções para o emacsbinw64 - funcionou muito bem e era mais simples obter também as bibliotecas necessárias. Ele usa o MSYS2 e o MinGW-w64 para uma compilação de 64 bits - o projeto emacsbinw64 fornece binários em https://sourceforge.net/projects/emacsbinw64/files/ .

Então, eu escrevi algumas instruções seguindo esse esboço, com feedback de Eli Zaretski e do autor Chris Zheng - a versão completa está em http://git.savannah.gnu.org/cgit/emacs.git/plain/nt/INSTALL .W64? H = emacs-25 (inclui também a construção de um tarball de lançamento).

Isso levou cerca de 90 minutos no total em uma conexão com a Internet Intel i3 e alta velocidade - YMMV. Observe que a maior parte do trabalho de construção no Windows está apenas configurando o ambiente de compilação ...


Exigências

O espaço total necessário é de 3 GB: 1,8 GB para MSYS2 / MinGW-w64 e 1,2 GB para Emacs com o repositório completo.

Baixe e instale o MinGW-w64 e o MSYS2

Faça o download da versão x86_64 do MSYS2 (ou seja, msys2-x86_64-.exe) em https://sourceforge.net/projects/msys2/files/Base/x86_64 .

Execute esse arquivo para instalar o MSYS2 em seu diretório preferido, por exemplo, o C: \ msys64 padrão - isso instalará o MinGW-w64 também. Observe que os nomes de diretório que contêm espaços podem causar problemas.

Em seguida, você precisará adicionar os seguintes diretórios à sua variável de ambiente PATH do Windows:

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

você pode fazer isso no Painel de controle / Sistema e segurança / Sistema / Configurações avançadas do sistema / Variáveis ​​de ambiente / Caminho de edição.

A adição desses diretórios ao PATH informa ao Emacs onde encontrar as DLLs que ele precisa executar e alguns comandos opcionais, como grep e find. Esses comandos também estarão disponíveis no console do Windows.

Baixe e instale os pacotes necessários

Execute o msys2_shell.bat no diretório MSYS2 e você verá uma janela BASH aberta.

No prompt do BASH, use o seguinte comando para instalar os pacotes necessários (você pode copiá-lo e colá-lo no shell com 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

Agora você tem um ambiente de compilação completo para o Emacs.

Instale o Git (opcional) e desative o autocrlf

Se você ainda não possui o Git no seu sistema, é possível instalá-lo no seu ambiente MSYS2 com:

pacman -S git

O recurso autocrlf do Git pode interferir no arquivo de configuração, portanto, é melhor desativar esse recurso executando o comando:

git config core.autocrlf false

Obtenha o código fonte do Emacs

Para baixar o repositório Git, faça algo como o seguinte - isso colocará a fonte do Emacs em C: \ emacs \ emacs-25:

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

Build Emacs

Agora você está pronto para criar e instalar o Emacs com autogen, configurar, fazer e instalar.

Primeiro, precisamos mudar para o ambiente MinGW-w64. Saia do console do MSYS2 BASH e execute mingw64_shell.bat na pasta C: \ msys64 e depois volte ao diretório de origem do Emacs, por exemplo:

cd /c/emacs/emacs-25

Executar autogen

Se você estiver construindo as fontes de desenvolvimento, execute o autogen para gerar o script de configuração:

./autogen.sh

Execute o configure

Agora você pode executar o configure, que criará os vários Makefiles.

A opção '--prefix' especifica um local para os arquivos binários resultantes, que 'make install' usará - neste exemplo, definimos como C: \ emacs \ emacs-25. Se um prefixo não for especificado, os arquivos serão colocados nos diretórios Unix padrão localizados no diretório C: \ msys64, mas isso não é recomendado.

Observe também que precisamos desativar o Imagemagick porque o Emacs ainda não o suporta no Windows.

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

Run make

Isso irá compilar o Emacs e construir os executáveis, colocando-os no diretório src:

make

Para acelerar o processo, você pode tentar executar

make -jN

onde N é o número de núcleos no seu sistema - se o seu MSYS2 suportar a execução paralela, ele será executado significativamente mais rápido.

Execute make install

Agora você pode executar "make install", que copiará os arquivos executáveis ​​e outros para o local especificado na etapa de configuração. Isso criará os diretórios bin, libexec, share e var:

make install

Você também pode dizer

make install prefix=/c/somewhere

para instalá-los em outro lugar.

Test Emacs

Para testá-lo, execute

./bin/runemacs.exe -Q

e se tudo der certo, você terá uma nova versão de 64 bits do Emacs.

Faça um atalho

Para criar um atalho para executar o novo Emacs, clique com o botão direito do mouse no local em que deseja colocá-lo, por exemplo, na área de trabalho, selecione Novo / Atalho, depois selecione runemacs.exe na pasta bin do novo Emacs e dê um nome a ele .

Você pode definir qualquer opção de linha de comando clicando com o botão direito do mouse no atalho resultante, selecione Propriedades e adicione quaisquer opções ao comando Destino, por exemplo - --bug-init.

Créditos

Agradecemos a Chris Zheng pelo esquema de compilação original, conforme usado pelo projeto emacsbinw64, localizado em https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/ .

Licença

Este arquivo faz parte do GNU Emacs.

O GNU Emacs é um software livre: você pode redistribuí-lo e / ou modificá-lo sob os termos da GNU General Public License, publicada pela Free Software Foundation, versão 3 da licença ou (a seu critério) qualquer versão posterior.

O GNU Emacs é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem sequer a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM OBJETIVO ESPECÍFICO. Veja a Licença Pública Geral GNU para mais detalhes.

Você deveria ter recebido uma cópia da Licença Pública Geral GNU junto com o GNU Emacs. Caso contrário, consulte http://www.gnu.org/licenses/ .

Brian Burns
fonte
Considere adicionar uma etapa para copiar qualquer arquivo .dll que precise ser colocado no mesmo diretamente que o executável do Emacs após a conclusão da compilação, para que o Emacs não precise confiar em um caminho definido em todo o sistema para encontrar esses arquivos. arquivos. Além disso, provavelmente é necessário copiar os executáveis ​​do gnutls no diretório executável do Emacs. Os últimos passos provavelmente devem ser bastante semelhantes à compilação do Emacs 32 na resposta alternativa.
lawlist
Sim, as instruções originais foram escritas dessa maneira, mas Eli achou melhor usar o PATH - lists.gnu.org/archive/html/bug-gnu-emacs/2015-12/msg01476.html. Porém, é outra opção - se você quiser fazer dessa maneira, poderá copiar todas as DLLs da pasta C: \ msys64 \ mingw64 \ bin para a pasta emacs bin - elas têm apenas 32 MB - cp /c/msys64/mingw64/bin/*.dll bin. Eu não sei muito sobre gnutls - existe uma maneira simples de testá-lo?
Brian Burns
No sentido mais geral, sem realmente usá-lo para e-mail ou algo assim, o teste geral é com a função gnutls-available-p Eu entendo o motivo da simplicidade ao me referir apenas aos caminhos do sistema, mas às vezes as pessoas podem querer usar o Emacs em outro computador e eles se perguntarão por que imagens e outras coisas não funcionam imediatamente. Existem muitos tópicos em que as pessoas perguntam por que os arquivos pdf parecem bobos em um buffer comum (ou seja, devido à falta de suporte a png) ou por que eles não podem exibir ou visualizar documentos no AUCTeX (mesmo motivo).
lawlist
Ok, gnutls-available-pretorna t usando apenas a configuração PATH, portanto, assumirei que está funcionando por enquanto - enviarei um patch com o método alternativo para copiar as DLLs e, possivelmente, o gnutls exes, se necessário, e atualize aqui mais tarde.
Brian Burns