AUTOPROJECT(1)
π AUTOPROJECT(1) π
okay bestie, welcome to the Programmer's Manual page for autoproject β it's giving "let's start a whole new program together" energy and honestly? iconic. π
β¨ NAME β¨
autoproject β create a skeleton source package for a new program
πΈ SYNOPSIS πΈ
autoproject [options] [name]
π¦ DESCRIPTION π¦
So here's the vibe: autoproject makes creating a source package for a brand new program so much easier. The whole idea is that you run autoproject literally once, right when you're starting a new project. It creates a new directory and fills it up with standard files, all customized for your shiny new project. no cap. π
autoproject asks you for the name of the new program (unless you already gave it on the command line), a program description, and other data. Then it creates a subdirectory and populates it with a C program that has command line parsing, a simple manual page, a 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. obsessed, honestly. β¨
Your new program will always support the options --help and --version, and it 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's included in GNU C library 2.1. fancy!! π
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 the 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 it's set in configure.in (only). It's available in C programs as the macro VERSION, and in the Makefile as $(VERSION). slay. β
If, after populating the new directory, there exists an executable file named postinst, then it gets 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 no 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,--authorname β Supply the name of the new program's author. βοΈ-e,--emailaddr β Supply the email address of the author. π§-o,--optionopt β Add opt to the list of long options accepted by the program. Only these standard options are accepted here:dry-runno-warnoutputbriefquietverbosedirectorycdinteractive.-d,--descriptiontext β Supply the short program description. π-i,--interfacetype β Specify the type of user interface. The default iscli, for command line interface. (Currently, onlycliis supported.)-l,--languagelang β Add lang to the list of languages used. These languages are supported to some extent:cshc++fortranlexyaccawk.autoprojectsupports 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,autoprojectsupports main programs only inc,sh, orc++. For other languages mentioned,autoprojectonly adds macros inconfigure.insoautoconf(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,--namename β Specify the name of the new program.-p,--parserprog β Use the external command line parser or parser generator prog. Currently, these are supported:argp,autogen(1)andclig(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.texinfofile).#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. π«Ά give back to the community bestie!!
π 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>.
and that's the whole page, bestie!! β¨ this manual page was dated September 16, 2002, and it lives in the Programmer's Manual section as AUTOPROJECT(1). mwah π go start a project, you main character π¦
π¦ where this page comes from
- debian bookworm: autoproject 0.20-14 Β· GPL-1.0-or-later AND exception
- debian trixie: autoproject 0.20-15 Β· GPL-1.0-or-later AND exception
- ubuntu jammy: autoproject 0.20-14 Β· GPL-1.0-or-later AND exception
- ubuntu noble: autoproject 0.20-15 Β· GPL-1.0-or-later AND exception
- ubuntu resolute: autoproject 0.20-16 Β· GPL-1.0-or-later WITH no-restriction exception
- ubuntu stonking: autoproject 0.20-16 Β· GPL-1.0-or-later WITH no-restriction exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms