public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: frysk@sourceware.org
Cc: Andrew Cagney <cagney@redhat.com>
Subject: Fixed javadoc generation and created html manpages
Date: Thu, 13 Mar 2008 16:04:00 -0000	[thread overview]
Message-ID: <1205424214.26429.10.camel@dijkstra.wildebeest.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 1678 bytes --]

Hi,

This patch fixes the generation of javadoc by using the javadoc that
comes with icedtea/openjdk. It misses some of the nice features of
gjdoc, but it looks like it will at least be included in most distros in
the near future.

It also adds generation of html versions of the manpages so we have a
list of those on the site: http://sourceware.org/frysk/manpages/
I made a reference to them from the documentation page.

The files in htdocs get updated automagically whenever you do a git
push, for reuploading the javadoc and manpages dirs you need rsync
access to sourceware. I can setup an autobuilder/pusher for this if
nobody else has already.

Andrew, I assume you have one since the javadoc directory is currently
owned by you, but not group frysk, so I wasn't able to update those yet.
Could you chown -R g+w and chgrp -R frysk them, or start your own
builder and do a make javadoc upload-javadoc?

frysk-top/ChangeLog
2008-03-13  Mark Wielaard  <mwielaard@redhat.com>

    * Makefile.am (upload-manpages): New .PHONY target using rsync.
    (upload-docs): New .PHONY target depending on upload-manpages
    and upload-javadoc.

2008-03-13  Mark Wielaard  <mwielaard@redhat.com>

    * Makefile.am (XMLSOURCES): New list of tools xml docbook files.
    (TEMPLATE): New standard html template file.
    (manpages): New .PHONY target.

2008-03-13  Mark Wielaard  <mwielaard@redhat.com>

    * Makefile.am (SOURCEDIRS): Remove frysk-imports subdirs, replace
    with frysk-sys subdirs.
    (JAVADOC): Define as javadoc.
    (javadoc): Prune tmp dirs. Don't use reflection, no -validhtml,
    replace -all with -subpackages frysk:lib:inua:jline:junit:gnu.

Cheers,

Mark

[-- Attachment #2: javadoc-man-html.patch --]
[-- Type: text/x-patch, Size: 4898 bytes --]

diff --git a/frysk-top/Makefile.am b/frysk-top/Makefile.am
index 0ee89d9..072b926 100644
--- a/frysk-top/Makefile.am
+++ b/frysk-top/Makefile.am
@@ -1,6 +1,6 @@
 # This file is part of the program FRYSK.
 #
-# Copyright 2005, 2006, 2007, Red Hat Inc.
+# Copyright 2005, 2006, 2007, 2008, Red Hat Inc.
 #
 # FRYSK is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -54,9 +54,10 @@ SUBDIRS = \
 SOURCEDIRS = \
 	$(patsubst %,$(srcdir)/%/frysk,$(SUBDIRS)) \
 	$(patsubst %,$(top_builddir)/%/frysk,$(SUBDIRS)) \
-	$(srcdir)/frysk-imports/lib \
-	$(srcdir)/frysk-imports/inua \
-	$(top_builddir)/frysk-imports/inua \
+	$(srcdir)/frysk-sys/lib \
+	$(top_builddir)/frysk-sys/lib \
+	$(srcdir)/frysk-sys/inua \
+	$(top_builddir)/frysk-sys/inua \
 	$(srcdir)/frysk-imports/getopt/src/getopt/gnu \
 	$(srcdir)/frysk-imports/jline/src/jline \
 	$(srcdir)/frysk-imports/junit/src/junit \
@@ -66,8 +67,42 @@ SOURCEDIRS = \
 	$(empty)
 
 \f
+# Generate html manpages
+# Use same xml sources, but generate html.
+# html is always put in index.html in output dir, so rename.
+# Use template file and just put in title, logo and a list of utils + href.
+# Replace ./ with ../ relative references (manpages is one dir down).
+XMLSOURCES = $(srcdir)/frysk-core/frysk/bindir/*.xml
+TEMPLATE = $(srcdir)/htdocs/template.html
+.PHONY: manpages
+manpages: XMLSOURCES
+	rm -rf manpages
+	mkdir manpages
+	sed -n '0,/<!-- start title -->/$ p' $(TEMPLATE) > tmp.index.$@.html
+	echo "<h1>Frysk Utilities</h1>" >> tmp.index.$@.html
+	sed -n '/<!-- end title -->/,/<!-- start logo -->/ p' $(TEMPLATE) >> tmp.index.$@.html
+	echo '<img src="./fryskbiglogo.png" alt="Frysk logo" style="margin-left:8px;">' >> tmp.index.$@.html
+	sed -n '/<!-- end logo -->/,/<!-- start text -->/ p' $(TEMPLATE) >> tmp.index.$@.html
+	for xmlfile in $(XMLSOURCES) ; do \
+		name=`basename $$xmlfile .xml`; \
+		echo "Generating man webpage for $$name" ; \
+		$(XMLTO) -o manpages html $$xmlfile ; \
+		mv manpages/index.html manpages/$${name}.html ; \
+		echo -n "<li><tt><a href='" >> tmp.index.$@.html ; \
+		echo -n $${name}.html >> tmp.index.$@.html ; \
+		echo -n "'>" >> tmp.index.$@.html ; \
+		echo -n $$name >> tmp.index.$@.html ; \
+		echo "</tt></a>" >> tmp.index.$@.html ; \
+		sed -n '/<refpurpose>\(.*\)<\/refpurpose>/ p' $$xmlfile \
+			| sed -n 's/refpurpose/i/g p' >> tmp.index.$@.html ; \
+		echo "</li>" >> tmp.index.$@.html ; \
+	done
+	sed -n '/<!-- end text -->/,$$ p' $(TEMPLATE) >> tmp.index.$@.html
+	sed -i 's/"\.\//"\.\.\//g' tmp.index.$@.html
+	mv tmp.index.$@.html manpages/index.html
+
 # Generate JAVADOC documentation.
-JAVADOC = gjdoc
+JAVADOC = javadoc
 JAVADOC_CLASSPATH = /usr/share/java/libgcj-`$(GCJ) -dumpversion`.jar
 .PHONY: javadoc
 javadoc: all
@@ -84,6 +119,7 @@ javadoc: all
 				cd $$d ; \
 				find $$b \
 				-path '*/*dir/*' -prune \
+				-path '*/*tmp/*' -prune \
 				-o -name '[A-Za-z]*\.java' -print \
 				-o -name 'package.html' -print \
 				-o -path '*/doc-files/*.jpg' -print \
@@ -100,16 +136,10 @@ javadoc: all
 				| xargs rm \
 				;; \
 		esac ; \
-		case $$scope in \
-			public ) reflection=-reflection ;; \
-			private ) reflection= ;; \
-		esac ; \
 		jg=http://developer.gnome.org/doc/API/java-gnome ; \
 		CLASSPATH=$(JAVADOC_CLASSPATH):$(subst $(space),:,$(FRYSK_GNOME_JARS)) \
 			$(JAVADOC) \
 			-$$scope \
-			$${reflection} \
-			-validhtml \
 			-link http://developer.classpath.org/doc/ \
 			-link $${jg}/glib-java-0.4.0/api/ \
 			-link $${jg}/cairo-java-1.0.6/api/ \
@@ -129,7 +159,7 @@ javadoc: all
 			-group "Imported Packages" 'inua*:jline*:junit*:gnu*' \
 			-group "Native Bindings" 'lib*' \
 			-sourcepath javadoc/source/$$scope \
-			-all \
+			-subpackages frysk:lib:inua:jline:junit:gnu \
 		; \
 	done
 
@@ -156,6 +186,25 @@ upload-javadoc:
 		sourceware.org:/sourceware/www/sourceware/htdocs/frysk/javadoc
 CLEANFILES += javadoc
 
+.PHONY: upload-manpages
+upload-manpages:
+	rsync \
+		--fuzzy \
+		--delete-during \
+		--ignore-times \
+		--perms \
+		--checksum \
+		--recursive \
+		--links \
+		--itemize-changes \
+		--stats \
+		manpages/ \
+		sourceware.org:/sourceware/www/sourceware/htdocs/frysk/manpages
+
+.PHONY: upload-docs
+upload-docs: upload-manpages upload-javadoc
+	true
+
 # Generate DOXYGEN documentation.
 
 DOXYFILE = doxygen/Doxyfile
diff --git a/htdocs/documentation/index.html b/htdocs/documentation/index.html
index e23d570..e6fc1cf 100755
--- a/htdocs/documentation/index.html
+++ b/htdocs/documentation/index.html
@@ -63,6 +63,9 @@ href="../build/">building <em>frysk</em></a>.<br> For example
 workflows illustrating <em>frysk</em> will work see <a
 href="../workflow/">workflow</a>.</p>
 
+<p>For a list of example utilities build on the frysk framework see <a
+href="../manpages/">manpages</a>.
+
 <h2>Articles on <em>frysk</em></h2>
 
 <ul>

             reply	other threads:[~2008-03-13 16:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-13 16:04 Mark Wielaard [this message]
2008-03-13 17:49 ` Mark Wielaard
2008-03-17 11:00 ` Mark Wielaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1205424214.26429.10.camel@dijkstra.wildebeest.org \
    --to=mark@klomp.org \
    --cc=cagney@redhat.com \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).