Provided by: autoproject_0.20-11_all bug

NAME

       autoproject - create a skeleton source package for a new program

SYNOPSIS

       autoproject  [options] [name]

DESCRIPTION

       autoproject  simplifies the creation of a source package for a new program.  The idea is that you execute
       autoproject just once when you start a new project.  It will create a new directory and populate it  with
       standard files, customized for the new project.

       autoproject  asks  for  the  name  of the new program (unless it is given on the command line), a program
       description and other data. It then creates a subdirectory and populates it with a C program with command
       line  parsing,  a simple manual page and texinfo page, and other standard files.  The package is intended
       to follow the GNU programming standards.  It uses autoconf(1) to configure  itself,  and  automake(1)  to
       create the Makefile.

       The  new  program  will  always support the options "--help" and "--version", and will optionally support
       certain standard options such as "--quiet".

       Optionally, autoproject can set the new project up to use the argp command line parsing interface that is
       included in GNU C library 2.1.

       Alternatively,  the  new  project  can  use  a command line parser generator.  autoproject will create an
       appropriate options description file, and the generated Makefile will include the commands to invoke  the
       parser generator as needed.  Currently, autogen(1) and clig(1) are supported.

       At  present  autoproject  supports  main  programs only in c, sh, or c++.  For other languages mentioned,
       autoproject only adds macros in configure.in so autoconf(1) will look for the relevant  compilers.   (You
       may add skeleton files supporting other languages.  See CUSTOMIZATION, below.)

       The version number for the new program is initialized as 0.1.0, and is set in configure.in (only).  It is
       available in C programs as the macro VERSION, and in the Makefile as $(VERSION).

       If, after populating the new directory, there exists an  executable  file  named  postinst,  then  it  is
       executed.   If  it  executes  successfully, then autoproject deletes it.  Currently, autoproject does not
       supply a file postinst.  However, a user  can  install  one  to  perform  any  necessary  actions.   (See
       CUSTOMIZATION, below.)

OPTIONS

       If  the GNU version of getopt(1) is installed, autoproject will accept the following options.  Otherwise,
       autoproject will use getopts(1) to parse its arguments, and it will not longer  accept  long  options  or
       options with optional arguments.  If autoproject is used to generate a shell-based project, it will still
       be dependent on GNU getopt.

       -a, --author name
              Supply the name of the new program's author.

       -e, --email addr
              Supply the email address of the author.

       -o, --option opt
              Add opt to the list of long options accepted by the program.   Only  these  standard  options  are
              accepted here: dry-run no-warn output brief quiet verbose directory cd interactive.

       -d, --description text
              Supply the short program description

       -i, --interface type
              Specify  the type of user interface.  The default is cli, for command line interface.  (Currently,
              only cli is supported.)

       -l, --language lang
              Add lang to the list of languages used.  These languages are supported to some extent:  c  sh  c++
              fortran  lex yacc awk.  autoproject supports languages in two ways.  It assumes the first language
              mentioned will be used for the main program, and searches for  a  skeleton  program  file  in  the
              corresponding  section  of  the library.  At present autoproject supports main programs only in c,
              sh, or c++.  For other languages mentioned,  autoproject  only  adds  macros  in  configure.in  so
              autoconf(1)  will  look  for the relevant compilers.  (You may add skeleton files supporting other
              languages.  See CUSTOMIZATION, below.)

       -L[DIR]
              Prepend DIR to the list of directories to search for skeleton files.  (See CUSTOMIZATION,  below.)
              If DIR is missing, then the path is cleared.

       -n, --name name
              Specify the name of the new program.

       -p, --parser prog
              Use  the  external  command line parser or parser generator prog.  Currently, these are supported:
              argp, autogen(1) and clig(1).

       --debug
              Leave intermediate files.

       -h, --help
              Show summary of options.

       -v, --version
              Show version of program.

CUSTOMIZATION

       The  autoproject  package  includes  a  set  of  skeleton  files  which  are  usually   installed   under
       /usr/share/autoproject.   It  selects  which  subdirectories  to use based on the interface type, primary
       language, and parser generator chosen by the user.

       The user may create a similar directory tree under $HOME/.autoproject, and populate  it  with  additional
       files  and/or  replacements  for  the standard files.  The system administrator may create a similar tree
       under /etc/autoproject.  autoproject searches in $HOME/.autoproject  first,  then  /etc/autoproject,  and
       finally in the standard tree.  It uses only the first file it finds of a given name.

       For  example,  if  a  user  wants to add a paragraph to every README file that points to his web page, he
       could copy /usr/share/autoproject/all/all/all/README to ~/.autoproject/all/all/all/README and  make  that
       change.   Of  course,  any  file overridden in this way will not inherit updates when the next version of
       autoproject is installed.

       If a skeleton file contains any of these variables, autoproject will substitute the corresponding value:

       #NAME# Program name in lower case.

       #CAPNAME#
              Program name in all caps.

       #DESCRIPTION#
              A short description of the program.

       #AUTHOR#
              Program author.

       #EMAIL#
              Author's email address.

       #EEMAIL#
              Author's email address with the `@' doubled (necessary in a .texinfo file).

       #DATE# Today's date, in this format: "November 24, 2001".

       #ISODATE#
              Today's date, in ISO 8601 format: "2001-11-24".

       #YEAR# The four digit year.

       Note that these substitutions are made when autoproject runs.  Substitutions can also be made at  program
       configuration  or  build  time  by  suitable  makefile commands (for example, using the makefile variable
       VERSION, or the output of date(1)).

       If you write a generally applicable skeleton file, such as a main program for a  language  currently  not
       supported, please consider contributing it to autoproject.

FILES

       $HOME/.autoproject
       /etc/autoproject
       /usr/share/autoproject
       Directory trees containing skeleton files.

SEE ALSO

       autoconf(1),  automake(1), autogen(1), clig(1), `Parsing Program Options with Argp' in `The GNU C Library
       Reference Manual' (type `info libc argp')

AUTHOR

       James R. Van Zandt <jrvz@comcast.net>.

                                               September 16, 2002                                 AUTOPROJECT(1)