summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authortv <tv@pkgsrc.org>1999-05-05 21:01:46 +0000
committertv <tv@pkgsrc.org>1999-05-05 21:01:46 +0000
commita586d393820764fa0ebd0bcb3c7834c31f0df25c (patch)
tree5151664ddaf2b68746451f708c878a73d78f8d3a /graphics
parent6a7aa420e4ca67d84dbb555353d0d78cd878e5d6 (diff)
downloadpkgsrc-a586d393820764fa0ebd0bcb3c7834c31f0df25c.tar.gz
Add a C version of pdb_self_doc so that this does not require Emacs
in order to build with docs.
Diffstat (limited to 'graphics')
-rw-r--r--graphics/gimp/Makefile61
-rw-r--r--graphics/gimp/files/pdb_self_doc.c180
-rw-r--r--graphics/gimp/patches/patch-ac16
3 files changed, 226 insertions, 31 deletions
diff --git a/graphics/gimp/Makefile b/graphics/gimp/Makefile
index 23c120a2156..c355a01296d 100644
--- a/graphics/gimp/Makefile
+++ b/graphics/gimp/Makefile
@@ -1,26 +1,25 @@
-# $NetBSD: Makefile,v 1.37 1999/05/04 22:47:21 tron Exp $
-
-DISTNAME= gimp-1.0.4
-CATEGORIES= graphics
-MASTER_SITES= ftp://ftp.gimp.org/pub/gimp/v1.0/v1.0.4/ \
- ftp://infosoc.uni-koeln.de/pub/ftp.gimp.org/pub/gimp/v1.0/v1.0.4/ \
- ftp://ftp.cs.umn.edu/pub/gimp/gimp/v1.0/v1.0.4/
-EXTRACT_SUFX= .tar.bz2
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
- ${GIMP_DATA}${EXTRACT_SUFX}
-
-MAINTAINER= bsieker@techfak.uni-bielefeld.de
-HOMEPAGE= http://www.gimp.org/
-
-BUILD_DEPENDS= emacs:../../editors/emacs
-DEPENDS+= jpeg-6b:../../graphics/jpeg
-DEPENDS+= gtk+-1.2.2:../../x11/gtk
-DEPENDS+= mpeg-1.2.1:../../graphics/mpeg-lib
-DEPENDS+= png-1.0.3:../../graphics/png
-DEPENDS+= tiff-3.4:../../graphics/tiff
-DEPENDS+= xpm-3.4k:../../graphics/xpm
-
-GIMP_DATA= gimp-data-extras-1.0.0
+# $NetBSD: Makefile,v 1.38 1999/05/05 21:01:46 tv Exp $
+
+DISTNAME= gimp-1.0.4
+CATEGORIES= graphics
+MASTER_SITES= ftp://ftp.gimp.org/pub/gimp/v1.0/v1.0.4/ \
+ ftp://infosoc.uni-koeln.de/pub/ftp.gimp.org/pub/gimp/v1.0/v1.0.4/ \
+ ftp://ftp.cs.umn.edu/pub/gimp/gimp/v1.0/v1.0.4/
+EXTRACT_SUFX= .tar.bz2
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
+ ${GIMP_DATA}${EXTRACT_SUFX}
+
+MAINTAINER= bsieker@techfak.uni-bielefeld.de
+HOMEPAGE= http://www.gimp.org/
+
+DEPENDS+= jpeg-6b:../../graphics/jpeg
+DEPENDS+= gtk+-1.2.2:../../x11/gtk
+DEPENDS+= mpeg-1.2.1:../../graphics/mpeg-lib
+DEPENDS+= png-1.0.3:../../graphics/png
+DEPENDS+= tiff-3.4:../../graphics/tiff
+DEPENDS+= xpm-3.4k:../../graphics/xpm
+
+GIMP_DATA= gimp-data-extras-1.0.0
.ifndef DISPLAY
IS_INTERACTIVE= yes
@@ -39,19 +38,19 @@ INFO_FILES= pdb.info
post-configure:
@${ECHO_MSG} "--> now configuring in ${GIMP_DATA}"
@(cd ${WRKDIR}/${GIMP_DATA} && ${SETENV} ${CONFIGURE_ENV} \
- ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS})
+ ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS})
pre-build:
- @if [ "$$DISPLAY" = "" ]; then \
- ${ECHO} "${DISTNAME} can only be built under X11."; \
- exit 1; \
- fi
+ @if [ "$$DISPLAY" = "1" ]; then \
+ ${ECHO} "${DISTNAME} can only be built under X11."; \
+ exit 1; \
+ fi
+ ${LINK.c} -o ${WRKSRC}/docs/pdb_self_doc ${FILESDIR}/pdb_self_doc.c
post-install:
@(cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} ${ALL_TARGET})
@(cd ${WRKSRC}/docs && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKEFILE} ${INSTALL_TARGET})
- @${ECHO_MSG} "--> now installing in ${GIMP_DATA}"
@(cd ${WRKDIR}/${GIMP_DATA} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} \
- ${MAKE_FLAGS} -f ${MAKEFILE} ${INSTALL_TARGET})
+ ${MAKE_FLAGS} -f ${MAKEFILE} ${INSTALL_TARGET})
-.include <../../mk/bsd.pkg.mk>
+.include "../../mk/bsd.pkg.mk"
diff --git a/graphics/gimp/files/pdb_self_doc.c b/graphics/gimp/files/pdb_self_doc.c
new file mode 100644
index 00000000000..beed65a7422
--- /dev/null
+++ b/graphics/gimp/files/pdb_self_doc.c
@@ -0,0 +1,180 @@
+/* $NetBSD: pdb_self_doc.c,v 1.1 1999/05/05 21:01:48 tv Exp $ */
+
+/*
+ * C version of pdb_self_doc.el, makes some assumptions about the structure
+ * of the pdb_dump file.
+ *
+ * Author: Todd Vierling <tv@pobox.com>
+ * Copyright: Do whatever you want with this code. I offer no guarantee or
+ * warranty of any kind.
+ */
+
+#include <ctype.h>
+#ifdef __NetBSD__
+#include <err.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef __NetBSD__
+#include <stdarg.h>
+void errx (int rc, char *fmt,...)
+{
+ va_list ap;
+
+ va_start (ap, fmt);
+ fputs ("pdb_self_doc: ", stderr);
+ vfprintf (stderr, fmt, ap);
+ exit (rc);
+}
+#endif
+
+int depth, line;
+
+static struct ioarg {
+ struct ioarg *next;
+ char *hlist[3];
+} **curioargs, *curioarg;
+
+static struct procedure {
+ char *hlist[7];
+ struct ioarg *iargs;
+ struct ioarg *oargs;
+} procs[800], *curproc;
+
+static char **hlist;
+
+int hnum, hmax, inum, onum, iomode;
+int nprocs;
+
+#define wsspan(p) strspn(p, " \t\r\n")
+
+static char *strndup(const char *x, int len) {
+ char *p = malloc(len + 1);
+ strncpy(p, x, len);
+ p[len] = 0;
+ return p;
+}
+
+static int proccompar(const void *a, const void *b) {
+ return strcmp(((struct procedure *)a)->hlist[0],
+ ((struct procedure *)b)->hlist[0]);
+}
+
+int main(int argc, char **argv) {
+ char buf[65536], *p;
+ int i;
+
+ while (fgets(buf, 65536, stdin)) {
+ line++;
+ p = buf + wsspan(buf);
+
+ while (*p) {
+ if (*p == '(') {
+ depth++;
+ p++;
+ if (!curproc && depth > 1)
+ errx(1, "depth > 1 without register-procedure on line %d\n", line);
+ if (depth > 3)
+ errx(1, "depth > 3 on line %d\n", line);
+ if (depth == 1) {
+ hnum = 0;
+ hmax = 7;
+ } else if (depth == 2) {
+ hmax = 3;
+ if (++iomode > 1)
+ curioargs = &curproc->oargs;
+ else
+ curioargs = &curproc->iargs;
+ } else if (depth == 3) {
+ struct ioarg *arg = calloc(1, sizeof(*arg));
+ *curioargs = curioarg = arg;
+ curioargs = &arg->next;
+ hnum = 0;
+ hlist = arg->hlist;
+ }
+ } else if (*p == ')') {
+ depth--;
+ p++;
+ if (depth == 0) {
+ hnum = hmax = inum = onum = iomode = 0;
+ curproc = NULL;
+ hlist = NULL;
+ } else if (depth == 1) {
+ curioargs = NULL;
+ } else if (depth == 2) {
+ curioarg = NULL;
+ }
+ } else if (*p == '\"') {
+ char *eq = ++p, *neq;
+
+ if ((depth != 1) && (depth != 3))
+ errx(1, "string with depth != 1 or 3 on line %d: %s\n", line, --p);
+ if (!curproc)
+ errx(1, "string without register-procedure on line %d\n", line);
+ if (hnum >= hmax)
+ errx(1, "too many strings on line %d\n", line);
+
+ while ((neq = strchr(eq, '\"')) && (neq > p) && (neq[-1] == '\\')) {
+ strcpy(neq - 1, neq);
+ eq = neq;
+ }
+ if (!neq) {
+ --p;
+ if (!fgets(buf + strlen(buf), 65536 - strlen(buf), stdin))
+ errx(1, "EOF in string at line %d\n", line);
+ continue;
+ }
+
+ hlist[hnum++] = strndup(p, neq - p);
+ p = ++neq;
+ } else if (!strncmp(p, "register-procedure", 18)) {
+ if (depth != 1)
+ errx(1, "register-procedure at depth %d, line %d\n", depth, line);
+ p += 18;
+ curproc = &procs[nprocs++];
+ hlist = curproc->hlist;
+ } else {
+ errx(1, "unknown token on line: %s\n", line, p);
+ }
+ p += wsspan(p);
+ }
+ }
+
+ qsort(procs, nprocs, sizeof(procs[0]), proccompar);
+
+ for (i = 0; i < nprocs; i++) {
+ struct ioarg *arg;
+
+ printf("@defun %s ", procs[i].hlist[0]);
+ for (arg = procs[i].iargs; arg; arg = arg->next) {
+ if (arg->next)
+ printf("%s, ", arg->hlist[0]);
+ else
+ printf("%s", arg->hlist[0]);
+ }
+ printf("\n%s--@strong{%s}", procs[i].hlist[2], procs[i].hlist[6]);
+ if (procs[i].iargs) {
+ puts("\n\n@strong{Inputs}\n@itemize @bullet");
+ for (arg = procs[i].iargs; arg; arg = arg->next) {
+ arg->hlist[2][0] = toupper(arg->hlist[2][0]);
+ printf("@item @emph{%s} (%s)--%s\n", arg->hlist[0],
+ arg->hlist[1], arg->hlist[2]);
+ }
+ puts("@end itemize");
+ }
+ if (procs[i].oargs) {
+ puts("\n\n@strong{Outputs}\n@itemize @bullet");
+ for (arg = procs[i].oargs; arg; arg = arg->next) {
+ arg->hlist[2][0] = toupper(arg->hlist[2][0]);
+ printf("@item @emph{%s} (%s)--%s\n", arg->hlist[0],
+ arg->hlist[1], arg->hlist[2]);
+ }
+ puts("@end itemize");
+ }
+ printf("@end defun\n@emph{%s}\n\n", procs[i].hlist[3]);
+ }
+
+ return 0;
+}
diff --git a/graphics/gimp/patches/patch-ac b/graphics/gimp/patches/patch-ac
new file mode 100644
index 00000000000..c2f7a34d9a3
--- /dev/null
+++ b/graphics/gimp/patches/patch-ac
@@ -0,0 +1,16 @@
+$NetBSD: patch-ac,v 1.8 1999/05/05 21:01:49 tv Exp $
+
+--- docs/Makefile.in.orig Wed May 5 16:11:26 1999
++++ docs/Makefile.in Wed May 5 16:12:09 1999
+@@ -463,9 +463,8 @@
+ maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+-pdb_dump.texi: $(srcdir)/pdb_self_doc.el $(srcdir)/pdb_dump
+- cd $(srcdir) && \
+- @EMACS@ --batch -l pdb_self_doc.el -f make-docs-noargs
++pdb_dump.texi: $(srcdir)/pdb_self_doc $(srcdir)/pdb_dump
++ $(srcdir)/pdb_self_doc <$(srcdir)/pdb_dump >pdb_dump.texi
+
+ $(srcdir)/pdb_dump: $(top_srcdir)/app/*.c
+ $(top_builddir)/app/gimp --no-interface --batch '(gimp-procedural-db-dump "pdb_dump.tmp")' '(gimp-quit 0)'