Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/cm/main/cm-boot.sml
ViewVC logotype

Diff of /sml/trunk/src/cm/main/cm-boot.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 632, Sat Apr 29 15:50:42 2000 UTC revision 642, Thu May 11 07:30:29 2000 UTC
# Line 258  Line 258 
258            val recomp = run mkStdSrcPath NONE recomp_runner            val recomp = run mkStdSrcPath NONE recomp_runner
259            val make = run mkStdSrcPath NONE (make_runner true)            val make = run mkStdSrcPath NONE (make_runner true)
260    
261            fun makedepend { group, targetname, outstream } = let  
262                val oss = SrcPath.osstring            fun sources archos group = let
263                val fnrec = { bininfo = fn i => [BinInfo.stablename i],                val policy =
264                              smlinfo = fn i => [oss (SmlInfo.group i),                    case archos of
265                                                 oss (SmlInfo.sourcepath i)],                        NONE => fnpolicy
266                              Cons = fn (l, s) => foldl StringSet.add' s l,                      | SOME ao => FilenamePolicy.colocate_generic ao
267                              Nil = StringSet.empty }                fun sourcesOf ((p, g), (v, a)) =
268                      if SrcPathSet.member (v, p) then (v, a)
269                      else
270                          let val v = SrcPathSet.add (v, p)
271                          in case g of
272                                 GG.ERRORGROUP => (v, a)
273                               | GG.GROUP { kind, sources, ... } => let
274                                     fun add (p, x, a) =
275                                         StringMap.insert
276                                             (a, SrcPath.osstring p, x)
277                                     val a = SrcPathMap.foldli add a sources
278                                     fun sg subgroups =
279                                         foldl sourcesOf (v, a) subgroups
280                                 in
281                                     case kind of
282                                         GG.LIB { kind, version } =>
283                                         (case kind of
284                                              GG.STABLE _ => let
285                                                  val file = SrcPath.osstring p
286                                                  val (a, x) =
287                                                      StringMap.remove (a, file)
288                                                  val sfile =
289                                                      FilenamePolicy.mkStableName
290                                                          policy (p, version)
291                                              in
292                                                  (v,
293                                                   StringMap.insert (a, sfile, x))
294                                              end
295                                            | GG.DEVELOPED d => sg (#subgroups d))
296                                       | GG.NOLIB n => sg (#subgroups n)
297                                 end
298                          end
299                val p = mkStdSrcPath group                val p = mkStdSrcPath group
300                val gr = GroupReg.new ()                val gr = GroupReg.new ()
301            in            in
302                (case Parse.parse (parse_arg (gr, NONE, p)) of                (case Parse.parse (parse_arg (gr, NONE, p)) of
303                     NONE => false                     SOME (g, _) => let
304                   | SOME (g, _) => let                         val (_, sm) =
305                         val names = MkList.group fnrec g                             sourcesOf ((p, g),
306                         fun oneTarget t =                                        (SrcPathSet.empty,
307                             TextIO.output (outstream, " \\\n\t" ^ t)                                         StringMap.singleton
308                     in                                             (SrcPath.osstring p,
309                         TextIO.output (outstream, targetname ^ ":");                                              { class = "cm",
310                         StringSet.app oneTarget names;                                                derived = false })))
311                         TextIO.output (outstream, "\n");                         fun add (s, { class, derived }, l) =
312                         true                             { file = s, class = class, derived = derived } :: l
313                     end)                     in
314                           SOME (StringMap.foldli add [] sm)
315                       end
316                     | _ => NONE)
317                before dropPickles ()                before dropPickles ()
318            end            end
319    
# Line 535  Line 569 
569          val recomp = recomp          val recomp = recomp
570          val stabilize = stabilize          val stabilize = stabilize
571    
572          val makedepend = makedepend          val sources = sources
573    
574          val symval = SSV.symval          val symval = SSV.symval
575          val load_plugin = cwd_load_plugin          val load_plugin = cwd_load_plugin

Legend:
Removed from v.632  
changed lines
  Added in v.642

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0