xenial (7) dist.7.gz

Provided by: dist_3.5-36.0001-2_all bug

NAME

       dist - introduction to dist

DESCRIPTION

       The  dist  package is a set of tools meant to ease the construction and maintenance of portable software.
       There are four distinct parts in dist, and it is also meant to be used with two external products,  which
       are publicly available: mailagent and patch.

       The  first  component is the Configure script generator, which is a portability tool. It is automatically
       build up by metaconfig from your sources and a set of units. Ideally, the end-user receiving your  source
       code  will simply have to read your README file, run the Configure script (which is self-documented), and
       then run make. Your package should then build cleanly on every UNIX platform.

       The second component is the Makefile.SH generator, which is a generic configured Makefile,  reusing  some
       of  the  information  figured  out  by  Configure.  Although you may write your own Makefile and then use
       makeSH to transform it into a Makefile.SH, it is better to write a generic Jmakefile  description,  which
       does  not  rely  on a particular position within the source tree, and then use jmake to recursively build
       your Makefiles.

       The third component is the package generator, which is used when it's time to build up the shell archives
       used to distribute your program. Although you may use your own archiving mechanism, the one included here
       knows about RCS files and will properly check out the  lattest  revisions,  leaving  your  working  files
       alone.  The  makedist  program  will  also  perform Copyright expansion, an useful feature when you share
       source files among more than one program, placed under distinct  Copyright information.

       The fourth and latest component is the patch generator, used to make updates of your sources,  which  can
       later be applied on the original distribution by using the patch program.

       Before  using any of the dist programs, you should probably identify your package by running the packinit
       program, which will create a .package file in the top-level directory of your package.

COMMANDS

       The dist package implements the following commands (those tagged as library commands are to be  found  in
       the dist library and should not be made publicly available in everyone's path):

       bindex         builds the Index file (library).
       jmake          a Makefile.SH generator.
       jmkmf          bootstraps top-level Makefile.SH file.
       kitpost        posts distribution kits made by makedist.
       kitsend        sends distribution kits made by makedist.
       makeSH         wraps existing scripts into a .SH file.
       makedist       builds up distribution kits.
       makegloss      builds the Glossary file (library).
       manicheck      checks MANIFEST.new accuracy
       manifake       makes MANIFEST.new out of an existing MANIFEST.
       manilist       builds MANIFEST.new reports.
       metaconfig     a Configure script generator.
       metalint       a metaconfig unit consistency checker.
       metaxref       a metaconfig cross-reference builder.
       packinit       initializes a package (creates a  .package file).
       pat            main patch generator.
       patbase        resets patch base to current version.
       patcil         checks new version in.
       patclean       remove working version of up-to-date files.
       patcol         checks file out.
       patdiff        builds (contextual) diffs for the patch.
       patftp         copies patches to public ftp directory.
       patindex       builds a patch index.
       patlog         handles ChangeLog file updates.
       patmake        puts diffs together into a patch.
       patnotify      notifies users that new patches have been released.
       patpost        posts patch to some newsgroup.
       patsend        mails patch to some people.
       patsnap        builds a release snapshot with files and RCS revisions.

PROFILE

       Commands  having  a  set  of  meaningful  options  (other than -h or -V) can also take arguments from the
       ~/.dist_profile file, or whatever file the DIST environment variable points to. Each line of the file  is
       in the format:

            profile-component: value

       whith shell-style comments (#) allowed provided they start the line.

       Each  command  looks  for  a  profile component entry matching its name and loads the value as if it were
       arguments specified on the command line. Those arguments precede any other argument  specified  manually,
       in case order is meaningful.

       Some  commands may also be configured from within the profile, by setting a specific variable attached to
       the command by a profile entry looking like this:

            cmdname-variable: value

       For instance, assuming the variable c-files is recognized by the metaconfig program,  its  default  value
       could be overwritten by this profile entry:

            metaconfig-c-files: suitable value

       Only  the first '-' after the command name is part of the syntax, the other one used in the variable name
       is pure convention. Please refer to the manual page of each command for a list of valid profile variables
       which may be set.

FILES

       .MT            Temporary directory created by metaconfig and friends.
       .newer         A list of files newer than patchlevel.h, used by the patching tools.
       .package       Main configuration file used by most of the dist tools to make them smart.
       ChangeLog      The  file  where changes are recorded. Its name may be configured by running packinit, but
                      this is the default "generic" name under which it is referred to within the documentation.
       Configure      The generated configuration script.
       Glossary       A list of all the known portability symbols known by metaconfig. This file is  located  in
                      the dist library directory.
       I.fui          Cross-reference file generated by metaxref, sorted by file, unit, item.
       I.uif          Cross-reference file generated by metaxref, sorted by unit, item, file.
       Index          A  list  of  all  the  rules  known  by  jmake.  This  file is located in the dist library
                      directory.
       Jmakefile      Generic makefile description used by jmake.
       MANIFEST       List of all the files to be included in the distribution. Usually a copy (not a  link)  of
                      MANIFEST.new.
       MANIFEST.new   List of all the files to be taken into account by the dist tools.
       Makefile.SH    The generated configured makefile (via Jmakefile) or hand-generated Makefile making use of
                      known metaconfig symbols.
       Obsolete       A list of obsolete symbol used and their new equivalents.
       RCS            Directory where RCS files are stored.
       README         Main file explaining how to build your package.
       U              Private unit directory.
       Wanted         File used by metaconfig, listing all the symbols used by the sources.
       bugs           Directory where patches are stored.
       check.extra    Extra files present in MANIFEST.new, generated by manicheck.
       check.want     Missing files from MANIFEST.new, generated by manicheck.
       config_h.SH    Generated config.h template.
       confmagic.h    Magic symbol remapping, activated via metaconfig's -M option.
       hints          This directory lists all the configuration hints for your package.
       patchlevel.h   File recording your package patch level, should not be part of MANIFEST.new,  but  may  be
                      listed in MANIFEST, at your discretion.
       users          File  recording  the  users of your package, generated by mailagent's package command (see
                      the MailAuthor.U unit and mailagent 3.0).

ENVIRONMENT

       The following environment variable is paid attention to:

       DIST           Location of the dist profile, defaults to ~/.dist_profile. This  variable  is  subject  to
                      ~name substitution, even if your shell does not support it.

AUTHORS

       By chronological order:

       Larry Wall <lwall@netlabs.com> (dist 2.0 in 1988)
       Harlan Stenn <harlan@mumps.pfcs.com> (worked on dist 3.0 1990-1992)
       Raphael Manfredi <ram@hptnos02.grenoble.hp.com> (dist 3.0 and integration 1991-1995)

       Please look at the Credits file in the distribution source tree for a list of all the known contributors.

SEE ALSO

       jmake(1), metaconfig(1), pat(1).

                                                       ram                                               DIST(7)