homebrew-core/Formula/emacs.rb
Petar Radosevic 867975e88a Emacs 23.3b
See: http://lists.gnu.org/archive/html/info-gnu-emacs/2011-11/msg00000.html

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-11-28 07:06:45 -08:00

112 lines
3.3 KiB
Ruby

require 'formula'
class Emacs < Formula
url 'http://ftpmirror.gnu.org/emacs/emacs-23.3b.tar.bz2'
md5 '917ce0054ef63773078a6e99b55df1ee'
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"],
["--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"
# Fullscreen patch, works against 23.3 and HEAD.
p << "https://raw.github.com/gist/1012927"
end
return p
end
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
if ARGV.include? "--with-x"
ENV.x11
args << "--with-x"
args << "--with-gif=no" << "--with-tiff=no" << "--with-jpeg=no"
else
args << "--without-x"
end
system "./configure", *args
system "make"
system "make install"
end
end
def caveats
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
EOS
end
return s
end
end