Packaging hints for binary package distributors
===============================================

Although the source of the bison package comes as a single package,
in distributions of binary packages the installed files should
be split into two packages:

   bison-runtime
        Contents: Runtime libraries and programs.
        Audience: Anyone who wants to run internationalized programs
                  that contain Bison-generated parsers.

   bison
        Contents: Tools and documentation for developers that use Bison.
        Audience: Anyone who wants to develop programs that use parsers.
        Dependencies: requires bison-runtime.

The 'bison-runtime' binary package is much smaller than the 'bison'
binary package.  It should be included in any distribution that
contains localized programs that use the diagnostics contained in
Bison-generated parsers.

If you want to install both packages at the same time, you simply do
at the toplevel directory:

      ./configure
      make
      make install

After installation, the file

      $prefix/share/locale/*/LC_MESSAGES/bison-runtime.mo

belongs to the bison-runtime package; all other installed files belong
to the bison package.

-----

Copyright (C) 2002, 2005, 2009-2015, 2018-2022, 2025-2026 Free Software
Foundation, Inc.

This file is part of Bison, the GNU Compiler Compiler.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
