1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-28 01:06:17 +00:00

c2mdoc is an awk/shell script wot I wrote to aid in documenting our many

wonderful kernel APIs. c2man seems to choke on tcp_subr.c (which I was using
as a baseline), so let's do it the long way round instead. This script spits
out mdoc(7) markup ready for pasting into the SYNOPSIS section of our
wonderful mdoc.template.
This commit is contained in:
Bruce M Simpson 2004-03-02 09:05:14 +00:00
parent bb61b57fa6
commit ba73e13881
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=102705
6 changed files with 72 additions and 0 deletions

View File

@ -90,6 +90,7 @@
SUBDIR += byaccj
SUBDIR += c2lib
SUBDIR += c2man
SUBDIR += c2mdoc
SUBDIR += c4
SUBDIR += c_c++_reference
SUBDIR += c_parser

34
devel/c2mdoc/Makefile Normal file
View File

@ -0,0 +1,34 @@
# New ports collection makefile for: c2mdoc
# Date created: 2 March 2004
# Whom: Bruce M. Simpson <bms@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= c2mdoc
PORTVERSION= 20040302
CATEGORIES= devel textproc
MASTER_SITES= #
DISTFILES=
MAINTAINER= bms@FreeBSD.org
COMMENT= Script to generate mdoc(7) markup from C functions
RUN_DEPENDS= cproto:${PORTSDIR}/devel/cproto
NOMAN=
USE_REINPLACE= yes
NO_BUILD= yes
NO_WRKSUBDIR= yes
PKG_PLIST= bin/c2mdoc libexec/c2mdoc.awk
do-install:
${INSTALL_SCRIPT} ${FILESDIR}/c2mdoc.awk ${PREFIX}/libexec
${CP} ${FILESDIR}/c2mdoc ${WRKDIR}
${REINPLACE_CMD} -e "s|%%LIBEXECDIR%%|${PREFIX}/libexec|g;" \
${WRKDIR}/c2mdoc
${INSTALL_SCRIPT} ${WRKDIR}/c2mdoc ${PREFIX}/bin
.include <bsd.port.mk>

1
devel/c2mdoc/distinfo Normal file
View File

@ -0,0 +1 @@
#

15
devel/c2mdoc/files/c2mdoc Normal file
View File

@ -0,0 +1,15 @@
#!/bin/sh
#
# c2mdoc -- Front-end which abuses the cproto parser to spit out
# mdoc(7) format prototypes for use in FreeBSD documentation.
#
AWKSCRIPT="%%LIBEXECDIR%%/c2mdoc.awk"
CPROTO='-P"int\tf\t(\ta\t,\tb\t)" -pq -f3'
CPROTO_BIN=cproto
export CPROTO
${CPROTO_BIN} $1 | \
grep -v '/\*.*\*/' | \
sed -e 's/[,();]//g' | \
${AWKSCRIPT}

View File

@ -0,0 +1,13 @@
#!/usr/bin/awk -f
#
# c2mdoc.awk -- Takes tabulated output from cproto(1) and turns it into
# mdoc(7) markup.
#
BEGIN { FS="\t" }
{
printf ".Fa %s\n", $1 ;
printf ".Fn %s", $2 ;
for (i = 4; i < NF; i++)
printf " \"%s\"", $i
printf "\n" ;
}

8
devel/c2mdoc/pkg-descr Normal file
View File

@ -0,0 +1,8 @@
c2mdoc is a shell and awk script wrapper which abuses devel/cproto's parser
to spit out function prototypes in a format ready to paste into FreeBSD
developer documentation. c2man already claims to do such a thing, but seems
crippled in the face of our kernel source. The toolchain used by this port
whinges but still generates markup.
Bruce
bms@FreeBSD.org