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:

1 ./configure
2 make distcheck

and

1 mkdir .../build
2 cd .../build
3 path_to_oln_sources/configure 
4 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