[tools] add --menuconfig option for scons

This commit is contained in:
Bernard Xiong 2017-01-31 13:22:56 +00:00
parent 033d254c4d
commit a7c4a23c67
2 changed files with 61 additions and 0 deletions

View File

@ -276,6 +276,16 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
LINKCOMSTR = 'LINK $TARGET' LINKCOMSTR = 'LINK $TARGET'
) )
AddOption('--menuconfig',
dest='menuconfig',
action='store_true',
default=False,
help='do the system configuration')
if GetOption('menuconfig'):
from menuconfig import config
config()
# we need to seperate the variant_dir for BSPs and the kernels. BSPs could # we need to seperate the variant_dir for BSPs and the kernels. BSPs could
# have their own components etc. If they point to the same folder, SCons # have their own components etc. If they point to the same folder, SCons
# would find the wrong source code to compile. # would find the wrong source code to compile.

51
tools/menuconfig.py Normal file
View File

@ -0,0 +1,51 @@
import os
# make rtconfig.h from .config
def mk_rtconfig(filename):
try:
config = file(filename)
except:
print 'open .config failed'
return
rtconfig = file('rtconfig.h', 'w')
rtconfig.write('#ifndef RT_CONFIG_H__\n')
rtconfig.write('#define RT_CONFIG_H__\n\n')
empty_line = 1
for line in config:
line = line.lstrip(' ').replace('\n', '').replace('\r', '')
if len(line) == 0: continue
if line[0] == '#':
if len(line) == 1:
if empty_line:
continue
rtconfig.write('\n')
empty_line = 1
continue
rtconfig.write('/*%s */\n' % line[1:])
empty_line = 0
else:
empty_line = 0
setting = line.split('=')
if len(setting) >= 2:
if setting[0].startswith('CONFIG_'):
setting[0] = setting[0][7:]
if setting[1] == 'y':
rtconfig.write('#define %s\n' % setting[0])
else:
rtconfig.write('#define %s %s\n' % (setting[0], setting[1]))
rtconfig.write('#endif\n')
rtconfig.close()
def config():
mk_rtconfig('.config')