-- ISLCedarCreateMap.cm
-- Russ Atkinson, May 23, 1983 10:46 pm
-- Doug Wyatt, September 19, 1983 5:51 pm

-- if necessary, obtain the appropriate modules
-- bringover /a [Indigo]<ISLCedar>Top>SaveMap.df
-- bringover /o IFSFileImpl.bcd [Indigo]<Cedar>Top>IFSFile.df
-- bringover /o VersionMapBuilderImpl.bcd [Indigo]<Cedar>Top>VersionMapBuilder.df

-- run the implementation files
run IFSFileImpl
run VersionMapBuilderImpl

-- generate the update map from the ISLCedar directory
← VersionMapBuilderImpl.SetReportInterval[1]
← [] ← &update ← VersionMapBuilderImpl.GenerateMapFromRemote["Indigo", "<ISLCedar>*!h"]

-- save the intermediate result in case we crash
← VersionMapImpl.SaveMapToFile[&update, "Temp.VersionMap$"]
-- to restart: &update ← VersionMapImpl.RestoreMapFromFile["Temp.VersionMap$"]

-- read the maps for the Cedar release
← [] ← &cedarRelease ← VersionMapImpl.RestoreMapFromFile["Merged.VersionMap"]

-- now make CedarSymbols.VersionMap & CedarSource.VersionMap
← [] ← &merge ← VersionMapBuilderImpl.MergeMaps[&cedarRelease, &update]
← [] ← &both ← VersionMapBuilderImpl.SplitMap[&merge]
← [] ← &source ← VersionMapBuilderImpl.CompressMap[&both.source]
← VersionMapImpl.SaveMapToFile[&source, "CedarSource.VersionMap"]
← [] ← &symbols ← VersionMapBuilderImpl.CompressMap[&both.symbols]
← VersionMapImpl.SaveMapToFile[&symbols, "CedarSymbols.VersionMap"]
← VersionMapBuilderImpl.SetReportInterval[0]

-- finally, store the new maps away on Cedar (you must have appropriate rights)
SModel /a /f SaveMap

-- NOTE: as a last manual step, you must set the create date of SaveMap.df to match the create date expected by the rest of the release!