DIR_BIN=`dirname $SCRIPT`
TOOLS_HOME="$DIR_BIN/../.."
SDB="$TOOLS_HOME/sdb"
+ GDB_SERVER="/home/developer/sdk_tools/gdbserver/gdbserver"
}
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() {
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 ]
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"
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'
init
parse_param $*
+check_target_type
+ondemand_install
launch_gdbserver
launch_gdb
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
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
: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
usage
exit 1;
fi
- package=$2
+ package=\"$2\"
shift 2;
;;
*)
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;
fi
command="$command install $package"
-$command
+eval $command
exit_code=`echo $?`
if [ "$exit_code" = "0" ]
then
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
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
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
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
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
: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
\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
}
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" ]
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 ]
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
)\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