Changes in tools/config.py [28f4adb:fe12f9f4] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/config.py

    r28f4adb rfe12f9f4  
    2828# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2929#
    30 
    3130"""
    3231HelenOS configuration system
    3332"""
    34 
    3533import sys
    3634import os
     
    4341MAKEFILE = 'Makefile.config'
    4442MACROS = 'config.h'
     43DEFS = 'config.defs'
    4544PRECONF = 'defaults'
    4645
     
    4847        "Read saved values from last configuration run"
    4948       
    50         inf = open(fname, 'r')
     49        inf = file(fname, 'r')
    5150       
    5251        for line in inf:
     
    103102                condval = res.group(3)
    104103               
    105                 if (not condname in defaults):
     104                if (not defaults.has_key(condname)):
    106105                        varval = ''
    107106                else:
     
    131130        "Parse configuration file"
    132131       
    133         inf = open(fname, 'r')
     132        inf = file(fname, 'r')
    134133       
    135134        name = ''
     
    219218                        continue
    220219               
    221                 if (not varname in defaults):
     220                if (not defaults.has_key(varname)):
    222221                        return False
    223222       
    224223        return True
    225224
    226 def create_output(mkname, mcname, defaults, ask_names):
     225def create_output(mkname, mcname, dfname, defaults, ask_names):
    227226        "Create output configuration"
    228227       
     
    230229       
    231230        sys.stderr.write("Fetching current revision identifier ... ")
    232        
    233         try:
    234                 version = subprocess.Popen(['bzr', 'version-info', '--custom', '--template={clean}:{revno}:{revision_id}'], stdout = subprocess.PIPE).communicate()[0].decode().split(':')
    235                 sys.stderr.write("ok\n")
    236         except:
    237                 version = [1, "unknown", "unknown"]
    238                 sys.stderr.write("failed\n")
     231        version = subprocess.Popen(['bzr', 'version-info', '--custom', '--template={clean}:{revno}:{revision_id}'], stdout = subprocess.PIPE).communicate()[0].split(':')
     232        sys.stderr.write("OK\n")
    239233       
    240234        if (len(version) == 3):
     
    246240                revision = None
    247241       
    248         outmk = open(mkname, 'w')
    249         outmc = open(mcname, 'w')
     242        outmk = file(mkname, 'w')
     243        outmc = file(mcname, 'w')
     244        outdf = file(dfname, 'w')
    250245       
    251246        outmk.write('#########################################\n')
     
    257252        outmc.write(' ***************************************/\n\n')
    258253       
    259         defs = 'CONFIG_DEFS ='
     254        outdf.write('#########################################\n')
     255        outdf.write('## AUTO-GENERATED FILE, DO NOT EDIT!!! ##\n')
     256        outdf.write('#########################################\n\n')
     257        outdf.write('CONFIG_DEFS =')
    260258       
    261259        for varname, vartype, name, choices, cond in ask_names:
     
    263261                        continue
    264262               
    265                 if (not varname in defaults):
     263                if (not defaults.has_key(varname)):
    266264                        default = ''
    267265                else:
     
    275273                        if (default == "y"):
    276274                                outmc.write('/* %s */\n#define %s\n\n' % (name, varname))
    277                                 defs += ' -D%s' % varname
     275                                outdf.write(' -D%s' % varname)
    278276                else:
    279277                        outmc.write('/* %s */\n#define %s %s\n#define %s_%s\n\n' % (name, varname, default, varname, default))
    280                         defs += ' -D%s=%s -D%s_%s' % (varname, default, varname, default)
     278                        outdf.write(' -D%s=%s -D%s_%s' % (varname, default, varname, default))
    281279       
    282280        if (revision is not None):
    283281                outmk.write('REVISION = %s\n' % revision)
    284282                outmc.write('#define REVISION %s\n' % revision)
    285                 defs += ' "-DREVISION=%s"' % revision
     283                outdf.write(' "-DREVISION=%s"' % revision)
    286284       
    287285        outmk.write('TIMESTAMP = %s\n' % timestamp)
    288286        outmc.write('#define TIMESTAMP %s\n' % timestamp)
    289         defs += ' "-DTIMESTAMP=%s"\n' % timestamp
    290        
    291         outmk.write(defs)
     287        outdf.write(' "-DTIMESTAMP=%s"\n' % timestamp)
    292288       
    293289        outmk.close()
    294290        outmc.close()
     291        outdf.close()
    295292
    296293def sorted_dir(root):
     
    351348        if ((len(sys.argv) >= 3) and (sys.argv[2] == 'default')):
    352349                if (check_choices(defaults, ask_names)):
    353                         create_output(MAKEFILE, MACROS, defaults, ask_names)
     350                        create_output(MAKEFILE, MACROS, DEFS, defaults, ask_names)
    354351                        return 0
    355352       
     
    368365                        # Cancel out all defaults which have to be deduced
    369366                        for varname, vartype, name, choices, cond in ask_names:
    370                                 if ((vartype == 'y') and (varname in defaults) and (defaults[varname] == '*')):
     367                                if ((vartype == 'y') and (defaults.has_key(varname)) and (defaults[varname] == '*')):
    371368                                        defaults[varname] = None
    372369                       
     
    385382                                        position = cnt
    386383                               
    387                                 if (not varname in defaults):
     384                                if (not defaults.has_key(varname)):
    388385                                        default = None
    389386                                else:
     
    428425                                cnt += 1
    429426                       
    430                         if (position != None) and (position >= len(options)):
     427                        if (position >= options):
    431428                                position = None
    432429                       
     
    449446                       
    450447                        position = None
    451                         if (not value in opt2row):
     448                        if (not opt2row.has_key(value)):
    452449                                raise RuntimeError("Error selecting value: %s" % value)
    453450                       
    454451                        (selname, seltype, name, choices) = opt2row[value]
    455452                       
    456                         if (not selname in defaults):
     453                        if (not defaults.has_key(selname)):
    457454                                        default = None
    458455                        else:
     
    469466                xtui.screen_done(screen)
    470467       
    471         create_output(MAKEFILE, MACROS, defaults, ask_names)
     468        create_output(MAKEFILE, MACROS, DEFS, defaults, ask_names)
    472469        return 0
    473470
Note: See TracChangeset for help on using the changeset viewer.