1.\" $OpenBSD: makewhatis.8,v 1.12 2014/11/28 19:25:03 schwarze Exp $ 2.\" 3.\" Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> 4.\" Copyright (c) 2011, 2012 Ingo Schwarze <schwarze@openbsd.org> 5.\" 6.\" Permission to use, copy, modify, and distribute this software for any 7.\" purpose with or without fee is hereby granted, provided that the above 8.\" copyright notice and this permission notice appear in all copies. 9.\" 10.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17.\" 18.Dd $Mdocdate: November 28 2014 $ 19.Dt MAKEWHATIS 8 20.Os 21.Sh NAME 22.Nm makewhatis 23.Nd index UNIX manuals 24.Sh SYNOPSIS 25.Nm 26.Op Fl aDnpQ 27.Op Fl T Cm utf8 28.Op Fl C Ar file 29.Nm 30.Op Fl aDnpQ 31.Op Fl T Cm utf8 32.Ar dir ... 33.Nm 34.Op Fl DnpQ 35.Op Fl T Cm utf8 36.Fl d Ar dir 37.Op Ar 38.Nm 39.Op Fl Dnp 40.Op Fl T Cm utf8 41.Fl u Ar dir 42.Op Ar 43.Nm 44.Op Fl DQ 45.Fl t Ar 46.Sh DESCRIPTION 47The 48.Nm 49utility extracts keywords from 50.Ux 51manuals and indexes them in a database for fast retrieval by 52.Xr apropos 1 , 53.Xr whatis 1 , 54and 55.Xr man 1 Ns 's 56.Fl k 57option. 58.Pp 59By default, 60.Nm 61creates a database in each 62.Ar dir 63using the files 64.Sm off 65.Sy man Ar section Li / 66.Op Ar arch Li / 67.Ar title . section 68.Sm on 69and 70.Sm off 71.Sy cat Ar section Li / 72.Op Ar arch Li / 73.Ar title . Sy 0 74.Sm on 75in that directory. 76Existing databases are replaced. 77If 78.Ar dir 79is not provided, 80.Nm 81uses the default paths stipulated by 82.Xr man.conf 5 . 83.Pp 84The arguments are as follows: 85.Bl -tag -width "-C file" 86.It Fl a 87Use all directories and files found below 88.Ar dir ... . 89.It Fl C Ar file 90Specify an alternative configuration 91.Ar file 92in 93.Xr man.conf 5 94format. 95.It Fl D 96Display all files added or removed to the index. 97With a second 98.Fl D , 99also show all keywords added for each file. 100.It Fl d Ar dir 101Merge (remove and re-add) 102.Ar 103to the database in 104.Ar dir . 105.It Fl n 106Do not create or modify any database; scan and parse only, 107and print manual page names and descriptions to standard output. 108.It Fl p 109Print warnings about potential problems with manual pages 110to the standard error output. 111.It Fl Q 112Quickly build reduced-size databases 113by reading only the NAME sections of manuals. 114The resulting databases will usually contain names and descriptions only. 115.It Fl T Cm utf8 116Use UTF-8 encoding instead of ASCII for strings stored in the databases. 117.It Fl t Ar 118Check the given 119.Ar files 120for potential problems. 121Implies 122.Fl a , 123.Fl n , 124and 125.Fl p . 126All diagnostic messages are printed to the standard output; 127the standard error output is not used. 128.It Fl u Ar dir 129Remove 130.Ar 131from the database in 132.Ar dir . 133.El 134.Pp 135If fatal parse errors are encountered while parsing, the offending file 136is printed to stderr, omitted from the index, and the parse continues 137with the next input file. 138.Sh FILES 139.Bl -tag -width Ds 140.It Pa mandoc.db 141A database of manpages relative to the directory of the file. 142This file is portable across architectures and systems, so long as the 143manpage hierarchy it indexes does not change. 144.It Pa /etc/man.conf 145The default 146.Xr man 1 147configuration file. 148.El 149.Sh EXIT STATUS 150The 151.Nm 152utility exits with one of the following values: 153.Pp 154.Bl -tag -width Ds -compact 155.It 0 156No errors occurred. 157.It 5 158Invalid command line arguments were specified. 159No input files have been read. 160.It 6 161An operating system error occurred, for example memory exhaustion or an 162error accessing input files. 163Such errors cause 164.Nm 165to exit at once, possibly in the middle of parsing or formatting a file. 166The output databases are corrupt and should be removed. 167.El 168.Sh SEE ALSO 169.Xr apropos 1 , 170.Xr man 1 , 171.Xr whatis 1 , 172.Xr man.conf 5 173.Sh HISTORY 174A 175.Nm 176utility first appeared in 177.Bx 2 . 178It was rewritten in 179.Xr perl 1 180for 181.Ox 2.7 182and in C for 183.Ox 5.6 . 184.Pp 185The 186.Ar dir 187argument first appeared in 188.Nx 1.0 ; 189the options 190.Fl dpt 191in 192.Ox 2.7 ; 193the option 194.Fl u 195in 196.Ox 3.4 ; 197and the options 198.Fl aCDnQT 199in 200.Ox 5.6 . 201.Sh AUTHORS 202.An -nosplit 203.An Bill Joy 204wrote the original 205.Bx 206.Nm 207in February 1979, 208.An Marc Espie 209started the Perl version in 2000, 210and the current version of 211.Nm 212was written by 213.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv 214and 215.An Ingo Schwarze Aq Mt schwarze@openbsd.org . 216