homebrew-core/Formula/global.rb
yasuyk a4cf76466f global: add option to enable exuberant ctags
GNU GLOBAL has a configure option of Exuberant Ctags. The option
enable Exuberant Ctags as a plug-in parser.

Closes Homebrew/homebrew#16651.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-12-22 16:37:37 -06:00

61 lines
1.9 KiB
Ruby

require 'formula'
class Global < Formula
homepage 'http://www.gnu.org/software/global/'
url 'http://ftpmirror.gnu.org/global/global-6.2.6.tar.gz'
mirror 'http://ftp.gnu.org/gnu/global/global-6.2.6.tar.gz'
sha1 '9c802a8fdc2d50e2a0780eb7033d5bad258c3f42'
option "without-rebuilding-php-parser", "Don't rebuild PHP parser; use provied parser"
option 'with-exuberant-ctags', 'Enable Exuberant Ctags as a plug-in parser'
if build.include? 'with-exuberant-ctags'
depends_on 'ctags'
skip_clean 'lib/gtags/exuberant-ctags.la'
end
def install
# Rebuilding the PHP parser, see:
# http://comments.gmane.org/gmane.comp.gnu.global.bugs/1439
unless build.include? "without-rebuilding-php-parser"
system "flex -o libparser/php.c libparser/php.l"
end
args = %W[
--disable-dependency-tracking
--prefix=#{prefix}
]
if build.include? 'with-exuberant-ctags'
args << "--with-exuberant-ctags=#{HOMEBREW_PREFIX}/bin/ctags"
end
system "./configure", *args
system "make install"
# we copy these in already
cd share/'gtags' do
rm %w[README COPYING LICENSE INSTALL ChangeLog AUTHORS]
end
end
def caveats; <<-EOS.undent
GNU GLOBAL is distributed with a PHP parser generated with an
old version of flex(1). That parser has some limitation. See:
http://comments.gmane.org/gmane.comp.gnu.global.bugs/1439
Installing GNU GLOBAL with Homebrew will therefor rebuild the
PHP parser using Mac OS X' newer version of flex(1) which
generates a parser without the limit.
You can install GNU GLOBAL without rebuilding the PHP parser
(and instead use the parser distributed by GNU GLOBAL) by using
the option '--without-rebuilding-php-parser':
brew install global --without-rebuilding-php-parser
Use i.e. if you want to be sure whether a problem is caused by
the rebuild parser or some other thing in GNU GLOBAL.
EOS
end
end