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.

154 lines
4.1 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"
[ "$_androidndkdir" == "1" ] && export ANDROID_NDK="$tcdir/$_toolchainname"
[ -f "$configdir/compiler_option" ] && co=$(cat "$configdir/compiler_option") || co="-O2"
#make clean
cd "$svndir"
make distclean > /dev/null 2>&1
USESTRING_=''
EXTRA_USE=''
#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[@]}
EXTRA_USE=$extra_use
#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 $extra_cc" "CC_WARN=$cc_warn" $EXTRA_USE "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;s/= /: /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 ]\n"| 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"
}