aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula/global.rb
blob: f4e0b946e69cf95538b31a0ce3cf2a86f51d620b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
require 'formula'

class Global < Formula
  homepage 'http://www.gnu.org/software/global/'
  url 'http://ftpmirror.gnu.org/global/global-6.2.4.tar.gz'
  mirror 'http://ftp.gnu.org/gnu/global/global-6.2.4.tar.gz'
  sha1 'fff915079e7099de0174c47a1a8f6a5b870517d5'

  option "without-rebuilding-php-parser", "Don't rebuild PHP parser; use provied parser"

  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

    system "./configure", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    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