1
@c =========================
2
@chapter FAQ for developers
3
@c =========================
6
This list of Frequently Asked Questions intended
7
for Rheolef developers and maintainers.
8
I'm looking for new questions (@emph{with} answers,
9
better answers, or both.
10
Please, send suggestions to
11
@email{Pierre.Saramito@@imag.fr}.
13
@c -----------------------------------------------
14
@section How to regenerate the @code{configure} script
15
@c -----------------------------------------------
17
@toindex @code{automake}
18
@toindex @code{aclocal}
19
@toindex @code{autoconf}
24
The configure script and makefiles are automatically
25
produced from file @file{configure.ac} and @file{Makefile.am}
26
by using the autoconf and automake commands. Enter:
32
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
33
@subsection In which order does the things build ?
34
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
36
Let us look at with details the configure files flow:
39
[acinclude.m4] -----> aclocal* -----------> [aclocal.m4]
42
----------------+---> autoconf* ----------> configure
45
[Makefile.am] ------> automake* ----------> Makefile.in
47
[config.h.in] -+ +-> config.h
49
Makefile.in ---+----> configure* -------+-> Makefile
51
[config.mk.in] + +-> config.mk
54
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
55
@subsection What means these commands ?
56
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
58
Let us review the list of commands:
62
take @file{acinclude.m4} and build @file{aclocal.m4}.
63
The arguments specifies that these files are located
64
in the @file{config/} directory.
67
translate every @file{Makefile.am} and then build a @file{Makefile.in}.
70
translate @file{configure.ac} in
71
@file{configure} which is an executable shell script.
72
The arguments specifies that @file{aclocal.m4} is located in the
73
@file{config/} dirctory.
74
All this files are machine independent.
77
the automatically generated script,
78
scan the machine and translate @file{config.h.in}, @file{config.mk.in}
79
and every @file{Makefile.in}
80
into @file{config.h}, @file{config.mk} and every @file{Makefile}, respectively.
81
At this step, all produced files are machine dependent.
84
@c ----------------------------------------
85
@section How to save my version ?
86
@c ----------------------------------------
88
First, check that our distribution is valid
93
First, check that your modifications are not
94
in conflict with others.
95
Go to the top source directory and enter:
101
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
102
@subsection Easy: no conflicts with another developer
103
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
105
A listing of labeled files appears:
108
Modified skit/lib/blas1_tst.c
109
Update skit/lib/blas2_tst.c
112
Its mean that you have modified @file{blas1_tst.c}.
113
Another concurrent developer has modified @file{blas2_tst.c},
114
and your local file version is not up-to-date.
115
There is no conflict, labeled by a @code{*Merge*} label.
117
First, update your local version:
123
Before to store your version of the Rheolef distribution,
124
check the consistency by running rnon-regression tests:
130
When all tests are ok:
136
and enter a change log comment terminated by the
140
Check now that your version status is the
141
most up-to-date Rheolef distribution:
147
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
148
@subsection I have conflicts with another developer
149
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
151
The listing issued by @code{make status} looks like:
154
Modified skit/lib/blas1_tst.c
155
Update skit/lib/blas2_tst.c
156
*Merge* skit/lib/blas3_tst.c
159
Its mean that you and another developer have
160
modified at least one common line in
162
Moreover, the developer has already saved his version
163
in a previous Rheolef distribution.
164
You have now to merge these modifications.
168
mv blas3_tst.c blas3_tst.c.new
169
cvs checkout blas3_tst.c
170
sdiff blas3_tst.c blas3_tst.c.new | more
172
and then edit @file{blas3_tst.c} to integrate the
173
modifications of @file{blas3_tst.c.new}, generated by
174
another developer. When it is done, go to the top directory and enter,
180
Modified skit/lib/blas1_tst.c
181
Update skit/lib/blas2_tst.c
182
Modified skit/lib/blas3_tst.c
184
The situation becomes mature:
188
It will update the @file{blas2_tst.c}.
193
that will save modified @file{blas1_tst.c} and @file{blas3_tst.c}.
195
@c PRCS implementation
200
@c @code{prcs} will prompt you for files in evolution.
201
@c When there is a merge, you can print differences
203
@c and creating an anotated file
205
@c Then edit these anotated files and performs merges.
206
@c For more informations about the @code{prcs} program,
207
@c see the corresponding documentation
208
@c at @url{http://www.XCF.Berkeley.EDU/~jmacd/prcs.html}.
210
@c When you have scanned all concerned files,
211
@c enter @code{make status} and no more
212
@c @code{*Merge*} label may appear.
214
@c save our version as in the previous paragraph.
216
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
217
@subsection I have deleted a source file...
218
@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
222
@cindex version management
232
How to restaure the file, now ?
237
cvs checkout Makefile.am
240
You restaure the last available version of
241
the missing file in the most up-to-date
242
Rheolef distribution.