# $Id: Portfile 84974 2011-10-06 04:21:08Z dports@macports.org $

PortSystem 1.0

name            bison
version         2.5
categories      devel
maintainers     mww
license         GPL-3+
installs_libs   no
description     general-purpose parser generator
long_description \
    Bison is a general-purpose parser generator that converts a grammar \
    description for an LALR context-free grammar into a C program to    \
    parse that grammar. Once you are proficient with Bison, you can use \
    it to develop a wide range of language parsers, from those used in  \
    simple desk calculators to complex programming languages.

homepage        http://www.gnu.org/software/bison/
platforms       darwin
master_sites    gnu
checksums           md5     9dba20116b13fc61a0846b0058fbe004 \
                    sha1    907319624fe4f4c5f9e2c3e23601041ac636ae31 \
                    rmd160  9f90e477c9c397a8b136aa7bcee887767d94eea7
use_bzip2       yes

depends_lib     port:gettext port:m4 port:libiconv

configure.args  --infodir=${prefix}/share/info \
                --mandir=${prefix}/share/man \
                --disable-yacc

test.run        yes
test.target     check

post-destroot {
	set docdir ${prefix}/share/doc/${name}
	xinstall -d ${destroot}${docdir}/examples/calc++
	xinstall -m 0444 -W ${worksrcpath} AUTHORS COPYING ChangeLog NEWS \
		THANKS TODO ${destroot}${docdir}
	xinstall -m 444 -W ${worksrcpath}/examples/calc++  \
		calc++-driver.cc calc++-driver.hh calc++-parser.cc \
		calc++-parser.hh calc++-parser.stamp calc++-parser.yy \
		calc++-scanner.cc calc++-scanner.ll calc++.cc location.hh \
		position.hh stack.hh test \
		${destroot}${docdir}/examples/calc++
	# yacc manpage gets installed even with '--disable-yacc'
	if {! [variant_isset yacc]} {
		delete ${destroot}${prefix}/share/man/man1/yacc.1
	}
}

livecheck.type  regex
livecheck.url   http://ftp.gnu.org/gnu/bison/?C=M&O=D
livecheck.regex ${name}-(\\d+(?:\\.\\d+)*)

variant yacc description "enable yacc compatibility" {
    configure.args-delete   --disable-yacc
}


