This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
metaconfig unit changes for #17522.
[metaconfig.git] / dist-3.0at70b / dist.man
CommitLineData
959f3c4c
JH
1''' $Id: dist.man,v 3.0.1.6 1995/05/12 11:57:53 ram Exp $
2'''
3''' Copyright (c) 1991-1993, Raphael Manfredi
4'''
5''' You may redistribute only under the terms of the Artistic Licence,
6''' as specified in the README file that comes with the distribution.
7''' You may reuse parts of this distribution only within the terms of
8''' that same Artistic Licence; a copy of which may be found at the root
9''' of the source tree for dist 3.0.
10'''
11''' $Log: dist.man,v $
12''' Revision 3.0.1.6 1995/05/12 11:57:53 ram
13''' patch54: updated my e-mail address
14'''
15''' Revision 3.0.1.5 1994/10/29 15:46:03 ram
16''' patch36: mentions new patlog script and ChangeLog file
17'''
18''' Revision 3.0.1.4 1994/05/06 13:54:17 ram
19''' patch23: extended copyright notice to 1994
20''' patch23: new script kitpost
21'''
22''' Revision 3.0.1.3 1994/01/24 13:55:41 ram
23''' patch16: documents profile and its components
24'''
25''' Revision 3.0.1.2 1993/11/10 17:31:03 ram
26''' patch14: added mention for new confmagic.h file
27'''
28''' Revision 3.0.1.1 1993/08/24 12:12:00 ram
29''' patch3: added entries for patnotify and patsnap
30'''
31''' Revision 3.0 1993/08/18 12:04:07 ram
32''' Baseline for dist 3.0 netwide release.
33'''
34'''
35.de Ex \" Start of Example
36.sp
37.in +5
38.nf
39..
40.de Ef \" End of Example
41.sp
42.in -5
43.fi
44..
45.TH DIST 1 ram
46.SH NAME
47dist \- introduction to dist
48.SH DESCRIPTION
49The \fIdist\fR package is a set of tools meant to ease the construction and
50maintenance of portable software. There are four distinct parts in \fIdist\fR,
51and it is also meant to be used with two external products, which are
52publicly available: \fImailagent\fR and \fIpatch\fR.
53.PP
54The first component is the \fIConfigure\fR script generator, which is a
55portability tool. It is automatically build up by \fImetaconfig\fR from your
56sources and a set of units. Ideally, the end-user receiving your source code
57will simply have to read your README file, run the \fIConfigure\fR script
58(which is self-documented), and then run \fImake\fR. Your package should then
59build cleanly on every UNIX platform.
60.PP
61The second component is the \fIMakefile.SH\fR generator, which is a generic
62configured Makefile, reusing some of the information figured out by
63.I Configure.
64Although you may write your own Makefile and then use \fImakeSH\fR to transform
65it into a \fIMakefile.SH\fR, it is better to write a generic \fIJmakefile\fR
66description, which does not rely on a particular position within the source
67tree, and then use \fIjmake\fR to recursively build your Makefiles.
68.PP
69The third component is the package generator, which is used when it's time
70to build up the shell archives used to distribute your program. Although you
71may use your own archiving mechanism, the one included here knows about RCS
72files and will properly check out the lattest revisions, leaving your working
73files alone. The \fImakedist\fR program will also perform Copyright expansion,
74an useful feature when you share source files among more than one program,
75placed under distinct Copyright information.
76.PP
77The fourth and latest component is the patch generator, used to make updates
78of your sources, which can later be applied on the original distribution by
79using the \fIpatch\fR program.
80.PP
81Before using any of the \fIdist\fR programs, you should probably identify your
82package by running the \fIpackinit\fR program, which will create
83a \fI.package\fR file in the top-level directory of your package.
84.SH COMMANDS
85The \fIdist\fR package implements the following commands (those
86tagged as \fIlibrary\fR commands are to be found in the dist
87library and should not be made publicly available in everyone's path):
88.TP 15
89bindex
90builds the \fIIndex\fR file (library).
91.PD 0
92.TP
93jmake
94a Makefile.SH generator.
95.TP
96jmkmf
97bootstraps top-level Makefile.SH file.
98.TP
99kitpost
100posts distribution kits made by \fImakedist\fR.
101.TP
102kitsend
103sends distribution kits made by \fImakedist\fR.
104.TP
105makeSH
106wraps existing scripts into a .SH file.
107.TP
108makedist
109builds up distribution kits.
110.TP
111makegloss
112builds the \fIGlossary\fR file (library).
113.TP
114manicheck
115checks MANIFEST.new accuracy
116.TP
117manifake
118makes MANIFEST.new out of an existing MANIFEST.
119.TP
120manilist
121builds MANIFEST.new reports.
122.TP
123metaconfig
124a Configure script generator.
125.TP
126metalint
127a metaconfig unit consistency checker.
128.TP
129metaxref
130a metaconfig cross-reference builder.
131.TP
132packinit
133initializes a package (creates a .package file).
134.TP
135pat
136main patch generator.
137.TP
138patbase
139resets patch base to current version.
140.TP
141patcil
142checks new version in.
143.TP
144patclean
145remove working version of up-to-date files.
146.TP
147patcol
148checks file out.
149.TP
150patdiff
151builds (contextual) diffs for the patch.
152.TP
153patftp
154copies patches to public ftp directory.
155.TP
156patindex
157builds a patch index.
158.TP
159patlog
160handles ChangeLog file updates.
161.TP
162patmake
163puts diffs together into a patch.
164.TP
165patnotify
166notifies users that new patches have been released.
167.TP
168patpost
169posts patch to some newsgroup.
170.TP
171patsend
172mails patch to some people.
173.TP
174patsnap
175builds a release snapshot with files and RCS revisions.
176.PD
177.SH PROFILE
178Commands having a set of meaningful options (other
179than \fB\-h\fR or \fB\-V\fR) can also take arguments from
180the \fI~/.dist_profile\fR file, or whatever file the \fIDIST\fR
181environment variable points to. Each line of the file is in the
182format:
183.Ex
184profile-component: \fIvalue\fR
185.Ef
186whith shell-style comments (#) allowed provided they start the line.
187.PP
188Each command looks for a profile component entry matching its
189name and loads the \fIvalue\fR as if it were arguments specified
190on the command line. Those arguments precede any other argument
191specified manually, in case order is meaningful.
192.PP
193Some commands may also be configured from within the profile, by setting
194a specific \fIvariable\fR attached to the command by a profile
195entry looking like this:
196.Ex
197cmdname-\fIvariable\fR: \fIvalue\fR
198.Ef
199For instance, assuming the variable \fIc-files\fR is recognized by the
200\fImetaconfig\fR program, its default value could be overwritten by
201this profile entry:
202.Ex
203metaconfig-c-files: \fIsuitable value\fR
204.Ef
205Only the first '-' after the command name is part of the syntax, the
206other one used in the variable name is pure convention. Please refer to the
207manual page of each command for a list of valid profile variables
208which may be set.
209.SH FILES
210.PD 0
211.TP 15
212\&.MT
213Temporary directory created by \fImetaconfig\fR and friends.
214.TP
215\&.newer
216A list of files newer than \fIpatchlevel.h\fR, used by the patching tools.
217.TP
218\&.package
219Main configuration file used by most of the dist tools to make them smart.
220.TP
221ChangeLog
222The file where changes are recorded. Its name may be configured by
223running \fIpackinit\fR, but this is the default "generic" name under
224which it is referred to within the documentation.
225.TP
226Configure
227The generated configuration script.
228.TP
229Glossary
230A list of all the known portability symbols known by \fImetaconfig\fR. This
231file is located in the dist library directory.
232.TP
233I.fui
234Cross-reference file generated by \fImetaxref\fR, sorted by file, unit, item.
235.TP
236I.uif
237Cross-reference file generated by \fImetaxref\fR, sorted by unit, item, file.
238.TP
239Index
240A list of all the rules known by \fIjmake\fR. This file is located in the
241dist library directory.
242.TP
243Jmakefile
244Generic makefile description used by \fIjmake\fR.
245.TP
246MANIFEST
247List of all the files to be included in the distribution. Usually a copy (not
248a link) of MANIFEST.new.
249.TP
250MANIFEST.new
251List of all the files to be taken into account by the dist tools.
252.TP
253Makefile.SH
254The generated configured makefile (via Jmakefile) or hand-generated Makefile
255making use of known metaconfig symbols.
256.TP
257Obsolete
258A list of obsolete symbol used and their new equivalents.
259.TP
260RCS
261Directory where RCS files are stored.
262.TP
263README
264Main file explaining how to build your package.
265.TP
266U
267Private unit directory.
268.TP
269Wanted
270File used by \fImetaconfig\fR, listing all the symbols used by the sources.
271.TP
272bugs
273Directory where patches are stored.
274.TP
275check.extra
276Extra files present in MANIFEST.new, generated by \fImanicheck\fR.
277.TP
278check.want
279Missing files from MANIFEST.new, generated by \fImanicheck\fR.
280.TP
281config_h.SH
282Generated config.h template.
283.TP
284confmagic.h
285Magic symbol remapping, activated via metaconfig's \fB\-M\fR option.
286.TP
287hints
288This directory lists all the configuration hints for your package.
289.TP
290patchlevel.h
291File recording your package patch level, should not be part of MANIFEST.new,
292but may be listed in MANIFEST, at your discretion.
293.TP
294users
295File recording the users of your package, generated by mailagent's \fIpackage\fR
296command (see the MailAuthor.U unit and mailagent 3.0).
297.PD
298.SH ENVIRONMENT
299The following environment variable is paid attention to:
300.TP 15
301DIST
302Location of the dist profile, defaults to ~/.dist_profile. This variable is
303subject to ~name substitution, even if your shell does not support it.
304.SH AUTHORS
305By chronological order:
306.sp
307Larry Wall <lwall@netlabs.com> (dist 2.0 in 1988)
308.br
309Harlan Stenn <harlan@mumps.pfcs.com> (worked on dist 3.0 1990-1992)
310.br
311Raphael Manfredi <ram@hptnos02.grenoble.hp.com> (dist 3.0 and
312integration 1991-1995)
313.sp
314Please look at the \fICredits\fR file in the distribution source tree for a
315list of all the known contributors.
316.SH "SEE ALSO"
317jmake(1), metaconfig(1), pat(1).