[Title] tizen_2.1's change is merged into develop.
authorGun Kim <gune.kim@samsung.com>
Mon, 20 May 2013 09:34:44 +0000 (18:34 +0900)
committerGun Kim <gune.kim@samsung.com>
Mon, 20 May 2013 10:35:01 +0000 (19:35 +0900)
[Type]
[Module]
[Priority]
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: Ifd119211012a9eb9da5d1f71f9fd0d83c6ac2e6d

org.tizen.cli/doc/install/native_bin/native-debug
org.tizen.cli/doc/install/native_bin/native-debug.bat
org.tizen.cli/doc/install/native_bin/native-install
org.tizen.cli/doc/install/native_bin/native-make
org.tizen.cli/doc/install/native_bin/native-make.bat
org.tizen.cli/doc/install/native_bin/native-run
org.tizen.cli/doc/install/native_bin/native-run.bat

index a96050d..b989f4e 100755 (executable)
@@ -18,6 +18,7 @@ init() {
        DIR_BIN=`dirname $SCRIPT`
        TOOLS_HOME="$DIR_BIN/../.."
        SDB="$TOOLS_HOME/sdb"
+       GDB_SERVER="/home/developer/sdk_tools/gdbserver/gdbserver"
 }
 
 usage() {
@@ -30,40 +31,7 @@ usage() {
 }
 
 getBinaryFile() {
-       SDB_GET_BINARY_COMMAND="$SDB_COMMAND shell ls /opt/usr/apps/$appid/bin/"
-       count=0
-       extension=".exe"
-       extension_length=4
-       result_list=`$SDB_GET_BINARY_COMMAND`
-       for i in ${result_list}
-       do
-               length=`expr match "$i" '.*[.]exe'`
-               start_pos=`expr $length - "$extension_length" + 1`
-               str=`expr substr "$i" "$start_pos" "$extension_length"`
-               if [ "$str" = "$extension" ]
-               then
-                       BINARY=`expr substr "$i" "1" "$length"`
-                       if [ -z "$binary_list" ]
-                       then
-                               binary_list=$i
-                       else
-                               binary_list="$binary_list, $i"
-
-                       fi
-                       count=`expr "$count" + 1`
-               fi
-       done
-
-       if [ "$count" -eq "0" ]
-       then
-               echo "error: not found executable file of \"$appid\"."
-               exit 2;
-       elif [ "$count" -gt "1" ]
-       then
-               echo "error: more then one executable file of \"$appid\"."
-               echo "executable files: $binary_list"
-               exit 2;
-       fi
+       BINARY=`$FIND_PKGID_COMMAND | awk '{gsub(/[\[\]]/, "", $6); print $6}'`
 }
 
 parse_param() {
@@ -114,6 +82,7 @@ parse_param() {
        then
                SDB_COMMAND="$SDB -s $serial"
        fi
+       FIND_PKGID_COMMAND="$SDB_COMMAND shell pkgcmd -l | grep $appid"
 
        devices=`$SDB devices | wc -l`
        if [ "$devices" -lt 2 ]
@@ -137,15 +106,51 @@ parse_param() {
                exit 1;
        fi
 
+       pkgid_count=`$FIND_PKGID_COMMAND | wc -l`
+       if [ $pkgid_count -ne 1 ]
+       then
+               echo "error: $appid: no such package"
+               exit 2;
+       fi
+
        if [ -z "$BINARY" ]
        then
                getBinaryFile
        fi
 }
 
+check_target_type() {
+       device="/dev/samsung_sdb"
+       sdb_cmd="$SDB_COMMAND shell \"ls $device 2> /dev/null | wc -l\""
+       result=`eval $sdb_cmd`
+       if [ "$result" -eq "0" ]
+       then
+               TARGET_TYPE="emulator"
+       else
+               TARGET_TYPE="real"
+       fi
+}
+
+ondemand_install() {
+       if [ $TARGET_TYPE = "real" ]
+       then
+               GDBSERVER_TAR="gdbserver_7.5.0_armel.tar"
+               ondemand_cmd="$SDB_COMMAND push $TOOLS_HOME/../platforms/tizen2.1/on-demand/gdbserver_7.5.0_armel.tar /home/developer/sdk_tools/gdbserver_7.5.0_armel.tar && cd /home/developer/sdk_tools/ && tar -xf gdbserver_7.5.0_armel.tar"
+       else
+               GDBSERVER_TAR="gdbserver_7.5.0_i386.tar"
+               ondemand_cmd="$SDB_COMMAND push $TOOLS_HOME/../platforms/tizen2.1/on-demand/gdbserver_7.5.0_i386.tar /home/developer/sdk_tools/gdbserver_7.5.0_i386.tar && cd /home/developer/sdk_tools/ && tar -xf gdbserver_7.5.0_i386.tar"
+       fi
+
+       ondemand_cmd="$SDB_COMMAND push $TOOLS_HOME/../platforms/tizen2.1/on-demand/$GDBSERVER_TAR /home/developer/sdk_tools/$GDBSERVER_TAR"
+       $ondemand_cmd
+       ondemand_cmd="$SDB_COMMAND shell cd /home/developer/sdk_tools/ && tar -xf $GDBSERVER_TAR"
+       $ondemand_cmd
+
+}
+
 launch_gdbserver() {
-       target_install_path="/opt/usr/apps/$appid/bin/$BINARY"
-       gdbserver_command="/home/developer/sdk_tools/gdbserver/gdbserver :26102 $target_install_path"
+       target_install_path="/opt/apps/$appid/bin/$BINARY"
+       gdbserver_command="$GDB_SERVER :26102 $target_install_path"
 
        sdb_gdbserver_command="$SDB_COMMAND shell $gdbserver_command 2> /dev/null"
 
@@ -156,17 +161,11 @@ launch_gdbserver() {
 
 launch_gdb() {
        `$SDB_COMMAND forward tcp:7123 tcp:26102`
-       device="/dev/samsung_sdb"
-       sdb_cmd="$SDB_COMMAND shell ls $device > /dev/null 2> /dev/null ; echo \$?"
-       result=`$sdb_cmd`
-       if [ $result = $'0\r' ]
-       then
-               gdb="$TOOLS_HOME/arm-linux-gnueabi-gdb-7.2/bin/arm-linux-gnueabi-gdb"
-       elif [ $result = "0" ]
+       if [ $TARGET_TYPE = "real" ]
        then
-               gdb="$TOOLS_HOME/arm-linux-gnueabi-gdb-7.2/bin/arm-linux-gnueabi-gdb"
+               gdb="$TOOLS_HOME/arm-linux-gnueabi-gdb-7.5/bin/arm-linux-gnueabi-gdb"
        else
-               gdb="$TOOLS_HOME/i386-linux-gnueabi-gdb-7.2/bin/i386-linux-gnueabi-gdb"
+               gdb="$TOOLS_HOME/i386-linux-gnueabi-gdb-7.5/bin/i386-linux-gnueabi-gdb"
        fi
 
        $gdb $BINARY '--eval-command=target remote:7123'
@@ -176,6 +175,8 @@ launch_gdb() {
 
 init
 parse_param $*
+check_target_type
+ondemand_install
 launch_gdbserver
 launch_gdb
 
index 5a78bfa..7a34490 100755 (executable)
@@ -115,34 +115,26 @@ IF !%PACKAGE%==! (
        call :usage\r
        exit /b 1\r
 )\r
+\r
 SET COUNT=0\r
-SET IS_BINARY=0\r
-IF !%BINARY%==! (\r
-       SET IS_BINARY=1\r
-       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd /opt/usr/apps/%PACKAGE%/bin/ 2> /dev/null && ls *.exe | tee | wc -l"`) DO (\r
-               set COUNT=%%a\r
-       )\r
+SET FIND_PKGID_COMMAND=pkgcmd -l ^| grep %PACKAGE%\r
+FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "%FIND_PKGID_COMMAND% | wc -l"`) DO (\r
+       set COUNT=%%a\r
+)\r
+IF NOT %COUNT%==1 (\r
+       echo error: %PACKAGE%: no such package\r
+       exit /b 2\r
 )\r
 \r
-IF %IS_BINARY%==1 (\r
-       IF 1==%COUNT% (\r
-               FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd  /opt/usr/apps/%PACKAGE%/bin/ && ls *.exe | tee"`) DO (\r
-                       set BINARY=%%a\r
-               )\r
-       )\r
-       IF 0==%COUNT% (\r
-               echo error: not found executable file of "%PACKAGE%".\r
-               exit /B 2\r
+SET COUNT=0\r
+IF !%BINARY%==! (\r
+       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "%FIND_PKGID_COMMAND% | awk '{gsub(/[\[\]]/, "", $6); print $6}'"`) DO (\r
+               set BINARY=%%a\r
        )\r
-       IF 1 LSS %COUNT% (\r
-               FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd  /opt/usr/apps/%PACKAGE%/bin/ && ls *.exe"`) DO (\r
-                       echo error: more then one executable file of "%PACKAGE%".\r
-                       echo executable files: %%a\r
-                       exit /B 2\r
-               )\r
-       ) \r
 )\r
 \r
+call :check_target_type\r
+call :ondemand_install\r
 call :launch_gdbserver\r
 call :launch_gdb\r
 \r
@@ -156,8 +148,31 @@ exit /b %ERRORLEVEL%
        echo  -b,--binary ^<executable^>      debug the application given ^<pkg_name^>.^<executable^>\r
 exit /b\r
 \r
+:ondemand_install\r
+       IF %TARGET_TYPE%==real (\r
+               set GDBSERVER_TAR=gdbserver_7.5.0_armel.tar\r
+       ) ELSE (\r
+               set GDBSERVER_TAR=gdbserver_7.5.0_i386.tar\r
+       )\r
+\r
+       call %SDB_COMMAND% push %TOOLS_HOME%/../platforms/tizen2.1/on-demand/%GDBSERVER_TAR% /home/developer/sdk_tools/%GDBSERVER_TAR%\r
+       call %SDB_COMMAND% shell "cd /home/developer/sdk_tools/ && tar -xf %GDBSERVER_TAR%"\r
+exit /b\r
+\r
+:check_target_type\r
+       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "ls /dev/samsung_sdb 2> /dev/null | wc -l"`) DO (\r
+               set IS_EMULATOR=%%a\r
+       )\r
+\r
+       IF %IS_EMULATOR%==1 (\r
+               set TARGET_TYPE=real\r
+       ) ELSE (\r
+               set TARGET_TYPE=emulator\r
+       )\r
+exit /b\r
+\r
 :launch_gdbserver\r
-       set TARGET_INSTALL_PATH=/opt/usr/apps/%PACKAGE%/bin/%BINARY%\r
+       set TARGET_INSTALL_PATH=/opt/apps/%PACKAGE%/bin/%BINARY%\r
        set GDBSERVER_COMMAND=/home/developer/sdk_tools/gdbserver/gdbserver :26102 %TARGET_INSTALL_PATH%\r
        set SDB_GDBSERVER_COMMAND=%SDB_COMMAND% shell %GDBSERVER_COMMAND% 2> NUL\r
 \r
@@ -168,15 +183,13 @@ exit /b
 :launch_gdb\r
        call %SDB_COMMAND% forward tcp:7123 tcp:26102\r
 \r
-       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "ls /dev/samsung_sdb 2> /dev/null ; echo $?"`) DO (\r
+       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "ls /dev/samsung_sdb 2> /dev/null | wc -l"`) DO (\r
                set IS_EMULATOR=%%a\r
        )\r
 \r
-       IF %IS_EMULATOR%==0 (\r
-               call %TOOLS_HOME%\arm-linux-gnueabi-gdb-7.2\bin\arm-linux-gnueabi-gdb --eval-command="target remote:7123" --exec=%BINARY%\r
+       IF %IS_EMULATOR%==1 (\r
+               call %TOOLS_HOME%\arm-linux-gnueabi-gdb-7.5\bin\arm-linux-gnueabi-gdb --eval-command="target remote:7123" --exec=%BINARY%\r
        ) ELSE (\r
-               call %TOOLS_HOME%\i386-linux-gnueabi-gdb-7.2\bin\i386-linux-gnueabi-gdb --eval-command="target remote:7123" --exec=%BINARY%\r
+               call %TOOLS_HOME%\i386-linux-gnueabi-gdb-7.5\bin\i386-linux-gnueabi-gdb --eval-command="target remote:7123" --exec=%BINARY%\r
        )\r
-\r
-       echo\r
 exit /b\r
index b626108..ba04739 100755 (executable)
@@ -50,7 +50,7 @@ do
                        usage
                        exit 1;
                fi
-        package=$2
+        package=\"$2\"
         shift 2;
         ;; 
     *)  
@@ -66,8 +66,8 @@ then
        exit 1;
 fi
 
-PACKAGE_EXIST=`ls $package > /dev/null 2> /dev/null || ?$`
-if [ $PACKAGE_EXIT != 0 -a $package != "*$PACKAGE_EXTENSION" ]
+PACKAGE_EXIST=`eval ls $package > /dev/null 2> /dev/null ; echo $?`
+if [ $PACKAGE_EXIST != 0 -a $package != "*$PACKAGE_EXTENSION" ]
 then
        echo "error: incorrect package file"
        exit 1;
@@ -96,7 +96,7 @@ then
 fi
 command="$command install $package"
 
-$command
+eval $command
 exit_code=`echo $?`
 if [ "$exit_code" = "0" ]
 then
index 647862a..4387f89 100755 (executable)
@@ -16,32 +16,20 @@ done
 DIR_BIN=`dirname $SCRIPT`
 TOOLS_HOME="$DIR_BIN/../.."
 
-command="$TOOLS_HOME/smart-build-interface/bin/sbi_make $@"
+command="$TOOLS_HOME/smart-build-interface/bin/sbi_make"
+
 
 usage() {
        echo "Usage: native-make [options]"
-       echo " -t,--target <emulator|device>"
+       echo " -n,--name <platform name>"
+       echo " -v,--version <platform version>"
+       echo " -a,--arch <architecture>"
+       echo " -t,--toolchain <toolchain>"
+       echo " -rp,--ref-project <referencing project path>"
+       echo " -u,--unittest-target <target project path>"
        echo " clean"
 }
 
-for file in `ls`
-do
-       if [ "$file" = "build_data" ]
-       then
-               BUILD_DATA=$file
-       elif [ "$file" = "makefile" ]
-       then
-               MAKEFILE=$file
-       fi
-done
-
-if [ -z "$BUILD_DATA" -o -z "$MAKEFILE" ]
-then
-       echo "error: cannot find build_data or makefile"
-       echo "error: build_data, makefile is normally located in {project}/CommandLineBuild"
-       exit 2
-fi
-
 
 until [ -z "$1" ]
 do
@@ -51,16 +39,63 @@ do
                usage;
                exit;
                ;;
-       -t|--target)
-               if [ "emulator" != "$2" -a "device" != $2]
+       -n|--name)
+               if [ -z "$2" ]
+               then
+                       usage
+                       exit;
+               fi
+               command="$command -n \"$2\""
+               shift 2;
+               ;;
+       -v|--version)
+               if [ -z "$2" ]
+               then
+                       usage
+                       exit;
+               fi
+               command="$command -v \"$2\""
+               shift 2;
+               ;;
+       -a|--arch)
+               if [ -z "$2" ]
+               then
+                       usage
+                       exit;
+               fi
+               command="$command -a \"$2\""
+               shift 2;
+               ;;
+       -t|--toolchain)
+               if [ -z "$2" ]
+               then
+                       usage
+                       exit;
+               fi
+               command="$command -t \"$2\""
+               shift 2;
+               ;;
+       -rp|--ref-project)
+               if [ -z "$2" ]
                then
                        usage
                        exit;
                fi
+               command="$command -r \"$2\""
+               shift 2;
+               ;;
+       -u|--unittest-target)
+               if [ -z "$2" ]
+               then
+                       usage
+                       exit;
+               fi
+               command="$command -u \"$2\""
                shift 2;
                ;;
        clean)
                shift;
+               command="$command clean"
                ;;
        *)
                usage
@@ -69,8 +104,27 @@ do
        esac
 done
 
+for file in `ls`
+do
+       if [ "$file" = "build_data" ]
+       then
+               BUILD_DATA=$file
+       elif [ "$file" = "makefile" ]
+       then
+               MAKEFILE=$file
+       fi
+done
+
+if [ -z "$BUILD_DATA" -o -z "$MAKEFILE" ]
+then
+       echo "error: cannot find build_data or makefile"
+       echo "error: build_data, makefile is normally located in {project}/CommandLineBuild"
+       exit 2
+fi
+
+
+eval $command
 
-$command
 result=`echo $?`
 if [ "$result" = "0" ]
 then
index ad31d59..87f9e78 100755 (executable)
@@ -18,7 +18,7 @@ FOR /f "tokens=1,2 delims==" %%i IN ('type "%sdk_conf_path%\tizen-sdk-data\tizen
 set TOOLS_HOME=%SDK_PATH%\tools\r
 \r
 \r
-set command=%TOOLS_HOME%\smart-build-interface\bin\sbi-make.bat %1 %2\r
+set command=%TOOLS_HOME%\smart-build-interface\bin\sbi-make.bat\r
 REM init environment variable\r
 set IS_CLEAN=0\r
 \r
@@ -32,11 +32,41 @@ IF !%1==! (
        IF %1==--help (\r
                GOTO help\r
        )\r
+       IF %1==-n (\r
+               GOTO name\r
+       )\r
+       IF %1==--name (\r
+               GOTO name\r
+       )\r
+       IF %1==-v (\r
+               GOTO version \r
+       )\r
+       IF %1==--version (\r
+               GOTO version\r
+       )\r
+       IF %1==-a (\r
+               GOTO arch\r
+       )\r
+       IF %1==--arch (\r
+               GOTO arch\r
+       )\r
        IF %1==-t (\r
-               GOTO target\r
+               GOTO toolchain\r
+       )\r
+       IF %1==--toolchain (\r
+               GOTO toolchain\r
+       )\r
+       IF %1==-rp (\r
+               GOTO referencing\r
+       )\r
+       IF %1==--ref-project (\r
+               GOTO referencing\r
        )\r
-       IF %1==--target (\r
-               GOTO target\r
+       IF %1==-u (\r
+               GOTO unittest\r
+       )\r
+       IF %1==--unittest-target (\r
+               GOTO unittest\r
        )\r
        IF %1==clean (\r
                GOTO clean\r
@@ -45,22 +75,65 @@ IF !%1==! (
        :help\r
                call :usage\r
                exit /b\r
-       :target\r
-               IF emulator==%2 (\r
-                       shift\r
-                       shift\r
-                       GOTO getoptEnd\r
+       :name\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
                )\r
-               IF device==%2 (\r
-                       shift\r
-                       shift\r
-                       GOTO getoptEnd\r
+               set command=%command% -n %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
+       :version\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
                )\r
-               call :usage\r
-               exit /b\r
+               set command=%command% -v %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
+       :arch\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
+               )\r
+               set command=%command% -a %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
+       :toolchain\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
+               )\r
+               set command=%command% -t %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
+       :referencing\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
+               )\r
+               set command=%command% -r %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
+       :unittest\r
+               IF !%2==! (\r
+                       CALL :usage\r
+                       exit /b 1\r
+               )\r
+               set command=%command% -u %2\r
+               shift\r
+               shift\r
+               GOTO getoptEnd\r
        :clean\r
                shift\r
+               set command=%command% clean\r
                set IS_CLEAN=1\r
+               shift\r
                GOTO getoptEnd\r
 \r
 :getoptEnd\r
@@ -83,6 +156,11 @@ exit /b %ERRORLEVEL%
 \r
 :usage\r
        echo Usage: native-make [options]\r
-       echo  -t,--target ^<emulator^|device^>\r
+       echo  -n,--name ^<platform name^>\r
+       echo  -v,--version ^<platform version^>\r
+       echo  -a,--arch ^<architecture^>\r
+       echo  -t,--toolchain ^<toolchain^>\r
+       echo  -rp,--ref-project ^<referencing project path^>\r
+       echo  -u,--unittest-target ^<target project path^>\r
        echo  clean\r
 exit /b\r
index 52c576c..9dec05d 100755 (executable)
@@ -30,40 +30,7 @@ usage()
 }
 
 getBinaryFile() {
-       SDB_GET_BINARY_COMMAND="$SDB_COMMAND shell ls /opt/usr/apps/$appid/bin/"
-       count=0
-       extension=".exe"
-       extension_length=4
-       result_list=`$SDB_GET_BINARY_COMMAND`
-       for i in ${result_list}
-       do
-               length=`expr match "$i" '.*[.]exe'`
-               start_pos=`expr $length - "$extension_length" + 1`
-               str=`expr substr "$i" "$start_pos" "$extension_length"`
-               if [ "$str" != "$extension" ]
-               then
-                       BINARY=$i
-                       if [ -z "$binary_list" ]
-                       then
-                               binary_list=$i
-                       else
-                               binary_list="$binary_list, $i"
-
-                       fi
-                       count=`expr "$count" + 1`
-               fi
-       done
-
-       if [ "$count" -eq "0" ]
-       then
-               echo "error: not found executable file of \"$appid\"."
-               exit 2;
-       elif [ "$count" -gt "1" ]
-       then
-               echo "error: more then one executable file of \"$appid\"."
-               echo "executable files: $binary_list"
-               exit 2;
-       fi
+       BINARY=`$FIND_PKGID_COMMAND | awk '{gsub(/[\[\]]/, "", $6); print $6}'`
 }
 
 until [ -z "$1" ]
@@ -112,6 +79,7 @@ if [ -n "$serial" ]
 then
        SDB_COMMAND="$SDB -s $serial"
 fi
+FIND_PKGID_COMMAND="$SDB_COMMAND shell pkgcmd -l | grep $appid"
 
 devices=`$SDB devices | wc -l`
 if [ "$devices" -lt 2 ]
@@ -133,6 +101,12 @@ then
        usage
        exit 1;
 fi
+pkgid_count=`$FIND_PKGID_COMMAND | wc -l`
+if [ $pkgid_count -ne 1 ]
+then
+       echo "error: $appid: no such package"
+       exit 2;
+fi
 
 if [ -z "$BINARY" ]
 then
index 6feb28a..46810bf 100755 (executable)
@@ -118,30 +118,19 @@ IF !%PACKAGE%==! (
 )\r
 \r
 SET COUNT=0\r
-SET IS_BINARY=0\r
-IF !%BINARY%==! (\r
-       SET IS_BINARY=1\r
-       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd /opt/usr/apps/%PACKAGE%/bin/ 2> /dev/null && ls --ignore=*.exe | tee | wc -l"`) DO (\r
-               set COUNT=%%a\r
-       )\r
+SET FIND_PKGID_COMMAND=pkgcmd -l ^| grep %PACKAGE%\r
+FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "%FIND_PKGID_COMMAND% | wc -l"`) DO (\r
+       set COUNT=%%a\r
 )\r
+IF NOT %COUNT%==1 (\r
+       echo error: %PACKAGE%: no such package\r
+       exit /b 2\r
+)\r
+SET COUNT=0\r
 \r
-IF %IS_BINARY%==1 (\r
-       IF 1==%COUNT% (\r
-               FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd  /opt/usr/apps/%PACKAGE%/bin/ && ls --ignore=*.exe | tee"`) DO (\r
-                       set BINARY=%%a\r
-               )\r
-       )\r
-       IF 0==%COUNT% (\r
-               echo error: not found executable file of "%PACKAGE%".\r
-               exit /B 2\r
-       )\r
-       IF 1 LSS %COUNT% (\r
-               FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "cd  /opt/usr/apps/%PACKAGE%/bin/ && ls --ignore=*.exe"`) DO (\r
-                       echo error: more then one executable file of "%PACKAGE%".\r
-                       echo executable files: %%a\r
-                       exit /B 2\r
-               )\r
+IF !%BINARY%==! (\r
+       FOR /f "usebackq delims=" %%a IN (`%SDB_COMMAND% shell "%FIND_PKGID_COMMAND% | awk '{gsub(/[\[\]]/, "", $6); print $6}'"`) DO (\r
+               set BINARY=%%a\r
        )\r
 )\r
 \r