xref: /freebsd/contrib/mandoc/makewhatis.8 (revision c1c95add8c80843ba15d784f95c361d795b1f593)
1*c1c95addSBrooks Davis.\" $Id: makewhatis.8,v 1.7 2022/03/16 23:26:14 schwarze Exp $
261d06d6bSBaptiste Daroussin.\"
361d06d6bSBaptiste Daroussin.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
461d06d6bSBaptiste Daroussin.\" Copyright (c) 2011, 2012, 2014, 2017 Ingo Schwarze <schwarze@openbsd.org>
561d06d6bSBaptiste Daroussin.\"
661d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any
761d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above
861d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies.
961d06d6bSBaptiste Daroussin.\"
1061d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1161d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1261d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1361d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1461d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1561d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1661d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1761d06d6bSBaptiste Daroussin.\"
18*c1c95addSBrooks Davis.Dd $Mdocdate: March 16 2022 $
1961d06d6bSBaptiste Daroussin.Dt MAKEWHATIS 8
2061d06d6bSBaptiste Daroussin.Os
2161d06d6bSBaptiste Daroussin.Sh NAME
2261d06d6bSBaptiste Daroussin.Nm makewhatis
2361d06d6bSBaptiste Daroussin.Nd index UNIX manuals
2461d06d6bSBaptiste Daroussin.Sh SYNOPSIS
2561d06d6bSBaptiste Daroussin.Nm
2661d06d6bSBaptiste Daroussin.Op Fl aDnpQ
2761d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
2861d06d6bSBaptiste Daroussin.Op Fl C Ar file
2961d06d6bSBaptiste Daroussin.Nm
3061d06d6bSBaptiste Daroussin.Op Fl aDnpQ
3161d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
3261d06d6bSBaptiste Daroussin.Ar dir ...
3361d06d6bSBaptiste Daroussin.Nm
3461d06d6bSBaptiste Daroussin.Op Fl DnpQ
3561d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
3661d06d6bSBaptiste Daroussin.Fl d Ar dir
3761d06d6bSBaptiste Daroussin.Op Ar
3861d06d6bSBaptiste Daroussin.Nm
3961d06d6bSBaptiste Daroussin.Op Fl Dnp
4061d06d6bSBaptiste Daroussin.Op Fl T Cm utf8
4161d06d6bSBaptiste Daroussin.Fl u Ar dir
4261d06d6bSBaptiste Daroussin.Op Ar
4361d06d6bSBaptiste Daroussin.Nm
4461d06d6bSBaptiste Daroussin.Op Fl DQ
4561d06d6bSBaptiste Daroussin.Fl t Ar
4661d06d6bSBaptiste Daroussin.Sh DESCRIPTION
4761d06d6bSBaptiste DaroussinThe
4861d06d6bSBaptiste Daroussin.Nm
4961d06d6bSBaptiste Daroussinutility extracts keywords from
5061d06d6bSBaptiste Daroussin.Ux
5161d06d6bSBaptiste Daroussinmanuals and indexes them in a database for fast retrieval by
5261d06d6bSBaptiste Daroussin.Xr apropos 1 ,
5361d06d6bSBaptiste Daroussin.Xr whatis 1 ,
5461d06d6bSBaptiste Daroussinand
55*c1c95addSBrooks Davis.Xr man 1 .
5661d06d6bSBaptiste Daroussin.Pp
5761d06d6bSBaptiste DaroussinBy default,
5861d06d6bSBaptiste Daroussin.Nm
5961d06d6bSBaptiste Daroussincreates a database in each
6061d06d6bSBaptiste Daroussin.Ar dir
6161d06d6bSBaptiste Daroussinusing the files
6261d06d6bSBaptiste Daroussin.Sm off
6361d06d6bSBaptiste Daroussin.Sy man Ar section Li /
6461d06d6bSBaptiste Daroussin.Op Ar arch Li /
6561d06d6bSBaptiste Daroussin.Ar title . section
6661d06d6bSBaptiste Daroussin.Sm on
6761d06d6bSBaptiste Daroussinand
6861d06d6bSBaptiste Daroussin.Sm off
6961d06d6bSBaptiste Daroussin.Sy cat Ar section Li /
7061d06d6bSBaptiste Daroussin.Op Ar arch Li /
7161d06d6bSBaptiste Daroussin.Ar title . Sy 0
7261d06d6bSBaptiste Daroussin.Sm on
7361d06d6bSBaptiste Daroussinin that directory.
7461d06d6bSBaptiste DaroussinExisting databases are replaced.
7561d06d6bSBaptiste DaroussinIf a directory contains no manual pages, no database is created in that
7661d06d6bSBaptiste Daroussindirectory.
7761d06d6bSBaptiste DaroussinIf
7861d06d6bSBaptiste Daroussin.Ar dir
7961d06d6bSBaptiste Daroussinis not provided,
8061d06d6bSBaptiste Daroussin.Nm
8161d06d6bSBaptiste Daroussinuses the default paths stipulated by
8261d06d6bSBaptiste Daroussin.Xr man.conf 5 .
8361d06d6bSBaptiste Daroussin.Pp
8461d06d6bSBaptiste DaroussinThe arguments are as follows:
8561d06d6bSBaptiste Daroussin.Bl -tag -width "-C file"
8661d06d6bSBaptiste Daroussin.It Fl a
8761d06d6bSBaptiste DaroussinUse all directories and files found below
8861d06d6bSBaptiste Daroussin.Ar dir ... .
8961d06d6bSBaptiste Daroussin.It Fl C Ar file
9061d06d6bSBaptiste DaroussinSpecify an alternative configuration
9161d06d6bSBaptiste Daroussin.Ar file
9261d06d6bSBaptiste Daroussinin
9361d06d6bSBaptiste Daroussin.Xr man.conf 5
9461d06d6bSBaptiste Daroussinformat.
9561d06d6bSBaptiste Daroussin.It Fl D
9661d06d6bSBaptiste DaroussinDisplay all files added or removed to the index.
9761d06d6bSBaptiste DaroussinWith a second
9861d06d6bSBaptiste Daroussin.Fl D ,
9961d06d6bSBaptiste Daroussinalso show all keywords added for each file.
10061d06d6bSBaptiste Daroussin.It Fl d Ar dir
10161d06d6bSBaptiste DaroussinMerge (remove and re-add)
10261d06d6bSBaptiste Daroussin.Ar
10361d06d6bSBaptiste Daroussinto the database in
10461d06d6bSBaptiste Daroussin.Ar dir .
10561d06d6bSBaptiste Daroussin.It Fl n
10661d06d6bSBaptiste DaroussinDo not create or modify any database; scan and parse only,
10761d06d6bSBaptiste Daroussinand print manual page names and descriptions to standard output.
10861d06d6bSBaptiste Daroussin.It Fl p
10961d06d6bSBaptiste DaroussinPrint warnings about potential problems with manual pages
11061d06d6bSBaptiste Daroussinto the standard error output.
11161d06d6bSBaptiste Daroussin.It Fl Q
11261d06d6bSBaptiste DaroussinQuickly build reduced-size databases
11361d06d6bSBaptiste Daroussinby reading only the NAME sections of manuals.
11461d06d6bSBaptiste DaroussinThe resulting databases will usually contain names and descriptions only.
11561d06d6bSBaptiste Daroussin.It Fl T Cm utf8
11661d06d6bSBaptiste DaroussinUse UTF-8 encoding instead of ASCII for strings stored in the databases.
11761d06d6bSBaptiste Daroussin.It Fl t Ar
11861d06d6bSBaptiste DaroussinCheck the given
11961d06d6bSBaptiste Daroussin.Ar files
12061d06d6bSBaptiste Daroussinfor potential problems.
12161d06d6bSBaptiste DaroussinImplies
12261d06d6bSBaptiste Daroussin.Fl a ,
12361d06d6bSBaptiste Daroussin.Fl n ,
12461d06d6bSBaptiste Daroussinand
12561d06d6bSBaptiste Daroussin.Fl p .
12661d06d6bSBaptiste DaroussinAll diagnostic messages are printed to the standard output;
12761d06d6bSBaptiste Daroussinthe standard error output is not used.
12861d06d6bSBaptiste Daroussin.It Fl u Ar dir
12961d06d6bSBaptiste DaroussinRemove
13061d06d6bSBaptiste Daroussin.Ar
13161d06d6bSBaptiste Daroussinfrom the database in
13261d06d6bSBaptiste Daroussin.Ar dir .
13361d06d6bSBaptiste DaroussinIf that causes the database to become empty, also delete the database file.
13461d06d6bSBaptiste Daroussin.El
13561d06d6bSBaptiste Daroussin.Pp
13661d06d6bSBaptiste DaroussinIf fatal parse errors are encountered while parsing, the offending file
13761d06d6bSBaptiste Daroussinis printed to stderr, omitted from the index, and the parse continues
13861d06d6bSBaptiste Daroussinwith the next input file.
13961d06d6bSBaptiste Daroussin.Sh ENVIRONMENT
14061d06d6bSBaptiste Daroussin.Bl -tag -width MANPATH
14161d06d6bSBaptiste Daroussin.It Ev MANPATH
14261d06d6bSBaptiste DaroussinA colon-separated list of directories to create databases in.
14361d06d6bSBaptiste DaroussinIgnored if a
14461d06d6bSBaptiste Daroussin.Ar dir
14561d06d6bSBaptiste Daroussinargument or the
14661d06d6bSBaptiste Daroussin.Fl t
14761d06d6bSBaptiste Daroussinoption is specified.
14861d06d6bSBaptiste Daroussin.El
14961d06d6bSBaptiste Daroussin.Sh FILES
15061d06d6bSBaptiste Daroussin.Bl -tag -width Ds
15161d06d6bSBaptiste Daroussin.It Pa mandoc.db
15261d06d6bSBaptiste DaroussinA database of manpages relative to the directory of the file.
15361d06d6bSBaptiste DaroussinThis file is portable across architectures and systems, so long as the
15461d06d6bSBaptiste Daroussinmanpage hierarchy it indexes does not change.
15561d06d6bSBaptiste Daroussin.It Pa /etc/man.conf
15661d06d6bSBaptiste DaroussinThe default
15761d06d6bSBaptiste Daroussin.Xr man 1
15861d06d6bSBaptiste Daroussinconfiguration file.
15961d06d6bSBaptiste Daroussin.El
16061d06d6bSBaptiste Daroussin.Sh EXIT STATUS
16161d06d6bSBaptiste DaroussinThe
16261d06d6bSBaptiste Daroussin.Nm
16361d06d6bSBaptiste Daroussinutility exits with one of the following values:
16461d06d6bSBaptiste Daroussin.Pp
16561d06d6bSBaptiste Daroussin.Bl -tag -width Ds -compact
16661d06d6bSBaptiste Daroussin.It 0
16761d06d6bSBaptiste DaroussinNo errors occurred.
16861d06d6bSBaptiste Daroussin.It 5
16961d06d6bSBaptiste DaroussinInvalid command line arguments were specified.
17061d06d6bSBaptiste DaroussinNo input files have been read.
17161d06d6bSBaptiste Daroussin.It 6
17261d06d6bSBaptiste DaroussinAn operating system error occurred, for example memory exhaustion or an
17361d06d6bSBaptiste Daroussinerror accessing input files.
17461d06d6bSBaptiste DaroussinSuch errors cause
17561d06d6bSBaptiste Daroussin.Nm
17661d06d6bSBaptiste Daroussinto exit at once, possibly in the middle of parsing or formatting a file.
17761d06d6bSBaptiste DaroussinThe output databases are corrupt and should be removed.
17861d06d6bSBaptiste Daroussin.El
17961d06d6bSBaptiste Daroussin.Sh SEE ALSO
18061d06d6bSBaptiste Daroussin.Xr apropos 1 ,
18161d06d6bSBaptiste Daroussin.Xr man 1 ,
18261d06d6bSBaptiste Daroussin.Xr whatis 1 ,
18361d06d6bSBaptiste Daroussin.Xr man.conf 5
18461d06d6bSBaptiste Daroussin.Sh HISTORY
18561d06d6bSBaptiste DaroussinA
18661d06d6bSBaptiste Daroussin.Nm
18761d06d6bSBaptiste Daroussinutility first appeared in
18861d06d6bSBaptiste Daroussin.Bx 2 .
18961d06d6bSBaptiste DaroussinIt was rewritten in
19061d06d6bSBaptiste Daroussin.Xr perl 1
19161d06d6bSBaptiste Daroussinfor
19261d06d6bSBaptiste Daroussin.Ox 2.7
19361d06d6bSBaptiste Daroussinand in C for
19461d06d6bSBaptiste Daroussin.Ox 5.6 .
19561d06d6bSBaptiste Daroussin.Pp
19661d06d6bSBaptiste DaroussinThe
19761d06d6bSBaptiste Daroussin.Ar dir
19861d06d6bSBaptiste Daroussinargument first appeared in
19961d06d6bSBaptiste Daroussin.Nx 1.0 ;
20061d06d6bSBaptiste Daroussinthe options
20161d06d6bSBaptiste Daroussin.Fl dpt
20261d06d6bSBaptiste Daroussinin
20361d06d6bSBaptiste Daroussin.Ox 2.7 ;
20461d06d6bSBaptiste Daroussinthe option
20561d06d6bSBaptiste Daroussin.Fl u
20661d06d6bSBaptiste Daroussinin
20761d06d6bSBaptiste Daroussin.Ox 3.4 ;
20861d06d6bSBaptiste Daroussinand the options
20961d06d6bSBaptiste Daroussin.Fl aCDnQT
21061d06d6bSBaptiste Daroussinin
21161d06d6bSBaptiste Daroussin.Ox 5.6 .
21261d06d6bSBaptiste Daroussin.Sh AUTHORS
21361d06d6bSBaptiste Daroussin.An -nosplit
21461d06d6bSBaptiste Daroussin.An Bill Joy
21561d06d6bSBaptiste Daroussinwrote the original
21661d06d6bSBaptiste Daroussin.Bx
21761d06d6bSBaptiste Daroussin.Nm
21861d06d6bSBaptiste Daroussinin February 1979,
21961d06d6bSBaptiste Daroussin.An Marc Espie
22061d06d6bSBaptiste Daroussinstarted the Perl version in 2000,
22161d06d6bSBaptiste Daroussinand the current version of
22261d06d6bSBaptiste Daroussin.Nm
22361d06d6bSBaptiste Daroussinwas written by
22461d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv
22561d06d6bSBaptiste Daroussinand
22661d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org .
227