# Copyright David Abrahams 2006. Distributed under the Boost
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
import docutils ;

import path ;
sources = [ path.glob . : *.rst ] ;
bases = $(sources:S=) ;
  
# This is a path relative to the html/ subdirectory where the
# generated output will eventually be moved.
stylesheet = "--stylesheet=../../rst.css" ;

for local b in $(bases)
{
    html $(b) : $(b).rst : 
      
    <docutils-html>"--link-stylesheet --traceback --trim-footnote-reference-space --footnote-references=superscript "$(stylesheet)
  ;
}

alias htmls : $(bases) ;
stage . : $(bases) ;
