X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6b1cbda1b9e0e8f29c0a6e4e44ce2d5a2aee974f..HEAD:/README-hacking diff --git a/README-hacking b/README-hacking index ff5b4345..25e4ef34 100644 --- a/README-hacking +++ b/README-hacking @@ -50,34 +50,44 @@ These requirements do not apply when building from a distribution tarball. ** Requirements -We've opted to keep only the highest-level sources in the repository. -This eases our maintenance burden, (fewer merges etc.), but imposes more +We've opted to keep only the highest-level sources in the repository. This +eases our maintenance burden, (fewer merges etc.), but imposes more requirements on anyone wishing to build from the just-checked-out sources. For example, you have to use the latest stable versions of the maintainer tools we depend upon, including: -- Automake - Autoconf +- Automake - Flex - Gettext +- Graphviz - Gzip +- Help2man - Perl - Rsync - Tar +- Texinfo Valgrind is also highly recommended, if it supports your architecture. -Bison is written using Bison grammars, so there are bootstrapping -issues. The bootstrap script attempts to discover when the C code -generated from the grammars is out of date, and to bootstrap with an -out-of-date version of the C code, but the process is not foolproof. -Also, you may run into similar problems yourself if you modify Bison. +If you're using a GNU/Linux distribution, the easiest way to install the +above packages depends on your system. The following shell command should +work for Debian-based systems such as Ubuntu: + + sudo apt-get install \ + autoconf automake autopoint flex graphviz help2man texinfo valgrind + +Bison is written using Bison grammars, so there are bootstrapping issues. +The bootstrap script attempts to discover when the C code generated from the +grammars is out of date, and to bootstrap with an out-of-date version of the +C code, but the process is not foolproof. Also, you may run into similar +problems yourself if you modify Bison. -Only building the initial full source tree will be a bit painful. -Later, after synchronizing from the repository a plain 'make' should -be sufficient. Note, however, that when gnulib is updated, running -'./bootstrap' again might be needed. +Only building the initial full source tree will be a bit painful. Later, +after synchronizing from the repository a plain 'make' should be sufficient. +Note, however, that when gnulib is updated, running './bootstrap' again +might be needed. ** First checkout @@ -93,15 +103,17 @@ to perform the first checkout of the submodules, run $ git submodule update --init -Git submodule support is weak before versions 1.6 and later, you -should probably upgrade Git if your version is older. +Git submodule support is weak before versions 1.6 and later, upgrade Git if +your version is older. The next step is to get other files needed to build, which are extracted from other source packages: $ ./bootstrap -And there you are! Just +If it fails with missing symbols (e.g., "error: possibly undefined macro: +AC_PROG_GNU_M4"), you are likely to have forgotten the submodule +initialization part. Otherwise, there you are! Just $ ./configure $ make @@ -439,7 +451,7 @@ Push these changes. ----- -Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc. +Copyright (C) 2002-2005, 2007-2015 Free Software Foundation, Inc. This file is part of GNU Bison.