A first pass at integrating the SGML docs into the Makefile.

A first pass a cleaning up the current SGML (lots more cleanup
is needed though).
 -Erik
This commit is contained in:
Eric Andersen 2000-07-04 19:42:23 +00:00
parent b02c54ebee
commit 5331025f79
4 changed files with 280 additions and 334 deletions

View File

@ -10,13 +10,20 @@
Fix thanks to Marc Nijdam <marc_nijdam@hp.com>
* Fixed segfault with 'cut -f 1 -d:' and added 'cut -s' suport.
Fix thanks to Arne Bernin <arne@matrix.loopback.org>
* Added support for "sh -c command args...", thanks to
Marius Groeger <mgroeger@sysgo.de>
* Several fixes from Marius Groeger <mag@sysgo.de>
- Added support for "sh -c command args..."
- Fixed globbing, i.e. 'echo * *' and 'echo "******"' now work.
- Added shell environment variable substitution
- Added the "read" shell builtin.
* Fixed cursor editing in cmdedit.c. The following keyboard sequence
used to create an infinite loop: ls, cursor up, left, down.
* Added support for being a login shell, so things like
'-su' or '-sh' (stuff where argv[0][0]=='-') will now always
invoke the shell. Now you can use BusyBox as a login shell.
* ls.c now ignores '-g', since some ftp clients like that sort
of thing. Patch thanks to David Vrabel <dvrabel@arcom.co.uk>
* Fix to init.c from Stuart Menefy <Stuart.Menefy@st.com> so that
it always sets the controlling terminal before running any programs
-Erik Andersen
@ -45,7 +52,7 @@
* Replaced the telnet implementation with one written by
Tomi Ollila <too@iki.fi> It works great and costs 3k.
* BusyBox sh (lash) now supports being used as a standalone shell. When
BB_FEATURE_STANDALONE_SHELL is defined, all the busybox commands may
BB_FEATURE_SH_STANDALONE_SHELL is defined, all the busybox commands may
be invoked as shell internals. Best used when compiling staticly
(i.e. DOSTATIC=true)
* BusyBox sh (lash) internals now behave as expected wrt pipes

View File

@ -87,24 +87,52 @@ ifdef BB_INIT_SCRIPT
CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
endif
all: busybox busybox.links doc
all: busybox busybox.links olddoc #doc
doc: docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html
docs/BusyBox.txt: docs/busybox.pod
# New docs based on DOCBOOK SGML
doc: docs/BusyBox.txt docs/BusyBox.html docs/BusyBox.pdf
docs/BusyBox.txt: docs/busybox.sgml
@echo
@echo BusyBox Documentation
@echo
- pod2text docs/busybox.pod > docs/BusyBox.txt
(cd docs; sgmltools -b txt busybox.sgml)
docs/BusyBox.1: docs/busybox.pod
- pod2man --center=BusyBox --release="version $(VERSION)" docs/busybox.pod > docs/BusyBox.1
docs/BusyBox.dvi: docs/busybox.sgml
(cd docs; sgmltools -b dvi busybox.sgml)
docs/BusyBox.ps: docs/BusyBox.dvi
(cd docs; sgmltools -b ps busybox.sgml)
docs/BusyBox.pdf: docs/BusyBox.ps
(cd docs; ps2pdf busybox.ps)
docs/busybox.lineo.com/BusyBox.html: docs/busybox.sgml
(cd docs/busybox.lineo.com; sgmltools -b html ../busybox.sgml)
docs/BusyBox.html: docs/busybox.lineo.com/BusyBox.html
- rm -f docs/BusyBox.html
- ln -s busybox.lineo.com/BusyBox.html docs/BusyBox.html
docs/busybox.lineo.com/BusyBox.html: docs/busybox.pod
# Old Docs...
olddoc: olddoc/BusyBox.txt olddoc/BusyBox.1 olddoc/BusyBox.html
olddoc/BusyBox.txt: docs/busybox.pod
@echo
@echo BusyBox Documentation
@echo
- pod2text docs/busybox.pod > docs/BusyBox.txt
olddoc/BusyBox.1: docs/busybox.pod
- pod2man --center=BusyBox --release="version $(VERSION)" docs/busybox.pod > docs/BusyBox.1
olddoc/BusyBox.html: olddoc/busybox.lineo.com/BusyBox.html
- rm -f docs/BusyBox.html
- ln -s busybox.lineo.com/BusyBox.html docs/BusyBox.html
olddoc/busybox.lineo.com/BusyBox.html: docs/busybox.pod
- pod2html docs/busybox.pod > docs/busybox.lineo.com/BusyBox.html
- rm -f pod2html*
@ -125,8 +153,9 @@ clean:
- rm -f busybox.links *~ *.o core
- rm -rf _install
- cd tests && $(MAKE) clean
- rm -f docs/BusyBox.html docs/busybox.lineo.com/BusyBox.html \
docs/BusyBox.1 docs/BusyBox.txt pod2html*
- rm -f docs/busybox.txt docs/busybox.dvi docs/busybox.ps \
docs/busybox.pdf docs/busybox.lineo.com/busybox.html
- rm -rf docs/busybox
distclean: clean
- rm -f busybox

View File

@ -170,6 +170,7 @@ I know of the following projects that use BusyBox
<li> <a href="http://www.toms.net/rb/">tomsrtbt</a>
<li> <a href="http://www.stormix.com/">Stormix Installer</a>
<li> <a href="http://www.emacinc.com/linux2_sbc.htm">EMAC Linux 2.0 SBC</a>
<li> <a href="http://www.trinux.org/">Trinux</a>
</ul>
Do you use BusyBox? I'd love to know about it and I'd be happy to link to you.

View File

@ -1,326 +1,235 @@
<!DOCTYPE book PUBLIC "-//Davenport//DTD DocBook V2.4.1//EN" "/opt/texmf/gmat/sgml/Davenport/dtds/2.4.1/docbook.dtd">
<!-- -->
<!-- $Id: busybox.sgml,v 1.1 2000/06/26 13:31:53 markw Exp $ -->
<!-- -->
<!-- $Log: busybox.sgml,v $
<!-- Revision 1.1 2000/06/26 13:31:53 markw
<!-- Just converted busybox.pod to busybox.sgml using the Pod::DocBook Perl module.
<!-- The resulting file needs some massaging and once it gets presentable, I'll
<!-- edit the Makefile to use the SGML file as the "authoritative" file; the plan
<!-- here is to generate other file formats from the SGML.
<!-- -->
<!-- -->
<!-- General reminders: -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [...]>
<book id="BusyBoxDocumentation">
<bookinfo>
<title>BusyBox - The Swiss Army Knife of Embedded Linux</title>
<legalnotice>
<para>
This documentation is free software; you can redistribute
it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
</para>
<para>
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
</para>
<para>
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
</para>
<para>
For more details see the file COPYING in the source
distribution of Linux.
</para>
</legalnotice>
</bookinfo>
<toc></toc>
<chapter id="Introduction">
<title>Introduction</title>
<para>
BusyBox combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the
utilities you usually find in fileutils, shellutils, findutils, textutils,
grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment
for any small or embedded system. The utilities in BusyBox generally have
fewer options than their full-featured GNU cousins; however, the options
that are included provide the expected functionality and behave very much
like their GNU counterparts.
</para>
<para>
BusyBox has been written with size-optimization and limited resources in
mind. It is also extremely modular so you can easily include or exclude
commands (or features) at compile time. This makes it easy to customize
your embedded systems. To create a working system, just add a kernel, a
shell (such as ash), and an editor (such as elvis-tiny or ae).
</para>
</chapter>
<chapter id="Syntax">
<title>How to use BusyBox</title>
<sect1 id="How to use BusyBox">
<title>Syntax</title
<para>
<screen>
BusyBox &lt;function&gt; [arguments...] # or
</screen>
</para>
<para>
<screen>
&lt;function&gt; [arguments...] # if symlinked
</screen>
</para>
</sect1>
<sect1 id="Invoking BusyBox">
<para>
When you create a link to BusyBox for the function you wish to use, when
BusyBox is called using that link it will behave as if the command itself
has been invoked.
</para>
<para>
For example, entering
</para>
<para>
<screen>
ln -s ./BusyBox ls
./ls
</screen>
</para>
<para>
will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
into BusyBox).
</para>
<para>
You can also invoke BusyBox by issuing the command as an argument on the
command line. For example, entering
</para>
<para>
<screen>
./BusyBox ls
</screen>
</para>
<para>
will also cause BusyBox to behave as 'ls'.
</para>
</sect1>
<sect1 id="Common options">
<para>
Most BusyBox commands support the <emphasis>--help</emphasis> option to provide
a terse runtime description of their behavior.
</para>
</sect1>
</chapter>
<chapter id="Commands">
<title>BusyBox Commands</title>
<sect1 id="Available BusyBox Commands">
<title>Available BusyBox Commands</title>
<para>
Currently defined functions include:
</para>
<para>
ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
</para>
</sect1>
<sect1 id="ar">
<title>ar</title>
<para>
Usage: ar [optxvV] archive [filenames]
</para>
<para>
Extract or list files from an ar archive.
</para>
<para>
Options:
</para>
<para>
<screen>
o preserve original dates
p extract to stdout
t list
x extract
v verbosely list files processed
</screen>
</para>
</sect1>
<sect1 id="basename">
<title>basename</title>
<para>
Usage: basename FILE [SUFFIX]
</para>
<para>
Strips directory path and suffixes from FILE. If specified, also removes
any trailing SUFFIX.
</para>
<para>
Example:
</para>
<para>
<screen>
$ basename /usr/local/bin/foo
foo
$ basename /usr/local/bin/
bin
$ basename /foo/bar.txt .txt
bar
</screen>
</para>
</sect1>
<sect1 id="cat">
<title>cat</title>
<para>
Usage: cat [FILE ...]
</para>
<para>
Concatenates <literal>FILE(s)</literal> and prints them to the standard
output.
</para>
<para>
Example:
</para>
<para>
<screen>
$ cat /proc/uptime
110716.72 17.67
</screen>
</para>
</sect1>
<book>
<chapter id="pod2docbook-ch-1"><title>BusyBox - The Swiss Army Knife of Embedded Linux
</title>
<chapter id="pod2docbook-ch-1"><title>NAME
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
BusyBox - The Swiss Army Knife of Embedded Linux
</para>
<sect1 id="pod2docbook-ch-1-sect-1"><title>SYNTAX
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
<screen>
BusyBox &lt;function&gt; [arguments...] # or
</screen>
</para>
<para>
<screen>
&lt;function&gt; [arguments...] # if symlinked
</screen>
</para>
</sect1>
<sect1 id="pod2docbook-ch-1-sect-2"><title>DESCRIPTION
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
BusyBox combines tiny versions of many common UNIX utilities into a single
small executable. It provides minimalist replacements for most of the
utilities you usually find in fileutils, shellutils, findutils, textutils,
grep, gzip, tar, etc. BusyBox provides a fairly complete POSIX environment
for any small or embedded system. The utilities in BusyBox generally have
fewer options than their full-featured GNU cousins; however, the options
that are included provide the expected functionality and behave very much
like their GNU counterparts.
</para>
<para>
BusyBox has been written with size-optimization and limited resources in
mind. It is also extremely modular so you can easily include or exclude
commands (or features) at compile time. This makes it easy to customize
your embedded systems. To create a working system, just add a kernel, a
shell (such as ash), and an editor (such as elvis-tiny or ae).
</para>
</sect1>
<sect1 id="pod2docbook-ch-1-sect-3"><title>USAGE
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
When you create a link to BusyBox for the function you wish to use, when
BusyBox is called using that link it will behave as if the command itself
has been invoked.
</para>
<para>
For example, entering
</para>
<para>
<screen>
ln -s ./BusyBox ls
./ls
</screen>
</para>
<para>
will cause BusyBox to behave as 'ls' (if the 'ls' command has been compiled
into BusyBox).
</para>
<para>
You can also invoke BusyBox by issuing the command as an argument on the
command line. For example, entering
</para>
<para>
<screen>
./BusyBox ls
</screen>
</para>
<para>
will also cause BusyBox to behave as 'ls'.
</para>
</sect1>
<sect1 id="pod2docbook-ch-1-sect-4"><title>COMMON OPTIONS
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
Most BusyBox commands support the <emphasis>--help</emphasis> option to provide a terse runtime description of their behavior.
</para>
</sect1>
<sect1 id="pod2docbook-ch-1-sect-5"><title>COMMANDS
</title>
<!-- Bogus hack to ensure that each sect has a paragraph in it -->
<para>
</para>
<para>
Currently defined functions include:
</para>
<para>
ar, basename, cat, chgrp, chmod, chown, chroot, chvt, clear, cp, cut, date,
dc, dd, deallocvt, df, dirname, dmesg, du, dutmp, echo, false, fbset,
fdflush, find, free, freeramdisk, fsck.minix, grep, gunzip, gzip, halt,
head, hostid, hostname, id, init, insmod, kill, killall, length, ln,
loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs, mkdir,
mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
nslookup, ping, poweroff, printf, ps, pwd, reboot, rm, rmdir, rmmod, sed,
setkeycodes, sfdisk, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail,
tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, update,
uptime, usleep, uudecode, uuencode, wc, which, whoami, yes, zcat, [
</para>
<para>
-------------------------------
</para>
<variableList>
<varlistentry><term><emphasis>ar
</emphasis></term>
<listitem><para></para>
<para>
Usage: ar [optxvV] archive [filenames]
</para>
<para>
Extract or list files from an ar archive.
</para>
<para>
Options:
</para>
<para>
<screen>
o preserve original dates
p extract to stdout
t list
x extract
v verbosely list files processed
</screen>
</para>
<para>
-------------------------------
</para>
</listitem></varlistentry>
<varlistentry><term><emphasis>basename
</emphasis></term>
<listitem><para></para>
<para>
Usage: basename FILE [SUFFIX]
</para>
<para>
Strips directory path and suffixes from FILE. If specified, also removes
any trailing SUFFIX.
</para>
<para>
Example:
</para>
<para>
<screen>
$ basename /usr/local/bin/foo
foo
$ basename /usr/local/bin/
bin
$ basename /foo/bar.txt .txt
bar
</screen>
</para>
<para>
-------------------------------
</para>
</listitem></varlistentry>
<varlistentry><term><emphasis>cat
</emphasis></term>
<listitem><para></para>
<para>
Usage: cat [FILE ...]
</para>
<para>
Concatenates <literal>FILE(s)</literal> and prints them to the standard
output.
</para>
<para>
Example:
</para>
<para>
<screen>
$ cat /proc/uptime
110716.72 17.67
</screen>
</para>
<para>
-------------------------------