summaryrefslogtreecommitdiff
path: root/chromeos/scripts/kernelconfig
diff options
context:
space:
mode:
Diffstat (limited to 'chromeos/scripts/kernelconfig')
-rwxr-xr-xchromeos/scripts/kernelconfig95
1 files changed, 40 insertions, 55 deletions
diff --git a/chromeos/scripts/kernelconfig b/chromeos/scripts/kernelconfig
index c056c8c6086f..c4415359c38a 100755
--- a/chromeos/scripts/kernelconfig
+++ b/chromeos/scripts/kernelconfig
@@ -20,9 +20,8 @@ esac
kerneldir="`pwd`"
confdir="$kerneldir/chromeos/config"
archs="x86_64 i386 armel"
-family='chromeos'
bindir="`pwd`/chromeos/scripts"
-common_conf="$confdir/config.common.$family"
+base_conf="$confdir/base.config"
tmpdir=`mktemp -d`
if [ "$mode" = "genconfig" ]; then
@@ -47,52 +46,44 @@ for arch in $archs; do
echo "***************************************"
echo "* Processing $arch ($kernarch) ... "
archconfdir=$confdir/$arch
- flavourconfigs=$(cd $archconfdir && ls config.flavour.*[^~])
+ flavourconfigs=$(cd $archconfdir && ls *.flavour.config)
# Merge configs
- # We merge config.common.ubuntu + config.common.<arch> +
- # config.flavour.<flavour>
+ # We merge base.config + common.config + <flavour>.flavour.config
for config in $flavourconfigs; do
fullconf="$tmpdir/$arch-$config-full"
- case $config in
- *)
- : >"$fullconf"
- if [ -f $common_conf ]; then
- cat $common_conf >> "$fullconf"
- fi
- if [ -f $archconfdir/config.common.$arch ]; then
- cat $archconfdir/config.common.$arch >> "$fullconf"
- fi
- cat "$archconfdir/$config" >>"$fullconf"
- ;;
- esac
+ cp $base_conf "$fullconf"
+ cat $archconfdir/common.config >> "$fullconf"
+ cat $archconfdir/$config >> "$fullconf"
done
for config in $flavourconfigs; do
- if [ -f $archconfdir/$config ]; then
- fullconf="$tmpdir/$arch-$config-full"
- cat "$fullconf" > build/.config
- # Call oldconfig or menuconfig
- case "$mode" in
- oldconfig)
- # Weed out incorrect config parameters
- echo "* Run silentoldconfig on $arch/$config ..."
- make O=`pwd`/build ARCH=$kernarch silentoldconfig ;;
- editconfig)
- # Interactively edit config parameters
- echo " * Run menuconfig on $arch/$config... Press a key."
- read
- make O=`pwd`/build ARCH=$kernarch menuconfig ;;
- *) # Bad!
- exit 1 ;;
- esac
- cat build/.config > $archconfdir/$config
- if [ "$keep" = "1" ]; then
- cat build/.config > CONFIGS/$arch-$config
- fi
- else
- echo "!! Config not found $archconfdir/$config..."
+ fullconf="$tmpdir/$arch-$config-full"
+ mv "$fullconf" build/.config
+ # Call oldconfig or menuconfig
+ case "$mode" in
+ oldconfig)
+ # Weed out incorrect config parameters
+ echo "* Run silentoldconfig on $arch/$config ..."
+ make O=`pwd`/build ARCH=$kernarch silentoldconfig ;;
+ editconfig)
+ # Interactively edit config parameters
+ echo "* $arch/$config: press <Enter> to edit, S to skip"
+ read -s -n 1
+ if [ $REPLY = 's' -o $REPLY = 'S' ]; then
+ echo "* Skip: running silentoldconfig"
+ make O=`pwd`/build ARCH=$kernarch silentoldconfig
+ else
+ echo "* Running menuconfig"
+ make O=`pwd`/build ARCH=$kernarch menuconfig
+ fi ;;
+ *) # Bad!
+ exit 1 ;;
+ esac
+ cat build/.config > $archconfdir/$config
+ if [ "$keep" = "1" ]; then
+ mv build/.config CONFIGS/$arch-$config
fi
done
@@ -102,22 +93,16 @@ for arch in $archs; do
# Can we make this more robust by avoiding $tmpdir completely?
# This approach was used for now because I didn't want to change
# splitconfig
- (cd $archconfdir; rm config.common.$arch; $bindir/splitconfig; \
- mv config.common config.common.$arch; \
- cp config.common.$arch $tmpdir)
+ (cd $archconfdir; rm common.config; $bindir/splitconfig; \
+ mv common.config $tmpdir/$arch.config)
done
-rm -f $common_conf
-
-# Now run splitconfig on all the config.common.<arch> copied to
+# Now run splitconfig on all the <arch>.common.config copied to
# $tmpdir
(cd $tmpdir; $bindir/splitconfig)
-(
- cd $confdir;
- rm -f *-full
- grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
- for arch in $archs; do
- grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
- >$arch/config.common.$arch
- done
-)
+mv $tmpdir/common.config $base_conf
+for arch in $archs; do
+ mv $tmpdir/$arch.config $confdir/$arch/common.config
+done
+
+rm -rf $tmpdir