Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Spot
Spot
Commits
dd13bfa0
Commit
dd13bfa0
authored
Feb 08, 2011
by
Alexandre Duret-Lutz
Browse files
Add some tricks into HACKING.
* README: Typo. * HACKING: s/CVS/GIT/ and add some tricks about libtool and doxygen.
parent
964c2bed
Changes
3
Show whitespace changes
Inline
Side-by-side
ChangeLog
View file @
dd13bfa0
2011-02-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Add some tricks into HACKING.
* README: Typo.
* HACKING: s/CVS/GIT/ and add some tricks about libtool and doxygen.
2011-02-08 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Adjust the WDBA test to count for sub-transitions.
...
...
HACKING
View file @
dd13bfa0
Bootstraping from
CVS
:
Bootstraping from
GIT
:
======================
Some files in SPOT's source tree are generated. They are distributed
so that users do not need to tools to rebuild them, but we don't keep
all of them under
CVS
because it can generate lots of changes or
all of them under
GIT
because it can generate lots of changes or
conflicts.
Here are the tools you need to bootstrap the
CVS
tree, or more
Here are the tools you need to bootstrap the
GIT
tree, or more
generally if you plan to regenerate some of the generated files.
GNU Autoconf >= 2.61
...
...
@@ -17,7 +17,7 @@ generally if you plan to regenerate some of the generated files.
SWIG >= 1.3.31
Doxygen >= 1.4.0
Bootstrap the
CVS
tree by running
Bootstrap the
GIT
tree by running
autoreconf -vfi
...
...
@@ -27,6 +27,69 @@ and then go on with the usual
make
Tricks
======
Avoiding Doxygen runs
---------------------
When there is no documentation built (e.g., after a fresh checkout
of the GIT tree), when the configure.ac file has changed, or when
the Doxygen configuration has changed, the doc will be rebuilt.
This can take quite some time, even though recent version of Doxygen
have started to parallelize things. If you have no interest
in generating the documentation, just use the "magic touch":
touch doc/stamp
Do that right before running make. The timestamp of doc/stamp
is compared to configure.ac and Doxygen.in to decide if the
documentation is out-of-date. The above command pretends the
documentation has just been built.
Debugging Libtool executables
-----------------------------
The executable generated in the various testsuite directories of Spot,
are not real binaries. Because we use libtool to compile the spot
library in a portable manner, these executable are just script that
run the actual binary after setting some environment variable so that
the OS can find the library in the build tree.
A consequence is that tools like gdb or valgrind, that expect to
work on a binary, will be confused by the script. Example:
% cd src/tgbatest
% file ltl2tgba
ltl2tgba: POSIX shell script text executable
% gdb -q ltl2tgba
"/home/adl/git/spot/src/tgbatest/ltl2tgba": not in executable format: File format not recognized
(gdb) quit
The proper way to work on these libtool scripts is via the libtool
command:
% ../../libtool --mode=execute file ltl2tgba
/home/adl/git/spot/src/tgbatest/.libs/lt-ltl2tgba: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
% ../../libtool --mode=execute gdb -q ltl2tgba
Reading symbols from /home/adl/git/spot/src/tgbatest/.libs/lt-ltl2tgba...done.
(gdb) quit
If you are building Spot from the GIT repository the libtool script
generated the root of the build tree should be the same as the libtool
script that is installed on your system. So you can simply run
libtool instead of ../../libtool.
You might also find conveniant to define a alias, a function, or a
script to shorten the invocation of "libtool --mode=execute".
Also there is an undocumented feature of libtool that allows you to
shorthand "libtool --mode=execute" as "libtool execute" or even
"libtool e".
Coding conventions:
===================
...
...
README
View file @
dd13bfa0
...
...
@@ -22,8 +22,8 @@ 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.
these yourself
:
they are included in this package (directories buddy/
and lbtt/) and will
be
built and installed alongside of Spot.
Building and installing
...
...
@@ -33,7 +33,7 @@ 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 addition
s
to its usual options, ./configure will accept some
In addition to its usual options, ./configure will accept some
flags specific to Spot:
--with-gspn=DIR
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment