homebrew-core/Formula/emacs.rb

113 lines
3.3 KiB
Ruby
Raw Normal View History

require 'formula'
2011-03-10 05:11:03 +00:00
class Emacs < Formula
url 'http://ftpmirror.gnu.org/emacs/emacs-23.3a.tar.bz2'
2011-08-02 16:45:56 +00:00
md5 'f2cf8dc6f28f8ae59bc695b4ddda339c'
homepage 'http://www.gnu.org/software/emacs/'
head 'bzr://http://bzr.savannah.gnu.org/r/emacs/trunk'
fails_with_llvm "Duplicate symbol errors while linking.", :build => 2334
# Stripping on Xcode 4 causes malformed object errors
skip_clean ["bin/emacs", "bin/emacs-23.3", "bin/emacs-24.0.50"]
def options
[
["--cocoa", "Build a Cocoa version of emacs"],
["--srgb", "Enable sRGB colors in the Cocoa version of emacs"],
2010-07-13 14:44:01 +00:00
["--with-x", "Include X11 support"],
]
end
def patches
p = []
# Fix for building with Xcode 4; harmless on Xcode 3.x.
unless ARGV.build_head?
p << "http://repo.or.cz/w/emacs.git/commitdiff_plain/c8bba48c5889c4773c62a10f7c3d4383881f11c1"
# Fix for address randomization on Darwin. Based on:
# http://repo.or.cz/w/emacs.git/patch/f2cea124dffac9ca4b8ce1dbb9b746f8e81109a3
p << "https://raw.github.com/gist/1098107"
# Fix for the titlebar issue on Mac OS X 10.7
p << "https://raw.github.com/gist/1102744"
# Fix for Shift key for IME users
p << "https://raw.github.com/gist/1212776"
end
if ARGV.include? "--cocoa"
2011-06-14 20:56:37 +00:00
# Fullscreen patch, works against 23.3 and HEAD.
p << "https://raw.github.com/gist/1012927"
end
return p
end
2011-03-21 21:24:22 +00:00
def install
args = ["--prefix=#{prefix}",
"--without-dbus",
"--enable-locallisppath=#{HOMEBREW_PREFIX}/share/emacs/site-lisp",
"--infodir=#{info}/emacs"]
if ARGV.build_head? and File.exists? "./autogen/copy_autogen"
opoo "Using copy_autogen"
puts "See https://github.com/mxcl/homebrew/issues/4852"
system "autogen/copy_autogen"
end
if ARGV.include? "--cocoa"
# Patch for color issues described here:
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8402
if ARGV.include? "--srgb"
inreplace "src/nsterm.m",
"*col = [NSColor colorWithCalibratedRed: r green: g blue: b alpha: 1.0];",
"*col = [NSColor colorWithDeviceRed: r green: g blue: b alpha: 1.0];"
end
args << "--with-ns" << "--disable-ns-self-contained"
system "./configure", *args
system "make bootstrap"
system "make install"
prefix.install "nextstep/Emacs.app"
unless ARGV.build_head?
bin.mkpath
ln_s prefix+'Emacs.app/Contents/MacOS/Emacs', bin+'emacs'
ln_s prefix+'Emacs.app/Contents/MacOS/bin/emacsclient', bin
ln_s prefix+'Emacs.app/Contents/MacOS/bin/etags', bin
end
else
2010-07-13 14:44:01 +00:00
if ARGV.include? "--with-x"
ENV.x11
args << "--with-x"
args << "--with-gif=no" << "--with-tiff=no" << "--with-jpeg=no"
2010-07-13 14:44:01 +00:00
else
args << "--without-x"
2010-07-13 14:44:01 +00:00
end
system "./configure", *args
system "make"
system "make install"
end
end
def caveats
2011-11-18 05:56:01 +00:00
s = ""
if ARGV.include? "--cocoa"
s += <<-EOS.undent
Emacs.app was installed to:
#{prefix}
Command-line emacs can be used by setting up an alias:
alias emacs="#{prefix}/Emacs.app/Contents/MacOS/Emacs -nw"
To link the application to a normal Mac OS X location:
brew linkapps
or:
ln -s #{prefix}/Emacs.app /Applications
2011-10-02 16:59:48 +00:00
EOS
end
return s
end
end