blob: 74e9633568fa0bfbe9f9af6fbf9f8cb683f39b09 [file] [log] [blame]
#!/usr/bin/perl
# *************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# *************************************************************
use File::Find;
use File::Basename;
# creates the help2 makefile for a given
# directory including all help xhp files
# in that and the subordinate directories
# Only help files with the following
#
# status values are included:
# PUBLISH DEPRECATED
#
# The following status values are
# disregarded:
# DRAFT FINAL STALLED
$makefiletemplate = 'helpers/makefile.template';
$linkmakefiletemplate = 'helpers/linkmakefile.template';
$prj = "helpcontent2";
$helpdirprefix = "$prj/source/";
undef @sbasic;
undef @scalc;
undef @schart;
undef @sdraw;
undef @shared;
undef @simpress;
undef @smath;
undef @swriter;
$params = join "|", "",@ARGV,"";
($params =~ /-dir/) ? ($startdir = $params) =~ (s/.*-dir=([^\|]*).*$/$1/gs) : (($startdir = `pwd`) =~ s/\n//gs);
($startdir = $startdir."/source/text") if ($startdir =~ /$prj$/);
($params =~ /-linkdir/) ? ($linkdir = $params) =~ (s/.*-linkdir=([^\|]*).*$/$1/gs) : (($linkdir = `pwd`) =~ s/\n//gs);
($linkdir = $linkdir."/util") if ($linkdir =~ /$prj$/);
$recursive = $params =~ /-recursive/ || 0;
$all = $params =~ /-all/ || 0;
if (open TMPL, $makefiletemplate) {
undef $/;
$tmpl = <TMPL>;
close TMPL;
} else {
&terminate("Cannot open $makefiletemplate");
}
if (open LINKTMPL, $linkmakefiletemplate) {
undef $/;
$linktmpl = <LINKTMPL>;
close LINKTMPL;
} else {
&terminate("Cannot open $linkmakefiletemplate");
}
print "Start Directory: $startdir\n";
print "Link Directory : $linkdir\n";
print "Recursive : ". ($recursive ? "yes" : "no") . "\n";
print "All files : ". ($all ? "yes" : "no") . "\n";
if ($recursive) {
find(sub{push @dirs, $File::Find::name if (-d and ($File::Find::name!~/\/CVS/));},$startdir);
} else {
push @dirs, $startdir;
}
#print join "\n", @dirs;
#die;
for $d(@dirs) {
opendir DIR, $d;
@files = grep {/xhp$/} readdir DIR;
undef @files2;
closedir DIR;
($helpdir = $d) =~ s/.*\/$helpdirprefix/source\//gis;
($package = $helpdir) =~ s/^source\///gi;
($target = $package) =~ s/\//_/g; $target =~ s/_$//;
($module = $package) =~ s/^\/*text\/([^\/]+)\/*.*$/$1/;
for $f(@files) {
($n,$p,$e) = fileparse($f,".xhp");
if (not $all) {
if (open XML, $d.'/'.$f) {
undef $/;
($status = <XML>) =~ s/.*<topic[^>]*status="([^"]*)"[^>]*>.*$/$1/gs;
close XML;
} else {
die "Error: Cannot open ${d}/$f:$!\n";
}
if ($status =~ /(DEPRECATED|PUBLISH)/i) {
($p2=$package) =~ s,/,\$/,gis;
push @{$module}, $p2.'$/'.$n.'.xhp';
push @files2, ' '.$n.'.xhp ';
}
} else {
($p2=$package) =~ s,/,\$/,gis;
push @{$module}, $p2.'$/'.$n.'.xhp';
push @files2, ' '.$n.'.xhp ';
}
}
printf "%s: %4d files, %4d included in makefile -> ",$d,scalar @files,scalar @files2;
if (scalar @files2 > 0) { # don't write makefiles where there are no files to make
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/' x ((split "/", $helpdir) -1); $prj = $prj . "..";
$xhpfiles = join "\\\n", sort @files2;
($makefile = $tmpl) =~ s/%([^%]*)%/$$1/gise;
if (open(MK, ">$d/makefile.mk")) {
print MK $makefile;
close MK;
print "makefile created\n";
} else {
&terminate("Cannot write to ${d}/makefile.mk\n");
}
} else {
print "NO makefile created\n";
}
}
@sbasic = sort @sbasic;
@schart = sort @schart;
@scalc = sort @scalc;
@shared = sort @shared;
@sdraw = sort @sdraw;
@simpress = sort @simpress;
@smath = sort @smath;
@swriter = sort @swriter;
# now create the link makefiles
#----------------------------------
# sbasic
$module = "sbasic";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@sbasic) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------------
# scalc
$module = "scalc";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@scalc) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@schart) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#--------------------------------
# schart
$module = "schart";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@schart) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#------------------------------
# sdraw
$module = "sdraw";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@sdraw) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@simpress) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@schart) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------------
# shared
$module = "shared";
$linkaddedfiles = <<"LAF";
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip \\
-add default.css \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/default.css \\
-add highcontrast1.css \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrast1.css \\
-add highcontrast2.css \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrast2.css \\
-add highcontrastwhite.css \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrastwhite.css \\
-add highcontrastblack.css \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrastblack.css \\
-add err.html \$(COMMONMISC)\$/LANGUAGE\$/text\$/shared\$/05\$/err_html.xhp
LAF
$linkaddeddeps = <<"LAD";
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip \\
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/default.css \\
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrast1.css \\
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrast2.css \\
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrastwhite.css \\
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/highcontrastblack.css \\
\$(COMMONMISC)\$/LANGUAGE\$/text\$/shared\$/05\$/err_html.xhp
LAD
$linklinkfiles = '';
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------
# simpress
$module = "simpress";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@sdraw) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@simpress) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@schart) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------------
# smath
$module = "smath";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@smath) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------
# swriter
$module = "swriter";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.tree \$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONMISC)\$/LANGUAGE\$/$module.tree \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@swriter) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
for (@schart) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
&writelinkmakefile($module,$linkmakefile);
#-------------------------------
# sdatabase
$module = "sdatabase";
$linkaddedfiles = <<"LAF";
-add $module.cfg \$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
-add $module.jar \$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAF
$linkaddeddeps = <<"LAD";
\$(PRJ)\$/source\$/auxiliary\$/LANGUAGE\$/$module.cfg \\
\$(COMMONBIN)\$/xhp_${module}_LANGUAGE.zip
LAD
$linklinkfiles = '';
for (@shared) { $linklinkfiles = $linklinkfiles . " $_ \\\n"; }
$auth = "script";
$date = sprintf "%4d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon,$mday,$hour,$min,$sec;
$prj = '..$/..' ;
($linkmakefile = $linktmpl) =~ s/%([^%]*)%/$$1/gise;
# remove zip1 targets
$linkmakefile =~ s,\n(ZIP1LIST=.*)\n,\nZIP1LIST=\$(LANGDIR)\$/text\$/shared\$/explorer\$/database\$/main.xhp\n,gi;
&writelinkmakefile($module,$linkmakefile);
print "sbasic: $#sbasic\n";
print "scalc : $#scalc\n";
print "schart: $#schart\n";
print "sdraw : $#sdraw\n";
print "shared: $#shared\n";
print "simpr : $#simpress\n";
print "smath : $#smath\n";
print "swrit : $#swriter\n";
print "sdbase: $#sdatabase\n";
sub terminate {
$err = shift;
print "$err\n\n";
$msg = <<"MSG";
createmakefile.pl -dir=[directory name] -linkdir=[directory name] [-recursive] [-all]
-dir Directory to start
-linkdir Directory to write the link makefiles
-recursive Write makefiles recursively
-all include files with all status values
MSG
die "$msg\n";
}
sub writelinkmakefile {
$module = shift;
$content = shift;
if (open(MK, ">$linkdir/$module/makefile.mk")) {
print MK $content;
close MK;
} else {
&terminate("Cannot write makefile to ${linkdir}/$module\n");
}
}