Subversion Repositories tendra.SVN

Rev

Rev 6 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 7u83 1
Moving Out Tools
2
================
3
 
4
The process of moving out a tool to its own independent source tree is
5
expected to be essentially the same for each program. We'll take sid(1)
6
as an example:
7
 
8
 1. Move out /tendra/utilities/sid to /sid/src
9
 2. Make /sid/mk an svn:externals reference to /tendra/mk
10
 3. Make /sid/build an svn:externals reference to /tendra/src/build
11
 4. Provide a .mk file in /tendra/mk such that sid et al are able to
12
    build using whichever compiler is around
13
 
14
 
15
Externals
16
---------
17
 
18
Our goal for separating these tools is to keep them semantically
19
distinct from each other. However, there're a few things that we still
20
wish to share between them, without compromising this separation.
21
 
22
For example, the build system is expected to be identical for each,
23
as there is no need to duplicate effort. Having multiple copies of this
24
would be a maintenance nightmare.
25
 
26
Subversion's 'externals' feature is our chosen method of keeping things
27
in one place, yet still separated to each program. This provides for
28
one centralised location containing the build system, and a link from
29
each program that makes use of it. When checked out, these trees will
30
automatically bring down the build system, too.
31
 
32
This is only visible to people working directly with Subversion; users
33
(when eventually we have some!) are not aware that the build system is
34
actually brought down by svn:externals: it simply appears present in
35
the archived snapshot.
36
 
37
Similarly during tagging, externals are pointed at a stable tag, before
38
the tag of the tool's trunk is made.
39
 
40
 
41
Building
42
--------
43
 
44
The system to build portably should be mostly be in place, since
45
bootstrapping process uses the same principle: to use whichever compiler
46
is available.
47
 
48
The current idea for approaching this, is to construct a new mk file
49
intended for building these programs. This is expected to be in essence
50
fairly similar to the bootstrap file.
51