configure: add concistency check of CONFIG file vs CONFIG[@] array

If someone adds configure option in configure script but forgot to
update the CONFIG file following error will be printed:

$ ./configure
Using default SPDK env in /home/pwodkowx/Private/spdk/lib/env_dpdk
Using default DPDK in /home/pwodkowx/Private/spdk/dpdk/build

BUG: Some configuration option are not present in CONFIG file. Please
update this file.
Missing options in CONFIG (+) file and in current config (-):
--- CONFIG file
+++ CONFIG[@]
@@ -9,6 +9,7 @@
 CONFIG_ISCSI_INITIATOR
 CONFIG_LOG_BACKTRACE
 CONFIG_LTO
+CONFIG_MISSING_OPTION_IN_CONFIG_FILE
 CONFIG_PMDK
 CONFIG_PMDK_DIR
 CONFIG_PREFIX

Change-Id: If313a95caf9dc657fc81e78baf85ac86f20565e1
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/428086
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Pawel Wodkowski 2018-10-03 19:58:52 +02:00 committed by Jim Harris
parent aaa691b0ce
commit 48f70f48cf

12
configure vendored
View File

@ -364,6 +364,18 @@ if [[ "${CONFIG[CRYPTO]}" = "y" ]]; then
fi
fi
# We are now ready to generate final configuration. But first do sanity
# check to see if all keys in CONFIG array have its reflection in CONFIG file.
if [ $(egrep -c "^\s*CONFIG_[[:alnum:]_]+\?=" CONFIG) -ne ${#CONFIG[@]} ]; then
echo ""
echo "BUG: Some configuration options are not present in CONFIG file. Please update this file."
echo "Missing options in CONFIG (+) file and in current config (-): "
diff -u --label "CONFIG file" --label "CONFIG[@]" \
<(sed -r -e '/^\s*$/d; /^\s*#.*/d; s/(CONFIG_[[:alnum:]_]+)\?=.*/\1/g' CONFIG | sort) \
<(printf "CONFIG_%s\n" ${!CONFIG[@]} | sort)
exit 1
fi
echo -n "Creating CONFIG.local..."
cp -f CONFIG CONFIG.local
for key in ${!CONFIG[@]}; do