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.
		
		
		
		
		
			
		
			
				
					
					
						
							151 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							151 lines
						
					
					
						
							4.0 KiB
						
					
					
				
								#!/bin/bash
							 | 
						|
								
							 | 
						|
								_gui_build(){
							 | 
						|
								
							 | 
						|
								#init
							 | 
						|
									oc_size=${#_oscamconfdir_custom}
							 | 
						|
									[ "$oc_size" -gt "4" ] && _oscamconfdir_default="$_oscamconfdir_custom"
							 | 
						|
								
							 | 
						|
									if [ "$_toolchainname" == "native" ]
							 | 
						|
									then
							 | 
						|
										log_name="$(date +%F).$(date +%X).$(hostname).log"
							 | 
						|
									else
							 | 
						|
										log_name="$(date +%F).$(date +%X).$_toolchainname.log"
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
									ologo >"$ldir/$log_name"
							 | 
						|
									[ -f "$configdir/max_cpus" ] && cpus="$(cat "$configdir/max_cpus")" || cpus="$(CPUS)"
							 | 
						|
								
							 | 
						|
									CROSS="$tcdir/$_toolchainname/bin/$_compiler"
							 | 
						|
								
							 | 
						|
									[ "$_stagingdir" == "1" ] && export STAGING_DIR="$tcdir/$_toolchainname"
							 | 
						|
									[ -f "$configdir/compiler_option" ] && co=$(cat "$configdir/compiler_option") || co="-O2"
							 | 
						|
								
							 | 
						|
								#make clean
							 | 
						|
									cd "$svndir"
							 | 
						|
									make distclean > /dev/null 2>&1
							 | 
						|
									USESTRING_=''
							 | 
						|
								
							 | 
						|
								#do use_vars
							 | 
						|
									for e2 in $USESTRING
							 | 
						|
									do
							 | 
						|
										[ "USE_$e2" == "USE_PATCH" ] && _apply_menupatch
							 | 
						|
										is_blocked=0
							 | 
						|
								
							 | 
						|
										for e1 in $_block
							 | 
						|
										do
							 | 
						|
								
							 | 
						|
											if [ "$e1" == "USE_$e2" ]
							 | 
						|
											then
							 | 
						|
												is_blocked=1
							 | 
						|
												[ "USE_$e2" == "USE_LIBUSB" ] && silent=$(./config.sh -D CARDREADER_SMARGO)
							 | 
						|
											fi
							 | 
						|
								
							 | 
						|
										done
							 | 
						|
										[ "$is_blocked" == "0" ] && _us="USE_$e2 $_us"
							 | 
						|
									done
							 | 
						|
								
							 | 
						|
									for e in $_us
							 | 
						|
									do
							 | 
						|
								
							 | 
						|
										if [ ! "$e" == "USE_TARGZ" ] && [ ! "$e" == "USE_COMPRESS" ] && [ ! "$e" == "USE_PATCH" ]
							 | 
						|
										then
							 | 
						|
											USESTRING_="$e=1 $USESTRING_"
							 | 
						|
										fi
							 | 
						|
								
							 | 
						|
									done
							 | 
						|
								
							 | 
						|
									if [ "${USE_vars[USE_PCSC]}" == "USE_PCSC=1" ]
							 | 
						|
									then
							 | 
						|
										_pcsc="-pcsc"
							 | 
						|
									else
							 | 
						|
										_pcsc=
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
									if [ "${USE_vars[USE_LIBUSB]}" == "USE_LIBUSB=1" ]
							 | 
						|
									then
							 | 
						|
										_usb="-libusb"
							 | 
						|
									else
							 | 
						|
										_usb=
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
									USESTRING_=${USE_vars[@]}
							 | 
						|
								
							 | 
						|
								#todo add switch for verbose
							 | 
						|
									_generate_oscam_name "$_toolchainname"
							 | 
						|
									targztmp="$(mktemp)"
							 | 
						|
								
							 | 
						|
									if [ ! "${USE_vars[USE_TARGZ]}" == "USE_TARGZ=1" ]
							 | 
						|
									then
							 | 
						|
										s3cfg_vars[USE_TARGZ]=0
							 | 
						|
									fi
							 | 
						|
									check_smargo
							 | 
						|
								
							 | 
						|
								#build
							 | 
						|
									_sz
							 | 
						|
									(ologo; _nl
							 | 
						|
									timer_start
							 | 
						|
									make -j"$cpus" \
							 | 
						|
										"CONF_DIR=$_oscamconfdir_default" "OSCAM_BIN=$bdir/$oscam_name" "CC_OPTS=$co $cc_opts" "CC_WARN=$cc_warn" "CROSS=$CROSS" $stapivar $USESTRING_ 2>&1 \
							 | 
						|
										|tee "$ldir/$log_name" \
							 | 
						|
										|grep --line-buffered -v 'BFD\|^/' \
							 | 
						|
										|grep --line-buffered '^CC\|^GEN\|UseFlags\|  CONF_DIR =\|Binary\|LINK\|STRIP\|BUILD\|Addons\|Protocols\|Readers\|CardRdrs\|^/' \
							 | 
						|
										|sed -u "s/^|/ |/g;s/^LINK/ |  LINK  >/g;s/^STRIP/ |  STRIP >/g;s/^CC\|^BUILD/ |  BUILD >/g;s/^GEN/ |  GEN   >/g;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;"
							 | 
						|
									timer_stop
							 | 
						|
									timer_calc
							 | 
						|
								
							 | 
						|
								#save list_smargo
							 | 
						|
									cd "$svndir/Distribution"
							 | 
						|
									lsmn="$(ls list_smargo* 2> /dev/null)"
							 | 
						|
								
							 | 
						|
									if [ "${s3cfg_vars[SAVE_LISTSMARGO]}" == "1" ] && [ -f "$svndir/Distribution/$lsmn" ]
							 | 
						|
									then
							 | 
						|
								
							 | 
						|
										if [ "$_toolchainname" == "native" ]
							 | 
						|
										then
							 | 
						|
											printf "SAVE\t$lsmn $txt_as oscam-svn$(REVISION)-$(hostname)-list_smargo"| tee -a "$ldir/$log_name"
							 | 
						|
											mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$(hostname)-list_smargo"
							 | 
						|
											printf "oscam-svn$(REVISION)-$(hostname)-list_smargo" >"$targztmp"
							 | 
						|
										else
							 | 
						|
											printf -e "SAVE\t$lsmn $txt_as oscam-svn$(REVISION)-$_toolchainname-list_smargo"|tee -a "$ldir/$log_name"
							 | 
						|
											mv -f "$lsmn" "$bdir/oscam-svn$(REVISION)-$_toolchainname-list_smargo"
							 | 
						|
											printf "oscam-svn$(REVISION)-$_toolchainname-list_smargo" >"$targztmp\n"
							 | 
						|
										fi
							 | 
						|
								
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
								#show buildtime
							 | 
						|
									printf "\n |  TIME  >\t[ $txt_buildtime $((Tcalc / 60)) min(s) $((Tcalc % 60)) secs ]"| tee -a "$ldir/$log_name"
							 | 
						|
									sleep 1
							 | 
						|
								
							 | 
						|
								#remove debug binary
							 | 
						|
									if [ "${s3cfg_vars[delete_oscamdebugbinary]}" == "1" ] && [ -f "$bdir/$oscam_name.debug" ]
							 | 
						|
									then
							 | 
						|
										rm "$bdir/$oscam_name.debug"
							 | 
						|
										printf "\n $txt_delete $oscam_name.debug\n"|tee -a "$ldir/$log_name"
							 | 
						|
									fi;) | "$gui" "$st_" --colors --title " -[ Build ]- " "$pb_" "$_lines" "$_cols"
							 | 
						|
									sleep 2
							 | 
						|
								
							 | 
						|
								#COMPRESS
							 | 
						|
									if [ ! "$stapi_allowed" == "1" ]
							 | 
						|
									then
							 | 
						|
								
							 | 
						|
										if [ "${s3cfg_vars[COMPRESS]}" == "1" ] || [ "${USE_vars[USE_COMPRESS]}" == "USE_COMPRESS=1" ]
							 | 
						|
										then
							 | 
						|
											(compress_cam_gui "$oscam_name") |tee -a "$ldir/$log_name"| "$gui" "$st_" --title " -[ COMPRESS ]- " "$pb_" 7 50
							 | 
						|
											sleep 2
							 | 
						|
										fi
							 | 
						|
								
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
								#tar
							 | 
						|
									if [ "${USE_vars[USE_TARGZ]}" == "USE_TARGZ=1" ]
							 | 
						|
									then
							 | 
						|
										(tar_cam_gui "$oscam_name" "$(cat "$targztmp")") |tee -a "$ldir/$log_name"| "$gui" "$st_" --title " -[ TAR Binary ]- " "$pb_" 10 70
							 | 
						|
										sleep 2
							 | 
						|
									fi
							 | 
						|
								
							 | 
						|
								#link log
							 | 
						|
									ln -sf "$ldir/$log_name" "$workdir/lastbuild.log"
							 | 
						|
									[ -f "$targztmp" ] && rm -rf "$targztmp"
							 | 
						|
								}
							 | 
						|
								
							 |