#qtmake="/opt/qt/5.10.1/gcc_64/bin/qmake"

qtmake=" "

if [ ${#qtmake} -lt 5 ]; then
  echo "now need find qmake "
  optfiles=`find /opt -name 'qmake'` 
  for entry in $optfiles
  do
     x=${entry:0-10:10}
     if [ "$x" == "/bin/qmake" ];  then
        qtmake="$entry"
	echo "  -----find qmake"
	echo "$qtmake"
     fi
  done
fi

if [ ${#qtmake} -lt 5 ]; then
  echo "maybe agx,find qmake in usr folder "
  optfiles=`find /usr -name 'qmake'` 
  for entry in $optfiles
  do
     x=${entry:0-14:14}
     if [ "$x" == "/qt5/bin/qmake" ];  then
        qtmake="$entry"
	echo "  -----find qmake"
	echo "$qtmake"
     fi
  done
fi


MAKEOPT=-j8

cd ../../

mkdir bin

cd src/include/proto
sh ./protomake.sh
cd ../../../

cd src/common/modulecomm/
$qtmake modulecomm.pro
make $MAKEOPT
make clean
cp libmodulecomm.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/xmlparam/
$qtmake xmlparam.pro
make $MAKEOPT
make clean
cp libxmlparam.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ndt_cpu/
$qtmake ndt_cpu.pro
make $MAKEOPT
make clean
cp libndt_cpu.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ndt_gpu/
$qtmake ndt_gpu.pro
make $MAKEOPT
make clean
cp libndt_gpu.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ivlog/
$qtmake ivlog.pro
make $MAKEOPT
make clean
cp libivlog.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ivfault/
$qtmake ivfault.pro
make $MAKEOPT
make clean
cp libivfault.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../


cd src/common/ivbacktrace/
$qtmake ivbacktrace.pro
make $MAKEOPT
make clean
cp libivbacktrace.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ivexit/
$qtmake ivexit.pro
make $MAKEOPT
make clean
cp libivexit.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

controller_app_name=(
#controller_ge3
#controller_vv7
#controller_tju_vv7
)

for x in ${controller_app_name[@]}
do
cd src/controller/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

decition_app_name=(
#decition_brain
#decition_brain_ge3
#decition_brain_qingyuan
#decition_brain_vv7
)

for x in ${decition_app_name[@]}
do
cd src/decition/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

driver_app_name=(
#driver_gps_ins550d
#driver_can_nvidia_agx
#driver_can_vci
driver_lidar_rs16
#driver_lidar_vlp32c
#driver_rpc_client
#driver_rpc_server
#driver_map_trace
#driver_map_xodrload
#driver_gps_hcp2
)

for x in ${driver_app_name[@]}
do
cd src/driver/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

detect_app_name=(
detection_lidar_cnn_segmentation
detection_lidar_cnntogrid
detection_lidar_ukf_pda
#detection_radar_delphi_esr
#detection_state_delphi_ins500d
#detection_ndt_matching_gpu_multi
)

for x in ${detect_app_name[@]}
do
cd src/detection/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

fusion_app_name=(
fusion_pointcloud_bus
#fusion_gpsndt
)

for x in ${fusion_app_name[@]}
do
cd src/fusion/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

tool_app_name=(
bqev_multilidarcalib
bqev_pcdview
pointcloudviewer
#view_gps
#view_rawcan
#view_radar
IVSysMan
#ivmapmake
#ivweb
#view_ivlog
#tool_querymsg
#tool_xodrobj
ivlog_record
adciv_record
#view_pcdmap
view_ivlog
adciv_replay
#ivmapmake
)

for x in ${tool_app_name[@]}
do
cd src/tool/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

ui_app_name=(
ui_ads_hmi
)

for x in ${ui_app_name[@]}
do
cd src/ui/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done