Last active
September 17, 2017 09:34
-
-
Save ganta/74b66833245f1db5b7cfb9a087dfc392 to your computer and use it in GitHub Desktop.
Emacs 25.3 Homebrew Fomula with inline patch https://gist.github.com/takaxp/5294b6c52782d0be0b25342be62e4a77 (especially, locale: en + Google IME)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Emacs < Formula | |
desc "GNU Emacs text editor" | |
homepage "https://www.gnu.org/software/emacs/" | |
url "https://ftp.gnu.org/gnu/emacs/emacs-25.3.tar.xz" | |
sha256 "253ac5e7075e594549b83fd9ec116a9dc37294d415e2f21f8ee109829307c00b" | |
head do | |
url "https://github.com/emacs-mirror/emacs.git" | |
depends_on "autoconf" => :build | |
depends_on "gnu-sed" => :build | |
depends_on "texinfo" => :build | |
end | |
option "with-cocoa", "Build a Cocoa version of emacs" | |
option "with-ctags", "Don't remove the ctags executable that emacs provides" | |
option "without-libxml2", "Don't build with libxml2 support" | |
option "with-modules", "Compile with dynamic modules support" | |
deprecated_option "cocoa" => "with-cocoa" | |
deprecated_option "keep-ctags" => "with-ctags" | |
deprecated_option "with-d-bus" => "with-dbus" | |
deprecated_option "imagemagick" => "imagemagick@6" | |
depends_on "pkg-config" => :build | |
depends_on "dbus" => :optional | |
depends_on "gnutls" => :optional | |
depends_on "librsvg" => :optional | |
# Emacs does not support ImageMagick 7: | |
# Reported on 2017-03-04: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25967 | |
depends_on "imagemagick@6" => :optional | |
depends_on "mailutils" => :optional | |
patch do | |
url "https://gist.githubusercontent.com/takaxp/5294b6c52782d0be0b25342be62e4a77/raw/9c9325288ff03a50ee26e4e32c8ca57c0dd81ace/emacs-25.2-inline-googleime.patch" | |
sha256 "72a33289b78aaec186c05442e7228554a5339ac3aa2a8ff93449384e9bfa1ebb" | |
end | |
def install | |
args = %W[ | |
--disable-dependency-tracking | |
--disable-silent-rules | |
--enable-locallisppath=#{HOMEBREW_PREFIX}/share/emacs/site-lisp | |
--infodir=#{info}/emacs | |
--prefix=#{prefix} | |
--without-x | |
] | |
if build.with? "libxml2" | |
args << "--with-xml2" | |
else | |
args << "--without-xml2" | |
end | |
if build.with? "dbus" | |
args << "--with-dbus" | |
else | |
args << "--without-dbus" | |
end | |
if build.with? "gnutls" | |
args << "--with-gnutls" | |
else | |
args << "--without-gnutls" | |
end | |
# Note that if ./configure is passed --with-imagemagick but can't find the | |
# library it does not fail but imagemagick support will not be available. | |
# See: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24455 | |
if build.with? "imagemagick@6" | |
args << "--with-imagemagick" | |
else | |
args << "--without-imagemagick" | |
end | |
args << "--with-modules" if build.with? "modules" | |
args << "--with-rsvg" if build.with? "librsvg" | |
args << "--without-pop" if build.with? "mailutils" | |
# FIXME: emacs-25.3/build-aux/missing: line 81: aclocal-1.15: command not found | |
ENV.prepend_path("PATH", "/usr/local/bin") | |
if build.head? | |
ENV.prepend_path "PATH", Formula["gnu-sed"].opt_libexec/"gnubin" | |
system "./autogen.sh" | |
end | |
if build.with? "cocoa" | |
args << "--with-ns" << "--disable-ns-self-contained" | |
else | |
args << "--without-ns" | |
end | |
system "./configure", *args | |
system "make" | |
system "make", "install" | |
if build.with? "cocoa" | |
prefix.install "nextstep/Emacs.app" | |
# Replace the symlink with one that avoids starting Cocoa. | |
(bin/"emacs").unlink # Kill the existing symlink | |
(bin/"emacs").write <<-EOS.undent | |
#!/bin/bash | |
exec #{prefix}/Emacs.app/Contents/MacOS/Emacs "$@" | |
EOS | |
end | |
# Follow MacPorts and don't install ctags from Emacs. This allows Vim | |
# and Emacs and ctags to play together without violence. | |
if build.without? "ctags" | |
(bin/"ctags").unlink | |
(man1/"ctags.1.gz").unlink | |
end | |
end | |
def caveats | |
if build.with? "cocoa" then <<-EOS.undent | |
Please try the Cask for a better-supported Cocoa version: | |
brew cask install emacs | |
EOS | |
end | |
end | |
plist_options :manual => "emacs" | |
def plist; <<-EOS.undent | |
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<dict> | |
<key>Label</key> | |
<string>#{plist_name}</string> | |
<key>ProgramArguments</key> | |
<array> | |
<string>#{opt_bin}/emacs</string> | |
<string>--daemon</string> | |
</array> | |
<key>RunAtLoad</key> | |
<true/> | |
</dict> | |
</plist> | |
EOS | |
end | |
test do | |
assert_equal "4", shell_output("#{bin}/emacs --batch --eval=\"(print (+ 2 2))\"").strip | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment