DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T d ┃
Length: 1609 (0x649) Types: TextFile Names: »dep-merge.awk«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦dfeb830e8⟧ └─ ⟦this⟧ »rev6-0-0/tools/config/dep-merge.awk«
# dep-merge.awk # # We maintain a small database of information in the $(ADAWORKINGSTEM).obK # file. That database is updated with records from the $(ADAWORKINGSTEM).oBK # file. That file is generated every time any Ada unit under our control # has a change of text/date. We are fed the .obK file followed by the .oBK # file. We create an array of all known Ada units and we update that array # with our intput. When the input is done we have overridden any old # information from the .obK file with new information from the .oBK file and # we write out the accumulated information to the OFile. # # Each input line is of the form: # # <Ada unit> <file> <GENERIC/BODY/SPEC/TARGET> <lib> <deps> # # We keep track of things based upon the <Ada unit> name and the <GENERIC...> # type. Any 2nd entry that has the same name&type as a previous entry will # override that previous entry. #---All "@" continuation lines are done here. /^\@/ { Conts = Conts + 1; Cont[Conts] = $0; next; } #---All normal lines are processed here. { if (NF < 3) { print "A line did not have at least <unit> <file> <type>?"; print "{",$0,"}"; exit 1; } Key = $1 $3; if (Conts == 0) { DB[Key] = $0; } else { DB[Key] = ""; CDB[Key 0] = $0; for (i = 1; i <= Conts; ++i) { CDB[Key i] = Cont[i]; } CDB[Key i] = ""; Conts = 0; } next; } #---Dump the database when we are done. END { for (i in DB) { if (DB[i] != "") { print DB[i] > OFile; } else { for (j = 1; j != 0; ++j) { if (CDB[i j] == "") { break; } print CDB[i j] > OFile; } print CDB[i 0] > OFile; } } }