X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/blobdiff_plain/c00b2739601744dc81a3028db6d84769c4428f02..b4c8dea64315e18434d85e9d5af57e8a2b23a977:/omkbuild.py diff --git a/omkbuild.py b/omkbuild.py index aab40c8..3554e64 100755 --- a/omkbuild.py +++ b/omkbuild.py @@ -31,10 +31,14 @@ Snippet syntax: from optparse import OptionParser import os +import os.path import sys import string import re +rulesDir = "rules" +snippetsDir = "snippets" + class LineList(list): """List of text lines""" def getDiff(self, other): @@ -54,7 +58,12 @@ class LineList(list): def loadFromFile(self, fname): """Loads itself from file.""" - f = open(fname, "r") + try: + f = open(fname, "r") + except IOError: + sys.stderr.write("Cannot open %s\n" % fname) + sys.exit(1) + self.extend(f.readlines()) f.close @@ -232,6 +241,9 @@ def parseCommandLine(): parser.add_option("-o", "--output", action="store", dest="output", default=False, metavar="RULES", help="Write Makefile.rules to file RULES") + parser.add_option("-a", "--all", + action="store_true", dest="all", + help="Rebuild all rules acording to rulesdef.py") (options, args) = parser.parse_args() return options, args @@ -278,10 +290,20 @@ def splitRules(rulesFN, output): # f.writelines(rules.rules) # f.close() +def buildAllRules(): + import rulesdef + os.chdir(snippetsDir) + for rules in rulesdef.rules: + print 'Building rules: %s' % rules + outputDir = os.path.join(sys.path[0], rulesDir, rules) + if not os.path.isdir(outputDir): os.makedirs(outputDir) + buildRules(rulesdef.rules[rules], os.path.join(outputDir, 'Makefile.rules')) def main(): (options, args) = parseCommandLine() - if options.split: + if options.all: + buildAllRules() + elif options.split: splitRules(options.split, options.output) else: buildRules(args, options.output)