1b96f97cfSPawel Wodkowski#!/usr/bin/env python3 2*17538bdcSpaul luse# SPDX-License-Identifier: BSD-3-Clause 3*17538bdcSpaul luse# Copyright (C) 2016 Intel Corporation 4*17538bdcSpaul luse# All rights reserved. 5*17538bdcSpaul luse# 692a02f58SDaniel Verkamp 70ee75c5fSDaniel Verkampimport os 892a02f58SDaniel Verkampimport re 992a02f58SDaniel Verkampimport sys 1092a02f58SDaniel Verkamp 110c93fc73SJames Bergstencomment = re.compile(r'^\s*#') 12339fb7cdSArtur Paszkiewiczassign = re.compile(r'^\s*([a-zA-Z0-9_]+)\s*(\?)?=\s*([^#]*)') 1392a02f58SDaniel Verkamp 140ee75c5fSDaniel Verkampargs = os.environ.copy() 151e9c0496SDaniel Verkampfor arg in sys.argv: 161e9c0496SDaniel Verkamp m = assign.match(arg) 171e9c0496SDaniel Verkamp if m: 181e9c0496SDaniel Verkamp var = m.group(1).strip() 191e9c0496SDaniel Verkamp val = m.group(3).strip() 201e9c0496SDaniel Verkamp args[var] = val 211e9c0496SDaniel Verkamp 229dd998cdSBen Walkerdefs = {} 239dd998cdSBen Walkertry: 24ddd38a5eSPawel Wodkowski with open("mk/config.mk") as f: 2592a02f58SDaniel Verkamp for line in f: 2692a02f58SDaniel Verkamp line = line.strip() 2792a02f58SDaniel Verkamp if not comment.match(line): 2892a02f58SDaniel Verkamp m = assign.match(line) 2992a02f58SDaniel Verkamp if m: 3092a02f58SDaniel Verkamp var = m.group(1).strip() 3192a02f58SDaniel Verkamp default = m.group(3).strip() 3292a02f58SDaniel Verkamp val = default 331e9c0496SDaniel Verkamp if var in args: 341e9c0496SDaniel Verkamp val = args[var] 3592a02f58SDaniel Verkamp if default.lower() == 'y' or default.lower() == 'n': 3692a02f58SDaniel Verkamp if val.lower() == 'y': 372a0d341fSYuliya Navrotskaya defs["SPDK_{0}".format(var)] = 1 3892a02f58SDaniel Verkamp else: 392a0d341fSYuliya Navrotskaya defs["SPDK_{0}".format(var)] = 0 4092a02f58SDaniel Verkamp else: 4192a02f58SDaniel Verkamp strval = val.replace('"', '\"') 422a0d341fSYuliya Navrotskaya defs["SPDK_{0}".format(var)] = strval 439dd998cdSBen Walkerexcept IOError: 44ddd38a5eSPawel Wodkowski print("mk/config.mk not found") 459dd998cdSBen Walker 4675cb5746SJim Harrisfor key, value in sorted(defs.items()): 479dd998cdSBen Walker if value == 0: 481573df0fSDaniel Verkamp print("#undef {0}".format(key)) 499dd998cdSBen Walker else: 501573df0fSDaniel Verkamp print("#define {0} {1}".format(key, value)) 51