Olena/SourceTree

From LRDE

Revision as of 15:04, 12 November 2014 by Bot (talk | contribs) (Don't include the menu if the page is used included in another page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

(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
2make distcheck

and

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

 1From: Raphal Poss <raph@lrde.epita.fr> 
 2Subject: Re: Un petit truc concernant les projets autoconfés. 
 3Newsgroups: epita.lrde.olena, epita.lrde.general 
 4Date: Fri, 13 Dec 2002 18:18:27 +0100 
 5Organization: EPITA / LRDE http://www.lrde.epita.fr 
 6 
 7yann@lrde.epita.fr (Yann Rgis-Gianas) writes: 
 8 
 9> Raphal Poss <raph@lrde.epita.fr> writes: 
10> 
11>> http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/SourceTree 
12> 
13> 
14>	J'ai lu. Si c'est ce qu'il faut faire, je veux bien le faire. 
15> 
16>	Cependant, est-ce que tu peux expliquer le pourquoi, s'il te plaît ? 
17 
18Un simple problèmes de dépendances. 
19 
20Imagine: 
21 
22data/output.ppm: data/lena.ppm 
23	  (operation $< -o $@ ) 
24 
25trucmachin: data/output.ppm 
26 
27Si tu lances ça dans le répertoire de sources, cool tout va bien data/ 
28à  gauche  et  à droite  des  dépendances	pointe bien  vers  le même 
29répertoire. 
30 
31Si tu  le  lance dans  un autre répertoire,	c  pas cool,	parce que 
32data/lena.ppm fait référence au "data/" dans le rep. de sources, et le 
33data/output.ppm fait référence à celui du rpertoire de construction, 
34qui n'existe pas au moment où la règle est invoquée par make. 
35 
36Q1)  pourquoi  avec  make distcheck  on	s'en	aperçoit pas  ?	 
37R1)  data/output.ppm est  inclus dans  la  distribution, donc la règle 
38n'est pas invoquée par  "make distcheck" vu qu'il  n'y en a alors  pas 
39besoin. 
40 
41Q1bis)  si dans une distrib  y a plus  de  problème, à qui ça peut en 
42		  poser ? 
43R1bis)  aux	gens	qui veulent  bosser  sur  olena	  partir d'une 
44		  distribution (i.e. pas à partir du prcs). 
45 
46Q2) idée: 
47	 $(srcdir)/data/output.ppm: $(srcdir)/data/lena.ppm 
48			 (operation $< -o $@ ) 
49  
50	 trucmachin: $(srcdir)/data/output.ppm 
51 
52R2) ça marche, mais c pas propre.  Tout  l'intérêt d'un proj autoconfé
53	 correctement est de pouvoir travailler  dans des conditions telles 
54	 que : 
55 
56  - le répertoire de sources est en lecture-seule 
57  - on veut tester l'influence de  flags  "configure" sur les phases 
58	 de construction (ce que je suis en train de faire) 
59 
60--  
61Raphaël Poss