Skip to content

Commit

Permalink
merge_config.sh: Add option to specify output dir
Browse files Browse the repository at this point in the history
Provide a -O option to specify dir to put generated .config
Then merge_config.sh does not need to be copied to target dir,
for easy re-usage in other script

Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Tested-by: Jon Medhurst (Tixy) <tixy@linaro.org>
Acked-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
  • Loading branch information
Zhangfei Gao authored and Michal Marek committed Dec 9, 2012
1 parent 169dfd8 commit 409f117
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions scripts/kconfig/merge_config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@ usage() {
echo " -m only merge the fragments, do not execute the make command"
echo " -n use allnoconfig instead of alldefconfig"
echo " -r list redundant entries when merging fragments"
echo " -O dir to put generated output files"
}

MAKE=true
ALLTARGET=alldefconfig
WARNREDUN=false
OUTPUT=.

while true; do
case $1 in
Expand All @@ -59,6 +61,16 @@ while true; do
shift
continue
;;
"-O")
if [ -d $2 ];then
OUTPUT=$(echo $2 | sed 's/\/*$//')
else
echo "output directory $2 does not exist" 1>&2
exit 1
fi
shift 2
continue
;;
*)
break
;;
Expand Down Expand Up @@ -100,9 +112,9 @@ for MERGE_FILE in $MERGE_LIST ; do
done

if [ "$MAKE" = "false" ]; then
cp $TMP_FILE .config
cp $TMP_FILE $OUTPUT/.config
echo "#"
echo "# merged configuration written to .config (needs make)"
echo "# merged configuration written to $OUTPUT/.config (needs make)"
echo "#"
clean_up
exit
Expand All @@ -111,14 +123,14 @@ fi
# Use the merged file as the starting point for:
# alldefconfig: Fills in any missing symbols with Kconfig default
# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
make KCONFIG_ALLCONFIG=$TMP_FILE $ALLTARGET
make KCONFIG_ALLCONFIG=$TMP_FILE O=$OUTPUT $ALLTARGET


# Check all specified config values took (might have missed-dependency issues)
for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do

REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
ACTUAL_VAL=$(grep -w -e "$CFG" .config)
ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
echo "Value requested for $CFG not in final .config"
echo "Requested value: $REQUESTED_VAL"
Expand Down

0 comments on commit 409f117

Please sign in to comment.