Cara membangun cabang utama Emacs (alias trunk) di MS-Windows

11

Saya mengambil risiko hari ini dan memulai pencarian saya untuk membangun build master branch Emacs terbaru - alias Emacs Trunk - untuk MS-Windows.

Saya menemukan sebuah blog lama dan menjalani prosedur, hanya untuk bertemu dengan pesan kesalahan yang memberitahukan saya bahwa metode tertentu tidak lagi didukung. Pesan kesalahan disebut saya baca: .../emacs/nt/INSTALL. Baiklah, itu bagus dan bagus jika infrastruktur untuk membangun Emacs sudah diinstal / dikonfigurasi.

Tentu akan berguna jika ada langkah 1, 2, 3 yang menjelaskan alat apa yang dibutuhkan dan bagaimana cara menginstal / mengonfigurasinya dengan mata khusus untuk membangun Emacs di MS-Windows.

Jika ada orang yang ingin menyiapkan tulisan terperinci, jangan ragu untuk mengirim jawaban. Jika tidak, saya akan menulis sendiri setelah saya mengetahui cara melakukannya. Saya bertemu dengan penghalang jalan tambahan dan telah mengirimkan laporan bug untuk sementara - saya belum tahu apakah itu saya, atau mungkin bug: https://debbugs.gnu.org/cgi/bugreport.cgi? bug = 21582

Saya pikir lebih banyak orang akan cenderung untuk membangun Emacs mereka sendiri jika ada "cheat-sheet" yang dapat digunakan oleh pemrogram pemula atau penggemar seperti saya (yang bukan pemrogram dengan perdagangan).

daftar hukum
sumber
Saya pikir Anda dapat membangun Emacs di Windows dalam lebih dari satu cara (yaitu kemungkinan besar MingW / MS VCC, tetapi juga mungkin berdentang. Anda dapat mencari di sini untuk daftar perpustakaan yang diperlukan (ada banyak dari mereka) emacswiki.org/emacs /
BangunEmacDenganMinGW
Untuk versi 64 bit, ada langgan yang bagus dari emacsbinw64 di sourceforge.net/p/emacsbinw64/wiki/… - ia menggunakan MSYS2 dan MinGW-w64. Mungkin catatan nt / INSTALL harus diperbarui untuk memasukkan opsi ini juga?
Brian Burns
@ bburns.km - terima kasih atas tautannya. Saya bertanya-tanya bagaimana cara membangun 64-bit, tetapi tidak memiliki waktu luang untuk menginvestasikan banyak waktu untuk mencari tahu. Di masa depan, saya pasti akan memeriksa tautan untuk melihat apakah itu adalah sesuatu yang merupakan langkah 1, 2, 3, atau hanya garis besar di mana pemrogram mahir tahu cara mengisi kekosongan yang hilang. Instruksi seperti nt / INSTALL pada dasarnya tidak berguna untuk pemula seperti saya - itu berarti bagi seorang programmer, tapi itu hampir tidak berarti bagi saya - sedangkan, langkah 5-mudah saya memang benar 1, 2, 3 bahwa siapa pun bisa mengikuti.
hukum
@hukumlist Ya itu langganan yang bagus - Saya mencoba satu atau dua tahun yang lalu untuk melakukan build 32 bit tetapi ada yang salah dan / atau saya tersesat di dalamnya - seperti yang Anda katakan itu cukup rumit untuk seseorang yang tidak terbiasa membangun sesuatu dari sumber. Tetapi instruksi emacsbinw64 sedikit lebih sederhana dan bekerja dengan baik - hanya perlu beberapa jam untuk menyelesaikannya dan membuatnya bekerja. Saya pikir saya akan bertanya pada devlist tentang memperbarui dokumen nt / INSTALL - mungkin ada bagian 32 bit dan 64 bit. Saya sudah mulai menulis dokumen tetapi menyadari itu tidak menambah terlalu banyak ke instruksi emacsbinw64, tetapi bisa digunakan di sana.
Brian Burns

Jawaban:

9

Disarankan agar pengguna membaca keseluruhan yang ../emacs/nt/INSTALLterkandung dalam kode sumber Emacs.


Mulai Cepat - 5 Langkah Mudah :

Jawaban ini diuji pada WindowsXP - SP3. Jalur instalasi harus disesuaikan berdasarkan preferensi individu pengguna. Dalam contoh ini:

  • Desktopnya adalah: C:\Documents and Settings\lawlist\Desktop

  • The gitinstalasi: C:\git

  • The MinGWinstalasi: C:\mingw

  • Lokasi unduhan git dari cabang utama Emacs adalah: C:\Documents and Settings\lawlist\Desktop\emacs

  • Target untuk instalasi Emacs adalah: C:\Documents and Settings\lawlist\Desktop\trunk

Langkah Nomor 1 : Instal gitdan pastikan untuk memilih "checkout apa adanya, komit apa adanya" selama instalasi:

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

Git-2.5.3-32-bit.exe

Jalankan penginstal.

Lanjut

Lanjut

Direktori instalasi standar C:\Program Files\Git, tetapi saya memilih sebagai gantinya: c:\git

Pilih komponen: default tidak apa-apa, tetapi saya tidak memilih apa pun.

Pilih folder mulai menu: standarnya oke, sedikit saya memilih untuk tidak membuat folder.

Menyesuaikan lingkungan PATH Anda: default tidak apa-apa: Gunakan Git dari Bash saja.

;; Untuk bagian selanjutnya, perhatikan pengaturan non-default - lihat Emacs bug # 21582.

Konfigurasikan konversi akhir baris: Emacs memerlukan pengaturan non-default "checkout apa adanya, komit apa adanya"

Mengkonfigurasi emulator terminal untuk digunakan dengan Git Bash: default tidak apa-apa: Gunakan MinTTY (terminal default MSys2)

Mengkonfigurasi tweak kinerja eksperimental: Saya memilih TIDAK untuk "Mengaktifkan caching sistem file".

Selesai [lihat catatan rilis jika diinginkan]

CATATAN: autogen.sh(dan mungkin beberapa program pihak ketiga) memerlukan gitPATH untuk diatur sehingga executable dapat dipanggil tanpa menggunakan jalur absolut. Penulis jawaban ini memiliki preferensi pribadi untuk menggunakan jalur absolut dan tidak memodifikasi PATH; Namun, kebanyakan orang tampaknya lebih suka memodifikasi PATH untuk sesi saat ini dan masa depan. Pada Windows XP, misalnya, PATH dapat diatur dalam Control Panel / System Properties / tab Advanced / tombol Variabel Lingkungan, dan tampaknya ada dua (2) pandangan / pendapat mengenai apakah pengguna harus mengatur Variabel Pengguna atau Sistem. Variabel - jalur dipisahkan oleh titik koma tanpa spasi. Jawaban ini hanya menetapkan PATH selama durasi sesi menggunakan yang exportditetapkan di bawah ini. Emacs autogen.shmencarigit perintah pada PATH dan mengeluh jika tidak dapat ditemukan.

Langkah Nomor 2 : InstalMinGW

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

Langkah Nomor 3 : Unduh ezwinportspaket zip berikut dan ekstrak ke mingwdirektori root .

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

;; unzip semua paket ezwinports berikut ke dalam c:/mingw, timpa duplikat apa pun.

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

Langkah Nomor 4 : Unduh file sumber cabang utama Emacs terbaru menggunakan 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

Langkah Nomor 5 : Bangun cabang master Emacs dan salin file .dll setelah selesai.

;; buka Command Prompt generik

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

Buka ritsleting seluruh konten gnutls-3.3.11-w32-bin.ziphinggaC:\Documents and Settings\lawlist\Desktop\trunk


INSTALASI MANUAL - MinGW / MSYS / EZwinports

Bagi mereka yang berjiwa petualang yang tertarik melakukan instalasi manual MinGW / MSYS / EZwinports, berikut ini adalah file yang digunakan oleh penulis ini pada Windows XP untuk membuat build 32-bit yang sukses dengan opsi konfigurasi berikut yang diaktifkan secara default. Pengaturan dan konfigurasi akan bervariasi tergantung pada preferensi pribadi pengguna individu, dan berada di luar cakupan jawaban ini.

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
daftar hukum
sumber
1

Saya telah mencoba instruksi di emacs / nt / INSTALL tahun lalu untuk build 32-bit tetapi ada yang salah (saya tidak ingat apa, tepatnya), jadi baru-baru ini saya mencoba instruksi untuk emacsbinw64 - ini bekerja dengan sangat baik, dan itu lebih sederhana untuk mendapatkan perpustakaan yang diperlukan juga. Ia menggunakan MSYS2 dan MinGW-w64 untuk build 64-bit - proyek emacsbinw64 menyediakan binari di https://sourceforge.net/projects/emacsbinw64/files/ .

Jadi saya menulis beberapa instruksi mengikuti garis besar itu, dengan umpan balik dari Eli Zaretski dan penulis Chris Zheng - versi lengkapnya tersedia di http://git.savannah.gnu.org/cgit/emacs.git/plain/nt/INSTALL .W64? H = emacs-25 (hanya menyertakan bangunan dari tarbal rilis juga).

Ini memakan waktu sekitar 90 menit pada Intel i3 dan koneksi internet kecepatan tinggi - YMMV. Perhatikan bahwa sebagian besar pekerjaan untuk membangun di Windows hanya menyiapkan lingkungan build ...


Persyaratan

Total ruang yang diperlukan adalah 3GB: 1.8GB untuk MSYS2 / MinGW-w64 dan 1.2GB untuk Emacs dengan repositori penuh.

Unduh dan instal MinGW-w64 dan MSYS2

Unduh MSYS2 versi x86_64 (yaitu msys2-x86_64-.exe) dari https://sourceforge.net/projects/msys2/files/Base/x86_64 .

Jalankan file ini untuk menginstal MSYS2 di direktori pilihan Anda, misalnya C default: \ msys64 - ini juga akan menginstal MinGW-w64. Perhatikan bahwa nama direktori yang mengandung spasi dapat menyebabkan masalah.

Maka Anda perlu menambahkan direktori berikut ke variabel lingkungan Windows PATH Anda:

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

Anda dapat melakukan ini melalui Panel Kontrol / Sistem dan Keamanan / Sistem / Pengaturan sistem lanjutan / Variabel Lingkungan / Edit path.

Menambahkan direktori ini ke PATH Anda memberi tahu Emacs tempat untuk menemukan DLL yang perlu dijalankan, dan beberapa perintah opsional seperti grep dan find. Perintah-perintah ini juga akan tersedia di konsol Windows.

Unduh dan instal paket yang diperlukan

Jalankan msys2_shell.bat di direktori MSYS2 Anda dan Anda akan melihat jendela BASH dibuka.

Di BASH prompt, gunakan perintah berikut untuk menginstal paket yang diperlukan (Anda dapat menyalin dan menempelkannya ke shell dengan 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

Anda sekarang memiliki lingkungan build yang lengkap untuk Emacs.

Instal Git (opsional) dan nonaktifkan autocrlf

Jika Anda belum memiliki Git di sistem Anda, Anda dapat menginstalnya di lingkungan MSYS2 Anda dengan:

pacman -S git

Fitur autocrlf dari Git dapat mengganggu file configure, jadi yang terbaik adalah menonaktifkan fitur ini dengan menjalankan perintah:

git config core.autocrlf false

Dapatkan kode sumber Emacs

Untuk mengunduh repositori Git, lakukan sesuatu seperti berikut - ini akan memasukkan sumber Emacs ke C: \ emacs \ emacs-25:

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

Bangun Emacs

Sekarang Anda siap untuk membangun dan menginstal Emacs dengan autogen, mengkonfigurasi, membuat, dan melakukan instalasi.

Pertama, kita perlu beralih ke lingkungan MinGW-w64. Keluar dari konsol MSYS2 BASH dan jalankan mingw64_shell.bat di folder C: \ msys64, kemudian cd kembali ke direktori sumber Emacs Anda, misalnya:

cd /c/emacs/emacs-25

Jalankan autogen

Jika Anda sedang membangun sumber pengembangan, jalankan autogen untuk menghasilkan skrip configure:

./autogen.sh

Jalankan configure

Sekarang Anda dapat menjalankan configure, yang akan membangun berbagai Makefiles.

Opsi '--prefix' menentukan lokasi untuk file biner yang dihasilkan, yang akan digunakan oleh 'make install' - dalam contoh ini kita atur ke C: \ emacs \ emacs-25. Jika awalan tidak ditentukan file akan dimasukkan ke dalam direktori Unix standar yang terletak di direktori C: \ msys64 Anda, tetapi ini tidak dianjurkan.

Perhatikan juga bahwa kita perlu menonaktifkan Imagemagick karena Emacs belum mendukungnya di Windows.

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

Jalankan make

Ini akan mengkompilasi Emacs dan membangun executable, menempatkannya di direktori src:

make

Untuk mempercepat proses, Anda dapat mencoba menjalankan

make -jN

di mana N adalah jumlah core dalam sistem Anda - jika MSYS2 Anda mendukung eksekusi paralel, itu akan berjalan secara signifikan lebih cepat.

Jalankan make install

Sekarang Anda dapat menjalankan "make install", yang akan menyalin file yang dapat dieksekusi dan lainnya ke lokasi yang ditentukan dalam langkah configure. Ini akan membuat direktori bin, libexec, share, dan var:

make install

Bisa juga dikatakan

make install prefix=/c/somewhere

untuk menginstalnya di tempat lain.

Uji Emacs

Untuk mengujinya, jalankan

./bin/runemacs.exe -Q

dan jika semuanya berjalan dengan baik, Anda akan memiliki Emacs versi 64-bit yang baru.

Buat jalan pintas

Untuk membuat pintasan untuk menjalankan Emacs baru, klik kanan pada lokasi di mana Anda ingin meletakkannya, misalnya Desktop, pilih New / Shortcut, lalu pilih runemacs.exe di folder bin dari Emacs baru, dan beri nama .

Anda dapat mengatur opsi baris perintah dengan mengklik kanan pada pintasan yang dihasilkan, pilih Properties, lalu tambahkan opsi ke perintah Target, misalnya --debug-init.

Kredit

Terima kasih kepada Chris Zheng untuk garis besar pembuatan asli seperti yang digunakan oleh proyek emacsbinw64, yang terletak di https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/ .

Lisensi

File ini adalah bagian dari GNU Emacs.

GNU Emacs adalah perangkat lunak gratis: Anda dapat mendistribusikannya kembali dan / atau memodifikasinya berdasarkan ketentuan Lisensi Publik Umum GNU yang diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.

GNU Emacs didistribusikan dengan harapan akan bermanfaat, tetapi TANPA GARANSI APA PUN; bahkan tanpa jaminan tersirat DAGANG atau KECOCOKAN UNTUK TUJUAN TERTENTU. Lihat Lisensi Publik Umum GNU untuk detail lebih lanjut.

Anda seharusnya telah menerima salinan Lisensi Publik Umum GNU bersama dengan GNU Emacs. Jika tidak, lihat http://www.gnu.org/licenses/ .

Brian Burns
sumber
Pertimbangkan untuk menambahkan langkah untuk menyalin file .dll apa pun yang perlu ditempatkan secara langsung sama dengan yang dapat dieksekusi Emacs setelah build selesai, sehingga Emacs tidak perlu bergantung pada jalur yang ditentukan seluruh sistem untuk menemukan file tersebut. file. Juga, mungkin perlu menyalin lebih dari executable untuk gnutl ke direktori executable Emacs. Langkah-langkah terakhir mungkin harus cukup mirip dengan membangun Emacs 32 dalam jawaban alternatif.
Gugatan
Ya, instruksi asli ditulis seperti itu, tetapi Eli berpikir lebih baik menggunakan PATH - lists.gnu.org/archive/html/bug-gnu-emacs/2015-12/msg01476.html. Ini adalah pilihan lain - jika Anda ingin melakukannya dengan cara itu, Anda bisa menyalin semua DLL di C: \ msys64 \ mingw64 \ bin ke folder bin emacs - hanya sekitar 32MB - cp /c/msys64/mingw64/bin/*.dll bin. Saya tidak tahu banyak tentang gnutl - apakah ada cara sederhana untuk mengujinya?
Brian Burns
Dalam arti paling umum tanpa benar-benar menggunakannya untuk email atau sesuatu, tes umum adalah dengan fungsi gnutls-available-p Saya mengerti alasan kesederhanaan ketika hanya merujuk pada jalur sistem, tetapi kadang-kadang orang mungkin ingin menggunakan Emacs build di komputer yang berbeda dan mereka akan bertanya-tanya mengapa gambar dan barang tidak bekerja di luar kotak. Ada banyak utas dengan orang-orang yang bertanya mengapa file pdf terlihat seperti omong kosong dalam buffer reguler (yaitu, karena kurangnya dukungan png), atau mengapa mereka tidak dapat melakukan doc-view atau preview di AUCTeX (alasan yang sama).
hukum
Oke, gnutls-available-pmengembalikan t menggunakan hanya pengaturan PATH, jadi saya akan menganggap itu berfungsi untuk saat ini - saya akan mengirimkan tambalan dengan metode alternatif untuk menyalin DLL, dan mungkin exe gnutl, jika itu diperlukan, dan perbarui di sini kemudian.
Brian Burns