Source code pulled from OpenBSD for OpenNTPD. The place to contribute to this code is via the OpenBSD CVS tree.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.6 KiB

  1. dnl $OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $
  2. dnl
  3. dnl Copyright (c) 2004, Miodrag Vallat
  4. dnl Copyright (c) 2001-2004 Todd T. Fries <todd@OpenBSD.org>
  5. dnl
  6. dnl Permission to use, copy, modify, and distribute this software for any
  7. dnl purpose with or without fee is hereby granted, provided that the above
  8. dnl copyright notice and this permission notice appear in all copies.
  9. dnl
  10. dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  11. dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  12. dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  13. dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  14. dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  15. dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  16. dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  17. dnl
  18. dnl This file is an m4 file, really. It's a clone of MAKEDEV.sub, then
  19. dnl adapted to mdoc output. This means, mostly removed from any non-trivial
  20. dnl content...
  21. dnl
  22. dnl o First, a change of quote to make shell statements like: `command`
  23. dnl possible
  24. dnl
  25. changequote(`{-', `-}')dnl
  26. dnl
  27. dnl o version info must be stripped of $ so we can say 'generated from' below
  28. dnl
  29. dnl If we just use the version string how are we going to know what arch
  30. dnl 'MAKEDEV.md,v' came from?
  31. dnl
  32. dnl Thus, I have used the below to create a version string looking like
  33. dnl 'OpenBSD: etc.sparc/MAKEDEV.inc,v...' which works, although requires
  34. dnl some attention if ported to another Id string setup.
  35. dnl
  36. dnl
  37. dnl Initialize the stacks stored in _m4_*
  38. dnl
  39. undefine({-_m4_cvs_ver-})dnl
  40. pushdef({-_m4_cvs_ver-}, {-done-})dnl
  41. dnl
  42. undefine({-_m4_devs-})dnl
  43. pushdef({-_m4_devs-}, {-done-})dnl
  44. dnl
  45. undefine({-_m4_disks-})dnl
  46. undefine({-_m4_disks2-})dnl
  47. pushdef({-_m4_disks-}, {-done-})dnl
  48. pushdef({-_m4_disks2-}, {-done-})dnl
  49. dnl
  50. dnl define stack 'add to' functions, only unique names queued
  51. dnl
  52. define({-ver_q-}, {-ifelse(index($1_ver, y), 0, ,
  53. {-pushdef({-_m4_cvs_ver-}, {-$2-})define({-$1_ver-}, {-y-})-})-})dnl ver_q
  54. dnl
  55. define({-dev_q-}, {-ifelse(index(_q_$1_dev, :), 0,
  56. {-errprint({-duplicated dev id: $1 at -}__file__{-:-}__line__ originally at _q_$1_dev)-},
  57. {-pushdef({-_m4_devs-}, {-$1-})dnl
  58. define({-_q_$1_dev-}, {-:-}__file__{-:-}__line__)-})-})dnl dev_q
  59. dnl
  60. define({-disk_q-}, {-ifelse(index(_q_$1_disk, :), 0,
  61. {-errprint({-duplicated disk id: $1 at -}__file__{-:-}__line__ originally at _q_$1_disk)-}, {-pushdef({-_m4_disks-}, {-$1-})dnl
  62. pushdef({-_m4_disks2-}, {-$1-})dnl
  63. define({-_q_$1_disks-}, {-:-}__file__{-:-}__line__)-})-})dnl disk_q
  64. dnl
  65. dnl store a version string for 'this' file
  66. dnl
  67. dnl vers ( uniqueidstring, versionstring, subdir )
  68. dnl
  69. dnl example1: vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-})
  70. dnl example2: vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-}, etc.MACHINE)
  71. dnl
  72. dnl if subdir is defined, prepend it to the filename in the version string
  73. dnl
  74. define({-vers-},
  75. {-ifelse({-$3-}, {--},
  76. {-ver_q(hstcl({-$1-}), {-translit({-{-$2-}-}, {-$-}, {--})-})-},
  77. {-ver_q(hstcl({-$1-}), {-_addsubdir({-{-$2-}-}, $3)-})-})-})dnl
  78. dnl
  79. dnl Version info for this file:
  80. dnl
  81. vers(__file__, {-$OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp $-})dnl
  82. dnl
  83. dnl
  84. define({-_addsubdir-},
  85. {-patsubst({-$1-}, {-\$(OpenBSD:) ([^\$]*)\$-}, {-\1 $2/\2-})-})dnl
  86. dnl
  87. dnl do the 'showing' of the version info
  88. dnl
  89. define({-do_vers-}, {-COMM $1-})dnl
  90. dnl
  91. dnl show version function, to be called at the place when all versions are
  92. dnl queued, and it is time to show all of them
  93. dnl
  94. define({-show_vers-},
  95. {-ifelse(_m4_cvs_ver, {-done-}, {--},
  96. {-do_vers(_m4_cvs_ver)
  97. popdef({-_m4_cvs_ver-})dnl
  98. show_vers()dnl
  99. -})-})dnl
  100. dnl
  101. dnl _devxr(name,optional different xr name)
  102. dnl
  103. define({-_devxr-},{-.Xr $1 ifelse(index($1,{- -}),-1,{-4 -})-})dnl
  104. dnl
  105. dnl _devitem(pattern, description)
  106. dnl
  107. define({-_devitem-},{-.It Ar $2
  108. $3{--}ifelse($4,nothing,,{-, see
  109. _devxr({-ifelse($4,,$1,$4)-})-})dnl
  110. .-})dnl
  111. dnl
  112. dnl _devtitle(name,description)
  113. dnl
  114. define({-_devtitle-},{-ifelse($1,make,,{-.El
  115. -}).Pp
  116. .Sy $2
  117. .Bl -tag -width tenletters -compact-})dnl
  118. dnl
  119. dnl _DEV(name, [character major], [block major])
  120. dnl
  121. define({-_DEV-}, {-$1_dev{--}dnl
  122. define({-$1__DEV-}, {-Y-})-})dnl
  123. dnl
  124. define({-_MKDEV-}, {-$1_mkdev-})dnl
  125. define({-_TITLE-}, {-$1_title-})dnl
  126. dnl
  127. define({-__devitem-}, {-define($1_dev, {-_devitem($1,$2,$3,$4)-})-})dnl
  128. dnl
  129. define({-__devtitle-}, {-define($1_title, {-_devtitle($1,$2)-})-})dnl
  130. define({-_mkdev-})dnl
  131. define({-_mcdev-})dnl
  132. define({-_cdev-})dnl
  133. define({-__mkdev-})dnl
  134. define({-target-})dnl
  135. define({-twrget-})dnl