From: Steven Smith Date: Tue, 30 Jun 2009 11:55:47 +0000 (+0100) Subject: patch config-create_config-script X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=97070dd9083615fd015ed22ec9707b50695f203a;p=people%2Fssmith%2Fnc2-2.6.27.git patch config-create_config-script --- diff --git a/buildconfigs/create_config.sh b/buildconfigs/create_config.sh new file mode 100644 index 00000000..529b7fad --- /dev/null +++ b/buildconfigs/create_config.sh @@ -0,0 +1,54 @@ +#!/bin/sh +set -e + + +# Parse arguments +# +if [ $# -lt 1 -o $# -gt 4 ]; then + echo "Usage: $0 config-file EXTRAVERSION XEN_TARGET_ARCH XEN_SYSTYPE" + exit 1 +fi + +config_file=$1 +extraversion=$2 +target_arch=$3 +systype=$4 + + +# Start with initial config skeleton file, if any. +# Derive from linux-defconfig_xen_x86_32 otherwise. +# +skeleton=buildconfigs/linux-defconfig_${extraversion#-}_${target_arch}${systype} +[ -r $skeleton ] || skeleton=buildconfigs/linux-defconfig_xen_x86_32 +[ -r $skeleton.local ] && skeleton=$skeleton.local +cp $skeleton $config_file + +echo "Using $skeleton as base config" + +# Update +# +filter_template="s/^#\{0,1\} *\(CONFIG[^= ]*\).*/\/^#\\\{0,1\\\} *\1[= ].*\/d/p" +config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} buildconfigs/conf.linux${extraversion} buildconfigs/conf.linux-${target_arch}${extraversion}" + +for config_dir in $config_dirs +do + if [ -d $config_dir ]; then + echo "Processing $config_dir..." 1>&2 + # processing is done in alphanumeric order + find $config_dir -type f | sort | while read update + do + echo " ... $update" 1>&2 + # create the filter rules in a temp file + filter_rules=`mktemp -t xenupdateconf.XXXXXXXXXX` + sed -n "${filter_template}" < $update > $filter_rules + + # filter the config file in place, removing any options that + # will be updated. + sed -f $filter_rules -i $config_file + cat $update >> $config_file + + # clean up + rm -f $filter_rules + done + fi +done