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.

119 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
echo -e "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";
echo "oscam-svn$(REVISION)-$(hostname)-list_smargo" >"$targztmp";
else
echo -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";
echo "oscam-svn$(REVISION)-$_toolchainname-list_smargo" >"$targztmp";
fi;
fi;
#show buildtime
echo -e "\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";
echo -e "\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";
};