diff options
Diffstat (limited to 'helpers/createmakefile.pl')
-rw-r--r-- | helpers/createmakefile.pl | 435 |
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"); + } +} |