Man Linux: Main Page and Category List


       autoproject - create a skeleton source package for a new program


       autoproject  [options] [name]


       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 so autoconf(1) will look for the relevant compilers.  (You
       may add skeleton files supporting other languages.  See  CUSTOMIZATION,

       The  version number for the new program is initialized as 0.1.0, and is
       set 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.)


       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 so autoconf(1) will
              look for the relevant compilers.  (You may  add  skeleton  files
              supporting other languages.  See CUSTOMIZATION, below.)

              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).

              Leave intermediate files.

       -h, --help
              Show summary of options.

       -v, --version
              Show version of program.


       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.

              Program name in all caps.

              A short description of the program.

              Program author.

              Author’s email address.

              Author’s email address with the  ‘@’  doubled  (necessary  in  a
              .texinfo file).

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

              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.


       Directory trees containing skeleton files.


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


       James R. Van Zandt <>.

                              September 16, 2002