aboutsummaryrefslogtreecommitdiff
path: root/scripts/Menuconfig
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/Menuconfig')
-rw-r--r--scripts/Menuconfig1287
1 files changed, 0 insertions, 1287 deletions
diff --git a/scripts/Menuconfig b/scripts/Menuconfig
deleted file mode 100644
index 30d06ee29..000000000
--- 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