Last active
November 13, 2016 16:38
-
-
Save ganta/52f6aa68ccd4639316f72b94d99535e5 to your computer and use it in GitHub Desktop.
Emacs 25.1 Homebrew Fomula with inline patch https://gist.github.com/takaxp/f30f54663c08e257b8846cc68b37f09f
This file contains 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://ftpmirror.gnu.org/emacs/emacs-25.1.tar.xz" | |
mirror "https://ftp.gnu.org/gnu/emacs/emacs-25.1.tar.xz" | |
sha256 "19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33" | |
bottle do | |
rebuild 4 | |
sha256 "c80ef281b85fb8a8bd65a84676056ea41d7bb2954d5c82193eef2acea2ade856" => :sierra | |
sha256 "5498bd9f8e027d8a77a8939d3468123313a57e67c3f08ad4d4f72bd1a95b3cbb" => :el_capitan | |
sha256 "8fa2c1f493b9dc831a017055b5de26b426925895c6400b24a3755e4db8b0ffa2" => :yosemite | |
end | |
head do | |
url "https://github.com/emacs-mirror/emacs.git" | |
depends_on "autoconf" => :build | |
depends_on "automake" => :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" | |
depends_on "pkg-config" => :build | |
depends_on "autoconf" => :build | |
depends_on "automake" => :build | |
depends_on "dbus" => :optional | |
depends_on "gnutls" => :optional | |
depends_on "librsvg" => :optional | |
depends_on "imagemagick" => :optional | |
depends_on "mailutils" => :optional | |
patch do | |
url "https://gist.githubusercontent.com/takaxp/f30f54663c08e257b8846cc68b37f09f/raw/0ba692f8e94bc6e5764440100aeca37457ba56bd/emacs-25.1-inline.patch" | |
sha256 "8d51a4622a77431c9a2610740feac3f84896d23bf064c350f45b1ade99c2504c" | |
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 | |
args << "--with-imagemagick" if build.with? "imagemagick" | |
args << "--with-modules" if build.with? "modules" | |
args << "--with-rsvg" if build.with? "librsvg" | |
args << "--without-pop" if build.with? "mailutils" | |
system "./autogen.sh" if build.head? || build.devel? | |
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