1
0
mirror of https://github.com/openbsd/src.git synced 2024-12-21 23:18:00 -08:00
openbsd-src/etc/MAKEDEV.mansub
miod 6d09f9df54 MAKEDEV.8 improvement pack:
- refer to the section 4 manual page for every device target, whenever
possible
- repair a few minor quoting errors
- repair a few sorting errors
- fix a few device descriptions (ideally they would be synched with the
  .Nd line of their manpages, but we are not there... yet)
- minor mdoc fixes

Thanks to jmc@ for review and a lot of constructive criticism.
2004-02-20 19:13:01 +00:00

136 lines
4.6 KiB
Plaintext

dnl $OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $
dnl
dnl Copyright (c) 2004, Miodrag Vallat
dnl Copyright (c) 2001-2004 Todd T. Fries <todd@OpenBSD.org>
dnl
dnl Permission to use, copy, modify, and distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
dnl copyright notice and this permission notice appear in all copies.
dnl
dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl
dnl This file is an m4 file, really. It's a clone of MAKEDEV.sub, then
dnl adapted to mdoc output. This means, mostly removed from any non-trivial
dnl content...
dnl
dnl o First, a change of quote to make shell statements like: `command`
dnl possible
dnl
changequote(`{-', `-}')dnl
dnl
dnl o version info must be stripped of $ so we can say 'generated from' below
dnl
dnl If we just use the version string how are we going to know what arch
dnl 'MAKEDEV.md,v' came from?
dnl
dnl Thus, I have used the below to create a version string looking like
dnl 'OpenBSD: etc.sparc/MAKEDEV.inc,v...' which works, although requires
dnl some attention if ported to another Id string setup.
dnl
dnl
dnl Initialize the stacks stored in _m4_*
dnl
undefine({-_m4_cvs_ver-})dnl
pushdef({-_m4_cvs_ver-}, {-done-})dnl
dnl
undefine({-_m4_devs-})dnl
pushdef({-_m4_devs-}, {-done-})dnl
dnl
undefine({-_m4_disks-})dnl
undefine({-_m4_disks2-})dnl
pushdef({-_m4_disks-}, {-done-})dnl
pushdef({-_m4_disks2-}, {-done-})dnl
dnl
dnl define stack 'add to' functions, only unique names queued
dnl
define({-ver_q-}, {-ifelse(index($1_ver, y), 0, ,
{-pushdef({-_m4_cvs_ver-}, {-$2-})define({-$1_ver-}, {-y-})-})-})dnl ver_q
dnl
define({-dev_q-}, {-ifelse(index(_q_$1_dev, :), 0,
{-errprint({-duplicated dev id: $1 at -}__file__{-:-}__line__ originally at _q_$1_dev)-},
{-pushdef({-_m4_devs-}, {-$1-})dnl
define({-_q_$1_dev-}, {-:-}__file__{-:-}__line__)-})-})dnl dev_q
dnl
define({-disk_q-}, {-ifelse(index(_q_$1_disk, :), 0,
{-errprint({-duplicated disk id: $1 at -}__file__{-:-}__line__ originally at _q_$1_disk)-}, {-pushdef({-_m4_disks-}, {-$1-})dnl
pushdef({-_m4_disks2-}, {-$1-})dnl
define({-_q_$1_disks-}, {-:-}__file__{-:-}__line__)-})-})dnl disk_q
dnl
dnl store a version string for 'this' file
dnl
dnl vers ( uniqueidstring, versionstring, subdir )
dnl
dnl example1: vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-})
dnl example2: vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-}, etc.MACHINE)
dnl
dnl if subdir is defined, prepend it to the filename in the version string
dnl
define({-vers-},
{-ifelse({-$3-}, {--},
{-ver_q(hstcl({-$1-}), {-translit({-{-$2-}-}, {-$-}, {--})-})-},
{-ver_q(hstcl({-$1-}), {-_addsubdir({-{-$2-}-}, $3)-})-})-})dnl
dnl
dnl Version info for this file:
dnl
vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-})dnl
dnl
dnl
define({-_addsubdir-},
{-patsubst({-$1-}, {-\$(OpenBSD:) ([^\$]*)\$-}, {-\1 $2/\2-})-})dnl
dnl
dnl do the 'showing' of the version info
dnl
define({-do_vers-}, {-COMM $1-})dnl
dnl
dnl show version function, to be called at the place when all versions are
dnl queued, and it is time to show all of them
dnl
define({-show_vers-},
{-ifelse(_m4_cvs_ver, {-done-}, {--},
{-do_vers(_m4_cvs_ver)
popdef({-_m4_cvs_ver-})dnl
show_vers()dnl
-})-})dnl
dnl
dnl _devxr(name,optional different xr name)
dnl
define({-_devxr-},{-.Xr $1 ifelse(index($1,{- -}),-1,{-4 -})-})dnl
dnl
dnl _devitem(pattern, description)
dnl
define({-_devitem-},{-.It Ar $2
$3{--}ifelse($4,nothing,,{-, see
_devxr({-ifelse($4,,$1,$4)-})-})dnl
.-})dnl
dnl
dnl _devtitle(name,description)
dnl
define({-_devtitle-},{-ifelse($1,make,,{-.El
-}).Pp
.Sy $2
.Bl -tag -width tenletters -compact-})dnl
dnl
dnl _DEV(name, [character major], [block major])
dnl
define({-_DEV-}, {-$1_dev{--}dnl
define({-$1__DEV-}, {-Y-})-})dnl
dnl
define({-_MKDEV-}, {-$1_mkdev-})dnl
define({-_TITLE-}, {-$1_title-})dnl
dnl
define({-__devitem-}, {-define($1_dev, {-_devitem($1,$2,$3,$4)-})-})dnl
dnl
define({-__devtitle-}, {-define($1_title, {-_devtitle($1,$2)-})-})dnl
define({-_mkdev-})dnl
define({-_mcdev-})dnl
define({-_cdev-})dnl
define({-__mkdev-})dnl
define({-target-})dnl
define({-twrget-})dnl