Changeset 387:2fba3d5c9588 in livinglogic.python.www

Show
Ignore:
Timestamp:
05/23/06 19:04:10 (13 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Try to get m.py to run with the new make (doesn't work yet).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • site/m.py

    r373 r387  
    2121        installdir = here/"../install/" 
    2222        repositorydir = home 
    23         pythonrootdir = home/"pythonroot/ll/" 
    2423        xistdir = url.firstdir([here/"../xist_src/", home/"LivingLogic/Python/xist/"]) 
    2524 
    26         build = make.PhonyTarget(self, "build") 
    27         install = make.PhonyTarget(self, "install") 
    28         clean = make.PhonyTarget(self, "clean", doc="clean the build directory", convertaction=make.CommandAction("rm -rf %s" % (here/builddir).local())) 
    29         installclean = make.PhonyTarget(self, "installclean", doc="clean the build and install directory", convertaction=make.CommandAction("rm -rf %s/*" % (here/installdir).local())) 
    30         installclean.dependOn(clean) 
     25        build = self.add(make.PhonyAction(), "build") 
     26        install = self.add(make.PhonyAction(), "install") 
     27        clean = self.add( 
     28            make.PhonyAction("clean the build directory").addinputs( 
     29                make.alwaysaction / make.CommandAction("rm -rf %s" % (here/builddir).local()) 
     30            ), 
     31            "clean" 
     32        ) 
     33 
     34        installclean = self.add( 
     35            make.PhonyAction("clean the build and install directory").addinputs( 
     36                make.alwaysaction / make.CommandAction("rm -rf %s/*" % (here/installdir).local()), 
     37                clean 
     38            ), 
     39            "installclean" 
     40        ) 
    3141 
    3242        namespaces = [] 
     
    3545        pixelfiles = [ file for file in xistdir.files() if file.ext=="gif" ] 
    3646 
    37         extensions = { 
    38             "gif": make.ImageTarget, 
    39             "jpg": make.ImageTarget, 
    40             "png": make.ImageTarget, 
    41             "css": make.CascadingStyleSheetTarget, 
    42             "js": make.JavascriptTarget, 
    43             "xml": make.XMLTarget, 
    44             "html": make.HTMLTarget, 
    45             "phtml": make.HTMLTarget, 
    46             "shtml": make.HTMLTarget, 
    47             "jsp": make.HTMLTarget, 
    48             "jspp": make.HTMLTarget, 
    49             "xsc": make.XISTTarget, 
    50             "pxsc": make.XISTTarget, 
    51             "sxsc": make.XISTTarget, 
    52             "jxsc": make.XISTTarget, 
    53             "jxscp": make.XISTTarget, 
    54             "py": make.PythonTarget 
    55         } 
    56  
    57         class XISTFOAction(make.Action): 
    58             name = "FODoc" 
    59             def execute(self, target, data=None): 
    60                 if data is None: 
    61                     raise make.ChainError("need an XIST node as input") 
     47        class XISTFOAction(make.PipeAction): 
     48            def execute(self, project, data): 
     49                self.writework("Wrapping input in fodoc") 
    6250                return doc.fodoc(data) 
    63          
    64         readaction = make.ReadAction() 
    65         writeaction = make.WriteAction() 
    66         selectaction = make.SelectMainAction() 
    67         importaction = make.ImportAction() 
    68         usemoduleaction = make.UseModuleAction() 
    69         modeaction = make.ModeAction(0644) 
    70         xistconvertaction = make.XISTConvertAction() 
    71         xistconvertfoaction = make.XISTConvertAction(target=fo) 
    72         xistconverttextaction = make.XISTConvertAction(target=text) 
    73         xisttextaction = make.XISTTextAction() 
    74         foaction = XISTFOAction() 
    75         fopaction = make.FOPAction() 
    76  
    77         copyextensions = {"gif": 1, "jpg": 1, "css": 0, "js":0 } 
     51 
     52        copyextensions = {"gif": True, "jpg": True, "css": False, "js": False} 
    7853        auxFiles = [] 
    7954        for id in files: 
     
    8358            except KeyError: 
    8459                continue 
    85             class_ = extensions[ext] 
    86             f1 = class_(self, here/srcdir/id, readaction=readaction) 
    87             f2 = class_(self, here/builddir/id, convertaction=selectaction, writeaction=writeaction, readaction=readaction) 
    88             f3 = class_(self, here/installdir/id, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
     60            f1 = self.add(make.FileAction(here/srcdir/id)) 
     61            f2 = self.add(f1 / make.FileAction(here/builddir/id)) 
     62            f3 = self.add(f2 / make.FileAction(here/installdir/id) / make.ModeAction(here/installdir/id, 0644)) 
    8963            if aux: 
    9064                auxFiles.append(f2) 
    91             f2.dependOn(make.MainDep, f1) 
    92             f3.dependOn(make.MainDep, f2) 
    93             build.dependOn(f2) 
    94             install.dependOn(f3) 
     65            build.addinputs(f2) 
     66            install.addinputs(f3) 
    9567 
    9668        for id in pixelfiles: 
    97             f1 = make.ImageTarget(self, here/xistdir/id, readaction=readaction) 
    98             f2 = make.ImageTarget(self, here/builddir/id, convertaction=selectaction, writeaction=writeaction, readaction=readaction) 
    99             f3 = make.ImageTarget(self, here/installdir/id, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
     69            f1 = self.add(make.FileAction(here/xistdir/id)) 
     70            f2 = self.add(f1 / make.FileAction(here/builddir/id)) 
     71            f3 = self.add(f2 / make.FileAction(here/installdir/id) / make.ModeAction(here/installdir/id, 0644)) 
    10072            auxFiles.append(f2) 
    101             f2.dependOn(make.MainDep, f1) 
    102             f3.dependOn(make.MainDep, f2) 
    103             build.dependOn(f2) 
    104             install.dependOn(f3) 
     73            build.addinputs(f2) 
     74            install.addinputs(f3) 
    10575 
    10676        def makens(prefix, id): 
    107             f1 = make.XISTNSTarget(self, here/srcdir/id, readaction=readaction) 
    108             f2 = make.XISTNSTarget(self, here/builddir/id, cache=True, prefix=prefix, convertaction=selectaction+writeaction+importaction+usemoduleaction, readaction=importaction+usemoduleaction, useaction=usemoduleaction) 
    109             f2.dependOn(make.MainDep, f1) 
     77            f1 = self.add(make.FileAction(here/srcdir/id)) 
     78            buildid = here/builddir/id 
     79            f2 = self.add(f1 / make.FileAction(buildid) / make.ImportAction(buildid) / make.XISTNSPrefixAction(prefix=prefix), buildid) 
    11080            return f2 
    11181 
     
    11686        fopublisher = publishers.Publisher(prefixes=xsc.Prefixes(fo=fo, doc=doc, specials=specials), prefixmode=2, encoding="utf-8", xhtml=2) 
    11787 
    118         mod_core = make.PythonTarget(self, here/pythonrootdir/"__init__.py", readaction=readaction) 
    119         mod_xist = make.PythonTarget(self, here/pythonrootdir/"xist/__init__.py", readaction=readaction) 
    120         mod_xist_xsc = make.PythonTarget(self, here/pythonrootdir/"xist/xsc.py", readaction=readaction) 
    121         mod_xist_ns = make.PythonTarget(self, here/pythonrootdir/"xist/ns/__init__.py", readaction=readaction) 
    122         mod_xist_ns_html = make.PythonTarget(self, here/pythonrootdir/"xist/ns/html.py", readaction=readaction) 
    123         mod_xist_ns_xml = make.PythonTarget(self, here/pythonrootdir/"xist/ns/xml.py", readaction=readaction) 
    124         mod_xist_ns_wml = make.PythonTarget(self, here/pythonrootdir/"xist/ns/wml.py", readaction=readaction) 
    125         mod_xist_ns_ihtml = make.PythonTarget(self, here/pythonrootdir/"xist/ns/ihtml.py", readaction=readaction) 
    126         mod_xist_ns_docbook = make.PythonTarget(self, here/pythonrootdir/"xist/ns/docbook.py", readaction=readaction) 
    127         mod_xist_ns_abbr = make.PythonTarget(self, here/pythonrootdir/"xist/ns/abbr.py", readaction=readaction) 
    128         mod_xist_ns_cond = make.PythonTarget(self, here/pythonrootdir/"xist/ns/cond.py", readaction=readaction) 
    129         mod_xist_ns_form = make.PythonTarget(self, here/pythonrootdir/"xist/ns/form.py", readaction=readaction) 
    130         mod_xist_ns_php = make.PythonTarget(self, here/pythonrootdir/"xist/ns/php.py", readaction=readaction) 
    131         mod_xist_ns_jsp = make.PythonTarget(self, here/pythonrootdir/"xist/ns/jsp.py", readaction=readaction) 
    132         mod_xist_ns_meta = make.PythonTarget(self, here/pythonrootdir/"xist/ns/meta.py", readaction=readaction) 
    133         mod_xist_ns_ruby = make.PythonTarget(self, here/pythonrootdir/"xist/ns/ruby.py", readaction=readaction) 
    134         mod_xist_ns_specials = make.PythonTarget(self, here/pythonrootdir/"xist/ns/specials.py", readaction=readaction) 
    135         mod_xist_ns_htmlspecials = make.PythonTarget(self, here/pythonrootdir/"xist/ns/htmlspecials.py", readaction=readaction) 
    136         mod_xist_ns_strutshtml = make.PythonTarget(self, here/pythonrootdir/"xist/ns/struts_html.py", readaction=readaction) 
    137         mod_xist_ns_strutsconfig = make.PythonTarget(self, here/pythonrootdir/"xist/ns/struts_config.py", readaction=readaction) 
    138         mod_xist_ns_doc = make.PythonTarget(self, here/pythonrootdir/"xist/ns/doc.py", readaction=readaction) 
    139         mod_xist_ns_rng = make.PythonTarget(self, here/pythonrootdir/"xist/ns/rng.py", readaction=readaction) 
    140         mod_xist_ns_kid = make.PythonTarget(self, here/pythonrootdir/"xist/ns/kid.py", readaction=readaction) 
    141         mod_xist_ns_text = make.PythonTarget(self, here/pythonrootdir/"xist/ns/text.py", readaction=readaction) 
    142         mod_xist_parsers = make.PythonTarget(self, here/pythonrootdir/"xist/parsers.py", readaction=readaction) 
    143         mod_xist_converters = make.PythonTarget(self, here/pythonrootdir/"xist/converters.py", readaction=readaction) 
    144         mod_xist_presenters = make.PythonTarget(self, here/pythonrootdir/"xist/presenters.py", readaction=readaction) 
    145         mod_xist_publishers = make.PythonTarget(self, here/pythonrootdir/"xist/publishers.py", readaction=readaction) 
    146         mod_xist_sims = make.PythonTarget(self, here/pythonrootdir/"xist/sims.py", readaction=readaction) 
    147         mod_xist_xfind = make.PythonTarget(self, here/pythonrootdir/"xist/xfind.py", readaction=readaction) 
    148         mod_misc = make.PythonTarget(self, here/pythonrootdir/"misc.py", readaction=readaction) 
    149         mod_url = make.PythonTarget(self, here/pythonrootdir/"url.py", readaction=readaction) 
    150         mod_make = make.PythonTarget(self, here/pythonrootdir/"make.py", readaction=readaction) 
    151         mod_sisyphus = make.PythonTarget(self, here/pythonrootdir/"sisyphus.py", readaction=readaction) 
    152         mod_ansistyle = make.PythonTarget(self, here/pythonrootdir/"ansistyle.py", readaction=readaction) 
    153         mod_toxic = make.PythonTarget(self, here/pythonrootdir/"toxic.py", readaction=readaction) 
    154         mod_orasql = make.PythonTarget(self, here/pythonrootdir/"orasql.py", readaction=readaction) 
    155         mod_color = make.PythonTarget(self, here/pythonrootdir/"color.py", readaction=readaction) 
    156         mod_xpit = make.PythonTarget(self, here/pythonrootdir/"xpit.py", readaction=readaction) 
     88        # These are now the real installed modules, but their source 
     89        mod_core = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/core/src/ll/__init__.py")) 
     90        mod_xist = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/__init__.py")) 
     91        mod_xist_xsc = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/xsc.py")) 
     92        mod_xist_ns = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/__init__.py")) 
     93        mod_xist_ns_html = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/html.py")) 
     94        mod_xist_ns_xml = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/xml.py")) 
     95        mod_xist_ns_wml = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/wml.py")) 
     96        mod_xist_ns_ihtml = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/ihtml.py")) 
     97        mod_xist_ns_docbook = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/docbook.py")) 
     98        mod_xist_ns_abbr = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/abbr.py")) 
     99        mod_xist_ns_cond = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/cond.py")) 
     100        mod_xist_ns_form = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/form.py")) 
     101        mod_xist_ns_php = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/php.py")) 
     102        mod_xist_ns_jsp = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/jsp.py")) 
     103        mod_xist_ns_meta = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/meta.py")) 
     104        mod_xist_ns_ruby = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/ruby.py")) 
     105        mod_xist_ns_specials = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/specials.py")) 
     106        mod_xist_ns_htmlspecials = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/htmlspecials.py")) 
     107        mod_xist_ns_strutshtml = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/struts_html.py")) 
     108        mod_xist_ns_strutsconfig = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/struts_config.py")) 
     109        mod_xist_ns_doc = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/doc.py")) 
     110        mod_xist_ns_rng = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/rng.py")) 
     111        mod_xist_ns_kid = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/kid.py")) 
     112        mod_xist_ns_text = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/ns/text.py")) 
     113        mod_xist_parsers = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/parsers.py")) 
     114        mod_xist_converters = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/converters.py")) 
     115        mod_xist_presenters = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/presenters.py")) 
     116        mod_xist_publishers = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/publishers.py")) 
     117        mod_xist_sims = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/sims.py")) 
     118        mod_xist_xfind = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xist/xfind.py")) 
     119        mod_misc = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/misc.py")) 
     120        mod_url = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/url.py")) 
     121        mod_make = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/make.py")) 
     122        mod_sisyphus = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/sisyphus.py")) 
     123        mod_toxic = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/toxic.py")) 
     124        mod_orasql = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/orasql/__init__.py")) 
     125        mod_color = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/color.py")) 
     126        mod_xpit = self.add(make.FileAction(here/repositorydir/"LivingLogic/Python/xist/src/ll/xpit.py")) 
     127 
     128        # Data for Additional dependencies (News & Install) 
     129        docdeps = { 
     130            "core/History": "LivingLogic/Python/core/NEWS.xml", 
     131            "core/OldHistory": "LivingLogic/Python/core/OLDNEWS.xml", 
     132            "core/Installation": "LivingLogic/Python/core/INSTALL.xml", 
     133            "core/Migration": "LivingLogic/Python/core/MIGRATION.xml", 
     134            "core/OldMigration": "LivingLogic/Python/core/OLDMIGRATION.xml", 
     135            "xist/History": "LivingLogic/xist/NEWS.xml", 
     136            "xist/Installation": "LivingLogic/xist/INSTALL.xml", 
     137            "xist/Howto": "LivingLogic/xist/HOWTO.xml", 
     138            "xist/Examples": "LivingLogic/xist/EXAMPLES.xml", 
     139            "xist/Migration": "LivingLogic/xist/MIGRATION.xml", 
     140            "url/Howto": "LivingLogic/Python/core/URL_HOWTO.xml", 
     141            "orasql/History": "LivingLogic/Python/orasql/NEWS.xml", 
     142            "orasql/Installation": "LivingLogic/Python/orasql/INSTALL.xml", 
     143            "toxic/History": "LivingLogic/Python/toxic/NEWS.xml", 
     144            "toxic/Installation": "LivingLogic/Python/toxic/INSTALL.xml", 
     145            "aplora/History": "LivingLogic/Python/aplora/NEWS.xml", 
     146            "aplora/Installation": "LivingLogic/Python/aplora/INSTALL.xml", 
     147        } 
     148 
     149        # Docstring and module source dependencies 
     150        moddeps = { 
     151            "core/index": (mod_core, mod_xist_ns_doc), 
     152            "url/index": (mod_url, mod_xist_ns_doc), 
     153            "make/index": (mod_make, mod_xist_ns_doc), 
     154            "sisyphus/index": (mod_sisyphus, mod_xist_ns_doc), 
     155            "misc/index": (mod_misc, mod_xist_ns_doc), 
     156            "color/index": (mod_color, mod_xist_ns_doc), 
     157            "xpit/index": (mod_xpit, mod_xist_ns_doc), 
     158            "xist/index": (mod_xist, mod_xist_ns_doc), 
     159            "xist/xsc/index": (mod_xist_xsc, mod_xist_ns_doc), 
     160            "xist/ns/index": (mod_xist_ns, mod_xist_ns_doc), 
     161            "xist/ns/html/index": (mod_xist_ns_html, mod_xist_ns_doc), 
     162            "xist/ns/xml/index": (mod_xist_ns_xml, mod_xist_ns_doc), 
     163            "xist/ns/wml/index": (mod_xist_ns_wml, mod_xist_ns_doc), 
     164            "xist/ns/ihtml/index": (mod_xist_ns_ihtml, mod_xist_ns_doc), 
     165            "xist/ns/docbook/index": (mod_xist_ns_docbook, mod_xist_ns_doc), 
     166            "xist/ns/abbr/index": (mod_xist_ns_abbr, mod_xist_ns_doc), 
     167            "xist/ns/cond/index": (mod_xist_ns_cond, mod_xist_ns_doc), 
     168            "xist/ns/form/index": (mod_xist_ns_form, mod_xist_ns_doc), 
     169            "xist/ns/php/index": (mod_xist_ns_php, mod_xist_ns_doc), 
     170            "xist/ns/jsp/index": (mod_xist_ns_jsp, mod_xist_ns_doc), 
     171            "xist/ns/meta/index": (mod_xist_ns_meta, mod_xist_ns_doc), 
     172            "xist/ns/ruby/index": (mod_xist_ns_ruby, mod_xist_ns_doc), 
     173            "xist/ns/specials/index": (mod_xist_ns_specials, mod_xist_ns_doc), 
     174            "xist/ns/htmlspecials/index": (mod_xist_ns_htmlspecials, mod_xist_ns_doc), 
     175            "xist/ns/struts_html/index": (mod_xist_ns_strutshtml, mod_xist_ns_doc), 
     176            "xist/ns/struts_config/index": (mod_xist_ns_strutsconfig, mod_xist_ns_doc), 
     177            "xist/ns/doc/index": (mod_xist_ns_doc, ), 
     178            "xist/ns/rng/index": (mod_xist_ns_rng, mod_xist_ns_doc), 
     179            "xist/ns/kid/index": (mod_xist_ns_kid, mod_xist_ns_doc), 
     180            "xist/parsers/index":  (mod_xist_parsers, mod_xist_ns_doc), 
     181            "xist/converters/index": (mod_xist_converters, mod_xist_ns_doc), 
     182            "xist/presenters/index": (mod_xist_presenters, mod_xist_ns_doc), 
     183            "xist/publishers/index":  (mod_xist_publishers, mod_xist_ns_doc), 
     184            "xist/sims/index":  (mod_xist_sims, mod_xist_ns_doc), 
     185            "xist/xfind/index":  (mod_xist_xfind, mod_xist_ns_doc), 
     186            "toxic/index": (mod_toxic, mod_xist_ns_doc), 
     187            "orasql/index": (mod_orasql, mod_xist_ns_doc), 
     188        } 
    157189 
    158190        for id in files: 
     
    160192            if ext and ext.endswith("xsc"): 
    161193                newid = id.withExt(ext[:-3]) 
     194 
     195                base = id.withoutext().file 
     196                path = str(id.withoutext().path) 
     197 
    162198                parser = xmlparser 
    163                 f = make.XISTTarget(self, here/srcdir/id, readaction=readaction) 
    164                 f2 = make.XISTTarget( 
    165                     self, 
    166                     here/builddir/newid, 
    167                     convertaction= 
    168                         selectaction+ 
    169                         make.XISTParseAction(parser=parser, base=root/newid)+ 
    170                         xistconvertaction+ 
    171                         make.XISTPublishAction(publisher=publisher, base=root/newid), 
    172                     writeaction=writeaction, 
    173                     readaction=readaction, 
    174                 ) 
    175                 f3 = make.XISTTarget(self, here/installdir/newid, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    176                 f2.dependOn(make.MainDep, f) 
    177                 f2.dependOn(pyns, *auxFiles) 
    178                 f3.dependOn(make.MainDep, f2) 
    179                 build.dependOn(f2) 
    180                 install.dependOn(f3) 
     199                f = self.add(make.FileAction(here/srcdir/id)) 
     200 
     201                realf = f 
     202                if base in docdeps or path in moddeps: 
     203                    collect = make.CollectAction() 
     204                    if base in docdeps: 
     205                        collect.addinputs(make.FileAction(here/repositorydir/docdeps[base])) 
     206                    if path in moddeps: 
     207                        mods = moddeps[path] 
     208                        collect.addinputs(*mods) 
     209                        mod2 = self.add(mods[0] / make.FileAction(here/builddir/(path + "_module.py"))) 
     210                        mod3 = self.add(mod2 / make.FileAction(here/installdir/(path + "_module.py")) / make.ModeAction(here/installdir/(path + "_module.py"), 0644)) 
     211                        build.addinputs(mod2) 
     212                        install.addinputs(mod3) 
     213                    realf /= collect 
     214 
     215                f2 = self.add( 
     216                    realf / 
     217                    make.CollectAction() / # for adding additional dependencies 
     218                    make.XISTParseAction(parser=parser, base=root/newid).addinputs(pyns) / 
     219                    make.CollectAction().addinputs(*auxFiles) / 
     220                    make.XISTConvertAction() / 
     221                    make.XISTPublishAction(publisher=publisher, base=root/newid) / 
     222                    make.FileAction(here/builddir/newid) 
     223                ) 
     224                f3 = self.add(f2 / make.FileAction(here/installdir/newid)) 
     225                build.addinputs(f2) 
     226                install.addinputs(f3) 
    181227 
    182228                # Build alternate versions of the page 
    183229                # Source version of the page 
    184230                pagesrcid = id 
    185                 f2 = make.XISTTarget(self, here/builddir/pagesrcid, convertaction=selectaction, writeaction=writeaction, readaction=readaction) 
    186                 f3 = make.XISTTarget(self, here/installdir/pagesrcid, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    187                 f2.dependOn(make.MainDep, f) 
    188                 f3.dependOn(make.MainDep, f2) 
    189                 build.dependOn(f2) 
    190                 install.dependOn(f3) 
     231                f2 = self.add(f / make.FileAction(here/builddir/pagesrcid)) 
     232                f3 = self.add(f2 / make.FileAction(here/installdir/pagesrcid) / make.ModeAction(here/installdir/pagesrcid, 0644)) 
     233                build.addinputs(f2) 
     234                install.addinputs(f3) 
    191235 
    192236                # Plain text version of the page 
     237                realf = f 
     238                if base in docdeps: 
     239                    collect = make.CollectAction() 
     240                    collect.addinputs(make.FileAction(here/repositorydir/docdeps[base])) 
     241                    realf /= collect 
     242 
    193243                txtid = id.withext("txt") 
    194                 t2 = make.XISTTarget( 
    195                     self, 
    196                     here/builddir/txtid, 
    197                     convertaction= 
    198                         selectaction+ 
    199                         make.XISTParseAction(parser, root/txtid)+ 
    200                         xistconverttextaction+ 
    201                         xisttextaction, 
    202                     writeaction=writeaction, 
    203                     readaction=readaction, 
    204                 ) 
    205                 t2.dependOn(make.MainDep, f) 
    206                 t2.dependOn(pyns, mod_xist_ns_text) 
    207      
    208                 build.dependOn(t2) 
    209                 t3 = make.XISTTarget(self, here/installdir/txtid, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    210                 t3.dependOn(make.MainDep, t2) 
    211                 install.dependOn(t3) 
     244                t2 = self.add( 
     245                    realf / 
     246                    make.XISTParseAction(parser, root/txtid).addinputs(pyns, mod_xist_ns_text) / 
     247                    make.XISTConvertAction(target=text) / 
     248                    make.XISTTextAction() / 
     249                    make.FileAction(here/builddir/txtid) 
     250                ) 
     251                t3 = self.add( 
     252                    t2 / 
     253                    make.FileAction(here/installdir/txtid) / 
     254                    make.ModeAction(here/installdir/txtid, 0644) 
     255                ) 
     256                build.addinputs(t2) 
     257                install.addinputs(t3) 
    212258 
    213259                # XSL-FO version of the page 
     260                realf = f 
     261                if base in docdeps or path in moddeps: 
     262                    collect = make.CollectAction() 
     263                    if base in docdeps: 
     264                        collect.addinputs(make.FileAction(here/repositorydir/docdeps[base])) 
     265                    if path in moddeps: 
     266                        mods = moddeps[path] 
     267                        collect.addinputs(*mods) 
     268                    realf /= collect 
     269 
    214270                foid = id.withext("fo") 
    215                 fot2 = make.XISTTarget( 
    216                     self, 
    217                     here/builddir/foid, 
    218                     convertaction= 
    219                         selectaction+ 
    220                         make.XISTParseAction(parser, root/foid)+ 
    221                         foaction+ 
    222                         xistconvertfoaction+ 
    223                         make.XISTPublishAction(fopublisher, root/foid), 
    224                     writeaction=writeaction, 
    225                     readaction=readaction, 
    226                 ) 
    227                 fot2.dependOn(make.MainDep, f) 
    228                 fot2.dependOn(pyns, mod_xist_ns_doc) 
    229  
    230                 build.dependOn(fot2) 
    231                 fot3 = make.XISTTarget(self, here/installdir/foid, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    232                 fot3.dependOn(make.MainDep, fot2) 
    233                 install.dependOn(fot3) 
     271                fot2 = self.add( 
     272                    realf / 
     273                    make.XISTParseAction(parser, root/foid).addinputs(pyns, mod_xist_ns_doc) / 
     274                    XISTFOAction() / 
     275                    make.XISTConvertAction(target=fo) / 
     276                    make.XISTPublishAction(fopublisher, root/foid) / 
     277                    make.FileAction(here/builddir/foid) 
     278                ) 
     279 
     280                fot3 = self.add( 
     281                    fot2 / 
     282                    make.FileAction(here/installdir/foid) / 
     283                    make.ModeAction(here/installdir/foid, 0644) 
     284                ) 
     285                build.addinputs(fot2) 
     286                install.addinputs(fot3) 
    234287 
    235288                # PDF version of the page 
    236289                pdfid = id.withext("pdf") 
    237                 t2 = make.PDFTarget( 
    238                     self, 
    239                     here/builddir/pdfid, 
    240                     convertaction=selectaction+fopaction, 
    241                     writeaction=writeaction, 
    242                     readaction=readaction, 
    243                 ) 
    244                 t2.dependOn(make.MainDep, fot2) 
    245  
    246                 build.dependOn(t2) 
    247                 t3 = make.PDFTarget(self, here/installdir/pdfid, convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    248                 t3.dependOn(make.MainDep, t2) 
    249                 install.dependOn(t3) 
    250  
    251         # Additional dependencies (News & Install) 
    252         params = [ 
    253             ("core/History", "LivingLogic/Python/core/NEWS.xml"), 
    254             ("core/OldHistory", "LivingLogic/Python/core/OLDNEWS.xml"), 
    255             ("core/Installation", "LivingLogic/Python/core/INSTALL.xml"), 
    256             ("core/Migration", "LivingLogic/Python/core/MIGRATION.xml"), 
    257             ("core/OldMigration", "LivingLogic/Python/core/OLDMIGRATION.xml"), 
    258             ("xist/History", "LivingLogic/xist/NEWS.xml"), 
    259             ("xist/Installation", "LivingLogic/xist/INSTALL.xml"), 
    260             ("xist/Howto", "LivingLogic/xist/HOWTO.xml"), 
    261             ("xist/Examples", "LivingLogic/xist/EXAMPLES.xml"), 
    262             ("xist/Migration", "LivingLogic/xist/MIGRATION.xml"), 
    263             ("url/Howto", "LivingLogic/Python/core/URL_HOWTO.xml"), 
    264             ("orasql/History", "LivingLogic/Python/orasql/NEWS.xml"), 
    265             ("orasql/Installation", "LivingLogic/Python/orasql/INSTALL.xml"), 
    266             ("toxic/History", "LivingLogic/Python/toxic/NEWS.xml"), 
    267             ("toxic/Installation", "LivingLogic/Python/toxic/INSTALL.xml"), 
    268             ("aplora/History", "LivingLogic/Python/aplora/NEWS.xml"), 
    269             ("aplora/Installation", "LivingLogic/Python/aplora/INSTALL.xml"), 
    270         ] 
    271  
    272         for (target, source) in params: 
    273             source = make.XMLTarget(self, here/repositorydir/source) # no actions 
    274             for ext in ("html", "fo", "txt"): 
    275                 p[here/builddir/(target+"." + ext)].dependOn(source) 
    276  
    277         # Docstring and module source dependencies 
    278         params = [ 
    279             ("core/", (mod_core, mod_xist_ns_doc)), 
    280             ("url/", (mod_url, mod_xist_ns_doc)), 
    281             ("make/", (mod_make, mod_xist_ns_doc)), 
    282             ("sisyphus/", (mod_sisyphus, mod_xist_ns_doc)), 
    283             ("ansistyle/", (mod_ansistyle, mod_xist_ns_doc)), 
    284             ("misc/", (mod_misc, mod_xist_ns_doc)), 
    285             ("color/", (mod_color, mod_xist_ns_doc)), 
    286             ("xpit/", (mod_xpit, mod_xist_ns_doc)), 
    287             ("xist/", (mod_xist, mod_xist_ns_doc)), 
    288             ("xist/xsc/", (mod_xist_xsc, mod_xist_ns_doc)), 
    289             ("xist/ns/", (mod_xist_ns, mod_xist_ns_doc)), 
    290             ("xist/ns/html/", (mod_xist_ns_html, mod_xist_ns_doc)), 
    291             ("xist/ns/xml/", (mod_xist_ns_xml, mod_xist_ns_doc)), 
    292             ("xist/ns/wml/", (mod_xist_ns_wml, mod_xist_ns_doc)), 
    293             ("xist/ns/ihtml/", (mod_xist_ns_ihtml, mod_xist_ns_doc)), 
    294             ("xist/ns/docbook/", (mod_xist_ns_docbook, mod_xist_ns_doc)), 
    295             ("xist/ns/abbr/", (mod_xist_ns_abbr, mod_xist_ns_doc)), 
    296             ("xist/ns/cond/", (mod_xist_ns_cond, mod_xist_ns_doc)), 
    297             ("xist/ns/form/", (mod_xist_ns_form, mod_xist_ns_doc)), 
    298             ("xist/ns/php/", (mod_xist_ns_php, mod_xist_ns_doc)), 
    299             ("xist/ns/jsp/", (mod_xist_ns_jsp, mod_xist_ns_doc)), 
    300             ("xist/ns/meta/", (mod_xist_ns_meta, mod_xist_ns_doc)), 
    301             ("xist/ns/ruby/", (mod_xist_ns_ruby, mod_xist_ns_doc)), 
    302             ("xist/ns/specials/", (mod_xist_ns_specials, mod_xist_ns_doc)), 
    303             ("xist/ns/htmlspecials/", (mod_xist_ns_htmlspecials, mod_xist_ns_doc)), 
    304             ("xist/ns/struts_html/", (mod_xist_ns_strutshtml, mod_xist_ns_doc)), 
    305             ("xist/ns/struts_config/", (mod_xist_ns_strutsconfig, mod_xist_ns_doc)), 
    306             ("xist/ns/doc/", (mod_xist_ns_doc, )), 
    307             ("xist/ns/rng/", (mod_xist_ns_rng, mod_xist_ns_doc)), 
    308             ("xist/ns/kid/", (mod_xist_ns_kid, mod_xist_ns_doc)), 
    309             ("xist/parsers/",  (mod_xist_parsers, mod_xist_ns_doc)), 
    310             ("xist/converters/", (mod_xist_converters, mod_xist_ns_doc)), 
    311             ("xist/presenters/", (mod_xist_presenters, mod_xist_ns_doc)), 
    312             ("xist/publishers/",  (mod_xist_publishers, mod_xist_ns_doc)), 
    313             ("xist/sims/",  (mod_xist_sims, mod_xist_ns_doc)), 
    314             ("xist/xfind/",  (mod_xist_xfind, mod_xist_ns_doc)), 
    315             ("toxic/", (mod_toxic, mod_xist_ns_doc)), 
    316             ("orasql/", (mod_orasql, mod_xist_ns_doc)), 
    317         ] 
    318  
    319         for (base, mods) in params: 
    320             for ext in ("html", "fo"): 
    321                 f = p[here/builddir/(base + "index." + ext)] 
    322                 f.dependOn(*mods) 
    323  
    324             f2 = make.PythonTarget(self, here/builddir/(base + "index_module.py"), convertaction=selectaction, writeaction=writeaction, readaction=readaction) 
    325             f2.dependOn(make.MainDep, mods[0]) 
    326             build.dependOn(f2) 
    327             f3 = make.PythonTarget(self, here/installdir/(base + "index_module.py"), convertaction=selectaction, writeaction=writeaction+modeaction, readaction=readaction) 
    328             f3.dependOn(make.MainDep, f2) 
    329             install.dependOn(f3) 
     290                t2 = self.add( 
     291                    fot2 / 
     292                    make.FOPAction() / 
     293                    make.FileAction(here/builddir/pdfid) 
     294                ) 
     295                t3 = self.add( 
     296                    f2 / 
     297                    make.FileAction(here/installdir/pdfid) / 
     298                    make.ModeAction(here/installdir/pdfid, 0644) 
     299                ) 
     300                build.addinputs(t2) 
     301                install.addinputs(t3) 
    330302 
    331303        print "done"