diff options
author | Yves Orton <demerphq@gmail.com> | 2005-03-08 03:24:10 +0100 |
---|---|---|
committer | Steve Hay <SteveHay@planit.com> | 2005-03-21 17:06:45 +0000 |
commit | 00a8df5c7fec3b630b936c5570f60eb2bbfd7675 (patch) | |
tree | 891eb55ef7974bd6576a4d3cf7dc309e161d3b12 | |
parent | c689e61c7cf072958f1f0f7838c3e6c7dc5e21d5 (diff) | |
download | perl-00a8df5c7fec3b630b936c5570f60eb2bbfd7675.tar.gz |
Re: Stop mktables from needlessly re-running when using dmake on Win32
Message-ID: <9b18b311050307172455a5816e@mail.gmail.com>
Change 24004 stopped mktables from needlessly re-running when using
dmake on Win32, but it can still happen when using nmake because it
doesn't support the .UPDATEALL attribute that was used to fix dmake.
e.g. Build perl, touch a core header file, then rebuild -- mktables
re-runs when it didn't need to, and 7 times over at that! This change
alleviates the pain by making mktables exit quickly in such cases.
p4raw-id: //depot/perl@24056
-rw-r--r-- | lib/unicore/mktables | 60 | ||||
-rw-r--r-- | lib/unicore/mktables.lst | 452 |
2 files changed, 512 insertions, 0 deletions
diff --git a/lib/unicore/mktables b/lib/unicore/mktables index 58092f19c5..4988e9669f 100644 --- a/lib/unicore/mktables +++ b/lib/unicore/mktables @@ -1,3 +1,6 @@ +## !!!!!!!!!!!!!! IF YOU MODIFY THIS FILE !!!!!!!!!!!!!!!!!!!!!!!!! +## Any files created or read by this program should be listed in 'mktables.lst' + #!/usr/bin/perl -w require 5.008; # Needs pack "U". Probably safest to run on 5.8.x use strict; @@ -47,6 +50,63 @@ while (@ARGV) } } +if (!$AlwaysWrite) { + print "Reading file list...\n" + if $Verbose; + open my $fh,"<","mktables.lst" + or die "Failed to read mktables.lst:$!"; + my @input =( $0 ); + my @output; + for my $list ( \@input, \@output ) { + while (<$fh>) { + s/^ \s+ | \s+ $//xg; + next if /^ \s* (?: \# .* )? $/x; + last if /^ =+ $/x; + my ( $file ) = split /\t/, $_; + push @$list, $file; + } + my %dupe; + @$list = grep !$dupe{ $_ }++, @$list; + } + close $fh; + die "No input or output files in mktables.lst!" + if !@input or !@output; + if ( $Verbose ) { + print "Expecting ".scalar( @input )." input files. ", + "Checking ".scalar( @output )." output files.\n"; + } + my $maxtime = 0; + foreach my $in (@input) { + my $time = -M $in; + die "Missing input file '$in'" unless defined $time; + $maxtime = $time if $maxtime < $time; + } + + my $ok = 1; + foreach my $out (@output) { + if ( ! -e $out ) { + print "'$out' is missing.\n" + if $Verbose; + $ok = 0; + last; + } + if ( -M $out > $maxtime ) { + print "'$out' is too old.\n" + if $Verbose; + $ok = 0; + last; + } + } + if ($ok) { + print "Files seem to be ok, not bothering to rebuild.\n"; + exit(0); + } + print "Must rebuild tables.\n" + if $Verbose; +} elsif ($Verbose) { + print "Not checking file list as -w option set.\n"; +} + foreach my $lib ('To', 'lib', map {File::Spec->catdir("lib",$_)} qw(gc_sc dt bc hst ea jt lb nt ccc)) { diff --git a/lib/unicore/mktables.lst b/lib/unicore/mktables.lst new file mode 100644 index 0000000000..4ff43bf510 --- /dev/null +++ b/lib/unicore/mktables.lst @@ -0,0 +1,452 @@ +# +# mktables.lst -- File list for mktables. +# +# - First section is input files +# (mktables itself is automatically included) +# - Section seperator is /^=+$/ +# - Second section is a list of output files. +# - Lines matching /^\s*#/ are treated as comments +# which along with blank lines are ignored. +# + +# Input files: + +PropertyAliases.txt +PropValueAliases.txt +UnicodeData.txt +LineBreak.txt +ArabicShaping.txt +EastAsianWidth.txt +HangulSyllableType.txt +Jamo.txt +Scripts.txt +Blocks.txt +PropList.txt +SpecialCasing.txt +CaseFolding.txt + +================================= + +# Output files: + +Canonical.pl +CombiningClass.pl +Decomposition.pl +Exact.pl +Name.pl +PVA.pl +Properties +To/Digit.pl +To/Fold.pl +To/Lower.pl +To/Title.pl +To/Upper.pl +lib/bc/AL.pl +lib/bc/AN.pl +lib/bc/B.pl +lib/bc/BN.pl +lib/bc/CS.pl +lib/bc/EN.pl +lib/bc/ES.pl +lib/bc/ET.pl +lib/bc/L.pl +lib/bc/LRE.pl +lib/bc/LRO.pl +lib/bc/NSM.pl +lib/bc/ON.pl +lib/bc/PDF.pl +lib/bc/R.pl +lib/bc/RLE.pl +lib/bc/RLO.pl +lib/bc/S.pl +lib/bc/WS.pl +lib/ccc/A.pl +lib/ccc/AL.pl +lib/ccc/AR.pl +lib/ccc/ATAR.pl +lib/ccc/ATB.pl +lib/ccc/ATBL.pl +lib/ccc/B.pl +lib/ccc/BL.pl +lib/ccc/BR.pl +lib/ccc/DA.pl +lib/ccc/DB.pl +lib/ccc/IS.pl +lib/ccc/KV.pl +lib/ccc/L.pl +lib/ccc/NK.pl +lib/ccc/NR.pl +lib/ccc/OV.pl +lib/ccc/R.pl +lib/ccc/VR.pl +lib/dt/can.pl +lib/dt/com.pl +lib/dt/enc.pl +lib/dt/fin.pl +lib/dt/font.pl +lib/dt/fra.pl +lib/dt/init.pl +lib/dt/iso.pl +lib/dt/med.pl +lib/dt/nar.pl +lib/dt/nb.pl +lib/dt/sml.pl +lib/dt/sqr.pl +lib/dt/sub.pl +lib/dt/sup.pl +lib/dt/vert.pl +lib/dt/wide.pl +lib/ea/A.pl +lib/ea/F.pl +lib/ea/H.pl +lib/ea/N.pl +lib/ea/Na.pl +lib/ea/W.pl +lib/gc_sc/AHex.pl +lib/gc_sc/ASCII.pl +lib/gc_sc/Alnum.pl +lib/gc_sc/Alpha.pl +lib/gc_sc/Alphabet.pl +lib/gc_sc/Any.pl +lib/gc_sc/Arab.pl +lib/gc_sc/Armn.pl +lib/gc_sc/AsciiHex.pl +lib/gc_sc/Assigned.pl +lib/gc_sc/Beng.pl +lib/gc_sc/BidiC.pl +lib/gc_sc/BidiCont.pl +lib/gc_sc/Blank.pl +lib/gc_sc/Bopo.pl +lib/gc_sc/Brai.pl +lib/gc_sc/Buhd.pl +lib/gc_sc/C.pl +lib/gc_sc/Canadian.pl +lib/gc_sc/Cc.pl +lib/gc_sc/Cf.pl +lib/gc_sc/Cher.pl +lib/gc_sc/Cn.pl +lib/gc_sc/Cntrl.pl +lib/gc_sc/Co.pl +lib/gc_sc/Cprt.pl +lib/gc_sc/Cs.pl +lib/gc_sc/Cyrl.pl +lib/gc_sc/Dash.pl +lib/gc_sc/Dash2.pl +lib/gc_sc/Dep.pl +lib/gc_sc/Deprecat.pl +lib/gc_sc/Deva.pl +lib/gc_sc/Dia.pl +lib/gc_sc/Diacriti.pl +lib/gc_sc/Digit.pl +lib/gc_sc/Dsrt.pl +lib/gc_sc/Ethi.pl +lib/gc_sc/Ext.pl +lib/gc_sc/Extender.pl +lib/gc_sc/Geor.pl +lib/gc_sc/Goth.pl +lib/gc_sc/GrLink.pl +lib/gc_sc/Graph.pl +lib/gc_sc/Grapheme.pl +lib/gc_sc/Grek.pl +lib/gc_sc/Gujr.pl +lib/gc_sc/Guru.pl +lib/gc_sc/Hang.pl +lib/gc_sc/Hani.pl +lib/gc_sc/Hano.pl +lib/gc_sc/Hebr.pl +lib/gc_sc/Hex.pl +lib/gc_sc/HexDigit.pl +lib/gc_sc/Hira.pl +lib/gc_sc/Hyphen.pl +lib/gc_sc/Hyphen2.pl +lib/gc_sc/IDSB.pl +lib/gc_sc/IDST.pl +lib/gc_sc/IdContin.pl +lib/gc_sc/IdStart.pl +lib/gc_sc/Ideo.pl +lib/gc_sc/Ideograp.pl +lib/gc_sc/IdsBinar.pl +lib/gc_sc/IdsTrina.pl +lib/gc_sc/InAegean.pl +lib/gc_sc/InAlphab.pl +lib/gc_sc/InArabi2.pl +lib/gc_sc/InArabi3.pl +lib/gc_sc/InArabic.pl +lib/gc_sc/InArmeni.pl +lib/gc_sc/InArrows.pl +lib/gc_sc/InBasicL.pl +lib/gc_sc/InBengal.pl +lib/gc_sc/InBlockE.pl +lib/gc_sc/InBopom2.pl +lib/gc_sc/InBopomo.pl +lib/gc_sc/InBoxDra.pl +lib/gc_sc/InBraill.pl +lib/gc_sc/InBuhid.pl +lib/gc_sc/InByzant.pl +lib/gc_sc/InCherok.pl +lib/gc_sc/InCjkCo2.pl +lib/gc_sc/InCjkCo3.pl +lib/gc_sc/InCjkCo4.pl +lib/gc_sc/InCjkCom.pl +lib/gc_sc/InCjkRad.pl +lib/gc_sc/InCjkSym.pl +lib/gc_sc/InCjkUn2.pl +lib/gc_sc/InCjkUn3.pl +lib/gc_sc/InCjkUni.pl +lib/gc_sc/InCombi2.pl +lib/gc_sc/InCombi3.pl +lib/gc_sc/InCombin.pl +lib/gc_sc/InContro.pl +lib/gc_sc/InCurren.pl +lib/gc_sc/InCyprio.pl +lib/gc_sc/InCyril2.pl +lib/gc_sc/InCyrill.pl +lib/gc_sc/InDesere.pl +lib/gc_sc/InDevana.pl +lib/gc_sc/InDingba.pl +lib/gc_sc/InEnclo2.pl +lib/gc_sc/InEnclos.pl +lib/gc_sc/InEthiop.pl +lib/gc_sc/InGenera.pl +lib/gc_sc/InGeomet.pl +lib/gc_sc/InGeorgi.pl +lib/gc_sc/InGothic.pl +lib/gc_sc/InGreekA.pl +lib/gc_sc/InGreekE.pl +lib/gc_sc/InGujara.pl +lib/gc_sc/InGurmuk.pl +lib/gc_sc/InHalfwi.pl +lib/gc_sc/InHangu2.pl +lib/gc_sc/InHangu3.pl +lib/gc_sc/InHangul.pl +lib/gc_sc/InHanuno.pl +lib/gc_sc/InHebrew.pl +lib/gc_sc/InHighPr.pl +lib/gc_sc/InHighSu.pl +lib/gc_sc/InHiraga.pl +lib/gc_sc/InIdeogr.pl +lib/gc_sc/InIpaExt.pl +lib/gc_sc/InKanbun.pl +lib/gc_sc/InKangxi.pl +lib/gc_sc/InKannad.pl +lib/gc_sc/InKatak2.pl +lib/gc_sc/InKataka.pl +lib/gc_sc/InKhmer.pl +lib/gc_sc/InKhmerS.pl +lib/gc_sc/InLao.pl +lib/gc_sc/InLatin1.pl +lib/gc_sc/InLatin2.pl +lib/gc_sc/InLatin3.pl +lib/gc_sc/InLatinE.pl +lib/gc_sc/InLetter.pl +lib/gc_sc/InLimbu.pl +lib/gc_sc/InLinea2.pl +lib/gc_sc/InLinear.pl +lib/gc_sc/InLowSur.pl +lib/gc_sc/InMalaya.pl +lib/gc_sc/InMathe2.pl +lib/gc_sc/InMathem.pl +lib/gc_sc/InMisce2.pl +lib/gc_sc/InMisce3.pl +lib/gc_sc/InMisce4.pl +lib/gc_sc/InMisce5.pl +lib/gc_sc/InMiscel.pl +lib/gc_sc/InMongol.pl +lib/gc_sc/InMusica.pl +lib/gc_sc/InMyanma.pl +lib/gc_sc/InNumber.pl +lib/gc_sc/InOgham.pl +lib/gc_sc/InOldIta.pl +lib/gc_sc/InOptica.pl +lib/gc_sc/InOriya.pl +lib/gc_sc/InOsmany.pl +lib/gc_sc/InPhonet.pl +lib/gc_sc/InPrivat.pl +lib/gc_sc/InRunic.pl +lib/gc_sc/InShavia.pl +lib/gc_sc/InSinhal.pl +lib/gc_sc/InSmallF.pl +lib/gc_sc/InSpacin.pl +lib/gc_sc/InSpecia.pl +lib/gc_sc/InSupers.pl +lib/gc_sc/InSuppl2.pl +lib/gc_sc/InSuppl3.pl +lib/gc_sc/InSuppl4.pl +lib/gc_sc/InSuppl5.pl +lib/gc_sc/InSupple.pl +lib/gc_sc/InSyriac.pl +lib/gc_sc/InTagalo.pl +lib/gc_sc/InTagban.pl +lib/gc_sc/InTags.pl +lib/gc_sc/InTaiLe.pl +lib/gc_sc/InTaiXua.pl +lib/gc_sc/InTamil.pl +lib/gc_sc/InTelugu.pl +lib/gc_sc/InThaana.pl +lib/gc_sc/InThai.pl +lib/gc_sc/InTibeta.pl +lib/gc_sc/InUgarit.pl +lib/gc_sc/InUnifie.pl +lib/gc_sc/InVaria2.pl +lib/gc_sc/InVariat.pl +lib/gc_sc/InYiRadi.pl +lib/gc_sc/InYiSyll.pl +lib/gc_sc/InYijing.pl +lib/gc_sc/JoinC.pl +lib/gc_sc/JoinCont.pl +lib/gc_sc/Kana.pl +lib/gc_sc/Katakana.pl +lib/gc_sc/Khmr.pl +lib/gc_sc/Knda.pl +lib/gc_sc/L.pl +lib/gc_sc/LC.pl +lib/gc_sc/LOE.pl +lib/gc_sc/Laoo.pl +lib/gc_sc/Latn.pl +lib/gc_sc/Limb.pl +lib/gc_sc/LinearB.pl +lib/gc_sc/Ll.pl +lib/gc_sc/Lm.pl +lib/gc_sc/Lo.pl +lib/gc_sc/LogicalO.pl +lib/gc_sc/Lower.pl +lib/gc_sc/Lowercas.pl +lib/gc_sc/Lt.pl +lib/gc_sc/Lu.pl +lib/gc_sc/M.pl +lib/gc_sc/Math.pl +lib/gc_sc/Mc.pl +lib/gc_sc/Me.pl +lib/gc_sc/Mlym.pl +lib/gc_sc/Mn.pl +lib/gc_sc/Mong.pl +lib/gc_sc/Mymr.pl +lib/gc_sc/N.pl +lib/gc_sc/NChar.pl +lib/gc_sc/Nd.pl +lib/gc_sc/Nl.pl +lib/gc_sc/No.pl +lib/gc_sc/Nonchara.pl +lib/gc_sc/OAlpha.pl +lib/gc_sc/ODI.pl +lib/gc_sc/OGrExt.pl +lib/gc_sc/OIDS.pl +lib/gc_sc/OLower.pl +lib/gc_sc/OMath.pl +lib/gc_sc/OUpper.pl +lib/gc_sc/Ogam.pl +lib/gc_sc/OldItali.pl +lib/gc_sc/Orya.pl +lib/gc_sc/Osma.pl +lib/gc_sc/OtherAlp.pl +lib/gc_sc/OtherDef.pl +lib/gc_sc/OtherGra.pl +lib/gc_sc/OtherIdS.pl +lib/gc_sc/OtherLow.pl +lib/gc_sc/OtherMat.pl +lib/gc_sc/OtherUpp.pl +lib/gc_sc/P.pl +lib/gc_sc/Pc.pl +lib/gc_sc/Pd.pl +lib/gc_sc/Pe.pl +lib/gc_sc/Pf.pl +lib/gc_sc/Pi.pl +lib/gc_sc/Po.pl +lib/gc_sc/Print.pl +lib/gc_sc/Ps.pl +lib/gc_sc/Punct.pl +lib/gc_sc/QMark.pl +lib/gc_sc/Qaai.pl +lib/gc_sc/Quotatio.pl +lib/gc_sc/Radical.pl +lib/gc_sc/Radical2.pl +lib/gc_sc/Runr.pl +lib/gc_sc/S.pl +lib/gc_sc/SD.pl +lib/gc_sc/STerm.pl +lib/gc_sc/Sc.pl +lib/gc_sc/Shaw.pl +lib/gc_sc/Sinh.pl +lib/gc_sc/Sk.pl +lib/gc_sc/Sm.pl +lib/gc_sc/So.pl +lib/gc_sc/SoftDott.pl +lib/gc_sc/Space.pl +lib/gc_sc/SpacePer.pl +lib/gc_sc/Sterm2.pl +lib/gc_sc/Syrc.pl +lib/gc_sc/Tagb.pl +lib/gc_sc/TaiLe.pl +lib/gc_sc/Taml.pl +lib/gc_sc/Telu.pl +lib/gc_sc/Term.pl +lib/gc_sc/Terminal.pl +lib/gc_sc/Tglg.pl +lib/gc_sc/Thaa.pl +lib/gc_sc/Thai.pl +lib/gc_sc/Tibt.pl +lib/gc_sc/Title.pl +lib/gc_sc/UIdeo.pl +lib/gc_sc/Ugar.pl +lib/gc_sc/UnifiedI.pl +lib/gc_sc/Upper.pl +lib/gc_sc/Uppercas.pl +lib/gc_sc/VS.pl +lib/gc_sc/Variatio.pl +lib/gc_sc/WSpace.pl +lib/gc_sc/WhiteSpa.pl +lib/gc_sc/Word.pl +lib/gc_sc/XDigit.pl +lib/gc_sc/Yiii.pl +lib/gc_sc/Z.pl +lib/gc_sc/Zl.pl +lib/gc_sc/Zp.pl +lib/gc_sc/Zs.pl +lib/gc_sc/Zyyy.pl +lib/gc_sc/_CanonDC.pl +lib/gc_sc/_CaseIgn.pl +lib/gc_sc/_CombAbo.pl +lib/hst/L.pl +lib/hst/LV.pl +lib/hst/LVT.pl +lib/hst/T.pl +lib/hst/V.pl +lib/jt/C.pl +lib/jt/D.pl +lib/jt/R.pl +lib/jt/U.pl +lib/lb/AI.pl +lib/lb/AL.pl +lib/lb/B2.pl +lib/lb/BA.pl +lib/lb/BB.pl +lib/lb/BK.pl +lib/lb/CB.pl +lib/lb/CL.pl +lib/lb/CM.pl +lib/lb/CR.pl +lib/lb/EX.pl +lib/lb/GL.pl +lib/lb/HY.pl +lib/lb/ID.pl +lib/lb/IN.pl +lib/lb/IS.pl +lib/lb/LF.pl +lib/lb/NL.pl +lib/lb/NS.pl +lib/lb/NU.pl +lib/lb/OP.pl +lib/lb/PO.pl +lib/lb/PR.pl +lib/lb/QU.pl +lib/lb/SA.pl +lib/lb/SG.pl +lib/lb/SP.pl +lib/lb/SY.pl +lib/lb/WJ.pl +lib/lb/XX.pl +lib/lb/ZW.pl +lib/nt/De.pl +lib/nt/Di.pl +lib/nt/Nu.pl + |