This is the mail archive of the frysk@sourceware.org mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fixed javadoc generation and created html manpages


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
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)
 
 
+# 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>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]