From ba73e138817ba9e3aaa437473051b862bee99200 Mon Sep 17 00:00:00 2001 From: Bruce M Simpson Date: Tue, 2 Mar 2004 09:05:14 +0000 Subject: 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. --- devel/c2mdoc/Makefile | 34 ++++++++++++++++++++++++++++++++++ devel/c2mdoc/distinfo | 1 + devel/c2mdoc/files/c2mdoc | 15 +++++++++++++++ devel/c2mdoc/files/c2mdoc.awk | 13 +++++++++++++ devel/c2mdoc/pkg-descr | 8 ++++++++ 5 files changed, 71 insertions(+) create mode 100644 devel/c2mdoc/Makefile create mode 100644 devel/c2mdoc/distinfo create mode 100644 devel/c2mdoc/files/c2mdoc create mode 100644 devel/c2mdoc/files/c2mdoc.awk create mode 100644 devel/c2mdoc/pkg-descr (limited to 'devel/c2mdoc') diff --git a/devel/c2mdoc/Makefile b/devel/c2mdoc/Makefile new file mode 100644 index 000000000000..09b8f2c67d80 --- /dev/null +++ b/devel/c2mdoc/Makefile @@ -0,0 +1,34 @@ +# New ports collection makefile for: c2mdoc +# Date created: 2 March 2004 +# Whom: Bruce M. Simpson +# +# $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 diff --git a/devel/c2mdoc/distinfo b/devel/c2mdoc/distinfo new file mode 100644 index 000000000000..792d6005489e --- /dev/null +++ b/devel/c2mdoc/distinfo @@ -0,0 +1 @@ +# diff --git a/devel/c2mdoc/files/c2mdoc b/devel/c2mdoc/files/c2mdoc new file mode 100644 index 000000000000..245e8687b054 --- /dev/null +++ b/devel/c2mdoc/files/c2mdoc @@ -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} diff --git a/devel/c2mdoc/files/c2mdoc.awk b/devel/c2mdoc/files/c2mdoc.awk new file mode 100644 index 000000000000..5bf92fecbc11 --- /dev/null +++ b/devel/c2mdoc/files/c2mdoc.awk @@ -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" ; +} diff --git a/devel/c2mdoc/pkg-descr b/devel/c2mdoc/pkg-descr new file mode 100644 index 000000000000..6693f22bb06a --- /dev/null +++ b/devel/c2mdoc/pkg-descr @@ -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 -- cgit v1.2.3