122 lines
3.1 KiB
Perl
122 lines
3.1 KiB
Perl
# -*-perl-*- hey - emacs - this is a perl file
|
|
|
|
# Adjust path for your docbook installation in buildenv.pl
|
|
|
|
# src/tools/msvc/builddoc.pl
|
|
# translated from an earlier .bat file
|
|
|
|
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;
|
|
|
|
# openjade exits below with a harmless non-zero status, so we
|
|
# can't die on "failure"
|
|
|
|
$cmd =
|
|
"perl mk_feature_tables.pl YES "
|
|
."../../../src/backend/catalog/sql_feature_packages.txt "
|
|
."../../../src/backend/catalog/sql_features.txt "
|
|
."> features-supported.sgml";
|
|
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";
|
|
system($cmd);
|
|
die "features_unsupported" if $?;
|
|
$cmd ="perl generate-errcodes-table.pl \"../../../src/backend/utils/errcodes.txt\" "
|
|
."> errcodes-table.sgml";
|
|
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\" ";
|
|
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";
|
|
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\" ";
|
|
|
|
system($cmd); # die "openjade" 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;
|
|
}
|