builddoc.pl
application/x-perl
Filename: builddoc.pl
Type: application/x-perl
Part: 0
#!perl
# Adjust path for your docbook installation in buildenv.pl
# src/tools/msvc/builddoc.pl
use strict;
use File::Copy;
use Cwd qw(abs_path getcwd);
my $startdir = getcwd();
my $openjade = 'openjade-1.3.1';
my $dsssl = 'docbook-dsssl-1.79';
chdir '../../..' if (-d '../msvc' && -d '../../../src');
noversion() unless -e 'doc/src/sgml/version.sgml';
require 'src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
my $docroot = $ENV{DOCROOT};
die "bad DOCROOT '$docroot'" unless ($docroot && -d $docroot);
my @notfound;
foreach my $dir ('docbook', $openjade, $dsssl)
{
push(@notfound,$dir) unless -d "$docroot/$dir";
}
missing() if @notfound;
my $arg = shift;
renamefiles();
chdir 'doc/src/sgml';
$ENV{SGML_CATALOG_FILES} = "$docroot/$openjade/dsssl/catalog;" .
"$docroot/docbook/docbook.cat";
my $cmd;
$cmd =
"perl mk_feature_tables.pl YES " .
"../../../src/backend/catalog/sql_feature_packages.txt " .
"../../../src/backend/catalog/sql_features.txt " .
"> features-supported.sgml";
print $cmd; system($cmd); die "features_supported" if $?;
$cmd =
"perl mk_feature_tables.pl NO " .
"\"../../../src/backend/catalog/sql_feature_packages.txt\" " .
"\"../../../src/backend/catalog/sql_features.txt\" " .
"> features-unsupported.sgml";
print "$cmd\n"; system($cmd); die "features_unsupported" if $?;
$cmd =
"perl generate-errcodes-table.pl \"../../../src/backend/utils/errcodes.txt\" " .
"> errcodes-table.sgml";
print "$cmd\n"; system($cmd); die "errcodes-table" if $?;
print "Running first build...\n";
$cmd =
"\"$docroot/$openjade/bin/openjade\" -V html-index -wall " .
"-wno-unused-param -wno-empty -D . -c \"$docroot/$dsssl/catalog\" " .
"-d stylesheet.dsl -i output-html -t sgml postgres.sgml 2>&1 " .
"| findstr /V \"DTDDECL catalog entries are not supported\" ";
print "$cmd\n"; system($cmd); # die "openjade" if $?;
print "Running collateindex...\n";
$cmd =
"perl \"$docroot/$dsssl/bin/collateindex.pl\" -f -g -i bookindex " .
"-o bookindex.sgml HTML.index";
print "$cmd\n"; system($cmd); die "collateindex" if $?;
mkdir "html";
print "Running second build...\n";
$cmd =
"\"$docroot/$openjade/bin/openjade\" -wall -wno-unused-param -wno-empty " .
"-D . -c \"$docroot/$dsssl/catalog\" -d stylesheet.dsl -t sgml " .
"-i output-html -i include-index postgres.sgml 2>&1 " .
"| findstr /V \"DTDDECL catalog entries are not supported\" ";
print "$cmd\n"; system($cmd);# die "collateindex" if $?;
copy "stylesheet.css", "html/stylesheet.css";
print "Docs build complete.\n";
exit;
########################################################
sub renamefiles
{
# Rename ISO entity files
my $savedir = getcwd();
chdir "$docroot/docbook";
foreach my $f (glob('ISO*'))
{
next if $f =~ /\.gml$/i;
my $nf = $f;
$nf =~ s/ISO(.*)/ISO-$1.gml/;
move $f, $nf;
}
chdir $savedir;
}
sub missing
{
print STDERR "could not find $docroot/$_\n" foreach (@notfound);
exit 1;
}
sub noversion
{
print STDERR "Could not find version.sgml. ",
"Please run mkvcbuild.pl first!\n";
exit 1;
}