Olena/SourceTree
From LRDE
(most of the information contained in this page is an overview of the oln-dev manual distributed in the oln-doc distribution)
General information
A manual is now available, in the doc/dev subdirectory of the PRCS repository for Olena. Please read it first when you have a question about the source tree.
How to check for the correctness of a submission
The general Olena guidelines dictate that no change should be commited to the PRCS archive, thus neither in any Olena distribution, without checking for regressions first.
The simpler yet correct way to check this is to run make distcheck in the toplevel source directory. This command ensures that all build phases happen without errors in « release conditions ».
However, it is important to run this command from a separate build directory. Indeed, there are many wrong ways to write build control files (Makefile.am, configure.ac, etc) which lead to errorless make distcheck runs, when run from the source directory.
This means that:
$ ./configure $ make distcheck
and
$ mkdir .../build $ cd .../build $ path_to_oln_sources/configure $ make distcheck
are known to produce different results, and that only a successful run of the second method ensures that the distribution is autonomous.
More technicalities
From: Raphal Poss <raph@lrde.epita.fr> Subject: Re: Un petit truc concernant les projets autoconfés. Newsgroups: epita.lrde.olena, epita.lrde.general Date: Fri, 13 Dec 2002 18:18:27 +0100 Organization: EPITA / LRDE http://www.lrde.epita.fr yann@lrde.epita.fr (Yann Rgis-Gianas) writes: > Raphal Poss <raph@lrde.epita.fr> writes: > >> http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/SourceTree > > > J'ai lu. Si c'est ce qu'il faut faire, je veux bien le faire. > > Cependant, est-ce que tu peux expliquer le pourquoi, s'il te plaît ? Un simple problèmes de dépendances. Imagine: data/output.ppm: data/lena.ppm (operation $< -o $@ ) trucmachin: data/output.ppm Si tu lances ça dans le répertoire de sources, cool tout va bien data/ à gauche et à droite des dépendances pointe bien vers le même répertoire. Si tu le lance dans un autre répertoire, c pas cool, parce que data/lena.ppm fait référence au "data/" dans le rep. de sources, et le data/output.ppm fait référence à celui du rpertoire de construction, qui n'existe pas au moment où la règle est invoquée par make. Q1) pourquoi avec make distcheck on s'en aperçoit pas ? R1) data/output.ppm est inclus dans la distribution, donc la règle n'est pas invoquée par "make distcheck" vu qu'il n'y en a alors pas besoin. Q1bis) si dans une distrib y a plus de problème, à qui ça peut en poser ? R1bis) aux gens qui veulent bosser sur olena partir d'une distribution (i.e. pas à partir du prcs). Q2) idée: $(srcdir)/data/output.ppm: $(srcdir)/data/lena.ppm (operation $< -o $@ ) trucmachin: $(srcdir)/data/output.ppm R2) ça marche, mais c pas propre. Tout l'intérêt d'un proj autoconfé correctement est de pouvoir travailler dans des conditions telles que : - le répertoire de sources est en lecture-seule - on veut tester l'influence de flags "configure" sur les phases de construction (ce que je suis en train de faire) -- Raphaël Poss