##
##  bison.spec -- OpenPKG RPM Specification
##  Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
##  Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
##  Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
##
##  Permission to use, copy, modify, and distribute this software for
##  any purpose with or without fee is hereby granted, provided that
##  the above copyright notice and this permission notice appear in all
##  copies.
##
##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
##  SUCH DAMAGE.
##

#   package versions
%define       V_release        1.35
%define       V_beta           1.875

#   package information
Name:         bison
Summary:      Yacc-compatible LALR(1) Parser Generator
URL:          http://www.gnu.org/software/bison/
Vendor:       Free Software Foundation
Packager:     The OpenPKG Project
Distribution: OpenPKG [CORE]
Group:        Language
License:      GPL
Version:      %{V_release}
Release:      20030103

#   package options
%option       with_beta  yes

#   list of sources
Source0:      ftp://ftp.gnu.org/gnu/bison/bison-%{V_release}.tar.gz
Source1:      ftp://ftp.gnu.org/gnu/bison/bison-%{V_beta}.tar.gz
Patch0:       bison.patch

#   build information
Prefix:       %{l_prefix}
BuildRoot:    %{l_buildroot}
BuildPreReq:  OpenPKG, openpkg >= 20030103, make, m4
PreReq:       OpenPKG, openpkg >= 20030103, m4
AutoReq:      no
AutoReqProv:  no

%description
    Bison is a general-purpose parser generator that converts a grammar
    description for an LALR(1) context-free grammar into a C program to parse
    that grammar. Once you are proficient with bison, you may use it to
    develop a wide range of language parsers, from those used in simple desk
    calculators to complex programming languages. Bison is upward compatible
    with yacc: all properly-written yacc grammars ought to work with bison
    with no change. Anyone familiar with yacc should be able to use bison with
    little trouble.

%prep
    %setup0 -q -c -n bison-%{V_release}
%if "%{with_beta}" == "yes"
    %setup1 -q -T -D -a 1
%endif
    ( cd bison-%{V_beta}
      %patch -p0
    )

%build
    ( cd bison-%{V_release}
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      CONFIG_SHELL=/bin/sh \
      ./configure \
          --prefix=%{l_prefix}
      %{l_make} -f Makefile %{l_mflags}
    )
%if "%{with_beta}" == "yes"
    ( cd bison-%{V_beta}
      CC="%{l_cc}" \
      CFLAGS="%{l_cflags -O}" \
      CONFIG_SHELL=/bin/sh \
      ./configure \
          --prefix=%{l_prefix}
      %{l_make} -f Makefile %{l_mflags}
    )
%endif

%install
    rm -rf $RPM_BUILD_ROOT
%if "%{with_beta}" == "yes"
    ( cd bison-%{V_beta}
      %{l_make} -f Makefile %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
      mv $RPM_BUILD_ROOT%{l_prefix}/bin/bison \
         $RPM_BUILD_ROOT%{l_prefix}/bin/bison-beta
      mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/bison.1 \
         $RPM_BUILD_ROOT%{l_prefix}/man/man1/bison-beta.1
    )
%endif
    ( cd bison-%{V_release}
      %{l_make} -f Makefile %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
    )
    rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/locale
    rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/charset.alias
    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}

%files -f files

%clean
    rm -rf $RPM_BUILD_ROOT

