diff options
Diffstat (limited to 'scripts/Menuconfig')
-rw-r--r-- | scripts/Menuconfig | 1287 |
1 files changed, 0 insertions, 1287 deletions
diff --git a/scripts/Menuconfig b/scripts/Menuconfig deleted file mode 100644 index 30d06ee..0000000 --- a/scripts/Menuconfig +++ /dev/null @@ -1,1287 +0,0 @@ -#! /bin/sh -# -# This script is used to configure BusyBox. -# -# It was inspired by a desire to not have to hit <enter> 9 million times -# or startup the X server just to change a single kernel parameter. -# -# This script attempts to parse the configuration files, which are -# scattered throughout the kernel source tree, and creates a temporary -# set of mini scripts which are in turn used to create nested menus and -# radiolists. -# -# It uses a very modified/mutilated version of the "dialog" utility -# written by Savio Lam (lam836@cs.cuhk.hk). Savio is not responsible -# for this script or the version of dialog used by this script. -# Please do not contact him with questions. The official version of -# dialog is available at sunsite.unc.edu or a sunsite mirror. -# -# Portions of this script were borrowed from the original Configure -# script. -# -# William Roadcap was the original author of Menuconfig. -# Michael Elizabeth Chastain (mec@shout.net) is the current maintainer. -# -# 070497 Bernhard Kaindl (bkaindl@netway.at) - get default values for -# new bool, tristate and dep_tristate parameters from the defconfig file. -# new configuration parameters are marked with '(NEW)' as in make config. -# -# 180697 Bernhard Kaindl (bkaindl@netway.at) - added the needed support -# for string options. They are handled like the int and hex options. -# -# 081297 Pavel Machek (pavel@atrey.karlin.mff.cuni.cz) - better error -# handling -# -# 131197 Michael Chastain (mec@shout.net) - output all lines for a -# choice list, not just the selected one. This makes the output -# the same as Configure output, which is important for smart config -# dependencies. -# -# 101297 Michael Chastain (mec@shout.net) - remove sound driver cruft. -# -# 221297 Michael Chastain (mec@shout.net) - make define_bool actually -# define its arguments so that later tests on them work right. -# -# 160198 Michael Chastain (mec@shout.net) - fix bug with 'c' command -# (complement existing value) when used on virgin uninitialized variables. -# -# 090398 Axel Boldt (boldt@math.ucsb.edu) - allow for empty lines in help -# texts. -# -# 12 Dec 1998, Michael Elizabeth Chastain (mec@shout.net) -# Remove a /tmp security hole in get_def (also makes it faster). -# Give uninitialized variables canonical values rather than null value. -# Change a lot of places to call set_x_info uniformly. -# Take out message about preparing version (old sound driver cruft). -# -# 13 Dec 1998, Riley H Williams <rhw@memalpha.cx> -# When an error occurs, actually display the error message as well as -# our comments thereon. -# -# 31 Dec 1998, Michael Elizabeth Chastain (mec@shout.net) -# Fix mod_bool to honor $CONFIG_MODULES. -# Fix dep_tristate to call define_bool when dependency is "n". -# -# 02 January 1999, Michael Elizabeth Chastain (mec@shout.net) -# Blow away lxdialog.scrltmp on entry to activate_menu. This protects -# against people who use commands like ' ' to select menus. -# -# 24 January 1999, Michael Elizabeth Chastain, <mec@shout.net> -# - Improve the exit message (Jeff Ronne). -# -# 06 July 1999, Andrzej M. Krzysztofowicz, <ankry@mif.pg.gda.pl> -# - Support for multiple conditions in dep_tristate(). -# - Implemented new functions: define_tristate(), define_int(), define_hex(), -# define_string(), dep_bool(). -# -# 22 October 2001, Erik Andersen <andersee@debian.org> -# - Adjusted for busybox (modified hard coded kernel specific paths, -# and everything to do with modules (tristates, modbools, etc). - - -# -# Change this to TRUE if you prefer all options listed -# in a single menu rather than the standard menu hierarchy. -# -single_menu_mode= - -# -# Make sure we're really running bash. -# -[ -z "$BASH" ] && { echo "Menuconfig requires bash" 1>&2; exit 1; } - -# -# Cache function definitions, turn off posix compliance -# -set -h +o posix - - - -# Given a configuration variable, set the global variable $x to its value, -# and the global variable $info to the string " (NEW)" if this is a new -# variable. -# -# This function looks for: (1) the current value, or (2) the default value -# from the arch-dependent defconfig file, or (3) a default passed by the caller. - -function set_x_info () { - eval x=\$$1 - if [ -z "$x" ]; then - eval `sed -n -e 's/# \(.*\) is not set.*/\1=n/' -e "/^$1=/p" sysdeps/$TARGET_OS/defconfig` - eval x=\${$1:-"$2"} - eval $1=$x - eval INFO_$1="' (NEW)'" - fi - eval info="\$INFO_$1" -} - -# -# Load the functions used by the config.in files. -# -# I do this because these functions must be redefined depending -# on whether they are being called for interactive use or for -# saving a configuration to a file. -# -# Thank the heavens bash supports nesting function definitions. -# -load_functions () { - -# -# Additional comments -# -function comment () { - comment_ctr=$[ comment_ctr + 1 ] - echo -ne "': $comment_ctr' '--- $1' " >>MCmenu -} - -# -# Define a boolean to a specific value. -# -function define_bool () { - eval $1=$2 -} - -function define_hex () { - eval $1=$2 -} - -function define_int () { - eval $1=$2 -} - -function define_string () { - eval $1="$2" -} - -# -# Create a boolean (Yes/No) function for our current menu -# which calls our local bool function. -# -function bool () { - set_x_info "$2" "n" - - case $x in - y|m) flag="*" ;; - n) flag=" " ;; - esac - - echo -ne "'$2' '[$flag] $1$info' " >>MCmenu - - echo -e "function $2 () { l_bool '$2' \"\$1\" ;}\n" >>MCradiolists -} - -# -# Same as above, but now only Y and N are allowed as dependency -# (i.e. third and next arguments). -# -function dep_bool () { - ques="$1" - var="$2" - dep=y - shift 2 - while [ $# -gt 0 ]; do - if [ "$1" = y ]; then - shift - else - dep=n - shift $# - fi - done - if [ "$dep" = y ]; then - bool "$ques" "$var" - else - define_bool "$var" n - fi -} - -function dep_mbool () { - ques="$1" - var="$2" - dep=y - shift 2 - while [ $# -gt 0 ]; do - if [ "$1" = y -o "$1" = m ]; then - shift - else - dep=n - shift $# - fi - done - if [ "$dep" = y ]; then - bool "$ques" "$var" - else - define_bool "$var" n - fi -} - -# -# Add a menu item which will call our local int function. -# -function int () { - set_x_info "$2" "$3" - - echo -ne "'$2' '($x) $1$info' " >>MCmenu - - echo -e "function $2 () { l_int '$1' '$2' '$3' '$x' ;}" >>MCradiolists -} - -# -# Add a menu item which will call our local hex function. -# -function hex () { - set_x_info "$2" "$3" - x=${x##*[x,X]} - - echo -ne "'$2' '($x) $1$info' " >>MCmenu - - echo -e "function $2 () { l_hex '$1' '$2' '$3' '$x' ;}" >>MCradiolists -} - -# -# Add a menu item which will call our local string function. -# -function string () { - set_x_info "$2" "$3" - - echo -ne "'$2' ' $1: \"$x\"$info' " >>MCmenu - - echo -e "function $2 () { l_string '$1' '$2' '$3' '$x' ;}" >>MCradiolists -} - -# -# Add a menu item which will call our local One-of-Many choice list. -# -function choice () { - # - # Need to remember params cause they're gonna get reset. - # - title=$1 - choices=$2 - default=$3 - current= - - # - # Find out if one of the choices is already set. - # If it's not then make it the default. - # - set -- $choices - firstchoice=$2 - - while [ -n "$2" ] - do - if eval [ "_\$$2" = "_y" ] - then - current=$1 - break - fi - shift ; shift - done - - : ${current:=$default} - - echo -ne "'$firstchoice' '($current) $title' " >>MCmenu - - echo -e " - function $firstchoice () \ - { l_choice '$title' \"$choices\" \"$current\" ;}" >>MCradiolists -} - -} # END load_functions() - - - - - -# -# Extract available help for an option from Configure.help -# and send it to standard output. -# -# Most of this function was borrowed from the original kernel -# Configure script. -# -function extract_help () { - if [ -f docs/Configure.help ] - then - #first escape regexp special characters in the argument: - var=$(echo "$1"|sed 's/[][\/.^$*]/\\&/g') - #now pick out the right help text: - text=$(sed -n "/^$var[ ]*\$/,\${ - /^$var[ ]*\$/c\\ -${var}:\\ - - /^#/b - /^[^ ]/q - s/^ // - /<file:\\([^>]*\\)>/s//\\1/g - p - }" docs/Configure.help) - - if [ -z "$text" ] - then - echo "There is no help available for this option." - return 1 - else - echo "$text" - fi - else - echo "There is no help available for this option." - return 1 - fi -} - -# -# Activate a help dialog. -# -function help () { - if extract_help $1 >help.out - then - $DIALOG --backtitle "$backtitle" --title "$2"\ - --textbox help.out $ROWS $COLS - else - $DIALOG --backtitle "$backtitle" \ - --textbox help.out $ROWS $COLS - fi - rm -f help.out -} - -# -# Show the README file. -# -function show_readme () { - $DIALOG --backtitle "$backtitle" \ - --textbox scripts/README.Menuconfig $ROWS $COLS -} - -# -# Begin building the dialog menu command and Initialize the -# Radiolist function file. -# -function menu_name () { - echo -ne "$DIALOG --title '$1'\ - --backtitle '$backtitle' \ - --menu '$menu_instructions' \ - $ROWS $COLS $((ROWS-10)) \ - '$default' " >MCmenu - >MCradiolists -} - -# -# Add a submenu option to the menu currently under construction. -# -function submenu () { - echo -ne "'activate_menu $2' '$1 --->' " >>MCmenu -} - -# -# Handle a boolean (Yes/No) option. -# -function l_bool () { - if [ -n "$2" ] - then - case "$2" in - y|m) eval $1=y ;; - c) eval x=\$$1 - case $x in - y) eval $1=n ;; - n) eval $1=y ;; - *) eval $1=y ;; - esac ;; - *) eval $1=n ;; - esac - else - echo -ne "\007" - fi -} - -# -# Create a dialog for entering an integer into a option. -# -function l_int () { - while true - do - if $DIALOG --title "$1" \ - --backtitle "$backtitle" \ - --inputbox "$inputbox_instructions_int" \ - 10 75 "$4" 2>MCdialog.out - then - answer="`cat MCdialog.out`" - answer="${answer:-$3}" - - # Semantics of + and ? in GNU expr changed, so - # we avoid them: - if expr "$answer" : '0$' '|' "$answer" : '[1-9][0-9]*$' '|' "$answer" : '-[1-9][0-9]*$' >/dev/null - then - eval $2="$answer" - else - eval $2="$3" - echo -en "\007" - ${DIALOG} --backtitle "$backtitle" \ - --infobox "You have made an invalid entry." 3 43 - sleep 2 - fi - - break - fi - - help "$2" "$1" - done -} - -# -# Create a dialog for entering a hexadecimal into an option. -# -function l_hex () { - while true - do - if $DIALOG --title "$1" \ - --backtitle "$backtitle" \ - --inputbox "$inputbox_instructions_hex" \ - 10 75 "$4" 2>MCdialog.out - then - answer="`cat MCdialog.out`" - answer="${answer:-$3}" - answer="${answer##*[x,X]}" - - if expr "$answer" : '[0-9a-fA-F][0-9a-fA-F]*$' >/dev/null - then - eval $2="$answer" - else - eval $2="$3" - echo -en "\007" - ${DIALOG} --backtitle "$backtitle" \ - --infobox "You have made an invalid entry." 3 43 - sleep 2 - fi - - break - fi - - help "$2" "$1" - done -} - -# -# Create a dialog for entering a string into an option. -# -function l_string () { - while true - do - if $DIALOG --title "$1" \ - --backtitle "$backtitle" \ - --inputbox "$inputbox_instructions_string" \ - 10 75 "$4" 2>MCdialog.out - then - answer="`cat MCdialog.out`" - answer="${answer:-$3}" - - # - # Someone may add a nice check for the entered - # string here... - # - eval $2=\"$answer\" - - break - fi - - help "$2" "$1" - done -} - - -# -# Handle a one-of-many choice list. -# -function l_choice () { - # - # Need to remember params cause they're gonna get reset. - # - title="$1" - choices="$2" - current="$3" - chosen= - - # - # Scan current value of choices and set radiolist switches. - # - list= - set -- $choices - firstchoice=$2 - while [ -n "$2" ] - do - case "$1" in - "$current"*) if [ -z "$chosen" ]; then - list="$list $2 $1 ON " - chosen=1 - else - list="$list $2 $1 OFF " - fi ;; - *) list="$list $2 $1 OFF " ;; - esac - - shift ; shift - done - - while true - do - if $DIALOG --title "$title" \ - --backtitle "$backtitle" \ - --radiolist "$radiolist_instructions" \ - 15 70 6 $list 2>MCdialog.out - then - choice=`cat MCdialog.out` - break - fi - - help "$firstchoice" "$title" - done - - # - # Now set the boolean value of each option based on - # the selection made from the radiolist. - # - set -- $choices - while [ -n "$2" ] - do - if [ "$2" = "$choice" ] - then - eval $2="y" - else - eval $2="n" - fi - - shift ; shift - done -} - -# -# Call awk, and watch for error codes, etc. -# -function callawk () { -awk "$1" || echo "Awk died with error code $?. Giving up." || exit 1 -} - -# -# A faster awk based recursive parser. (I hope) -# -function parser1 () { -callawk ' -BEGIN { - menu_no = 0 - comment_is_option = 0 - parser("'$CONFIG_IN'","MCmenu0") -} - -function parser(ifile,menu) { - - while (getline <ifile) { - if ($1 == "mainmenu_option") { - comment_is_option = "1" - } - else if ($1 == "comment" && comment_is_option == "1") { - comment_is_option= "0" - sub($1,"",$0) - ++menu_no - - printf("submenu %s MCmenu%s\n", $0, menu_no) >>menu - - newmenu = sprintf("MCmenu%d", menu_no); - printf( "function MCmenu%s () {\n"\ - "default=$1\n"\ - "menu_name %s\n",\ - menu_no, $0) >newmenu - - parser(ifile, newmenu) - } - else if ($0 ~ /^#|\$MAKE|mainmenu_name/) { - printf("") >>menu - } - else if ($1 ~ "endmenu") { - printf("}\n") >>menu - return - } - else if ($1 == "source") { - parser($2,menu) - } - else { - print >>menu - } - } -}' -} - -# -# Secondary parser for single menu mode. -# -function parser2 () { -callawk ' -BEGIN { - parser("'$CONFIG_IN'","MCmenu0") -} - -function parser(ifile,menu) { - - while (getline <ifile) { - if ($0 ~ /^#|$MAKE|mainmenu_name/) { - printf("") >>menu - } - else if ($1 ~ /mainmenu_option|endmenu/) { - printf("") >>menu - } - else if ($1 == "source") { - parser($2,menu) - } - else { - print >>menu - } - } -}' -} - -# -# Parse all the config.in files into mini scripts. -# -function parse_config_files () { - rm -f MCmenu* - - echo "function MCmenu0 () {" >MCmenu0 - echo 'default=$1' >>MCmenu0 - echo "menu_name 'Main Menu'" >>MCmenu0 - - if [ "_$single_menu_mode" = "_TRUE" ] - then - parser2 - else - parser1 - fi - - echo "comment ''" >>MCmenu0 - echo "g_alt_config" >>MCmenu0 - echo "s_alt_config" >>MCmenu0 - - echo "}" >>MCmenu0 - - # - # These mini scripts must be sourced into the current - # environment in order for all of this to work. Leaving - # them on the disk as executables screws up the recursion - # in activate_menu(), among other things. Once they are - # sourced we can discard them. - # - for i in MCmenu* - do - echo -n "." - source ./$i - done - rm -f MCmenu* -} - -# -# This is the menu tree's bootstrap. -# -# Executes the parsed menus on demand and creates a set of functions, -# one per configuration option. These functions will in turn execute -# dialog commands or recursively call other menus. -# -function activate_menu () { - rm -f lxdialog.scrltmp - while true - do - comment_ctr=0 #So comment lines get unique tags - - $1 "$default" 2> MCerror #Create the lxdialog menu & functions - - if [ "$?" != "0" ] - then - clear - cat <<EOM - -Menuconfig has encountered a possible error in one of BusyBox's -configuration files and is unable to continue. Here is the error -report: - -EOM - sed 's/^/ Q> /' MCerror - cat <<EOM - -Please report this to the maintainer <mec@shout.net>. You may also -send a problem report to <busybox@busybox.net>. - -Please indicate the BusyBox version you are trying to configure and -which menu you were trying to enter when this error occurred. - -EOM - cleanup - exit 1 - fi - rm -f MCerror - - . ./MCradiolists #Source the menu's functions - - . ./MCmenu 2>MCdialog.out #Activate the lxdialog menu - ret=$? - - read selection <MCdialog.out - - case "$ret" in - 0|3|4|5|6) - defaults="$selection$defaults" #pseudo stack - case "$ret" in - 0) eval $selection ;; - 3) eval $selection y ;; - 4) eval $selection n ;; - 5) eval $selection m ;; - 6) eval $selection c ;; - esac - default="${defaults%%*}" defaults="${defaults#*}" - ;; - 2) - default="${selection%%\ *}" - - case "$selection" in - *"-->"*|*"alt_config"*) - show_readme ;; - *) - eval help $selection ;; - esac - ;; - 255|1) - break - ;; - 139) - stty sane - clear - cat <<EOM - -There seems to be a problem with the lxdialog companion utility which is -built prior to running Menuconfig. Usually this is an indicator that you -have upgraded/downgraded your ncurses libraries and did not remove the -old ncurses header file(s) in /usr/include or /usr/include/ncurses. - -It is VERY important that you have only one set of ncurses header files -and that those files are properly version matched to the ncurses libraries -installed on your machine. - -You may also need to rebuild lxdialog. This can be done by moving to -the /usr/src/linux/scripts/lxdialog directory and issuing the -"make clean all" command. - -If you have verified that your ncurses install is correct, you may email -the maintainer <andersen@codepoet.org> or post a message to -<busybox@busybox.net> for additional assistance. - -EOM - cleanup - exit 139 - ;; - esac - done -} - -# -# Create a menu item to load an alternate configuration file. -# -g_alt_config () { - echo -n "get_alt_config 'Load an Alternate Configuration File' "\ - >>MCmenu -} - -# -# Get alternate config file name and load the -# configuration from it. -# -get_alt_config () { - set -f ## Switch file expansion OFF - - while true - do - ALT_CONFIG="${ALT_CONFIG:-$DEFAULTS}" - - $DIALOG --backtitle "$backtitle" \ - --inputbox "\ -Enter the name of the configuration file you wish to load. \ -Accept the name shown to restore the configuration you \ -last retrieved. Leave blank to abort."\ - 11 55 "$ALT_CONFIG" 2>MCdialog.out - - if [ "$?" = "0" ] - then - ALT_CONFIG=`cat MCdialog.out` - - [ "_" = "_$ALT_CONFIG" ] && break - - if eval [ -r "$ALT_CONFIG" ] - then - eval load_config_file "$ALT_CONFIG" - break - else - echo -ne "\007" - $DIALOG --backtitle "$backtitle" \ - --infobox "File does not exist!" 3 38 - sleep 2 - fi - else - cat <<EOM >help.out - -For various reasons, one may wish to keep several different BusyBox -configurations available on a single machine. - -If you have saved a previous configuration in a file other than the -busybox default, entering the name of the file here will allow you -to modify that configuration. - -If you are uncertain, then you have probably never used alternate -configuration files. You should therefor leave this blank to abort. - -EOM - $DIALOG --backtitle "$backtitle"\ - --title "Load Alternate Configuration"\ - --textbox help.out $ROWS $COLS - fi - done - - set +f ## Switch file expansion ON - rm -f help.out MCdialog.out -} - -# -# Create a menu item to store an alternate config file. -# -s_alt_config () { - echo -n "save_alt_config 'Save Configuration to an Alternate File' "\ - >>MCmenu -} - -# -# Get an alternate config file name and save the current -# configuration to it. -# -save_alt_config () { - set -f ## Switch file expansion OFF - - while true - do - $DIALOG --backtitle "$backtitle" \ - --inputbox "\ -Enter a filename to which this configuration should be saved \ -as an alternate. Leave blank to abort."\ - 10 55 "$ALT_CONFIG" 2>MCdialog.out - - if [ "$?" = "0" ] - then - ALT_CONFIG=`cat MCdialog.out` - - [ "_" = "_$ALT_CONFIG" ] && break - - if eval touch $ALT_CONFIG 2>/dev/null - then - eval save_configuration $ALT_CONFIG - load_functions ## RELOAD - break - else - echo -ne "\007" - $DIALOG --backtitle "$backtitle" \ - --infobox "Can't create file! Probably a nonexistent directory." 3 60 - sleep 2 - fi - else - cat <<EOM >help.out - -For various reasons, one may wish to keep different BusyBox -configurations available on a single machine. - -Entering a file name here will allow you to later retrieve, modify -and use the current configuration as an alternate to whatever -configuration options you have selected at that time. - -If you are uncertain what all this means then you should probably -leave this blank. -EOM - $DIALOG --backtitle "$backtitle"\ - --title "Save Alternate Configuration"\ - --textbox help.out $ROWS $COLS - fi - done - - set +f ## Switch file expansion ON - rm -f help.out MCdialog.out -} - -# -# Load config options from a file. -# Converts all "# OPTION is not set" lines to "OPTION=n" lines -# -function load_config_file () { - awk ' - /# .* is not set.*/ { printf("%s=n\n", $2) } - ! /# .* is not set.*/ { print } - ' $1 >.tmpconfig - - source ./.tmpconfig - rm -f .tmpconfig -} - -# -# Just what it says. -# -save_configuration () { - echo - echo -n "Saving your BusyBox configuration." - - # - # Now, let's redefine the configuration functions for final - # output to the config files. - # - # Nested function definitions, YIPEE! - # - function bool () { - set_x_info "$2" "n" - eval define_bool "$2" "$x" - } - - function dep_bool () { - set_x_info "$2" "n" - var="$2" - shift 2 - while [ $# -gt 0 ]; do - if [ "$1" = y ]; then - shift - else - x=n; shift $# - fi - done - define_bool "$var" "$x" - } - - function int () { - set_x_info "$2" "$3" - echo "$2=$x" >>$CONFIG - echo "#define $2 ($x)" >>$CONFIG_H - } - - function hex () { - set_x_info "$2" "$3" - echo "$2=$x" >>$CONFIG - echo "#define $2 0x${x##*[x,X]}" >>$CONFIG_H - } - - function string () { - set_x_info "$2" "$3" - echo "$2=\"$x\"" >>$CONFIG - echo "#define $2 \"$x\"" >>$CONFIG_H - } - - function define_hex () { - eval $1="$2" - echo "$1=$2" >>$CONFIG - echo "#define $1 0x${2##*[x,X]}" >>$CONFIG_H - } - - function define_int () { - eval $1="$2" - echo "$1=$2" >>$CONFIG - echo "#define $1 ($2)" >>$CONFIG_H - } - - function define_string () { - eval $1="$2" - echo "$1=\"$2\"" >>$CONFIG - echo "#define $1 \"$2\"" >>$CONFIG_H - } - - function define_bool () { - define_tristate "$1" "$2" - } - - function define_tristate () { - eval $1="$2" - - case "$2" in - y) - echo "$1=y" >>$CONFIG - echo "#define $1 1" >>$CONFIG_H - ;; - - n) - echo "# $1 is not set" >>$CONFIG - echo "#undef $1" >>$CONFIG_H - ;; - esac - } - - function choice () { - # - # Find the first choice that's already set to 'y' - # - choices="$2" - default="$3" - current= - chosen= - - set -- $choices - while [ -n "$2" ] - do - if eval [ "_\$$2" = "_y" ] - then - current=$1 - break - fi - shift ; shift - done - - # - # Use the default if none were set. - # - : ${current:=$default} - - # - # Output all choices (to be compatible with other configs). - # - set -- $choices - while [ -n "$2" ] - do - case "$1" in - "$current"*) if [ -z "$chosen" ]; then - define_bool "$2" "y" - chosen=1 - else - define_bool "$2" "n" - fi ;; - *) define_bool "$2" "n" ;; - esac - shift ; shift - done - } - - function mainmenu_name () { - : - } - - function mainmenu_option () { - comment_is_option=TRUE - } - - function endmenu () { - : - } - - function comment () { - if [ "$comment_is_option" ] - then - comment_is_option= - echo >>$CONFIG - echo "#" >>$CONFIG - echo "# $1" >>$CONFIG - echo "#" >>$CONFIG - - echo >>$CONFIG_H - echo "/*" >>$CONFIG_H - echo " * $1" >>$CONFIG_H - echo " */" >>$CONFIG_H - fi - } - - echo -n "." - - DEF_CONFIG="${1:-.config}" - DEF_CONFIG_H="include/config.h" - - CONFIG=.tmpconfig - CONFIG_H=.tmpconfig.h - - echo "#" >$CONFIG - echo "# Automatically generated by make menuconfig: don't edit" >>$CONFIG - echo "#" >>$CONFIG - - echo "/*" >$CONFIG_H - echo " * Automatically generated by make menuconfig: don't edit" >>$CONFIG_H - echo " */" >>$CONFIG_H - echo "#define AUTOCONF_INCLUDED" >> $CONFIG_H - - echo -n "." - if . $CONFIG_IN >>.menuconfig.log 2>&1 - then - if [ "$DEF_CONFIG" = ".config" ] - then - mv $CONFIG_H $DEF_CONFIG_H - fi - - if [ -f "$DEF_CONFIG" ] - then - rm -f ${DEF_CONFIG}.old - mv $DEF_CONFIG ${DEF_CONFIG}.old - fi - - mv $CONFIG $DEF_CONFIG - - return 0 - else - return 1 - fi -} - -# -# Remove temporary files -# -cleanup () { - cleanup1 - cleanup2 -} - -cleanup1 () { - rm -f MCmenu* MCradiolists MCdialog.out help.out -} - -cleanup2 () { - rm -f .tmpconfig .tmpconfig.h -} - -set_geometry () { - # Some distributions export these with incorrect values - # which can really screw up some ncurses programs. - LINES= COLUMNS= - - ROWS=${1:-24} COLS=${2:-80} - - # Just in case the nasty rlogin bug returns. - # - [ $ROWS = 0 ] && ROWS=24 - [ $COLS = 0 ] && COLS=80 - - if [ $ROWS -lt 19 -o $COLS -lt 80 ] - then - echo -e "\n\007Your display is too small to run Menuconfig!" - echo "It must be at least 19 lines by 80 columns." - exit 1 - fi - - ROWS=$((ROWS-4)) COLS=$((COLS-5)) -} - - -set_geometry `stty size 2>/dev/null` - -menu_instructions="\ -Enabling options will increase the size of busybox. \ -Arrow keys navigate the menu. \ -Pressing <Enter> selects submenus --->. \ -Highlighted letters are hotkeys. \ -Pressing <Y> includes, and <N> excludes. \ -Press <Esc><Esc> to exit, <?> for Help. \ -Legend: [*] built-in [ ] excluded" - - -radiolist_instructions="\ -Use the arrow keys to navigate this window or \ -press the hotkey of the item you wish to select \ -followed by the <SPACE BAR>. -Press <?> for additional information about this option." - -inputbox_instructions_int="\ -Please enter a decimal value. \ -Fractions will not be accepted. \ -Use the <TAB> key to move from the input field to the buttons below it." - -inputbox_instructions_hex="\ -Please enter a hexadecimal value. \ -Use the <TAB> key to move from the input field to the buttons below it." - -inputbox_instructions_string="\ -Please enter a string value. \ -Use the <TAB> key to move from the input field to the buttons below it." - -DIALOG="./scripts/lxdialog/lxdialog" - -bb_version="${VERSION}" -backtitle="BusyBox v$bb_version Configuration" - -trap "cleanup ; exit 1" 1 2 15 - - -# -# Locate default files. -# -CONFIG_IN=./config.in -if [ "$1" != "" ] ; then - CONFIG_IN=$1 -fi - -DEFAULTS=sysdeps/$TARGET_OS/defconfig -if [ -f .config ]; then - DEFAULTS=.config -fi - -if [ -f $DEFAULTS ] -then - echo "Using defaults found in" $DEFAULTS - load_config_file $DEFAULTS -else - echo "No defaults found" -fi - - -# Fresh new log. ->.menuconfig.log - -# Load the functions used by the config.in files. -echo -n "Preparing scripts: functions" -load_functions - -if [ ! -e $CONFIG_IN ] -then - echo "Your main config.in file ($CONFIG_IN) does not exist" - exit 1 -fi - -if [ ! -x $DIALOG ] -then - echo "Your lxdialog utility does not exist" - exit 1 -fi - -# -# Read config.in files and parse them into one shell function per menu. -# -echo -n ", parsing" -parse_config_files $CONFIG_IN - -echo "done." -# -# Start the ball rolling from the top. -# -activate_menu MCmenu0 - -# -# All done! -# -cleanup1 - -# -# Confirm and Save -# -if $DIALOG --backtitle "$backtitle" \ - --yesno "Do you wish to save your new BusyBox configuration?" 5 60 -then - save_configuration - echo - echo - echo "*** End of BusyBox configuration." - echo "*** Check the top-level Makefile for additional configuration." - if [ ! -f .hdepend ] ; then - echo "*** Next, you must run 'make dep'." - else - echo "*** Next, you should run 'make' or 'make install'." - fi - echo -else - echo - echo - echo Your BusyBox configuration changes were NOT saved. - echo -fi - -# Remove log if empty. -if [ ! -s .menuconfig.log ] ; then - rm -f .menuconfig.log -fi - -exit 0 |