123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- \input texinfo @c -*-texinfo-*-
- @c %**start of header
- @setfilename hello.info
- @include version.texi
- @settitle GNU Hello @value{VERSION}
- @c %**end of header
- @copying
- This manual is for GNU Hello (version @value{VERSION}, @value{UPDATED}),
- which prints a friendly greeting (and serves as an example GNU package).
- Copyright @copyright{} 1992, 1993, 1996, 2002, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
- @quotation
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2 or
- any later version published by the Free Software Foundation; with no
- Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
- Texts. A copy of the license is included in the section entitled
- ``GNU Free Documentation License''.
- @end quotation
- @end copying
- @c If your manual is published on paper by the FSF, it should include
- @c the standard FSF Front-Cover and Back-Cover Texts, as given in
- @c maintain.texi.
- @c Define a new index for options.
- @defcodeindex op
- @c Combine everything into one index (arbitrarily chosen to be the
- @c concept index).
- @syncodeindex op cp
- @dircategory Basics
- @direntry
- * Hello: (hello). Hello, GNU world.
- @end direntry
- @titlepage
- @title GNU Hello
- @subtitle for version @value{VERSION}, @value{UPDATED}
- @author GNU Hello Developers (@email{bug-hello@@gnu.org})
- @page
- @vskip 0pt plus 1filll
- @insertcopying
- @end titlepage
- @contents
- @ifnottex
- @node Top
- @top GNU Hello
- This manual is for GNU Hello (version @value{VERSION}, @value{UPDATED}).
- @end ifnottex
- @menu
- * Overview:: General purpose and information.
- * Sample output:: Sample output from @command{hello}.
- * Invoking hello:: How to run @command{hello}.
- * Reporting bugs:: Sending bug reports and feature suggestions.
- * GNU Free Documentation License:: Copying and sharing this documentation.
- * Concept index:: Index of concepts.
- @end menu
- @node Overview
- @chapter Overview
- @cindex greetings
- @cindex overview
- The GNU @command{hello} program
- (@url{http://www.gnu.org/software/hello/}) produces a familiar,
- friendly greeting. It allows nonprogrammers to use a classic computer
- science tool which would otherwise be unavailable to them. Because it
- is protected by the GNU General Public License, users are free (in
- perpetuity) to share and change it.
- @cindex joke, not
- Not to spoil the joke, but of course the practical purpose of GNU
- Hello is to serve as a minimal example of a GNU package. So, although
- most manuals don't need to discuss the implementation of the programs
- they document, that is part of the goal here.
- @cindex GNU coding standards
- @cindex GNU maintainer standards
- @cindex standards, GNU coding
- @cindex standards, GNU maintainer
- First, GNU Hello follows the GNU coding standards
- (@pxref{Top,,Preface,standards, GNU Coding Standards}) and GNU
- maintainer standards (@pxref{Top,,Preface,maintain, Information for
- GNU Maintainers}). These are the basic documents which all GNU
- packages should adhere to.
- The Hello package also implements recommended development practices
- not embodied in the standards, using other GNU packages and features:
- @itemize @bullet
- @item
- @cindex Automake
- @cindex Autoconf
- It uses Automake (@pxref{Top,,Introduction,Automake,GNU Automake}) and
- hence also Autoconf (@pxref{Top,,Introduction,Autoconf,GNU Autoconf})
- for configuration.
- @item
- @cindex Gnulib
- It uses Gnulib (@pxref{Top,,Gnulib,gnulib,GNU Gnulib}) to enhance
- portability and avoid duplication of common sources.
- @item
- @cindex Gettext
- GNU Gettext (@pxref{Top,,Introduction,gettext,GNU Gettext}) is used
- for internationalization support. Hello's greeting has been translated
- into many languages.
- @item
- @opindex --help
- Internally, Hello uses the GNU @code{getopt_long} function
- (@pxref{Getopt Long Options,,,libc,GNU C Library}) to parse options,
- thus supporting GNU-style long options such as @option{--help}.
- @item
- @cindex Help2man
- Man pages are generated with GNU @code{help2man}
- (@pxref{Top,,Overview,help2man,GNU @code{help2man}}) from the
- @option{--help} output. This relieves the maintainers of the burden
- of maintaining man documentation separately, yet provides a reasonable
- overview for man devotees.
- @item
- @cindex Texinfo
- Finally, Texinfo (@pxref{Top,,Introduction,texinfo,Texinfo}) is the
- documentation format for this manual. It supports output in Info,
- HTML, PDF, DVI, plain text, XML, and other formats.
- @end itemize
- GNU Hello is implemented in C. GNU Gettext contains ``hello world''
- examples in a variety of other programming languages; see the Gettext
- home page at @url{http://www.gnu.org/software/gettext/}.
- @cindex authors
- @cindex Haertel, Mike
- @cindex MacKenzie, David
- @cindex Brittenson, Jan
- @cindex Hannum, Charles
- @cindex McGrath, Roland
- @cindex Friedman, Noah
- @cindex Eichwalder, Karl
- @cindex King, The
- @cindex Berry, Karl
- GNU Hello was written by Mike Haertel, David MacKenzie, Jan
- Brittenson, Charles Hannum, Roland McGrath, Noah Friedman, Karl
- Eichwalder, Karl Berry, and @w{The King}.
- @node Sample output
- @chapter Sample output
- @cindex sample output
- @cindex examples
- Here are some realistic examples of running GNU Hello.
- This is the output of the command @samp{hello}:
- @example
- Hello, world!
- @end example
- This is the output of the command @samp{hello --traditional}:
- @example
- hello, world
- @end example
- This is the output of the command @samp{hello --greeting=hi}:
- @example
- hi
- @end example
- @node Invoking hello
- @chapter Invoking @command{hello}
- @cindex invoking
- @cindex options
- @cindex usage
- @cindex help
- The format for running the @command{hello} program is:
- @example
- hello @var{option} @dots{}
- @end example
- With no options, @command{hello} prints the greeting @samp{Hello,
- world!}.
- @command{hello} supports the following options:
- @table @option
- @item --greeting=@var{text}
- @itemx -g @var{text}
- @opindex --greeting
- @opindex -g
- Output @var{text} instead of the default greeting.
- @item --help
- @itemx -h
- @opindex --help
- @opindex -h
- Print an informative help message on standard output and exit
- successfully.
- @cindex environment variables, help for
- For the @option{--help} output of GNU programs, it's strongly
- encouraged to include a brief (one or two sentences) description of
- what the program does, as well as the synopsis of how to run the
- program. Any environment variables which affect execution should also
- be mentioned (Hello doesn't have any).
- @item --next-generation
- @itemx -n
- @opindex --next-generation
- @opindex -n
- Output @samp{Hello, world!}, but possibly including box-drawing
- characters or other fancy stuff, especially in translated locales.
- (If you would like to volunteer to translate messages for GNU packages,
- please see @url{http://translationproject.org}.)
- @item --traditional
- @itemx -t
- @opindex --traditional
- @opindex -t
- @cindex traditional
- @cindex modern
- Output the traditional greeting message @samp{hello, world}.
- @item --version
- @itemx -v
- @opindex --version
- @opindex -v
- Print the version number and licensing information of Hello on
- standard output and then exit successfully.
- @end table
- If more than one of the greeting options (@option{-g}, @option{-n},
- @option{-t}, and their long-named equivalents) is specified, whichever
- comes last takes precedence.
- @node Reporting bugs
- @chapter Reporting bugs
- @cindex bug reporting
- @cindex problems
- @cindex reporting bugs
- To report bugs or suggest enhancements for GNU Hello, please
- send electronic mail to @email{bug-hello@@gnu.org}.
- @cindex checklist for bug reports
- For bug reports, please include enough information for the maintainers
- to reproduce the problem. Generally speaking, that means:
- @itemize @bullet
- @item The version numbers of Hello (which you can find by running
- @w{@samp{hello --version}}) and any other program(s) or
- manual(s) involved.
- @item Hardware and operating system names and versions.
- @item The contents of any input files necessary to reproduce the bug.
- @item The expected behavior and/or output.
- @item A description of the problem and samples of any erroneous output.
- @item Options you gave to @command{configure} other than specifying
- installation directories.
- @item Anything else that you think would be helpful.
- @end itemize
- When in doubt whether something is needed or not, include it. It's
- better to include too much than to leave out something important.
- @cindex patches, contributing
- Patches are welcome; if possible, please make them with @samp{@w{diff
- -c}} (@pxref{Top,, Overview, diff, Comparing and Merging Files}) and
- include @file{ChangeLog} entries (@pxref{Change Log,,, emacs, The GNU
- Emacs Manual}). Please follow the existing coding style.
- @node GNU Free Documentation License
- @appendix GNU Free Documentation License
- @include fdl-hello.texi
- @node Concept index
- @unnumbered Concept index
- @printindex cp
- @bye
|