亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menuconfig

?? MAKEFILE 經典編寫方法
??
?? 第 1 頁 / 共 2 頁
字號:
#! /bin/sh## This script is used to configure the linux kernel.## 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().# ## Change this to TRUE if you prefer all kernel 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" arch/$ARCH/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_tristate () {	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}## Create a tristate (Yes/No/Module) radiolist function# which calls our local tristate function.## Collapses to a boolean (Yes/No) if module support is disabled.#function tristate () {	if [ "$CONFIG_MODULES" != "y" ]	then		bool "$1" "$2"	else		set_x_info "$2" "n"			case $x in		y) flag="*" ;;		m) flag="M" ;;		*) flag=" " ;;		esac			echo -ne "'$2' '<$flag> $1$info' " >>MCmenu			echo -e "		function $2 () { l_tristate '$2' \"\$1\" ;}" >>MCradiolists	fi}## Create a tristate radiolist function which is dependent on# another kernel configuration option.## Quote from the original configure script:##       If the option we depend upon is a module,#       then the only allowable options are M or N.  If Y, then#       this is a normal tristate.  This is used in cases where modules#       are nested, and one module requires the presence of something#       else in the kernel.#function dep_tristate () {	ques="$1"	var="$2"	dep=y	shift 2	while [ $# -gt 0 ]; do		if   [ "$1" = y ]; then			shift		elif [ "$1" = m ]; then			dep=m			shift		else			dep=n			shift $#		fi	done	if [ "$dep" = y ]; then	    tristate "$ques" "$var"	elif [ "$dep" = m ]; then	    mod_bool "$ques" "$var"	else 	    define_tristate "$var" n	fi}##   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 ${HELP_FILE} ]  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/^  //                        p                    }" ${HELP_FILE})     if [ -z "$text" ]     then          echo "There is no help available for this kernel option."	  return 1     else	  echo "$text"     fi  else	 echo "There is no help available for this kernel 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}## Same as bool() except options are (Module/No)#function mod_bool () {	if [ "$CONFIG_MODULES" != "y" ]; then	    define_bool "$2" "n"	else	    set_x_info "$2" "n" 	    case $x in	    y|m) flag='M' ;;	    *)   flag=' ' ;;	    esac 	    echo -ne "'$2' '<$flag> $1$info' " >>MCmenu 	    echo -e "function $2 () { l_mod_bool '$2' \"\$1\" ;}" >>MCradiolists	fi}## Same as l_bool() except options are (Module/No)#function l_mod_bool() {	if [ -n "$2" ]	then		case "$2" in		y)	echo -en "\007"			${DIALOG} --backtitle "$backtitle" \				  --infobox "\This feature depends on another which has been configured as a module.  \As a result, this feature will be built as a module." 4 70			sleep 5			eval $1=m ;;		m)	eval $1=m ;;		c)	eval x=\$$1			case $x in			m) eval $1=n ;;			n) eval $1=m ;;			*) eval $1=m ;;			esac ;;		*)	eval $1=n ;;		esac	else		echo -ne "\007"	fi}## Handle a tristate (Yes/No/Module) option.#function l_tristate () {	if [ -n "$2" ]	then		eval x=\$$1		case "$2" in		y) eval $1=y ;;		m) eval $1=m ;;		c) eval x=\$$1		   case $x in		   y) eval $1=n ;;		   n) eval $1=m ;;		   m) 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 kernel 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 a kernel 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 a kernel 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") {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线一区二区三区| 精品一区二区综合| 亚洲国产精品久久人人爱蜜臀| 亚洲综合无码一区二区| 美国精品在线观看| 99久久免费视频.com| 欧美四级电影网| 精品少妇一区二区三区免费观看| 国产三级久久久| 亚洲午夜私人影院| 国产高清精品久久久久| 色中色一区二区| 欧美电视剧在线观看完整版| 欧美国产精品一区二区三区| 亚洲成人福利片| 国产一区二区导航在线播放| 欧美中文字幕久久| 日韩欧美的一区| 亚洲男同1069视频| 老汉av免费一区二区三区| 成人av在线网站| 日韩视频国产视频| 亚洲欧美偷拍卡通变态| 九九视频精品免费| 91福利精品第一导航| 久久久国产一区二区三区四区小说 | 国产亚洲一区二区三区| 一区二区三区欧美亚洲| 国产最新精品精品你懂的| 在线欧美日韩精品| 国产午夜精品久久久久久免费视 | 在线观看欧美精品| 久久久99久久| 日韩av一二三| 色婷婷久久综合| 国产亚洲综合在线| 青青青伊人色综合久久| 日本黄色一区二区| 国产亚洲精品精华液| 日韩专区中文字幕一区二区| 91日韩在线专区| 久久精品免视看| 九九九久久久精品| 91精品国产综合久久久蜜臀粉嫩| 成人欧美一区二区三区黑人麻豆| 精品写真视频在线观看| 欧美丰满少妇xxxbbb| 亚洲美女屁股眼交3| 国产成人久久精品77777最新版本| 日韩一区和二区| 丝袜诱惑亚洲看片| 欧美亚洲尤物久久| 亚洲免费观看高清完整版在线观看熊 | 欧美乱妇20p| 亚洲免费毛片网站| 成人国产精品免费观看| 国产亚洲美州欧州综合国| 极品少妇一区二区| 日韩一级二级三级| 偷窥少妇高潮呻吟av久久免费| 91首页免费视频| 成人欧美一区二区三区1314| 国产成人精品免费视频网站| 精品国产污网站| 久久精工是国产品牌吗| 欧美一区二区三区精品| 丝袜美腿成人在线| 67194成人在线观看| 亚洲大片免费看| 欧美日韩一区二区三区视频| 一区二区三区欧美在线观看| 91久久线看在观草草青青| 亚洲欧美激情小说另类| 91片在线免费观看| 亚洲精品免费看| 91成人免费网站| 亚洲香肠在线观看| 91精品午夜视频| 免费成人在线网站| 亚洲精品在线免费播放| 国产精品影视在线观看| 国产欧美一区二区三区沐欲| 成人午夜激情片| 综合激情网...| 色婷婷综合中文久久一本| 一区二区三区视频在线看| 在线观看不卡视频| 日日夜夜精品视频天天综合网| 日韩一区二区在线免费观看| 国产呦精品一区二区三区网站| 久久久久久电影| 97精品久久久午夜一区二区三区 | 在线免费观看成人短视频| 亚洲国产精品尤物yw在线观看| 欧美理论片在线| 麻豆成人综合网| 国产日韩亚洲欧美综合| 99久久99久久精品免费观看| 亚洲高清视频中文字幕| 欧美一区2区视频在线观看| 狠狠色狠狠色合久久伊人| 国产女主播一区| 色94色欧美sute亚洲线路一久| 午夜电影网亚洲视频| 久久综合色天天久久综合图片| 成人免费高清在线观看| 亚洲精品视频观看| 欧美一区二区三区啪啪| 懂色一区二区三区免费观看| 亚洲自拍与偷拍| 在线成人av网站| 蜜臀精品一区二区三区在线观看 | 国产成人三级在线观看| 亚洲六月丁香色婷婷综合久久 | 精品在线免费观看| 国产精品剧情在线亚洲| 欧美日韩在线播放三区四区| 男人的天堂亚洲一区| 国产欧美精品一区| 色8久久人人97超碰香蕉987| 久久精品99国产精品| 成人免费在线播放视频| 91精品国产综合久久婷婷香蕉 | 亚洲男女一区二区三区| 日韩一区二区三区免费观看| 成人国产电影网| 日韩av在线发布| 国产精品美女一区二区在线观看| 欧美视频一区二区三区在线观看 | 日本一区二区视频在线| 欧美色电影在线| 国产一区视频导航| 亚洲香蕉伊在人在线观| 国产调教视频一区| 欧美日韩的一区二区| 国产成a人亚洲精品| 日韩成人午夜电影| 国产精品日韩精品欧美在线 | 精品亚洲国产成人av制服丝袜 | 色噜噜狠狠色综合中国| 极品尤物av久久免费看| 亚洲国产精品久久人人爱| 国产欧美精品日韩区二区麻豆天美| 69堂精品视频| 在线视频国内自拍亚洲视频| 国产精品1区二区.| 日韩电影免费在线看| 亚洲人成网站在线| 久久久久久黄色| 日韩一级免费观看| 精品1区2区3区| 色综合久久中文综合久久97| 国产乱理伦片在线观看夜一区| 亚洲五码中文字幕| 亚洲色图欧洲色图| 国产精品免费视频一区| 精品国产免费久久| 91精品国产乱| 欧美三级电影在线观看| 91日韩在线专区| 韩国毛片一区二区三区| 日韩精品1区2区3区| 亚洲一区二区在线观看视频| 中文字幕五月欧美| 欧美激情一区二区| 久久久午夜电影| 欧美www视频| 91精品国产一区二区三区蜜臀| 在线观看欧美日本| 欧美在线视频不卡| 色婷婷久久久久swag精品| av中文字幕一区| 波多野结衣中文字幕一区 | 1区2区3区精品视频| 国产女人18毛片水真多成人如厕 | 福利视频网站一区二区三区| 国内一区二区在线| 精品一区二区精品| 麻豆精品精品国产自在97香蕉| 日韩中文字幕一区二区三区| 香蕉成人啪国产精品视频综合网 | 欧美一区在线视频| 欧美一区2区视频在线观看| 777色狠狠一区二区三区| 欧美日韩小视频| 欧美精品久久天天躁| 色婷婷久久久亚洲一区二区三区| 一本一道久久a久久精品| 久久久久亚洲蜜桃| 欧美成人aa大片| 在线精品观看国产| 精品综合久久久久久8888| 亚洲图片激情小说| 91精品国产入口| 日韩不卡手机在线v区| 一区二区三区四区视频精品免费 | 久久久亚洲午夜电影| 91网站黄www| 国产河南妇女毛片精品久久久 | 久久免费视频一区|