summaryrefslogtreecommitdiff
path: root/helpers/createmakefile.pl
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/createmakefile.pl')
-rw-r--r--helpers/createmakefile.pl435
1 files changed, 435 insertions, 0 deletions
diff --git a/helpers/createmakefile.pl b/helpers/createmakefile.pl
new file mode 100644
index 0000000000..3511eca164
--- /dev/null
+++ b/helpers/createmakefile.pl
@@ -0,0 +1,435 @@
+#!/usr/bin/perl
+
+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");
+ }
+}