# file : doc/buildfile # license : MIT; see accompanying LICENSE file define css: doc css{*}: extension = css define xhtml: doc xhtml{*}: extension = xhtml define ps: doc ps{*}: extension = ps define pdf: doc pdf{*}: extension = pdf define html2ps: file html2ps{*}: extension = html2ps # Import the cli program only if explicitly requested. This way a distribution # that includes pre-generated files can be built without installing cli. # if ($config.cli != [null] && $config.cli != false) import! [metadata] cli = cli%exe{cli} # Import the html2ps and ps2pdf14 programs only if present on the system. This # way a distribution that includes pre-generated files can be built without # installing these programs. # import? html2ps = html2ps%exe{html2ps} import? ps2pdf14 = ps2pdf14%exe{ps2pdf14} ./: css{default} # Note that we include all the generated files into the distribution and don't # remove them when cleaning in src (so that clean results in a state identical # to distributed). # Generate the man pages if the cli program is available and handle (install, # distribute, etc) the pre-generated files otherwise, if present. # if ($cli != [null]) { ./: {man1 xhtml}{cli} man_options = -v project="CLI" -v version="$version.project_id" \ -v copyright="$copyright" --suppress-undocumented man1{cli}: $src_root/cli/cli{options} \ file{cli-prologue.1 cli-epilogue.1} \ $cli { dist = true clean = ($src_root != $out_root) } {{ diag cli $> : ($<[0]) # @@ TMP # Note that the date change doesn't change the script semantics, thus the # variable is defined locally. # date +"%B %Y" | set date $cli --generate-man -v date="$date" $man_options \ --man-prologue-file $path($<[1]) \ --man-epilogue-file $path($<[2]) \ --stdout $path($<[0]) >$path($>) }} xhtml{cli}: $src_root/cli/cli{options} \ file{cli-prologue.xhtml cli-epilogue.xhtml} \ $cli { dist = true clean = ($src_root != $out_root) } {{ diag cli $> : ($<[0]) # @@ TMP $cli --generate-html $man_options \ --html-prologue-file $path($<[1]) \ --html-epilogue-file $path($<[2]) \ --stdout $path($<[0]) >$path($>) }} } else ./: {man1 xhtml}{+cli} file{cli-prologue* cli-epilogue*} # @@ TODO: get rid of subdirectory. # guide/ { ../: xhtml{index} # Generate the user guide ps/pdf files if the html2ps and ps2pdf14 programs # are imported and handle (install, distribute, etc) the pre-generated files # otherwise, if present. # if ($html2ps != [null]) { ../: ps{cli-guide} ps{cli-guide}: xhtml{index} html2ps{guide} $html2ps { options = dist = true clean = ($src_root != $out_root) } {{ diag html2ps ($<[0]) $html2ps $options -f $path($<[1]) -o $path($>) $path($<[0]) }} if ($ps2pdf14 != [null]) { ../: pdf{cli-guide} pdf{cli-guide}: ps{cli-guide} $ps2pdf14 { options = -dOptimize=true -dEmbedAllFonts=true dist = true clean = ($src_root != $out_root) } {{ diag ps2pdf14 ($<[0]) $ps2pdf14 $options $path($<[0]) $path($>) }} } else ../: pdf{+cli-guide} } else ../: {ps pdf}{+cli-guide} } doc{*}: install.subdirs = true