rule Man2Doc
{
	local source = [ FGristFiles $(2) ] ;
	local binary = $(1) ;

	SEARCH on $(source) = $(SEARCH_SOURCE) ;

	MakeLocate $(binary)
		: [ FDirName $(HAIKU_DOCUMENTATION_OBJECT_DIR) Shell_Tools ] ;

	Depends $(binary) : $(source) rman ;

	LocalDepends doc_files : $(binary) ;
	Man2Doc1 $(binary) : rman $(source) ;
	LocalClean clean : $(binary) ;
}

actions Man2Doc1
{
	$(2[1]) -f XML "$(2[2])" > "$(1)" ;
}

rule Man2Docs
{
	# Man2Docs <sources> ;
	local source ;
	for source in [ FGristFiles $(1) ]
	{
		local target = $(source:S=.xml) ;

		Man2Doc $(target) : $(source) ;
	}
}
 
rule Doc2HTML
{
	local source = [ FGristFiles $(1) ] ;
	local target = [ FGristFiles $(2) ] ;
	local xslsheet = $(3) ;
	local basedir = [ FDirName $(HAIKU_DOCUMENTATION_DIR) $(4) ] ;
	local paths = $(5) ;
	local options = $(6) ;

	if ! $(target) {
		target = $(1:S=.html) ;
	}

	SEARCH on $(source) = $(SEARCH_SOURCE) ;

	MakeLocate $(target) : $(basedir) ;
	if $(2) {
		XSLBASEDIR on $(target) = -stringparam base.dir \"$(basedir)/\" ; 
	}
	XSLSHEET on $(target) = $(xslsheet) ;
	XSLOPTIONS on $(target) = $(options) ;
	if $(2) = "" {
		XSLOUTPUT on $(target) = "-o "\"$(target:D=$(basedir))\" ;
	}

	XSLCATALOGS on $(target) = \" [ FDirName $(HAIKU_TOP) src documentation docbook-dtd catalog.xml ] [ FDirName $(HAIKU_TOP) src documentation docbook-xsl catalog.xml ] \" ;

	Depends $(target) : $(source) <build>xsltproc ;
	LocalDepends doc_files : $(target) ;
	XSLPROCPATHS on $(target) = -path \" $(paths:J=\ ) \" ;
	Doc2HTML1 $(target) : <build>xsltproc $(source) ;
	LocalClean clean : $(target) ;
}

actions Doc2HTML1
{
	$(2[1]) --catalogs $(XSLCATALOGS) -xinclude $(XSLPROCPATHS) $(XSLBASEDIR) $(XSLOPTIONS) $(XSLOUTPUT) $(XSLSHEET) $(2[2-])
}
