162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+ 362306a36Sopenharmony_ci# 462306a36Sopenharmony_ci# Usage: configcheck.sh .config .config-template 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci# Non-empty output if errors detected. 762306a36Sopenharmony_ci# 862306a36Sopenharmony_ci# Copyright (C) IBM Corporation, 2011 962306a36Sopenharmony_ci# 1062306a36Sopenharmony_ci# Authors: Paul E. McKenney <paulmck@linux.ibm.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciT="`mktemp -d ${TMPDIR-/tmp}/configcheck.sh.XXXXXX`" 1362306a36Sopenharmony_citrap 'rm -rf $T' 0 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci# function test_kconfig_enabled ( Kconfig-var=val ) 1662306a36Sopenharmony_cifunction test_kconfig_enabled () { 1762306a36Sopenharmony_ci if ! grep -q "^$1$" $T/.config 1862306a36Sopenharmony_ci then 1962306a36Sopenharmony_ci echo :$1: improperly set 2062306a36Sopenharmony_ci return 1 2162306a36Sopenharmony_ci fi 2262306a36Sopenharmony_ci return 0 2362306a36Sopenharmony_ci} 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci# function test_kconfig_disabled ( Kconfig-var ) 2662306a36Sopenharmony_cifunction test_kconfig_disabled () { 2762306a36Sopenharmony_ci if grep -q "^$1=n$" $T/.config 2862306a36Sopenharmony_ci then 2962306a36Sopenharmony_ci return 0 3062306a36Sopenharmony_ci fi 3162306a36Sopenharmony_ci if grep -q "^$1=" $T/.config 3262306a36Sopenharmony_ci then 3362306a36Sopenharmony_ci echo :$1=n: improperly set 3462306a36Sopenharmony_ci return 1 3562306a36Sopenharmony_ci fi 3662306a36Sopenharmony_ci return 0 3762306a36Sopenharmony_ci} 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_cised -e 's/"//g' < $1 > $T/.config 4062306a36Sopenharmony_cised -e 's/^#CHECK#//' < $2 > $T/ConfigFragment 4162306a36Sopenharmony_cigrep '^CONFIG_.*=n$' $T/ConfigFragment | 4262306a36Sopenharmony_ci sed -e 's/^/test_kconfig_disabled /' -e 's/=n$//' > $T/kconfig-n.sh 4362306a36Sopenharmony_ci. $T/kconfig-n.sh 4462306a36Sopenharmony_cigrep -v '^CONFIG_.*=n$' $T/ConfigFragment | grep '^CONFIG_' | 4562306a36Sopenharmony_ci sed -e 's/^/test_kconfig_enabled /' > $T/kconfig-not-n.sh 4662306a36Sopenharmony_ci. $T/kconfig-not-n.sh 47