CVSROOT="$USER@anna.fi.muni.cz:/mnt/sda1/CVSroot"
CVS_RSH=ssh
Then get the complete CVS tree of DiVinE using cvs checkout divine
in directory, where you want to have it placed.
Basic usage of CVS:
cvs update -dPA
... updates recursivly the current directory of CVS (-d = add new directories, -P = delete empty directories, -A = do not care of any tags, take really latest version).cvs add [file1] [file2] ...
... adds files or directories to CVS cvs commit [file1] [file2] ...
... checks files in CVS (copies changes in local copies of files to CVS). Comment for change is needed.
Remember: It is always better to do cvs update -dPA
before cvs commit
For more informations see info cvs
, man cvs
or one of many tutorials on usage of CVS.
cvs checkout
or cvs copy
, you can compile it from a scratch using this sequence of commands:
./autogen ./configure make
configure
creates Makefiles from their Automake/Autoconf templates. It tries to detect configuration of system, paths to various programs needed for compilation etc. It has many useful command line arguments. Some of them are DiVinE-specific - namely: --enable-checks --enable-debug --enable-non-cvs-compilation-flags --disable-gui
configure
with argument --enable-non-cvs-compilation-flags
./configure --help
for the detailed description.configure.ac
... Main configuration file of Autoconf, it is also read by Automake to find out Makefiles to create aclocal.m4
... created by aclocal
utility of Automake (using configure.ac) - contains macros supplied by Automake to extend macro set of Autoconf (in fact it is a little hack of Automake developers needing better functionality of Autoconf) acinclude.m4
... all included M4 macros (for Autoconf purposes) from directory support/src/makeutils/
Makefile.am
... local configuration files for Automake. Needed everywhere you want to create Makefile. First, it is translated to Makefile.in
by Automake and then Makefile
is created by script configure
(created by Autoconf) Makefile.am.global
... in DiVinE this file is included into every Makefile.am. It contains common definitions of variablesi (prefix of executables, flags for C++ compilation, paths to common data files, etc.) src/system/dve/syntax_analysis
contains files dve_grammar.yy
, dve_lexer.l
and dve_keywords.gperf
. They have to be translated into corresponding C/C++ sources. It is not made using Autoconf/Automake, because a local Makefile is easier to create in this case and the translation to C/C++ is needed very rarely. Resulting C/C++ sources are stored in CVS and they are also a part of the distribution package.
Sources are translated using divine/src/system/dve/syntax_analysis/Makefile
. This Makefile translates:
dve_lexer.l
to dve_lexer.cc
dve_keywords.gperf
to dve_keywords.cc
dve_grammar.yy
to dve_grammar.cc
, dve_expr_grammar.cc
, dve_trans_grammar.cc
and dve_proc_grammar.cc
... LALR(1) syntax analyzers for systems, expressions, transitions and processes. Different outputs are caused by special substitutions applied to dve_grammar.yy
. tool/model_manipulation/jar
and SOURCES stands for tool/model_manipulation/nips_compiler
.
Directory JAR contains file pml2s.jar
, which is compiled from Java sources in SOURCES/src
. A Makefile used for compilation arises from Makefile.am
in JAR.
File pml2s.jar
is stored in CVS and its recompilation is needed, if Java sources in directory SOURCES change. The change of Java sources is not detected by the Makefile - recompilation has to be invoked manually by execution of make
in directory JAR.
The Makefile changes the current directory to SOURCES and uses a Makefile in it to compile all Java sources. Then it builds pml2s.jar
file using jar
c
.
/lib
. They are deleted from there, if compilation finishes successfully.