Index: docs/code/module-hierarchy.dot ================================================================== --- docs/code/module-hierarchy.dot +++ docs/code/module-hierarchy.dot @@ -25,82 +25,122 @@ label="megatest"; rmtmod [label="rmt mod"]; // httpmod [label="http-transportmod"]; // commonmod - mtargs -> commonmod; - pkts -> commonmod; - mtconfigf -> commonmod; - processmod -> commonmod; - stml2 -> commonmod; - // apimod - commonmod -> apimod; - dbmod -> apimod; - servermod -> apimod; - // rmtmod - dbmod -> rmtmod; - commonmod -> rmtmod; - apimod -> rmtmod; - ulex -> rmtmod; - itemsmod -> rmtmod; - // dbmod - commonmod -> dbmod; - keysmod -> dbmod; - tasksmod -> dbmod; - odsmod -> dbmod; - mtargs -> dbmod; - mtconfigf -> dbmod; - // tasksmod - commonmod -> tasksmod; - pgdbmod -> tasksmod; - mtconfigf -> tasksmod; - // odsmod - commonmod -> odsmod; - // testsmod - commonmod -> testsmod; - mtargs -> testsmod; - servermod -> testsmod; - mtconfigf -> testsmod; - itemsmod -> testsmod; - dbmod -> testsmod; - // mtmod - mtconfigf -> mtmod; - commonmod -> mtmod; - rmtmod -> mtmod; - servermod -> mtmod; - taskmod -> mtmod; - mtargs -> mtmod; - subrunmod -> mtmod; - // launchmod -> mtmod; - // runsmod - mtmod -> runsmod; - commonmod -> runsmod; - testsmod -> runsmod; - rmtmod -> runsmod; - subrunmod -> runsmod; - // pgdbmod - commonmod -> pgdbmod; - mtconfigf -> pgdbmod; - //servermod - commonmod -> servermod; - dbmod -> servermod; - mtconfigf -> servermod; - mtargs -> servermod; - tasksmod -> servermod; - // subrunsmod - mtconfigf -> subrunmod; - commonmod -> subrunmod; - // launchmod - // commonmod -> launchmod; - // rmtmod -> launchmod; - // testsmod -> launchmod; - // mtconfigf -> launchmod; - // mtargs -> launchmod; - subrunmod -> launchmod; - // dbmod -> launchmod; - - // subrun +// archivemod.scm +"commonmod" -> "archivemod"; +// clientmod.scm +"commonmod" -> "clientmod"; +// configfmod.scm +// subrunmod.scm +"commonmod" -> "subrunmod"; +// ezstepsmod.scm +"commonmod" -> "ezstepsmod"; +// itemsmod.scm +"commonmod" -> "itemsmod"; +// gutilsmod.scm +// testsmod.scm +"commonmod" -> "testsmod"; +"servermod" -> "testsmod"; +"itemsmod" -> "testsmod"; +"dbmod" -> "testsmod"; +// runconfigmod.scm +"commonmod" -> "runconfigmod"; +// keysmod.scm +"srfi-13" -> "keysmod"; +// launchmod.scm +"commonmod" -> "launchmod"; +// megamod.scm +"spiffy" -> "megamod"; +"stml2" -> "megamod"; +"commonmod" -> "megamod"; +"keysmod" -> "megamod"; +"pgdbmod" -> "megamod"; +"tasksmod" -> "megamod"; +"dbmod" -> "megamod"; +"apimod" -> "megamod"; +"ducttape-lib" -> "megamod"; +"itemsmod" -> "megamod"; +"pkts" -> "megamod"; +"rmtmod" -> "megamod"; +"mtmod" -> "megamod"; +"testsmod" -> "megamod"; +"servermod" -> "megamod"; +"subrunmod" -> "megamod"; +"itemsmod" -> "megamod"; +"runsmod" -> "megamod"; +// odsmod.scm +"commonmod" -> "odsmod"; +// envmod.scm +"commonmod" -> "envmod"; +// http-transportmod.scm +"commonmod" -> "http-transportmod"; +"stml2" -> "http-transportmod"; +"apimod" -> "http-transportmod"; +"dbmod" -> "http-transportmod"; +"testsmod" -> "http-transportmod"; +// processmod.scm +// mtmod.scm +"commonmod" -> "mtmod"; +"dbmod" -> "mtmod"; +"pgdbmod" -> "mtmod"; +"rmtmod" -> "mtmod"; +"servermod" -> "mtmod"; +"stml2" -> "mtmod"; +"subrunmod" -> "mtmod"; +"tasksmod" -> "mtmod"; +"testsmod" -> "mtmod"; +// pgdbmod.scm +"commonmod" -> "pgdbmod"; +// runsmod.scm +"commonmod" -> "runsmod"; +"dbmod" -> "runsmod"; +"itemsmod" -> "runsmod"; +"mtmod" -> "runsmod"; +"pgdbmod" -> "runsmod"; +"rmtmod" -> "runsmod"; +"servermod" -> "runsmod"; +"stml2" -> "runsmod"; +"subrunmod" -> "runsmod"; +"tasksmod" -> "runsmod"; +"testsmod" -> "runsmod"; +// apimod.scm +"commonmod" -> "apimod"; +"dbmod" -> "apimod"; +"servermod" -> "apimod"; +// dbmod.scm +"commonmod" -> "dbmod"; +"keysmod" -> "dbmod"; +"files" -> "dbmod"; +"tasksmod" -> "dbmod"; +"odsmod" -> "dbmod"; +// dcommonmod.scm +"gutilsmod" -> "dcommonmod"; +"commonmod" -> "dcommonmod"; +"testsmod" -> "dcommonmod"; +"megamod" -> "dcommonmod"; +"canvas-draw" -> "dcommonmod"; +"canvas-draw-iup" -> "dcommonmod"; +// tasksmod.scm +"commonmod" -> "tasksmod"; +"pgdbmod" -> "tasksmod"; +// template-mod.scm +"commonmod" -> "template-mod"; +// servermod.scm +"commonmod" -> "servermod"; +"dbmod" -> "servermod"; +"tasksmod" -> "servermod"; +// treemod.scm +// commonmod.scm +"pkts" -> "commonmod"; +// vgmod.scm +// rmtmod.scm +"commonmod" -> "rmtmod"; +"itemsmod" -> "rmtmod"; +"apimod" -> "rmtmod"; +"dbmod" -> "rmtmod"; } } ADDED utils/deps.scm Index: utils/deps.scm ================================================================== --- /dev/null +++ utils/deps.scm @@ -0,0 +1,35 @@ +#!/usr/bin/env csi + +(use posix regex-case regex) + +(define (get-files #!optional (patt #f)) + (let ((files (glob (or patt "*.scm")))) + files)) + +(define (get-deps fname #!optional (data #f)) + (let ((hdat (or data (make-hash-table))) + (modname (string-substitute ".scm" "" fname))) + ;; (print "Processing " fname) + (hash-table-set! hdat fname '()) + (with-input-from-file fname + (lambda () + (let loop ((l (read-line))) + (if (eof-object? l) + data + (begin + (regex-case + l + ("^\\s*\\(import\\s+([^\\s]+)\\).*" (x md ) + (print "\"" md "\" -> \"" modname "\";"))) + (loop (read-line))))))))) + +(define (do-all-mod-files) + (let ((modfiles (get-files "*mod.scm"))) + (for-each + (lambda (mfile) + (print "// " mfile) + (get-deps mfile)) + modfiles))) + +(do-all-mod-files) +(exit)