Software Release Tools Manual
Lassi A. Tuura
CERN - European Laboratory for Particle Physics
Experimental Physics Division
CH-1211
Geneva
23
Switzerland
<
lat@iki.fi
>
Copyright © 1996, 1997, 1998 by
CERN
Table of Contents
Preface
I
Basics
1
Introduction
1.1
Software Release Tools
1.2
People and Roles
1.3
What The Release Tools Provide
1.4
How to Use This Manual
1.5
Document Conventions
2
Fundamental Terminology
2.1
Packages, Dependencies and Versions
2.2
Targets
2.3
Releases
3
Working Model
4
Tools Overview
4.1
Source Code Management Tools
4.2
Build Environment Tools
5
Directory Structure Overview
II
Developer's Guide
6
Overview
7
Getting Started
7.1
Setting Up Environment
7.2
Using The Right Make Program
7.3
Customising CVS
7.4
Running Software
7.5
Accessing Release Documentation
8
Building Existing Packages
8.1
Recompiling One Package
8.2
Using A Working Release
8.3
Three Ways of Building Packages
8.4
Releasing the Sources
9
Contributing Changes
9.1
Committing Your Changes To The Repository
9.2
Sharing The Changes With Other Developers
10
Creating A New Package
10.1
Choosing Package Name
10.2
Structuring The Package
10.3
Writing Administrative Files
10.4
Using Other Packages
10.5
Writing The Configuration Script
10.6
Writing A Makefile
10.7
Configuring and Reconfiguring The Package
10.8
Building The Package
10.9
Installing Package Products
10.10
Writing Testing Rules
10.11
Writing Clean-Up Rules
10.12
Importing The Package Into CVS
11
Managing Package Hierarchies
11.1
Introduction to Hierarchical Packages
11.2
Creating Hierarchical Packages
11.3
Extracting Partial Hierarchies From CVS
11.4
Controlling Hierarchical Builds
12
Managing Package Versions
12.1
The Issues
12.2
Accessing Versions
12.3
Assigning Versions
12.4
Removing Versions
12.5
Communicating With Other Developers
13
Advanced Package Topics
13.1
Reducing Make Output
13.2
PACKAGE
File Syntax
14
Working Disconnected
15
Writing Makefiles
15.1
Basics
15.2
Defining Targets
15.3
Defining Target Properties
15.4
Defining Custom Rules
15.5
Uses
15.6
Linksets
15.7
Portability Considerations
15.8
How Does it Work?
16
Writing Configure Scripts
17
SRT Files
18
SRT Tools Summary
III
Software Librarian's Guide
19
System Requirements
20
Supported Targets
21
Installing The Software Release Tools
22
Working With Releases
22.1
Creating The First Release
22.2
Subsequent Releases
22.3
Assigning Release Numbers
22.4
Choosing Release Interval
22.5
Easing The Job With Gadgetry
22.6
Logging Activity For Developers
22.7
Removing Releases
23
Communicating With Developer Community
23.1
Planning Releases
23.2
Setting Up CVS Tools
23.3
Using The Web
23.4
Tracking Bugs
23.5
Manual And Automated Testing
24
SRT Tools Summary
IV
Maintainer's Guide
25
To Be Written...
V
Reference Section
srt
config.guess
config.sub
install-sh
mkinstalldirs
move-if-change
parse-uses
tsort-libs
autoconf
definitions
standard.mk
srt-env
VI
Appendices
A
Mirroring
A.1
Introduction
A.2
Mirroring The Tools
A.3
Mirroring By Release Copy
A.4
Mirroring By Building Releases
A.5
Removing Mirrored Releases
B
Common Traps And Pitfalls
B.1
Interactions Between AFS And CVS
C
Frequently Asked Questions
D
Makefile Requirements
E
Package Requirements
F
Details on Makefile Uses
F.1
Reference Page Legend
F.2
Option Sets
CLHEP
X
age
bison
c
c++
cernlib
f77
f90
flex
kuipc
lhc++
objy
pccts
tcl
xdr
G
Details on Tools
logiscope
insure++
purify
codecheck
H
Windows NT Considerations
VII
Tutorials
I
Short Introduction To CVS
J
Short Introduction To GNU make
K
Short Introduction To GNU autoconf
Glossary
Index
Next
Preface