Mercurial > hg > aboriginal
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 |
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 | 23 make allnoconfig KCONFIG_ALLCONFIG="$1" > /dev/null |
24 if [ "$(diff .config "$1" | wc -l)" -ne 4 ] | |
25 then | |
26 echo Sanity test failed, run make oldconfig on this file: | |
27 diff -u .config "$1" | |
28 exit 1 | |
29 fi | |
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 |