Import from my private repository. Snapshot after version 5.16, immediately
[external/ragel.git] / README
1
2                      Ragel State Machine Compiler -- README
3                      ======================================
4
5 1. Build Requirements
6 ---------------------
7
8  * GNU Make
9  * g++
10
11 If you would like to modify Ragel and need to build Ragel's scanners and
12 parsers from the specifications then set BUILD_PARSERS=true in the configure
13 script and then run it. To build the parsers you will need the following
14 programs:
15
16  * flex 
17  * bison (recent version and not bison++, see below)
18  * gperf
19
20 To build the user guide the following extra programs are needed:
21
22  * fig2dev
23  * pdflatex
24
25
26 2. Compilation
27 --------------
28
29 To configure type './configure'. The makefiles honour the --prefix option to
30 specify where the program is to be installed to.
31
32 To build the ragel program type 'make'.
33
34 To build all the documentation cd to 'doc' and type 'make'. If you don't have
35 all of the programs to build the user guide and just want the man page use
36 'make ragel.1 rlcodegen.1'.
37
38
39 3. Installing
40 -------------
41
42 The command 'make install' will build the programs and install them to $PREFIX/bin/.
43 A 'make install' in the doc directory will make and install all the
44 documentation.  The man pages install to $PREFIX/man/man1/ and the user guide
45 and ChangeLog install to $PREFIX/share/doc/ragel/. To install just the man page
46 use 'make man-install'.
47
48
49 4. Why Ragel cannot be built with Bison++
50 -----------------------------------------
51 Ragel is written in C++ using a C-style parser. Bison++ sees that we are using
52 C++ and generates classes, which breaks the build. As of last investigation,
53 this can't be stopped.  Bison++ is therefore only compatible with Bison if you
54 are implementing a C-style parser in C.