Msys2编译Emacs

Msys2编译Emacs

Msys2编译Emacs

Origin link: https://gist.github.com/nauhygon/f3b44f51b34e89bc54f8

1 Download & install MSYS2

Download MSYS2 (msys2-x86_64-20140704.exe) from this download page.

Install MSYS2 to, for example, C:msys2 (make sure no space in path).

2 console

Optionally prettify the MSYS2 console mintty with ~/.minttyrc to make it more pleasing to eyes. Thanks to this awesome theme!

ForegroundColour=131,148,150
BackgroundColour=0,43,54
CursorColour=192,192,192
Black=7,54,66
BoldBlack=0,43,54
Red=220,50,47
BoldRed=203,75,22
Green=133,153,0
BoldGreen=88,110,117
Yellow=181,137,0
BoldYellow=101,123,131
Blue=38,139,210
BoldBlue=131,148,150
Magenta=211,54,130
BoldMagenta=108,113,196
Cyan=42,161,152
BoldCyan=147,161,161
White=238,232,213
BoldWhite=253,246,227
BoldAsFont=yes
Font=Consolas
FontHeight=12
Transparency=off
OpaqueWhenFocused=no
ScrollbackLines=200000
FontSmoothing=full
CursorType=underscore
CursorBlinks=yes
ScrollMod=off
RightClickAction=paste
ClickTargetMod=off

Remove all /c/* paths in $PATH by adding this to .bashrc and restart mintty.

This is important to avoid interference from programs installed on the same machine, especially if you have Cygwin installed.

# Remove '/c/*' from PATH if running under Msys to avoid possible
# interference from programs already installed on system. Removal
# with awk is copied from http://stackoverflow.com/a/370192.
if [ $(uname -o) == 'Msys' ]; then
    export PATH=`echo ${PATH} | awk -v RS=: -v ORS=: '/c// {next} {print}' | sed 's/:*$//'`
fi

The whole .bashrc is copied here.

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

##############
### Basics ###
##############

# Don't wait for job termination notification
set -o notify

# Enables UTF-8 in Putty.
# See http://www.earth.li/~huggie/blog/tech/mobile/putty-utf-8-trick.html
echo -ne 'e%Ge[?47he%Ge[?47l'

# My pretty prompt (Yay!)
PS1='[e[32;40m]u[e[0m][e[34;40m]H[e[0m][e[40;1m]w[e[0m] '

############
### PATH ###
############

# Remove '/c/*' from PATH if running under Msys to avoid possible
# interference from programs already installed on system. Removal
# with awk is copied from http://stackoverflow.com/a/370192.
if [ $(uname -o) == 'Msys' ]; then
    export PATH=`echo ${PATH} | awk -v RS=: -v ORS=: '/c// {next} {print}' | sed 's/:*$//'`
fi

###############
### Aliases ###
###############


alias less='less -r'
alias rm='rm -i'
alias whence='type -a'
alias ls='ls -F --color=auto'
alias dir='ls --color=auto --format=long -L'
alias vdir='ls --color=auto --format=long'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias md='mkdir'
alias pico='nano'
alias cls='clear'

3 Install packages required to build Emacs.

Follow instructions on this page first.

pacman -Syu
pacman -Sy
pacman -Sy
    --needed 
    filesystem 
    msys2-runtime 
    bash 
    libreadline 
    libiconv 
    libarchive 
    libgpgme 
    libcurl 
    pacman 
    ncurses 
    libintl

Close mintty and restart it, do this again.

pacman -Su

Then let us install all required libs for building Emacs.

#!/usr/bin/bash
pacman -S 
      autoconf 
      autogen 
      automake 
      automake-wrapper 
      diffutils 
      git 
      guile 
      libgc 
      libguile 
      libltdl 
      libunistring 
      make 
      mingw-w64-x86_64-binutils 
      mingw-w64-x86_64-bzip2 
      mingw-w64-x86_64-cairo 
      mingw-w64-x86_64-cloog 
      mingw-w64-x86_64-crt-git 
      mingw-w64-x86_64-dbus 
      mingw-w64-x86_64-expat 
      mingw-w64-x86_64-fontconfig 
      mingw-w64-x86_64-freetype 
      mingw-w64-x86_64-gcc 
      mingw-w64-x86_64-gcc-libs 
      mingw-w64-x86_64-gdk-pixbuf2 
      mingw-w64-x86_64-gettext 
      mingw-w64-x86_64-giflib 
      mingw-w64-x86_64-glib2 
      mingw-w64-x86_64-gmp 
      mingw-w64-x86_64-gnutls 
      mingw-w64-x86_64-harfbuzz 
      mingw-w64-x86_64-headers-git 
      mingw-w64-x86_64-imagemagick 
      mingw-w64-x86_64-isl 
      mingw-w64-x86_64-libcroco 
      mingw-w64-x86_64-libffi 
      mingw-w64-x86_64-libiconv 
      mingw-w64-x86_64-libjpeg-turbo 
      mingw-w64-x86_64-libpng 
      mingw-w64-x86_64-librsvg 
      mingw-w64-x86_64-libtiff 
      mingw-w64-x86_64-libwinpthread-git 
      mingw-w64-x86_64-libxml2 
      mingw-w64-x86_64-mpc 
      mingw-w64-x86_64-mpfr 
      mingw-w64-x86_64-pango 
      mingw-w64-x86_64-pixman 
      mingw-w64-x86_64-winpthreads 
      mingw-w64-x86_64-xpm-nox 
      mingw-w64-x86_64-xz 
      mingw-w64-x86_64-zlib 
      tar 
      wget

4 Get emacs source.

mkdir emacs; cd emacs
git clone http://git.savannah.gnu.org/r/emacs.git emacs
git config core.autocrlf false

5 Build Emacs!

Change target accordingly, the directory in which the freshly built Emacs binaries, libraries, and docs live.

target=/c/emacs

export PATH=/mingw64/bin:$PATH

mkdir build; cd build

(cd ../emacs; ./autogen.sh)

export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig

../emacs/configure 
    --host=x86_64-w64-mingw32 
    --target=x86_64-w64-mingw32 
    --build=x86_64-w64-mingw32 
    --with-gnutls 
    --with-imagemagick 
    --with-jpeg 
    --with-png 
    --with-rsvg 
    --with-tiff 
    --with-wide-int 
    --with-xft 
    --with-xml2 
    --with-xpm 
    'CFLAGS=-I/mingw64/include/noX' 
    prefix=$target

make

make install prefix=$target

cp /mingw64/bin/*.dll $target

Date: 2017-01-15 15:25

Created: 2017-04-26 周三 21:49

Emacs 26.0.50 (Org mode 8.2.10)

Validate

原文地址:https://www.cnblogs.com/yangwen0228/p/6771244.html