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