numam-spdk/scripts/genconfig.py
Daniel Verkamp 92a02f580c build: generate config.h and implicitly include it
All source files will now depend on config.h, which is generated based
on the defaults in CONFIG and the command line arguments passed to make.

This ensures that any configuration changes, including on the command
line, cause a full rebuild.

Change-Id: I6b6fa3290941200dbcf32297c66df8dc5ee18e94
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 10:26:50 -07:00

34 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
import re
import sys
comment = re.compile('^\s*#')
assign = re.compile('^\s*([a-zA-Z_]+)\s*(\?)?=\s*([^#]*)')
with open('CONFIG') as f:
for line in f:
line = line.strip()
if not comment.match(line):
m = assign.match(line)
if m:
var = m.group(1).strip()
default = m.group(3).strip()
val = default
for arg in sys.argv:
m = assign.match(arg)
if m:
argvar = m.group(1).strip()
argval = m.group(3).strip()
if argvar == var:
val = argval
if default.lower() == 'y' or default.lower() == 'n':
if val.lower() == 'y':
boolval = 1
else:
boolval = 0
print "#define SPDK_{} {}".format(var, boolval)
else:
strval = val.replace('"', '\"')
print "#define SPDK_{} \"{}\"".format(var, strval)