# -*-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'; do '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; }