* README: More build instructions.
* HACKING: Update.
This commit is contained in:
parent
21644874b1
commit
4bffe7bfc7
3 changed files with 91 additions and 25 deletions
|
|
@ -1,5 +1,8 @@
|
||||||
2003-10-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
2003-10-31 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
||||||
|
* README: More build instructions.
|
||||||
|
* HACKING: Update.
|
||||||
|
|
||||||
* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
|
* doc/Makefile.am ($(srcdir)/spotref.pdf): Make sure to work in
|
||||||
$(srcdir).
|
$(srcdir).
|
||||||
|
|
||||||
|
|
|
||||||
57
HACKING
57
HACKING
|
|
@ -8,27 +8,34 @@ conflicts.
|
||||||
|
|
||||||
Here are the tools you need to bootstrap the CVS tree, or more
|
Here are the tools you need to bootstrap the CVS tree, or more
|
||||||
generally if you plan to regenerate some of the generated files.
|
generally if you plan to regenerate some of the generated files.
|
||||||
|
|
||||||
GNU Autoconf 2.57
|
GNU Autoconf 2.57
|
||||||
GNU Automake 1.7.3
|
GNU Automake 1.7.8
|
||||||
GNU Flex (the version probably doesn't matter much, we used 2.5.4)
|
GNU Flex (the version probably doesn't matter much, we used 2.5.4)
|
||||||
The CVS version of GNU Bison (called 1.875b at the time of writing)
|
The CVS version of GNU Bison (called 1.875b at the time of writing)
|
||||||
SWIG 1.3.19
|
SWIG 1.3.19
|
||||||
|
Doxygen 1.3.4
|
||||||
|
|
||||||
Bootstrap the CVS tree by running
|
Bootstrap the CVS tree by running
|
||||||
|
|
||||||
autoreconf -vfi
|
autoreconf -vfi
|
||||||
|
|
||||||
and then go on with the usual
|
and then go on with the usual
|
||||||
|
|
||||||
./configure
|
./configure
|
||||||
make
|
make
|
||||||
|
|
||||||
|
|
||||||
Coding conventions:
|
Coding conventions:
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Here are the conventions we follow in Spot, so that the code looks
|
Here are the conventions we follow in Spot, so that the code looks
|
||||||
homogeneous.
|
homogeneous. Please follow these strictly. Since this is free
|
||||||
|
software, uniformity of the code matters a lot. Most of these
|
||||||
|
conventions are derived from the GNU Coding Standards
|
||||||
|
(http://www.gnu.org/prep/standards.html) with the notable exception
|
||||||
|
that we do not put a space before the opening parenthesis in function
|
||||||
|
calls (this is hardly readable when chaining method calls).
|
||||||
|
|
||||||
Comments
|
Comments
|
||||||
--------
|
--------
|
||||||
|
|
@ -39,16 +46,19 @@ Comments
|
||||||
end with a dot. Dots that end sentences should be followed by two
|
end with a dot. Dots that end sentences should be followed by two
|
||||||
spaces (i.e., American typing convention), like in this paragraph.
|
spaces (i.e., American typing convention), like in this paragraph.
|
||||||
|
|
||||||
|
* Prefer C++-style comments (// foo) to C-style comments (/* foo */).
|
||||||
|
Use /// for Doxygen comments.
|
||||||
|
|
||||||
Formating
|
Formating
|
||||||
---------
|
---------
|
||||||
|
|
||||||
* Braces on their own line.
|
* Braces are always on their own line.
|
||||||
|
|
||||||
* Text within braces is two-space indented.
|
* Text within braces is two-space indented.
|
||||||
|
|
||||||
{
|
{
|
||||||
f(12);
|
f(12);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
* Anything after a control statement is two-space indented. This
|
* Anything after a control statement is two-space indented. This
|
||||||
|
|
@ -61,7 +71,7 @@ Formating
|
||||||
g(456);
|
g(456);
|
||||||
}
|
}
|
||||||
|
|
||||||
* Braces from function/structure/enum/classe/namespace definitions
|
* Braces from function/structure/enum/class/namespace definitions
|
||||||
are not indented.
|
are not indented.
|
||||||
|
|
||||||
class foo
|
class foo
|
||||||
|
|
@ -73,9 +83,9 @@ Formating
|
||||||
};
|
};
|
||||||
|
|
||||||
* The above corresponds to the `gnu' indentation style under Emacs.
|
* The above corresponds to the `gnu' indentation style under Emacs.
|
||||||
|
|
||||||
* Put return types or linkage specifiers on their own line in
|
* Put return types and linkage specifiers on their own line in
|
||||||
function/method _definitions_ :
|
function/method _definitions_:
|
||||||
|
|
||||||
static int
|
static int
|
||||||
Foo::get_mumble()
|
Foo::get_mumble()
|
||||||
|
|
@ -85,9 +95,11 @@ Formating
|
||||||
|
|
||||||
This makes it easier to grep functions in the code.
|
This makes it easier to grep functions in the code.
|
||||||
|
|
||||||
Function/method declarations can be put on one line.
|
Function/method declaration are usually written on one line:
|
||||||
|
|
||||||
* Space before parentheses in control statements
|
int get_bar(int i);
|
||||||
|
|
||||||
|
* Put a space before the opening parenthesis in control statements
|
||||||
|
|
||||||
if (test)
|
if (test)
|
||||||
{
|
{
|
||||||
|
|
@ -104,20 +116,19 @@ Formating
|
||||||
|
|
||||||
* No space after opening or before closing parentheses, however
|
* No space after opening or before closing parentheses, however
|
||||||
put a space after commas (as in english).
|
put a space after commas (as in english).
|
||||||
|
|
||||||
func(arg1, arg2, arg3);
|
func(arg1, arg2, arg3);
|
||||||
|
|
||||||
* No useless parentheses in return statements.
|
* No useless parentheses in return statements.
|
||||||
|
|
||||||
return 2; (not `return (2);')
|
return 2; (not `return (2);')
|
||||||
|
|
||||||
|
|
||||||
* Spaces around infix binary or ternary operators:
|
* Spaces around infix binary or ternary operators:
|
||||||
|
|
||||||
2 + 2;
|
2 + 2;
|
||||||
a = b;
|
a = b;
|
||||||
a <<= (3 + 5) * 3 + f(67 + (really ? 45 : 0));
|
a <<= (3 + 5) * 3 + f(67 + (really ? 45 : 0));
|
||||||
|
|
||||||
* No space after prefix unary operators, or befor postfix unary operators:
|
* No space after prefix unary operators, or befor postfix unary operators:
|
||||||
|
|
||||||
if (!test && y++ != 0)
|
if (!test && y++ != 0)
|
||||||
|
|
@ -135,11 +146,12 @@ Formating
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
* If a line takes more than 80 columns, split it or rethink it.
|
* No line should be larger than 80 columns.
|
||||||
|
If a line takes more than 80 columns, split it or rethink it.
|
||||||
|
|
||||||
* Labels or case statements are left-indented by two spaces,
|
* Labels or case statements are back-indented by two spaces,
|
||||||
without space before the `:'.
|
without space before the `:'.
|
||||||
|
|
||||||
if (something)
|
if (something)
|
||||||
{
|
{
|
||||||
top:
|
top:
|
||||||
|
|
@ -166,12 +178,12 @@ Naming
|
||||||
int compute_this_and_that();
|
int compute_this_and_that();
|
||||||
|
|
||||||
class this_is_a_class;
|
class this_is_a_class;
|
||||||
|
|
||||||
typedef int int_array[];
|
typedef int int_array[];
|
||||||
|
|
||||||
That is the style used in STL.
|
That is the style used in STL.
|
||||||
|
|
||||||
* private members end with an underscore.
|
* Private members end with an underscore.
|
||||||
|
|
||||||
class my_class
|
class my_class
|
||||||
{
|
{
|
||||||
|
|
@ -193,7 +205,7 @@ Naming
|
||||||
...
|
...
|
||||||
};
|
};
|
||||||
|
|
||||||
* Enum mumblers also use capitalized name, with joined words.
|
* Enum members also use capitalized name, with joined words.
|
||||||
|
|
||||||
* C Macros are all uppercase.
|
* C Macros are all uppercase.
|
||||||
|
|
||||||
|
|
@ -214,4 +226,3 @@ Naming
|
||||||
|
|
||||||
* The include guard for src/somedir/foo.hh is
|
* The include guard for src/somedir/foo.hh is
|
||||||
SPOT_SOMEDIR_FOO_HH
|
SPOT_SOMEDIR_FOO_HH
|
||||||
|
|
||||||
|
|
|
||||||
56
README
56
README
|
|
@ -1,3 +1,55 @@
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
Spot requires a complete installation of Python (version 2.0 or
|
||||||
|
later). Especially, Python's headers files should be installed.
|
||||||
|
|
||||||
|
Spot also uses modified versions of BuDDy (a binary decision diagram),
|
||||||
|
and LBTT (an LTL to Büchi test bench). You do not need to install
|
||||||
|
these yourself, they are included in this package (directories buddy/
|
||||||
|
and lbtt/), and will built and installed alongside of Spot.
|
||||||
|
|
||||||
|
|
||||||
|
Building and installing
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Spot follows the traditional `./configure && make && make check &&
|
||||||
|
make install' process. People unfamiliar with the GNU Build System
|
||||||
|
should read the file INSTALL for generic instructions.
|
||||||
|
|
||||||
|
In additions to its usual options, ./configure will accept some
|
||||||
|
flags specific to Spot:
|
||||||
|
|
||||||
|
--with-gspn=DIR
|
||||||
|
Turns on GreatSPN support. DIR should designate the root of
|
||||||
|
GreatSPN source tree. (./configure will then run
|
||||||
|
DIR/SOURCES/contrib/version.sh to find the GreatSPN build tree.)
|
||||||
|
|
||||||
|
GreatSPN had to be modified in order to be used as a library
|
||||||
|
(thanks Soheib Baarir and Yann Thierry-Mieg for this work), and
|
||||||
|
presently these modifications are only available on the GreatSPN
|
||||||
|
CVS repository hosted by the Università di Torino.
|
||||||
|
|
||||||
|
--with-included-buddy
|
||||||
|
--with-included-lbtt
|
||||||
|
Once you have installed Spot the first time. Modified versions of
|
||||||
|
LBTT and BuDDy will be installed. The next time you reconfigure
|
||||||
|
Spot, configure will detect that these versions are already
|
||||||
|
installed, and will attempt to use these installed versions
|
||||||
|
directly (this is in case you had to modify one of these yourself
|
||||||
|
for another purpose). These two options will *force* the use,
|
||||||
|
build, and installation of the included versions of these package,
|
||||||
|
even when compatible versions are already installed.
|
||||||
|
|
||||||
|
--enable-devel
|
||||||
|
Enable debugging symbols, turn off aggressive optimizations, and
|
||||||
|
turn on assertions. This options is effective by default in
|
||||||
|
development versions (version numbers ending with a letter).
|
||||||
|
|
||||||
|
|
||||||
Layout of the source tree
|
Layout of the source tree
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
@ -16,9 +68,9 @@ src/ Sources for libspot.
|
||||||
tgbaparse/ Parser for explicit TGBAs.
|
tgbaparse/ Parser for explicit TGBAs.
|
||||||
tgbatest/ Tests for tgba/, tgbaalgos/, and tgbaparse/.
|
tgbatest/ Tests for tgba/, tgbaalgos/, and tgbaparse/.
|
||||||
doc/ Documentation for libspot.
|
doc/ Documentation for libspot.
|
||||||
spot.html/ HTML manual.
|
spot.html/ HTML reference manual.
|
||||||
spot.latex/ Sources for the PDF manual. (No distributed, can be rebuilt.)
|
spot.latex/ Sources for the PDF manual. (No distributed, can be rebuilt.)
|
||||||
spotref.pdf PDF manual.
|
spotref.pdf PDF reference manual.
|
||||||
wrap/ Wrappers for other languages.
|
wrap/ Wrappers for other languages.
|
||||||
python/ Python bindings for Spot and BuDDy
|
python/ Python bindings for Spot and BuDDy
|
||||||
tests/ Tests for these bindings
|
tests/ Tests for these bindings
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue