annotate sources/toys/miniconfig.sh @ 194:4bb60ffd0d09

This won't work with dash either.
author Rob Landley <rob@landley.net>
date Wed, 25 Jul 2007 21:38:28 -0400
parents 2916a56bacd1
children 77dfe348925c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
194
4bb60ffd0d09 This won't work with dash either.
Rob Landley <rob@landley.net>
parents: 131
diff changeset
1 #!/bin/bash
85
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
2
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
3 # miniconfig.sh copyright 2005 by Rob Landley <rob@landley.net>
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
4 # Licensed under the GNU General Public License version 2.
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
5
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
6 # Run this in the linux kernel build directory with a starting file, and
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
7 # it creates a file called mini.config with all the redundant lines of that
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
8 # .config removed. The starting file must match what the kernel outputs.
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
9 # If it doesn't, then run "make oldconfig" on it to get one that does.
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
10
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
11 if [ $# -ne 1 ] || [ ! -f "$1" ]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
12 then
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
13 echo "Usage: miniconfig.sh configfile"
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
14 exit 1
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
15 fi
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
16
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
17 if [ "$1" == ".config" ]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
18 then
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
19 echo "It overwrites .config, rename it and try again."
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
20 exit 1
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
21 fi
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
22
131
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
23 make allnoconfig KCONFIG_ALLCONFIG="$1" > /dev/null
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
24 if [ "$(diff .config "$1" | wc -l)" -ne 4 ]
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
25 then
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
26 echo Sanity test failed, run make oldconfig on this file:
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
27 diff -u .config "$1"
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
28 exit 1
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
29 fi
2916a56bacd1 Move uClibc to miniconfig.
Rob Landley <rob@landley.net>
parents: 85
diff changeset
30
85
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
31 cp $1 mini.config
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
32 echo "Calculating mini.config..."
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
33
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
34 LENGTH=`cat $1 | wc -l`
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
35
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
36 # Loop through all lines in the file
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
37 I=1
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
38 while true
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
39 do
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
40 if [ $I -gt $LENGTH ]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
41 then
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
42 exit
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
43 fi
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
44 sed -n "${I}!p" mini.config > .config.test
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
45 # Do a config with this file
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
46 make allnoconfig KCONFIG_ALLCONFIG=.config.test > /dev/null
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
47
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
48 # Compare. The date changes so expect a small difference each time.
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
49 D=`diff .config $1 | wc -l`
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
50 if [ $D -eq 4 ]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
51 then
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
52 mv .config.test mini.config
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
53 LENGTH=$[$LENGTH-1]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
54 else
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
55 I=$[$I + 1]
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
56 fi
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
57 echo -n -e $I/$LENGTH lines `cat mini.config | wc -c` bytes "\r"
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
58 done
7c874da5505c Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff changeset
59 echo