dnl $FabBSD$ 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 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__, {-$FabBSD$-})dnl dnl dnl define({-_addsubdir-}, {-patsubst({-$1-}, {-\$(FabBSD:) ([^\$]*)\$-}, {-\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