You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							547 lines
						
					
					
						
							17 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							547 lines
						
					
					
						
							17 KiB
						
					
					
				| #!/bin/bash | |
|  | |
| CPUS(){ nproc;}; | |
| clean(){ _clean;}; | |
| _nl(){ echo -e "$rs_";}; | |
| _set_dialog_types(){ | |
| 	gui="$(which dialog)"; | |
| 	st_="--stdout"; | |
| 	ib_="--infobox"; | |
| 	ip_="--inputbox"; | |
| 	nc_="--no-cancel"; | |
| 	cl_="--checklist"; | |
| 	rl_="--radiolist"; | |
| 	bt_="--backtitle"; | |
| 	pb_="--progressbox"; | |
| 	title_="SIMPLEBUILD_V($SIMPLEVERSION)";}; | |
| cedit(){ s3cfg_menu;bye;}; | |
| counter(){ COUNT="$((COUNT+1))";}; | |
| timer_calc(){ Tcalc="$((Te-Ts))";}; | |
| timer_stop(){ Te="$(date +%s)";}; | |
| timer_start(){ Ts="$(date +%s)";}; | |
| decode(){ echo -en "$1" | base64 -d;}; | |
| get_module_name(){ echo "${INTERNAL_MODULES[$1]}";}; | |
| _fix_config_h(){ _=0; | |
| #_pcsc_off;_stapi5_off; | |
| }; | |
| _wait(){ echo -e "$w_l";read -n1 -r -p "  $txt_help3" key;tput cuu1;echo '                                          ';} | |
| _systype(){ systype="bad";case "$(uname -m)" in x86|x86_64|amd64|i686) systype="ok";;esac;}; | |
| _pcsc_on(){  sed -i 's@^//#define CARDREADER_PCSC 1@#define CARDREADER_PCSC 1@g' "$svndir/config.h";}; | |
| _pcsc_off(){ sed -i 's@^#define CARDREADER_PCSC 1@//#define CARDREADER_PCSC 1@g' "$svndir/config.h";}; | |
| _stapi5_on(){  sed -i 's@^//#define CARDREADER_STAPI5 1@#define CARDREADER_STAPI5 1@g' "$svndir/config.h";}; | |
| _stapi5_off(){ sed -i 's@^#define CARDREADER_STAPI5 1@//#define CARDREADER_STAPI5 1@g' "$svndir/config.h";}; | |
| _generate_oscam_name(){ cd "$svndir";_dvbapi=$( | |
| [ "$(./config.sh --enabled HAVE_DVBAPI)" == Y ] && echo -n -dvbapi || echo ''; );_webif=$( | |
| [ "$(./config.sh --enabled WEBIF)"       == Y ] && echo -n -webif  || echo ''; );_ssl=$( | |
| [ "$(./config.sh --enabled WITH_SSL)"    == Y ] && echo -n -ssl    || echo ''; );_emu=$( | |
| [ "$(./config.sh --enabled WITH_EMU)"    == Y ] && echo -n -emu    || echo ''; );_ipv6=$( | |
| [ "$(./config.sh --enabled IPV6SUPPORT)" == Y ] && echo -n -ipv6   || echo ''; ); | |
| [ "${USE_vars[USE_COMPRESS]}" == "USE_COMPRESS=1" ] && _upx="-upx" || _upx=''; | |
| [ "$1" == "native" ] && _b_name="$(hostname)$_upx" || _b_name="$1"; | |
| oscam_name="oscam-svn$(REVISION)-$_b_name$_webif$_dvbapi$_ssl$_usb$_pcsc$_stapi$_stapi5$_emu$_ipv6$_upx";}; | |
| e_readers(){ silent=$("$svndir/config.sh" -s readers);echo ${silent//READER_/};}; | |
| e_protocols() { silent=$("$svndir/config.sh" -s protocols);echo ${silent//MODULE_/};}; | |
| e_card_readers(){ silent=$("$svndir/config.sh" -s card_readers);echo ${silent//CARDREADER_/};}; | |
| e_addons(){ "$svndir/config.sh" -s addons |sed 's/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g';}; | |
| sysinfo(){ | |
| 	echo -e "$g_l\nSYSTEM$w_l"; | |
| 	system_info=$(which lsb_release); | |
| 	[ ${#system_info} -ge 11 ] && lsb_release -irc; | |
| 	echo -e "Uptime:\t\t$(uptime -p)"; | |
| 	echo -e "$g_l\nMEMORY$w_l"; | |
| 	free -mht | awk '/Mem/{print "Memory:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"} /Swap/{print "Swap:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb" }'; | |
| 	[ -f /sys/dev/block ] && lsblk; | |
| 	echo -e "$g_l\n CPU$w_l"; | |
| 	cpu_info=$(which lscpu); | |
| 	[ ${#cpu_info} -ge 5 ] && lscpu | grep -iE 'model name|vendor id|Architecture|per socket|MHz'; | |
| 	echo -e "$g_l\nNetwork"; | |
| 	echo -e "$w_l""Hostname:\t$HOSTNAME"; | |
| 	ip -o addr | awk '/inet /{print "IP (" $2 "):\t" $4}'; | |
| 	route -n | awk '/^0.0.0.0/{ printf "Gateway:\t"$2"\n" }'; | |
| 	awk '/^nameserver/{ printf "Name Server:\t" $2 "\n"}' /etc/resolv.conf; | |
| 	echo -e "$re_"; | |
| 	exit; | |
| }; | |
| _pget(){ | |
| 	tc_dl="$dldir/$(decode "$_t1e""$_toolchainfilename")"; | |
| 	[ -f "$tc_dl" ] && rm -rf "$tc_dl"; | |
| 	#tput civis; | |
| 	cd "$dldir"; | |
| 	zeile=$(expr 12+$zzusatz); | |
| 	spalte=$(expr 17+$szusatz); | |
| 	wget -N --progress=dot "$(decode "$_u1e")/$dln" 2>&1 |grep --line-buffered "%"|awk '{ printf "\033["'$zeile'";"'$spalte'"H\033[K%-4s ", $7;} {printf "'"$txt_wait >"'";} {printf " %-6s",$9;}'; | |
| 	echo -e "\033["$zeile";"$spalte"H\033[K100% done...                    "$W; | |
| 	#tput cnorm; | |
| }; | |
| _clean(){ | |
| 	[ -L "$workdir/lastbuild.log" ] && rm -rf "$workdir/lastbuild.log"; | |
| 	[ -L "$workdir/lastpatch.log" ] && rm -rf "$workdir/lastpatch.log"; | |
| 	clear; | |
| 	echo -e "$w_l"; | |
| 	ologo; | |
| 	for e in "$menudir" "$bdir" "$ldir" "$tcdir";do | |
| 		echo -e "  $r_l$txt_delete$w_l\t$e"| sed "s@$workdir@@g"; | |
| 	done; | |
| 	rm -rf "$menudir" "$bdir" "$ldir" "$tcdir" 2>/dev/null; | |
| 	for e in "$menudir" "$bdir" "$ldir" "$tcdir";do | |
| 		echo -e "  $g_l$txt_create$w_l\t$e"| sed "s@$workdir@@g"; | |
| 	done; | |
| 	mkdir -p "$menudir" "$bdir" "$ldir" "$tcdir" 2>/dev/null; | |
| 	sleep 2; | |
| 	svnrestore; | |
| 	_nl; | |
| }; | |
| _sz(){ | |
| 	lmin=24; | |
| 	lmax=40; | |
| 	_lin=$(tput lines); | |
| 	cmin=79; | |
| 	cmax=200; | |
| 	_col=$(tput cols); | |
| 	if [ "$_lin" -gt "$lmin" ];then | |
| 		if [ "$_lin" -lt "$lmax" ] || [ "$_lin" -eq "$lmax" ];then | |
| 			_lines="$((_lin-6))"; | |
| 		fi; | |
| 		if [ "$_lin" -gt "$lmax" ];then | |
| 			_lines="$((lmax-6))"; | |
| 		fi; | |
| 	fi; | |
| 	if [ "$_col" -gt "$cmin" ];then | |
| 		if [ "$_col" -lt "$cmax" ] || [ "$_col" -eq "$cmax" ];then | |
| 			_cols="$((_col-6))"; | |
| 		fi; | |
| 		if [ "$_col" -gt "$cmax" ];then | |
| 			_cols="$((cmax-6))"; | |
| 		fi; | |
| 	fi; | |
| }; | |
| save_master(){ | |
| 	[ -f "$svndir/config.sh" ] && cat "$svndir/config.sh" >"$configdir/config.sh.master"; | |
| 	[ -f "$svndir/Makefile" ] && cat "$svndir/Makefile" >"$configdir/Makefile.master"; | |
| }; | |
| _pre_build(){ | |
| 	_oscamconfdir_default=""; | |
| 	_oscamconfdir_custom=""; | |
| 	source "$tccfgdir/$1"; | |
| 	clear; | |
| 	_nl; | |
| 	echo $WH; | |
| 	ologo; | |
| 	_tcfile=""; | |
| 	dln="$(decode "$_t1e")$(decode "$_toolchainfilename")"; | |
| 	tc_dl="$dldir/$dln"; | |
| 	if [ -f "$tcdir/$_toolchainname/bin/$_compiler""gcc" ];then | |
| 		if [ "$run" == "0" ];then | |
| 			echo -e "$w_l   toolchain :$y_l $_toolchainname"; | |
| 			echo -e "$w_l      status :$g_l compiler $txt_found "; | |
| 			echo -e "$w_l    compiler :$p_l $_compiler""gcc"; | |
| 		else | |
| 			echo -e "$w_l   toolchain :$y_l $_toolchainname      "; | |
| 			echo -e "$w_l     recheck :$g_l ok $txt_now compiler $txt_found"; | |
| 			echo -e "$w_l    compiler :$p_l $_compiler""gcc      "; | |
| 		fi; | |
| 	else | |
| 		[ "$run" == "1" ] && echo "$txt_error : build not possible" && exit; | |
| 		_nl; | |
| 		echo -e  "$w_l     toolchain :$y_l $_toolchainname   "; | |
| 		echo -e  "$w_l        status :$r_l compiler $txt_not_found"; | |
| 		echo -en "$w_l   backupcheck : "; | |
| 		if [ -f "$dldir/$dln" ];then | |
| 			echo -e  "$g_l$dln $txt_found"; | |
| 			echo -en "$w_l     $txt_extracting :$y_l $txt_wait"; | |
| 			_console_extract_toolchain; | |
| 			run=1; | |
| 		else | |
| 			echo -e  "$r_l$dln $txt_not_found "; | |
| 			echo -en "$w_l      $txt_loading :$g_l"; | |
| 			zzusatz=1;szusatz=1; | |
| 			_pget; | |
| 			_nl; | |
| 			echo -en "$w_l     $txt_extracting :$y_l $txt_wait"; | |
| 			_console_extract_toolchain 1; | |
| 			run=1; | |
| 		fi; | |
| 		_pre_build "$1"; | |
| 	fi; | |
| 	_cmd_build "$_toolchainname"; | |
| }; | |
| _init_menu(){ IFS="#";COUNT=0;MENU_OPTIONS="BACK#$txt_back#";counter;}; | |
| _select_menu(){ | |
| 	revision_="$(REVISION)"; | |
| 	_menutext="Simplebuild V$SIMPLEVERSION by Gorgone"; | |
| 	smenu=$( | |
| 	"$gui" "$st_" "$bt_" "$title_" "$nc_" --title "-[ $txt_start_menu ]-" --menu "\n $_menutext" 13 55 7 "Continue" "$txt_firstmenu_continue r$revision_" "CHANGE" "$txt_firstmenu_chose" "CEDIT" "$txt_firstmenu_cedit" "LANG" "$txt_firstmenu_lang" "EXIT" "$txt_firstmenu_exit"); | |
| 	[ $? = 255 ] && _select_menu; | |
| 	case $smenu in | |
| 		Continue) | |
| 					if [ ! -f "$svndir/config.sh" ];then | |
| 						"$gui" "$st_" "$bt_" "$title_" --infobox "\n  $txt_no oscam-svn $txt_found" 5 35; | |
| 						sleep 2; | |
| 						_select_menu; | |
| 					else | |
| 						_toolchain_main_menu; | |
| 					fi;; | |
| 		CHANGE) | |
| 					new_rev=$("$gui" "$st_" "$nc_" --cr-wrap "$ip_" "Revision: 7000+ \nRevision: 0 = $txt_latest" 9 35); | |
| 					[[ $new_rev =~ ^-?[0-9]+$ ]] && [ ! "$new_rev" -le "7000" ] && _rev="$new_rev" || _rev=0; | |
| 					_dialog_checkout1 "$_rev"; | |
| 					_select_menu;; | |
| 		CEDIT) | |
| 					s3cfg_menu; | |
| 					_select_menu;; | |
| 		LANG) | |
| 					lang_select; | |
| 					cd "$workdir"; | |
| 					./s3 menu;; | |
| 		EXIT) | |
| 					bye;; | |
| 	esac; | |
| 	exit; | |
| }; | |
| _oscam_extra_menu(){ | |
| 	uv=; | |
| 	check_smargo; | |
| 	unset MENU_OPTIONS; | |
| 	for e in "${!USE_vars[@]}";do | |
| 		if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ] && [ ! "$e" == "USE_LIBUSB" ];then | |
| 			if [ "${#USE_vars[$e]}" -gt "4" ];then | |
| 				MENU_OPTIONS+=( "$e" "$e" on ); | |
| 			else | |
| 				MENU_OPTIONS+=( "$e" "$e" off ); | |
| 			fi; | |
| 		fi; | |
| 	done; | |
| 	oextra=$("$gui" "$st_" "$nc_" "$bt_" "$title_" --title "-[ Oscam EXTRA ]-" "$cl_" " OPTIONS " 19 40 12 ${MENU_OPTIONS[@]}); | |
| 	[ $? = 255 ] && _toolchain_extra_menu; | |
| 	for e in "${!USE_vars[@]}";do | |
| 		if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ] && [ ! "$e" == "USE_LIBUSB" ];then | |
| 			ok=0; | |
| 			for oex in $oextra;do | |
| 				o=$(echo "$oex" | tr -d '"'); | |
| 				[ "$e" == "$o" ] && ok=1; | |
| 			done; | |
| 			if [ "$ok" == "1" ];then | |
| 				USE_vars[$e]="$e=1"; | |
| 			else | |
| 				USE_vars[$e]=; | |
| 			fi; | |
| 		fi; | |
| 	done; | |
| 	[ "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ] && _pcsc_on; | |
| 	[ ! "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ] && _pcsc_off; | |
| 	save_config; | |
| 	_toolchain_config_menu; | |
| }; | |
| _build_extra_menu(){ | |
| 	us=; | |
| 	check_smargo; | |
| 	unset MENU_OPTIONS; | |
| 	for e in USE_COMPRESS USE_TARGZ USE_PATCH;do | |
| 		[ "${#USE_vars[$e]}" -gt "4" ] && MENU_OPTIONS+=( "$e" "$e=1" on ) || MENU_OPTIONS+=( "$e" "$e=1" off ); | |
| 	done; | |
| 	bextra=$("$gui" "$st_" "$nc_" "$bt_" "$title_" --title "-[ Build EXTRA ]-" "$cl_" " OPTIONS " 10 40 3 ${MENU_OPTIONS[@]}); | |
| 	[ $? = 255 ] && _build_extra_menu; | |
| 	USE_vars[USE_COMPRESS]=; | |
| 	USE_vars[USE_PATCH]=; | |
| 	USE_vars[USE_TARGZ]=; | |
| 	for bex in $bextra;do | |
| 		b=$(echo "$bex" | tr -d '"'); | |
| 		USE_vars[$b]="$b=1"; | |
| 	done; | |
| 	save_config; | |
| 	_toolchain_config_menu; | |
| }; | |
| _pre_main_menu(){ | |
| 	IFS="#"; | |
| 	COUNT=0; | |
| 	MENU_OPTIONS="EXIT#$txt_menu_builder1#"; | |
| 	counter; | |
| 	MENU_OPTIONS=${MENU_OPTIONS}"ADD#$txt_menu_builder2#"; | |
| 	counter; | |
| 	if [ "$tcempty" == "0" ];then | |
| 		MENU_OPTIONS="${MENU_OPTIONS}REMOVE#$txt_menu_builder3#"; | |
| 		counter; | |
| 	fi; | |
| 	MENU_OPTIONS="${MENU_OPTIONS}NATIVE#$txt_menu_builder4$native#"; | |
| 	counter; | |
| 	_a=$(uname -m); | |
| 	if [ "$systype" == "ok" ];then | |
| 		if [ "$tcempty" == "0" ];then | |
| 			for i in "${INST_TCLIST[@]}";do | |
| 				source "$tccfgdir/$i"; | |
| 				MENU_OPTIONS="${MENU_OPTIONS}$_toolchainname#$_description#"; | |
| 				counter; | |
| 			done; | |
| 		fi; | |
| 	fi; | |
| 	out=$("$gui" --help-button --help-label INFO --title "-[ Toolchain Menu V$SIMPLEVERSION ]-" --menu "$txt_t_menu1$REVISION" "${COUNT+8}" 75 0 "${MENU_OPTIONS}"); | |
| 	IFS=$OIFS; | |
| 	first=$(echo "$out" | awk '{printf $1}'); | |
| 	tc_info=$(echo "$out" | awk '{printf $2}'); | |
| 	if [ "$first" == "HELP" ];then | |
| 		if [ -f "$tccfgdir/$(echo "$out" | awk '{printf $2}')" ];then | |
| 			source "$tccfgdir/$tc_info"; | |
| 			echo -e "\n\n\tinfobox $_tc_info"; | |
| 			sleep 4; | |
| 		fi; | |
| 	fi; | |
| 	if [ "$first" == "EXIT" ];then | |
| 		bye; | |
| 	else | |
| 		toolchain_main_menu; | |
| 	fi; | |
| }; | |
| tedit(){ | |
| 	clear; | |
| 	if [ -f "$tccfgdir/$1" ];then | |
| 		source "$tccfgdir/$1"; | |
| 		echo -e  $y_l; | |
| 		slogo; | |
| 		echo -e  " $p_l change CONF_DIR for $c_l$_toolchainname$w_l\n"; | |
| 		echo -e  $w_l"    current =$c_l $_oscamconfdir_custom"; | |
| 		echo -e  $w_l"    default =$c_l $_oscamconfdir_default"; | |
| 		echo -en $w_l"  Enter new =$w_l ";read name; | |
| 		echo -e      "        now =$y_l CONF_DIR=$name\n$re_"; | |
| 		sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$name\"@ "$tccfgdir/$_toolchainname"; | |
| 	fi; | |
| }; | |
| _gtedit(){ | |
| 	if [ -f "$tccfgdir/$_toolchainname" ];then | |
| 		source "$tccfgdir/$_toolchainname"; | |
| 		input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " --inputbox "\n CONF_DIR=$_oscamconfdir_default 'default'\n [ESC] = default\n" 0 0 "$_oscamconfdir_custom"); | |
| 		retval=$?; | |
| 		case $retval in | |
| 			0) | |
| 				confdir="$input";; | |
| 			1) | |
| 				confdir="$_oscamconfdir_custom";; | |
| 			255) | |
| 				confdir="$_oscamconfdir_default";; | |
| 		esac; | |
| 		sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$confdir\"@ "$tccfgdir/$_toolchainname"; | |
| 		source "$tccfgdir/$_toolchainname"; | |
| 	fi; | |
| }; | |
| check_smargo(){ | |
| 	if [ -f "$svndir/config.sh" ];then | |
| 		if [ "$("$svndir/config.sh" -e CARDREADER_SMARGO)" == "Y" ];then | |
| 			USE_vars[USE_LIBUSB]="USE_LIBUSB=1"; | |
| 		else | |
| 			USE_vars[USE_LIBUSB]=; | |
| 		fi; | |
| 	fi; | |
| }; | |
| _reset_config(){ | |
| 	if [ -f "$svndir/config.sh" ];then | |
| 		[ -f "$menudir/$_toolchainname.save" ] && rm -rf "$menudir/$_toolchainname.save"; | |
| 		if [ ! -f "$workdir/SVN-IS-PATCHED" ];then | |
| 			reset_="$("$svndir/config.sh" -R)"; | |
| 		fi; | |
| 	else | |
| 		_select_menu; | |
| 	fi; | |
| }; | |
| _get_config_menu(){ | |
| 	tmp="$(mktemp)"; | |
| 	while read -r _l;do | |
| 		c=$(echo "$_l" | tr -cd \" | wc -c); | |
| 		_c=$((_c + c)); | |
| 		[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp"; | |
| 		[ ${_c} -eq 10 ] && break; | |
| 	done <"$svndir/config.sh"; | |
| 	mk="$(grep '^   USE_' "$workdir/oscam-svn/Makefile" |sort -u|awk '{print $1}')"; | |
| 	for e in $mk;do | |
| 		USE_vars[${e:0:-2}]=; | |
| 	done; | |
| 	check_smargo; | |
| 	source "$tmp"; | |
| 	rm -rf "$tmp"; | |
| }; | |
| read_s3cfg(){ | |
| 	if [ -f "$s3cfg" ];then | |
| 		while read l;do | |
| 			s3cfg_vars[$(echo "$l"| awk -F'=' '{print $1}')]=$(echo "$l"| awk -F'=' '{print $2}'); | |
| 		done < "$s3cfg"; | |
| 	fi; | |
| }; | |
| s3cfg_menu(){ | |
| 	unset CFG_MENU; | |
| 	declare -a CFG_MENU; | |
| 	old_IFS=$IFS; | |
| 	COUNT=0; | |
| 	found=""; | |
| 	for e in "${!s3cfg_vars[@]}";do | |
| 		CFG_MENU+="$e#on/off#$([ "${s3cfg_vars[$e]}" -gt "0" ] && echo on || echo off)#"; | |
| 		counter; | |
| 	done; | |
| 	IFS="#"; | |
| 	erg=$("$gui" "$st_" "$bt_" "$title_" "$cl_" "enable/disable options" 16 45 10 ${CFG_MENU[@]}); | |
| 	IFS=$old_IFS; | |
| 	for e1 in "${!s3cfg_vars[@]}";do | |
| 		for e2 in $erg;do | |
| 			found="0"; | |
| 			if [ "$e1" == "${e2//\'}" ];then | |
| 				found="1"; | |
| 				break; | |
| 			fi; | |
| 		done; | |
| 		if [ "$found" == "1" ];then | |
| 			s3cfg_vars[$e1]=1; | |
| 		else | |
| 			s3cfg_vars[$e1]=0; | |
| 		fi; | |
| 	done; | |
| 	write_s3cfg; | |
| }; | |
| write_s3cfg(){ | |
| 	[ -f "$s3cfg" ] && rm -rf "$s3cfg"; | |
| 	for e in "${!s3cfg_vars[@]}";do | |
| 		echo "$e=${s3cfg_vars[${e}]}" >>"$s3cfg"; | |
| 	done; | |
| }; | |
| _stapi_select(){ | |
| 	if [ "$stapi_allowed" == "1" ];then | |
| 		stapivar=''; | |
| 		addstapi=; | |
| 		USESTRING=; | |
| 		stapimode=$($gui $rl_ " SELECT STAPI MODE" 12 0 5 0 "STAPI_OFF" on 1 "USE_STAPI" off 2 "USE_STAPI5 UFS916" off 3 "USE_STAPI5 UFS916003" off 4 "USE_STAPI5 OPENBOX" off 3>&1 1>&2 2>&3); | |
| 		usevars=$(echo $usevars | sed "s@USE_STAPI5@@" | xargs); | |
| 		usevars=$(echo $usevars | sed "s@USE_STAPI@@" | xargs); | |
| 		case $stapimode in | |
| 			0) | |
| 				stapivar=;; | |
| 			1) | |
| 				stapivar="STAPI_LIB=$sdir/stapi/liboscam_stapi.a"; | |
| 				addstapi="USE_STAPI";; | |
| 			2) | |
| 				stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916.a"; | |
| 				addstapi="USE_STAPI5";; | |
| 			3) | |
| 				stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_UFS916_0.03.a"; | |
| 				addstapi="USE_STAPI5";; | |
| 			4) | |
| 				stapivar="STAPI5_LIB=$sdir/stapi/liboscam_stapi5_OPENBOX.a"; | |
| 				addstapi="USE_STAPI5";; | |
| 		esac; | |
| 		save_config; | |
| 	else | |
| 		"$gui" "$st_" --title "STAPI INFO" --msgbox "NOT for $_toolchainname" 0 0; | |
| 		_toolchain_config_menu; | |
| 	fi; | |
| }; | |
| 
 | |
| save_config(){ | |
| 	usevars=; | |
| 	enabled=; | |
| 	disabled=; | |
| 	check_smargo; | |
| 	enabled=($("$svndir/config.sh" -s)); | |
| 	disabled=($("$svndir/config.sh" -Z)); | |
| 	[ "$_toolchainname" == "sh4" ] && unset USE_vars[USE_COMPRESS]; | |
| 	[ "$_toolchainname" == "sh_4" ] && unset USE_vars[USE_COMPRESS]; | |
| 	unset USE_vars[USE_STAPI]; | |
| 	unset USE_vars[USE_STAPI5]; | |
| 	for e in ${USE_vars[*]};do | |
| 		usevars="${e:0:-2} $usevars"; | |
| 	done; | |
| 	[ -f "$menudir/$_toolchainname.save" ] && rm -rf "$menudir/$_toolchainname.save"; | |
| 	echo "enabled=\"${enabled[*]}\""  >"$menudir/$_toolchainname.save"; | |
| 	echo "disabled=\"${disabled[*]}\"">>"$menudir/$_toolchainname.save"; | |
| 	if [ "$stapi_allowed" == "1" ];then | |
| 		if [ "${#stapivar}" -gt "15" ];then | |
| 			echo "stapivar=\"$stapivar\"">>"$menudir/$_toolchainname.save"; | |
| 			echo "usevars=\"$usevars $addstapi\"" >>"$menudir/$_toolchainname.save"; | |
| 		else | |
| 			echo "usevars=\"$usevars\"" >>"$menudir/$_toolchainname.save"; | |
| 		fi; | |
| 	else | |
| 		echo "usevars=\"$usevars\"" >>"$menudir/$_toolchainname.save"; | |
| 	fi; | |
| }; | |
| 
 | |
| load_config(){ | |
| 	_stapi=; | |
| 	_stapi5=; | |
| 	enabled=; | |
| 	disabled=; | |
| 	stapivar=""; | |
| 	USESTRING=; | |
| 	usevars=; | |
| 	unset USE_vars[USE_STAPI]; | |
| 	unset USE_vars[USE_STAPI5]; | |
| 	if [ -f "$menudir/$_toolchainname.save" ];then | |
| 		source "$menudir/$_toolchainname.save"; | |
| 		ena=$("$svndir/config.sh" -E $enabled); | |
| 		dis=$("$svndir/config.sh" -D $disabled); | |
| 		for e in $usevars;do | |
| 			USE_vars[$e]="$e=1"; | |
| 			[ "$e" == "USE_LIBUSB" ] && silent=$("$svndir/config.sh" --enable CARDREADER_SMARGO); | |
| 			[ "$e" == "USE_PCSC" ] && sed -i 's@^//#define CARDREADER_PCSC 1@#define CARDREADER_PCSC 1@g' "$svndir/config.h"; | |
| 		done; | |
| 	else | |
| 		_reset_config; | |
| 		[ "${s3cfg_vars[USE_TARGZ]}" == "1" ] && USE_vars[USE_TARGZ]="USE_TARGZ=1"; | |
| 		[ "${s3cfg_vars[USE_COMPRESS]}" == "1" ] && USE_vars[USE_COMPRESS]="USE_COMPRESS=1"; | |
| 		for e in $default_use;do | |
| 			USE_vars[$e]="$e=1"; | |
| 		done; | |
| 	fi; | |
| 	check_smargo; | |
| 	[ "$_toolchainname" == "sh4" ] && unset USE_vars[USE_COMPRESS]; | |
| 	[ "$_toolchainname" == "sh_4" ] && unset USE_vars[USE_COMPRESS]; | |
| 	USESTRING="$(echo "${USE_vars[@]}"| sed 's@USE_@@g'| sed 's@=1@@g'| tr -s ' ')"; | |
| }; | |
| _get_config_con(){ | |
| 	if [ ! "$1" == "checkout" ] && [ ! "$1" == "clean" ];then | |
| 		tmp="$(mktemp)"; | |
| 		if [ -f "$svndir/config.sh" ];then | |
| 			while read -r _l;do | |
| 				c=$(echo "$_l" | tr -cd \" | wc -c); | |
| 				_c=$((_c + c)); | |
| 				[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp"; | |
| 				[ ${_c} -eq 10 ] && break; | |
| 			done <"$svndir/config.sh"; | |
| 		else | |
| 			while read -r _l;do | |
| 				c=$(echo "$_l" | tr -cd \" | wc -c); | |
| 				_c=$((_c + c)); | |
| 				[ ${_c} -lt 11 ] && echo "$_l" >>"$tmp"; | |
| 				[ ${_c} -eq 10 ] && break; | |
| 			done <"$configdir/config.sh.master"; | |
| 		fi; | |
| 		if [ -f "$workdir/oscam-svn/Makefile" ];then | |
| 			str_="$(grep '^   USE_' "$workdir/oscam-svn/Makefile"| sort -u| awk '{print $1}')"; | |
| 			for e in $str_;do | |
| 				es="${e:0:-2}"; | |
| 				USE_vars[$es]=; | |
| 			done; | |
| 		else | |
| 			str_="$(grep '^   USE_' "$configdir/Makefile.master"| sort -u| awk '{print $1}')"; | |
| 			for e in $str_;do | |
| 				es="${e:0:-2}"; | |
| 				USE_vars[$es]=; | |
| 			done; | |
| 		fi; | |
| 		check_smargo; | |
| 		source "$tmp"; | |
| 		rm -rf "$tmp" "$tmp1"; | |
| 		rm -rf "$tmp.load" "$tmp1.load"; | |
| 	fi; | |
| }; | |
| _gtedit(){ | |
| 	if [ -f "$tccfgdir/$_toolchainname" ];then | |
| 		source "$tccfgdir/$_toolchainname"; | |
| 		input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " --inputbox "\n CONF_DIR=$_oscamconfdir_default 'default'\n [ESC] = default\n" 0 0 "$_oscamconfdir_custom"); | |
| 		retval=$?; | |
| 		case $retval in | |
| 			0) | |
| 				confdir="$input";; | |
| 			1) | |
| 				confdir="$_oscamconfdir_custom";; | |
| 			255) | |
| 				confdir="$_oscamconfdir_default";; | |
| 		esac; | |
| 		sed -i s@^_oscamconfdir_custom.*@_oscamconfdir_custom=\"$confdir\"@ "$tccfgdir/$_toolchainname"; | |
| 		source "$tccfgdir/$_toolchainname"; | |
| 	fi; | |
| }; |