Mercurial > hg > aboriginal
annotate sources/toys/miniconfig.sh @ 85:7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
and check in the config shrinker script while I'm at it.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 14 Jan 2007 03:11:45 -0500 |
parents | |
children | 2916a56bacd1 |
rev | line source |
---|---|
85
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1 #!/bin/sh |
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 |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
23 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
|
24 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
|
25 |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
26 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
|
27 |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
28 # 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
|
29 I=1 |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
30 while true |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
31 do |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
32 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
|
33 then |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
34 exit |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
35 fi |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 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
|
37 # 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
|
38 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
|
39 |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
40 # 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
|
41 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
|
42 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
|
43 then |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
44 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
|
45 LENGTH=$[$LENGTH-1] |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
46 else |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
47 I=$[$I + 1] |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
48 fi |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
49 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
|
50 done |
7c874da5505c
Switch config-linux to miniconfig-linux. Adjust the build and config scripts,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
51 echo |