ia64/xen-unstable

view buildconfigs/create_config.sh @ 14875:20dba1b883f2

Allow use of foo.local buildconfig overrides.
From: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Keir Fraser <keir@xensource.com>
author kfraser@localhost.localdomain
date Tue Apr 17 13:22:24 2007 +0100 (2007-04-17)
parents 84ff152efb0a
children 3fcd0b9fd083
line source
1 #!/bin/sh
2 set -e
5 # Parse arguments
6 #
7 if [ $# -lt 1 -o $# -gt 4 ]; then
8 echo "Usage: $0 config-file EXTRAVERSION XEN_TARGET_ARCH XEN_SYSTYPE"
9 exit 1
10 fi
12 config_file=$1
13 extraversion=$2
14 target_arch=$3
15 systype=$4
18 # Start with initial config skeleton file, if any.
19 # Derive from linux-defconfig_xen_x86_32 otherwise.
20 #
21 skeleton=buildconfigs/linux-defconfig_${extraversion}_${target_arch}${systype}
22 [ -r $skeleton ] || skeleton=buildconfigs/linux-defconfig_xen_x86_32
23 [ -r $skeleton.local ] && skeleton=$skeleton.local
24 cp $skeleton $config_file
27 # Update
28 #
29 filter_template="s/^#\{0,1\} *\(CONFIG[^= ]*\).*/\/^#\\\{0,1\\\} *\1[= ].*\/d/p"
30 config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} buildconfigs/conf.linux-${extraversion} buildconfigs/conf.linux-${target_arch}-${extraversion}"
32 for config_dir in $config_dirs
33 do
34 if [ -d $config_dir ]; then
35 # processing is done in alphanumeric order
36 find $config_dir -type f | sort | while read update
37 do
38 # create the filter rules in a temp file
39 filter_rules=`mktemp -t xenupdateconf.XXXXXXXXXX`
40 sed -n "${filter_template}" < $update > $filter_rules
42 # filter the config file in place, removing any options that
43 # will be updated.
44 sed -f $filter_rules -i $config_file
45 cat $update >> $config_file
47 # clean up
48 rm -f $filter_rules
49 done
50 fi
51 done