* New make config options @ 2003-05-26 15:04 Eric 2003-05-26 15:10 ` John Anthony Kazos Jr. 2003-05-26 15:24 ` Rudmer van Dijk 0 siblings, 2 replies; 6+ messages in thread From: Eric @ 2003-05-26 15:04 UTC (permalink / raw) To: linux-kernel #DEFINE RANT 1 Ok, I may not know what I'm talking about, or it may not actually be a good idea, but I had an ipifany about the configure scripts. I spend most of my time in the configure script turning everything into a module. (I play alot, and I like to have modules available to explore). There should a button or something where it will turn everything that CAN be compiled as a module, into kernel modules. Then you can de-select a few things and compile the other few options that you need directly into the kernel. #IFDEF RANT It would save me alot of time knowing that all those stupid NIC cards are being compiled as modules when i'm not sure which one I have. I would rather have all the modules available in case NIC breaks anyways. I change NICS and i'm never sure what kind it is until it doesn't work and I need to compile ANOTHER module. I know some of them are obscure cards, but with all the options I can't really be sure if it's a card I might come across or not. I'd rather be safe and have a meg or two of NIC modules around then have to rebuild or compile a new modules when I find an exotic card. #ENDIF Modules aren't used used until they're needed anyways so It wouldn't cause conflicts or a big size differnece in the kernel (in my understanding). For us with fast machines(AMD XP1800+) it would just be an extra 5-7 minutes for the other modules to compile. Would anyone else be interested in this? ---------------------- Eric Bambach Eric@CISU.net ---------------------- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: New make config options 2003-05-26 15:04 New make config options Eric @ 2003-05-26 15:10 ` John Anthony Kazos Jr. 2003-05-26 15:24 ` Rudmer van Dijk 1 sibling, 0 replies; 6+ messages in thread From: John Anthony Kazos Jr. @ 2003-05-26 15:10 UTC (permalink / raw) To: linux-kernel >#DEFINE RANT 1 > >Ok, I may not know what I'm talking about, or it may not actually be a good >idea, but I had an ipifany about the configure scripts. > > I spend most of my time in the configure script turning > everything into a >module. (I play alot, and I like to have modules available to explore). There >should a button or something where it will turn everything that CAN be >compiled as a module, into kernel modules. Then you can de-select a few >things and compile the other few options that you need directly into the >kernel. > >#IFDEF RANT >It would save me alot of time knowing that all those stupid NIC cards are >being compiled as modules when i'm not sure which one I have. I would rather >have all the modules available in case NIC breaks anyways. I change NICS >and i'm never sure what kind it is until it doesn't work and I need to >compile ANOTHER module. I know some of them are obscure cards, but with all >the options I can't really be sure if it's a card I might come across or not. >I'd rather be safe and have a meg or two of NIC modules around then have to >rebuild or compile a new modules when I find an exotic card. >#ENDIF > > Modules aren't used used until they're needed anyways so It > wouldn't cause >conflicts or a big size differnece in the kernel (in my understanding). For >us with fast machines(AMD XP1800+) it would just be an extra 5-7 minutes for >the other modules to compile. > >Would anyone else be interested in this? I would be heavily interested in this. Right now I have a hacked-together Debian box running my server and servers for others, and I'm trying to do a full system reconstruction on the side to swap out once (and hopefully only once). One key to this is to make an absolute minimal kernel and to have everything as modules, because even if I don't have the module I need, I can compile it and use it without having to restart the machine. Being able to have an automatic option which lets me 1) specify minimal options and have everything else as "no", then 2) takes every "no" which can be a module, and turns it to module, and 3) lets me go back in and turn off any particular modules I definately don't want, would be *marvelous*. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: New make config options 2003-05-26 15:04 New make config options Eric 2003-05-26 15:10 ` John Anthony Kazos Jr. @ 2003-05-26 15:24 ` Rudmer van Dijk 2003-05-26 18:18 ` Eric 1 sibling, 1 reply; 6+ messages in thread From: Rudmer van Dijk @ 2003-05-26 15:24 UTC (permalink / raw) To: eric; +Cc: linux-kernel what about `make allmodconfig` ?? then you have a .config with most things as module and you can always use `make menuconfig` to adjust it. BTW try a `make help` to see all other make options. Rudmer ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: New make config options 2003-05-26 15:24 ` Rudmer van Dijk @ 2003-05-26 18:18 ` Eric 2003-05-26 18:26 ` Eric 2003-05-26 20:17 ` Sam Ravnborg 0 siblings, 2 replies; 6+ messages in thread From: Eric @ 2003-05-26 18:18 UTC (permalink / raw) To: linux-kernel On Monday 26 May 2003 10:24 am, Rudmer van Dijk wrote: > what about `make allmodconfig` ?? > Now if we can convince someone to code it :( I wish I could throw something together myself but I can only suggest the ideas. Hopefully someone with the time/skills/interest can put something together to do this. I would have no problems testing the feature if someone else who could write it needs some help testing. > then you have a .config with most things as module and you can always use > `make menuconfig` to adjust it. Great idea. Not really a button in make menuconfig, but a make allmodconfig and it resets everythign to modules. Then you could use the regualr make config facility to tune it. There would be no need to hack up make menuconfig. > BTW try a `make help` to see all other make options. Are you suggesting this as a feature? Lol, i tried make help and it there was no rule for it. 2.4.20 kernel. ---------------------- Eric Bambach Eric@CISU.net ---------------------- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: New make config options 2003-05-26 18:18 ` Eric @ 2003-05-26 18:26 ` Eric 2003-05-26 20:17 ` Sam Ravnborg 1 sibling, 0 replies; 6+ messages in thread From: Eric @ 2003-05-26 18:26 UTC (permalink / raw) To: linux-kernel On Monday 26 May 2003 01:18 pm, Eric wrote: > On Monday 26 May 2003 10:24 am, Rudmer van Dijk wrote: > > what about `make allmodconfig` ?? > > Now if we can convince someone to code it :( I've just been informed that this is part of the 2.5 kernel... silly me... ---------------------- Eric Bambach Eric@CISU.net ---------------------- ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: New make config options 2003-05-26 18:18 ` Eric 2003-05-26 18:26 ` Eric @ 2003-05-26 20:17 ` Sam Ravnborg 1 sibling, 0 replies; 6+ messages in thread From: Sam Ravnborg @ 2003-05-26 20:17 UTC (permalink / raw) To: Eric; +Cc: linux-kernel On Mon, May 26, 2003 at 01:18:24PM -0500, Eric wrote: > On Monday 26 May 2003 10:24 am, Rudmer van Dijk wrote: > > what about `make allmodconfig` ?? > > > Now if we can convince someone to code it :( > I wish I could throw something together myself but I can only suggest the > ideas. Hopefully someone with the time/skills/interest can put something > together to do this. I would have no problems testing the feature if someone > else who could write it needs some help testing. IIRC you can dig out allmodconfig + allnoconfig from Keith Owens kbuild-2.5 patch sets. See kbuild on sourceforge. He made a version compatible with the 2.4 kernel, and what you need is the changes to the scripts/configure script. If you do not find a 2.4 version, you can take that diff from the 2.5 kernel. [Browsing a bit - got it] It was Ghozlane Toumi who actually coded this. Here is the patch (for an older 2.5 kernel). You may have to apply it by hand. Then you just have to add a few targets in the main Makefile. Sam ===== Configure 1.5 vs 1.6 ===== --- 1.5/scripts/Configure Tue Apr 23 12:32:30 2002 +++ 1.6/scripts/Configure Thu Jun 6 02:40:52 2002 @@ -48,6 +48,10 @@ # # 24 January 1999, Michael Elizabeth Chastain, <mec@shout.net> # - Improve the exit message (Jeff Ronne). +# +# 7 October 2000, Ghozlane Toumi, <gtoumi@messel.emse.fr> +# added switches for "random" , "all yes" and "all modules" +# # # Make sure we're really running bash. @@ -76,6 +80,43 @@ } # +# returns a random number between 1 and $1 +# +function rnd () { + rnd=$[ $RANDOM % $1 + 1 ] +} + +# +# randomly chose a number in a config list (LIST_CONFIG_NAME) +# or in a range ( MIN_CONFIG_NAME MAX_CONFIG_NAME ) +# ONLY if there is no forced default (and we are in an "auto" mode) +# we are limited by the range of values taken by "$RANDOM" +# +# rndval CONFIG_NAME +# + +function rndval () { + [ "$AUTO" != "yes" -o -n "$old" ] && return + def_list=$(eval echo "\${LIST_$1}") + def_min=$(eval echo "\${MIN_$1}") + def_max=$(eval echo "\${MAX_$1}") + + if [ -n "$def_list" ]; then + set -- $(echo $def_list | sed 's/,/ /g') + rnd $# + while [ $rnd -le $# ] ; do + def=$1 + shift + done + return + fi + if [ -n "$def_min" -a -n "$def_max" ]; then + rnd $[ $def_max - $def_min ] + def=$[ $def_min + $rnd ] + fi +} + +# # help prints the corresponding help text from Configure.help to stdout # # help variable @@ -109,7 +150,11 @@ # readln prompt default oldval # function readln () { - if [ "$DEFAULT" = "-d" -a -n "$3" ]; then + if [ "$AUTO" = "yes" ]; then + echo -n "$1" + ans=$2 + echo $ans + elif [ "$DEFAULT" = "-d" -a -n "$3" ]; then echo "$1" ans=$2 else @@ -169,6 +214,17 @@ function bool () { old=$(eval echo "\${$2}") def=${old:-'n'} + if [ "$AUTO" = "yes" -a -z "$old" ]; then + if [ "$RND" = "-r" ]; then + rnd 2 + case $rnd in + "1") def="y" ;; + "2") def="n" ;; + esac + else + def=$DEF_ANS; + fi + fi case "$def" in "y" | "m") defprompt="Y/n/?" def="y" @@ -200,6 +256,18 @@ else old=$(eval echo "\${$2}") def=${old:-'n'} + if [ "$AUTO" = "yes" -a -z "$old" ]; then + if [ "$RND" = "-r" ]; then + rnd 3 + case $rnd in + "1") def="y" ;; + "2") def="n" ;; + "3") def="m" ;; + esac + else + def=$DEF_ANS + fi + fi case "$def" in "y") defprompt="Y/m/n/?" ;; @@ -256,6 +324,17 @@ if [ $need_module = 1 ]; then if [ "$CONFIG_MODULES" = "y" ]; then + if [ "$AUTO" = "yes" -a -z "$old" ]; then + if [ "$RND" = "-r" ]; then + rnd 2 + case $rnd in + "1") def="m" ;; + "2") def="n" ;; + esac + else + def=$DEF_ANS + fi + fi case "$def" in "y" | "m") defprompt="M/n/?" def="m" @@ -351,6 +430,7 @@ else max=10000000 # !! fi + rndval $2 while :; do readln "$1 ($2) [$def] " "$def" "$old" if expr \( \( $ans + 0 \) \>= $min \) \& \( $ans \<= $max \) >/dev/null 2>&1 ; then @@ -382,6 +462,7 @@ old=$(eval echo "\${$2}") def=${old:-$3} def=${def#*[x,X]} + rndval $2 while :; do readln "$1 ($2) [$def] " "$def" "$old" ans=${ans#*[x,X]} @@ -464,6 +545,15 @@ shift; shift done + if [ "$RND" = "-r" -a -z "$old" ] ; then + set -- $choices + rnd $# + while [ $rnd -le $# ] ; do + def=$1 + shift ; shift + done + fi + val="" while [ -z "$val" ]; do ambg=n @@ -512,6 +602,7 @@ CONFIG=.tmpconfig CONFIG_H=.tmpconfig.h +FORCE_DEFAULT=.force_default trap "rm -f $CONFIG $CONFIG_H ; exit 1" 1 2 # @@ -532,34 +623,57 @@ shift fi +RND="" +DEF_ANS="" +AUTO="" +case "$1" in + -r) RND="-r" ; AUTO="yes" ; shift ;; + -y) DEF_ANS="y" ; AUTO="yes" ; shift ;; + -m) DEF_ANS="m" ; AUTO="yes" ; shift ;; + -n) DEF_ANS="n" ; AUTO="yes" ; shift ;; +esac + CONFIG_IN=./config.in if [ "$1" != "" ] ; then CONFIG_IN=$1 fi -DEFAULTS=.config -if [ ! -f .config ]; then - DEFAULTS=/etc/kernel-config - if [ ! -f $DEFAULTS ]; then - DEFAULTS=/boot/config-`uname -r` - if [ ! -f $DEFAULTS ]; then - DEFAULTS=arch/$ARCH/defconfig - fi +for DEFAULTS in .config /lib/modules/`uname -r`/.config /etc/kernel-config /boot/config-`uname -r` arch/$ARCH/defconfig +do + [ -r $DEFAULTS ] && break +done + +if [ "$AUTO" != "yes" ]; then + if [ -f $DEFAULTS ]; then + echo "#" + echo "# Using defaults found in" $DEFAULTS + echo "#" + . $DEFAULTS + sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$ + . .config-is-not.$$ + rm .config-is-not.$$ + else + echo "#" + echo "# No defaults found" + echo "#" fi -fi - -if [ -f $DEFAULTS ]; then - echo "#" - echo "# Using defaults found in" $DEFAULTS - echo "#" - . $DEFAULTS - sed -e 's/# \(CONFIG_[^ ]*\) is not.*/\1=n/' <$DEFAULTS >.config-is-not.$$ - . .config-is-not.$$ - rm .config-is-not.$$ else - echo "#" - echo "# No defaults found" - echo "#" + if [ -f $FORCE_DEFAULT ]; then + echo "#" + echo "# Forcing defaults found in $FORCE_DEFAULT" + echo "#" + sed -e ' +s/# \(CONFIG_[^ ]*\) is not.*/\1=n/; +s/# range \(CONFIG_[^ ]*\) \([^ ][^ ]*\) \([^ ][^ ]*\)/MIN_\1=\2; MAX_\1=\3/; +s/# list \(CONFIG_[^ ]*\) \([^ ][^ ]*\)/LIST_\1=\2/ +' <$FORCE_DEFAULT >.default_val.$$ + . .default_val.$$ + rm .default_val.$$ + else + echo "#" + echo "# No defaults found" + echo "#" + fi fi . $CONFIG_IN ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2003-05-26 20:05 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-05-26 15:04 New make config options Eric 2003-05-26 15:10 ` John Anthony Kazos Jr. 2003-05-26 15:24 ` Rudmer van Dijk 2003-05-26 18:18 ` Eric 2003-05-26 18:26 ` Eric 2003-05-26 20:17 ` Sam Ravnborg
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.