From bbb003924e5f43f0efdfcfc897457a8d4df56e3c Mon Sep 17 00:00:00 2001 From: epg Date: Wed, 10 Nov 2004 00:46:04 +0000 Subject: [PATCH] Import mkcmd-8.14. mkcmd lets us build a nifty command line option parser and some on-line documentation in a snap. It is a prerequisite for many of Kevin Braunsdorf's tools. --- devel/mkcmd/DESCR | 3 + devel/mkcmd/Makefile | 32 +++++ devel/mkcmd/PLIST | 237 +++++++++++++++++++++++++++++++++++ devel/mkcmd/distinfo | 6 + devel/mkcmd/files/makeme | 69 ++++++++++ devel/mkcmd/patches/patch-aa | 15 +++ devel/mkcmd/patches/patch-ab | 12 ++ 7 files changed, 374 insertions(+) create mode 100644 devel/mkcmd/DESCR create mode 100644 devel/mkcmd/Makefile create mode 100644 devel/mkcmd/PLIST create mode 100644 devel/mkcmd/distinfo create mode 100644 devel/mkcmd/files/makeme create mode 100644 devel/mkcmd/patches/patch-aa create mode 100644 devel/mkcmd/patches/patch-ab diff --git a/devel/mkcmd/DESCR b/devel/mkcmd/DESCR new file mode 100644 index 000000000000..01c49c9ef2c8 --- /dev/null +++ b/devel/mkcmd/DESCR @@ -0,0 +1,3 @@ +mkcmd lets us build a nifty command line option parser and some on-line +documentation in a snap. It is a prerequisite for many of Kevin +Braunsdorf's tools. diff --git a/devel/mkcmd/Makefile b/devel/mkcmd/Makefile new file mode 100644 index 000000000000..c13e0cace296 --- /dev/null +++ b/devel/mkcmd/Makefile @@ -0,0 +1,32 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $ +# + +DISTNAME= mkcmd-8.14 +CATEGORIES= mine +MASTER_SITES= http://archive.progeny.com/pundits/ +EXTRACT_SUFX= .tgz + +MAINTAINER= epg@NetBSD.org +COMMENT= Command-line parser and manual page generator + +USE_BUILDLINK3= yes + +INSTALLATION_DIRS= bin man/man1 man/man5 +PKG_INSTALLATION_TYPES= overwrite pkgviews + +do-build: + cd ${WRKSRC}/bin/mkcmd && HOSTTYPE= ${SH} ${FILESDIR}/makeme \ + ROOT=${PREFIX} BIN=${PREFIX}/bin LIB=${PREFIX}/lib/mkcmd + +do-install: +.for _mkcmd_dir in bin/mkcmd lib/mkcmd + cd ${WRKSRC}/${_mkcmd_dir} && HOSTTYPE= ${SH} ${FILESDIR}/makeme \ + ROOT=${PREFIX} BIN=${PREFIX}/bin LIB=${PREFIX}/lib/mkcmd \ + install +.endfor + ${INSTALL_MAN} ${WRKSRC}/bin/mkcmd/mkcmd.man \ + ${PREFIX}/man/man1/mkcmd.1 + ${INSTALL_MAN} ${WRKSRC}/lib/mkcmd/mkcmd.man \ + ${PREFIX}/man/man5/mkcmd.5 + +.include "../../mk/bsd.pkg.mk" diff --git a/devel/mkcmd/PLIST b/devel/mkcmd/PLIST new file mode 100644 index 000000000000..2b1f1ec7c385 --- /dev/null +++ b/devel/mkcmd/PLIST @@ -0,0 +1,237 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $ +bin/mkcmd +lib/mkcmd/cmd/add.m +lib/mkcmd/cmd/add.mc +lib/mkcmd/cmd/cd.m +lib/mkcmd/cmd/cd.mc +lib/mkcmd/cmd/dl.m +lib/mkcmd/cmd/dl.mc +lib/mkcmd/cmd/echo.m +lib/mkcmd/cmd/exec.m +lib/mkcmd/cmd/exec.mc +lib/mkcmd/cmd/exit.m +lib/mkcmd/cmd/help.m +lib/mkcmd/cmd/help.mc +lib/mkcmd/cmd/macro.m +lib/mkcmd/cmd/merge.m +lib/mkcmd/cmd/parse.m +lib/mkcmd/cmd/parse.mc +lib/mkcmd/cmd/shell.m +lib/mkcmd/cmd/shell.mc +lib/mkcmd/cmd/source.m +lib/mkcmd/cmd/source.mc +lib/mkcmd/cmd/umask.m +lib/mkcmd/cmd/umask.mc +lib/mkcmd/cmd/version.m +lib/mkcmd/dir/check.m +lib/mkcmd/dir/check.mc +lib/mkcmd/enum.info +lib/mkcmd/example/cgi.m +lib/mkcmd/example/cmd.m +lib/mkcmd/example/date.m +lib/mkcmd/example/dir.m +lib/mkcmd/example/dl.m +lib/mkcmd/example/dumpdates.m +lib/mkcmd/example/enum.m +lib/mkcmd/example/filter.m +lib/mkcmd/example/fts.m +lib/mkcmd/example/glob.m +lib/mkcmd/example/lex.m +lib/mkcmd/example/macro.m +lib/mkcmd/example/mult.m +lib/mkcmd/example/nettime.m +lib/mkcmd/example/ppm.m +lib/mkcmd/example/rc.m +lib/mkcmd/example/rls.m +lib/mkcmd/example/rls.x +lib/mkcmd/example/rlsd.m +lib/mkcmd/example/server.m +lib/mkcmd/example/time.m +lib/mkcmd/example/timebox.m +lib/mkcmd/getopt/key.m +lib/mkcmd/glob/ieee.m +lib/mkcmd/glob/ieee.mc +lib/mkcmd/rpc/client.m +lib/mkcmd/rpc/server.m +lib/mkcmd/rpc/server.mc +lib/mkcmd/std/control.m +lib/mkcmd/std/datehdr.m +lib/mkcmd/std/filter.m +lib/mkcmd/std/fts.m +lib/mkcmd/std/help.m +lib/mkcmd/std/lex.m +lib/mkcmd/std/lex.mc +lib/mkcmd/std/macro.m +lib/mkcmd/std/macro.mc +lib/mkcmd/std/macro.mh +lib/mkcmd/std/macro.mi +lib/mkcmd/std/noargs.m +lib/mkcmd/std/targets.m +lib/mkcmd/std/version.m +lib/mkcmd/std/xdev.m +lib/mkcmd/tftp/client.m +lib/mkcmd/tftp/client.mc +lib/mkcmd/tftp/client.mh +lib/mkcmd/tftp/client.mi +lib/mkcmd/tftp/server.m +lib/mkcmd/tftp/server.mc +lib/mkcmd/tftp/server.mh +lib/mkcmd/tftp/server.mi +lib/mkcmd/time/tz.m +lib/mkcmd/type/Template.m +lib/mkcmd/type/bsd.m +lib/mkcmd/type/bytes.m +lib/mkcmd/type/bytes.mi +lib/mkcmd/type/client.m +lib/mkcmd/type/client.mi +lib/mkcmd/type/cmd.m +lib/mkcmd/type/cmd.mc +lib/mkcmd/type/cmd.mi +lib/mkcmd/type/date.m +lib/mkcmd/type/dir.m +lib/mkcmd/type/enum.m +lib/mkcmd/type/enum.mc +lib/mkcmd/type/enum.mh +lib/mkcmd/type/enum.mi +lib/mkcmd/type/filesystem.m +lib/mkcmd/type/filesystem.mc +lib/mkcmd/type/filesystem.mi +lib/mkcmd/type/getopt.m +lib/mkcmd/type/getopt.mc +lib/mkcmd/type/getopt.mi +lib/mkcmd/type/group.m +lib/mkcmd/type/group.mc +lib/mkcmd/type/host.m +lib/mkcmd/type/host.mc +lib/mkcmd/type/host.mi +lib/mkcmd/type/hosttype.m +lib/mkcmd/type/hosttype.mh +lib/mkcmd/type/inches.m +lib/mkcmd/type/inches.mi +lib/mkcmd/type/login.m +lib/mkcmd/type/login.mc +lib/mkcmd/type/protocol.m +lib/mkcmd/type/protocol.mc +lib/mkcmd/type/rc.m +lib/mkcmd/type/seconds.m +lib/mkcmd/type/seconds.mi +lib/mkcmd/type/server.m +lib/mkcmd/type/server.mi +lib/mkcmd/type/service.m +lib/mkcmd/type/service.mc +lib/mkcmd/type/shared.m +lib/mkcmd/type/shared.mi +lib/mkcmd/type/socket.m +lib/mkcmd/type/socket.mh +lib/mkcmd/type/socket.mi +lib/mkcmd/type/time.m +lib/mkcmd/type/timebox.m +lib/mkcmd/util/by.m +lib/mkcmd/util/cgi.m +lib/mkcmd/util/cgi.mc +lib/mkcmd/util/client.m +lib/mkcmd/util/client.mc +lib/mkcmd/util/client.mi +lib/mkcmd/util/daemon.m +lib/mkcmd/util/daemon.mc +lib/mkcmd/util/daemon.mh +lib/mkcmd/util/date.m +lib/mkcmd/util/date.mc +lib/mkcmd/util/date.mi +lib/mkcmd/util/dl.m +lib/mkcmd/util/dl.mc +lib/mkcmd/util/editor.m +lib/mkcmd/util/editor.mc +lib/mkcmd/util/editor.mh +lib/mkcmd/util/editor.mi +lib/mkcmd/util/errno.m +lib/mkcmd/util/fgetln.m +lib/mkcmd/util/fgetln.mc +lib/mkcmd/util/fsearch.m +lib/mkcmd/util/fsearch.mc +lib/mkcmd/util/fsearch.mh +lib/mkcmd/util/fsearch.mi +lib/mkcmd/util/fts.m +lib/mkcmd/util/fts.mc +lib/mkcmd/util/getlogingr.m +lib/mkcmd/util/getlogingr.mc +lib/mkcmd/util/getlogingr.mi +lib/mkcmd/util/glob.m +lib/mkcmd/util/herror.m +lib/mkcmd/util/home.m +lib/mkcmd/util/home.mc +lib/mkcmd/util/home.mh +lib/mkcmd/util/home.mi +lib/mkcmd/util/mult.m +lib/mkcmd/util/mult.mc +lib/mkcmd/util/mult.mi +lib/mkcmd/util/ppm.m +lib/mkcmd/util/rc.m +lib/mkcmd/util/rc.mc +lib/mkcmd/util/rc.mi +lib/mkcmd/util/savegrent.m +lib/mkcmd/util/savegrent.mc +lib/mkcmd/util/savegrent.mh +lib/mkcmd/util/savegrent.mi +lib/mkcmd/util/savehostent.m +lib/mkcmd/util/savehostent.mc +lib/mkcmd/util/savehostent.mi +lib/mkcmd/util/savepwent.m +lib/mkcmd/util/savepwent.mc +lib/mkcmd/util/savepwent.mh +lib/mkcmd/util/savepwent.mi +lib/mkcmd/util/saveservent.m +lib/mkcmd/util/saveservent.mc +lib/mkcmd/util/saveservent.mi +lib/mkcmd/util/server.m +lib/mkcmd/util/server.mc +lib/mkcmd/util/sigret.m +lib/mkcmd/util/sigret.mi +lib/mkcmd/util/socket.m +lib/mkcmd/util/socket.mc +lib/mkcmd/util/socket.mi +lib/mkcmd/util/tftp.m +lib/mkcmd/util/tftp.mc +lib/mkcmd/util/tftp.mh +lib/mkcmd/util/tftp.mi +lib/mkcmd/util/time.m +lib/mkcmd/util/time.mc +lib/mkcmd/util/time.mh +lib/mkcmd/util/time.mi +lib/mkcmd/util/timebox.m +lib/mkcmd/util/timebox.mc +lib/mkcmd/util/timebox.mi +lib/mkcmd/util/tmp.m +lib/mkcmd/util/unity.m +lib/mkcmd/util/unity.mc +lib/mkcmd/util/unity.mh +lib/mkcmd/util/unity.mi +lib/mkcmd/util/username.m +lib/mkcmd/util/username.mc +lib/mkcmd/util/username.mh +lib/mkcmd/util/username.mi +lib/mkcmd/util/whittle.m +lib/mkcmd/util/zombie.m +lib/mkcmd/util/zombie.mc +lib/mkcmd/xdr/Cargv.m +lib/mkcmd/xdr/Cargv.mc +lib/mkcmd/xdr/Cargv.mh +lib/mkcmd/xdr/Cargv.mi +lib/mkcmd/xdr/Cstring.m +lib/mkcmd/xdr/Cstring.mc +lib/mkcmd/xdr/Cstring.mh +lib/mkcmd/xdr/Cstring.mi +man/man1/mkcmd.1 +man/man5/mkcmd.5@dirrm lib/mkcmd/xdr +@dirrm lib/mkcmd/util +@dirrm lib/mkcmd/type +@dirrm lib/mkcmd/time +@dirrm lib/mkcmd/tftp +@dirrm lib/mkcmd/std +@dirrm lib/mkcmd/rpc +@dirrm lib/mkcmd/glob +@dirrm lib/mkcmd/getopt +@dirrm lib/mkcmd/example +@dirrm lib/mkcmd/dir +@dirrm lib/mkcmd/cmd +@dirrm lib/mkcmd diff --git a/devel/mkcmd/distinfo b/devel/mkcmd/distinfo new file mode 100644 index 000000000000..023fe3142b9f --- /dev/null +++ b/devel/mkcmd/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $ + +SHA1 (mkcmd-8.14.tgz) = 33342afc845db84a040f116202b880d37b9f626f +Size (mkcmd-8.14.tgz) = 295120 bytes +SHA1 (patch-aa) = f9d297a7d3cf807163a53ba9d69d81e9dd83cd72 +SHA1 (patch-ab) = 72c1a8800491c967f402a1fa9038bab7a5cd3b11 diff --git a/devel/mkcmd/files/makeme b/devel/mkcmd/files/makeme new file mode 100644 index 000000000000..12b290a13b81 --- /dev/null +++ b/devel/mkcmd/files/makeme @@ -0,0 +1,69 @@ +#!/bin/sh +# $Id: makeme,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $ +# This hack won't work for every trick you can play with /usr/msrc. +# If the Distfile sends different files to the various platforms, or +# builds a file on the meta source machine with a special tool or +# database you are toast. {N.B. mk's lib, rdist, mkcmd have issues.} + +# if we have a local.defs read it for umask, PATH, and such. +[ -f /usr/local/lib/distrib/local.defs ] && . /usr/local/lib/distrib/local.defs + +# It does work for the tools that build the meta source system itself, +# of course (mkcmd, distrib, rcsvg, and the like). You can use it to +# process the Make.host file through m4 for localhost. +# +# Check for the mandatory Make.host file... +if [ ! -f Make.host ] ; then + echo 1>&2 "$0: not in a meta source directory, no Make.host" + exit 126 +fi + +# distrib: default column headers: %HOST SHORTHOST HOSTTYPE HOSTOS HASSRC +if [ -z "$HOST" ] ; then + HOST=`uname -n || hostname` +fi +if [ -z "$SHORTHOST" ] ; then + SHORTHOST=`expr $HOST : '\([^.]*\)\..*' \| $HOST` +fi +if [ -z "$HOSTTYPE" ] ; then + case `uname -sr || uname -a` in + HP-UX*7.*) + HOSTTYPE="HPUX9" ;; + HP-UX*8.*) + HOSTTYPE="HPUX9" ;; + HP-UX*9.*) + HOSTTYPE="HPUX9" ;; + HP-UX*10.*) + HOSTTYPE="HPUX10" ;; + *NEXT*) + HOSTTYPE="NEXT2" ;; + *Solaris*|*[Ss]un[Oo][Ss]*) + HOSTTYPE="SUN5" ;; + *BSD*) + HOSTTYPE="FREEBSD" ;; + BSDI*) + HOSTTYPE="BSDI" ;; + Linux*|LINUX*) + HOSTTYPE="LINUX" ;; + *) + echo 1>&2 "$0: set HOSTTYPE and export it by hand." + exit 2 ;; + esac +fi +if [ -z "$HOSTOS" ] ; then + HOSTOS=`uname -r | sed -e 's/^[A-Za-z .]*//' -e 's/-[A-Za-z]*//' -e 's/\.\([0-9][0-9]\)/\1/g' -e 'y/./0/' -e 's/^0*//'` +fi + +# Now fake the Distrib @file@ expansion and hope the rest works out. +# Some make's mistakenly think you must call fork() to get a SIG-child... +# so they barf out errors for this -- they should learn UNIX. +m4 - Make.host < + + + #if USE_STRINGS diff --git a/devel/mkcmd/patches/patch-ab b/devel/mkcmd/patches/patch-ab new file mode 100644 index 000000000000..ce5ef8d17747 --- /dev/null +++ b/devel/mkcmd/patches/patch-ab @@ -0,0 +1,12 @@ +$NetBSD: patch-ab,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $ + +--- bin/mkcmd/parser.c.orig 2000-07-30 17:56:23.000000000 -0400 ++++ bin/mkcmd/parser.c +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #include "machine.h" + #include "type.h"