package: integrity emulator-lib and emulator-lib-dev
authorMunkyu Im <munkyu.im@samsung.com>
Mon, 20 Jul 2015 09:17:42 +0000 (18:17 +0900)
committerSangho Park <sangho.p@samsung.com>
Tue, 28 Jul 2015 08:48:47 +0000 (17:48 +0900)
packaging both packages in one git.
add setting permission
modify checking swt.jar

Change-Id: Iedbf7af8247c9cd3b5b13a3a0769e5179a6f3483
Signed-off-by: Munkyu Im <munkyu.im@samsung.com>
package/2.4-emulator-lib-dev.install.macos-64 [new file with mode: 0755]
package/2.4-emulator-lib-dev.install.ubuntu-32 [new file with mode: 0755]
package/2.4-emulator-lib-dev.install.ubuntu-64 [new file with mode: 0755]
package/2.4-emulator-lib-dev.install.windows-32 [new file with mode: 0755]
package/2.4-emulator-lib-dev.install.windows-64 [new file with mode: 0755]
package/build.macos-64
package/build.ubuntu-32
package/build.ubuntu-64
package/build.windows-32
package/build.windows-64
package/pkginfo.manifest

diff --git a/package/2.4-emulator-lib-dev.install.macos-64 b/package/2.4-emulator-lib-dev.install.macos-64
new file mode 100755 (executable)
index 0000000..4d0af2d
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh -xe
+
+PKG_INSTALL_PATH=${INSTALLED_PATH}
+if [ -z $PKG_INSTALL_PATH ]
+then
+    exit 2;
+fi
+echo $PKG_INSTALL_PATH
+
+## adjust pkgconfig (.pc) file
+
+FIND_PC=`find ${PKG_INSTALL_PATH} -name '*.pc'`
+
+for pc in ${FIND_PC}; do
+    echo "$pc"
+
+    LIB_DIR=$pc
+    for i in 1 2 3; do
+        LIB_DIR=`dirname $LIB_DIR`
+    done
+    echo $LIB_DIR
+
+    for line in `grep -n '^prefix=' ${pc} | cut -f 1 -d :`; do
+        echo "$line"
+    done
+    sed -i ".bak"  -e '/^prefix/c\' -e "${line}s|^|prefix=${LIB_DIR}|" $pc
+    rm ${pc}.bak
+done
diff --git a/package/2.4-emulator-lib-dev.install.ubuntu-32 b/package/2.4-emulator-lib-dev.install.ubuntu-32
new file mode 100755 (executable)
index 0000000..2c0d53d
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh -xe
+
+PKG_INSTALL_PATH=${INSTALLED_PATH}
+if [ -z $PKG_INSTALL_PATH ]
+then
+   exit 2;
+fi
+echo $PKG_INSTALL_PATH
+
+## adjust pkgconfig (.pc) file
+
+FIND_PC=`find ${PKG_INSTALL_PATH} -name '*.pc'`
+
+for pc in ${FIND_PC}; do
+    echo "$pc"
+
+    LIB_DIR=$pc
+
+    for i in 1 2 3; do
+        LIB_DIR=`dirname $LIB_DIR`
+    done
+    echo $LIB_DIR
+
+    for line in `grep -n '^prefix=' ${pc} | cut -f 1 -d :`; do
+        echo "$line"
+    done
+
+    sed -i '/^prefix=/!b;c\prefix=${LIBDIR}' $pc
+    sed -i "1s|^|LIBDIR=${LIB_DIR}\n|" $pc
+
+    #sed -i ".bak"  -e '/^prefix/c\' -e "${line}s|^|prefix=${LIB_DIR}|" $pc
+    #rm ${pc}.bak
+done
diff --git a/package/2.4-emulator-lib-dev.install.ubuntu-64 b/package/2.4-emulator-lib-dev.install.ubuntu-64
new file mode 100755 (executable)
index 0000000..2c0d53d
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh -xe
+
+PKG_INSTALL_PATH=${INSTALLED_PATH}
+if [ -z $PKG_INSTALL_PATH ]
+then
+   exit 2;
+fi
+echo $PKG_INSTALL_PATH
+
+## adjust pkgconfig (.pc) file
+
+FIND_PC=`find ${PKG_INSTALL_PATH} -name '*.pc'`
+
+for pc in ${FIND_PC}; do
+    echo "$pc"
+
+    LIB_DIR=$pc
+
+    for i in 1 2 3; do
+        LIB_DIR=`dirname $LIB_DIR`
+    done
+    echo $LIB_DIR
+
+    for line in `grep -n '^prefix=' ${pc} | cut -f 1 -d :`; do
+        echo "$line"
+    done
+
+    sed -i '/^prefix=/!b;c\prefix=${LIBDIR}' $pc
+    sed -i "1s|^|LIBDIR=${LIB_DIR}\n|" $pc
+
+    #sed -i ".bak"  -e '/^prefix/c\' -e "${line}s|^|prefix=${LIB_DIR}|" $pc
+    #rm ${pc}.bak
+done
diff --git a/package/2.4-emulator-lib-dev.install.windows-32 b/package/2.4-emulator-lib-dev.install.windows-32
new file mode 100755 (executable)
index 0000000..9bf2ce2
--- /dev/null
@@ -0,0 +1,13 @@
+@echo off
+
+setlocal enabledelayedexpansion
+set PC_PATH=%INSTALLED_PATH:"=%\*.pc
+
+@echo %PC_PATH%
+
+FOR /F %%i in ('dir /s /b %PC_PATH%') DO (
+@echo %%i
+@echo prefix= >> %%i.bak
+findstr /V "^prefix" %%i >> %%i.bak
+move /Y %%i.bak %%i
+)
diff --git a/package/2.4-emulator-lib-dev.install.windows-64 b/package/2.4-emulator-lib-dev.install.windows-64
new file mode 100755 (executable)
index 0000000..9bf2ce2
--- /dev/null
@@ -0,0 +1,13 @@
+@echo off
+
+setlocal enabledelayedexpansion
+set PC_PATH=%INSTALLED_PATH:"=%\*.pc
+
+@echo %PC_PATH%
+
+FOR /F %%i in ('dir /s /b %PC_PATH%') DO (
+@echo %%i
+@echo prefix= >> %%i.bak
+findstr /V "^prefix" %%i >> %%i.bak
+move /Y %%i.bak %%i
+)
index 47dba1c..f474e5f 100644 (file)
@@ -1,39 +1,38 @@
 #!/bin/sh -e
 BUILD_ARCH=x86_64
-BUILD_PACKAGE=2.4-emulator-lib
-BUILD_SW=cocoa
-TMP_DIR="$SRCDIR/data"
+BUILD_LIB_PACKAGE=2.4-emulator-lib
+BUILD_DEV_PACKAGE=2.4-emulator-lib-dev
+BUILD_WS=cocoa
+TMP_LIB_DIR="$SRCDIR/lib"
+TMP_DEV_DIR="$SRCDIR/dev"
+TMP_SWT_DIR="$SRCDIR/swt"
 META_MF=meta.mf
 OS_COMMON_DIR="$ROOTDIR/os-common"
-BIN_DIR="$SRCDIR/package/${BUILD_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
-# general .mf example
-#Extension: dylib
-#Usage: check-net
-#Version: 8.0 //get from "file" command
-#OS: ubuntu-32
-#Arch: x86_64
-#Package: emulator-lib
-#License:
+LIB_PACKAGE_DIR="$SRCDIR/package/${BUILD_LIB_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
+DEV_PACKAGE_DIR="$SRCDIR/package/${BUILD_DEV_PACKAGE}.package.${TARGET_OS}/data/"
+RESULT_CONTAINS=contains
+RESULT_NOT_CONTAINS=not_contains
 
 patch_loader_path()
 {
-    cd $BIN_DIR
-
     # Libs[] is an array.
     declare -a Libs
 
-    cnt=0
+    declare -i cnt=0
     # add library to patch loader_path
-    for i in $(ls *.dylib) QtCore QtGui QtOpenGL QtPrintSupport QtWidgets
+    for i in $(ls $LIB_PACKAGE_DIR)
     do
-        Libs[cnt]=$i
-        cnt+=1
+        FILE_RESULT="$(/usr/bin/file "$LIB_PACKAGE_DIR$i")"
+        if [ $(contains_string "$FILE_RESULT" "dynamically linked shared library") == "contains" ];then
+            Libs[$cnt]="$i"
+            cnt=$cnt+1
+        fi
     done
 
     for i in "${Libs[@]}"
     do
         # read line by line of otool result
-        otool -L $i | sed 1d | \
+        otool -L "$LIB_PACKAGE_DIR$i" | sed 1d | \
         while read j
         do
             # parse only loader path
@@ -50,28 +49,28 @@ patch_loader_path()
             exit 1
         fi
 
-        arr=( $(otool -L $i | awk '/\/opt\/local\/lib/ { split($1,lib,"/"); print lib[5] }') )
+        arr=( $(otool -L "$LIB_PACKAGE_DIR$i" | awk '/\/opt\/local\/lib/ { split($1,lib,"/"); print lib[5] }') )
         for lib in "${arr[@]}"
         do
             echo $lib
             if [ "$i" == "$lib" ]
             then
                 # echo $i
-                install_name_tool -id $i $i
+                install_name_tool -id $i "$LIB_PACKAGE_DIR$i"
             else
-                install_name_tool -change /opt/local/lib/$lib @loader_path/$lib $i
+                install_name_tool -change /opt/local/lib/$lib @loader_path/$lib "$LIB_PACKAGE_DIR$i"
             fi
         done
-        arr2=( $(otool -L $i | awk '/\/opt\/local\/Library/ { split($1,lib,"/"); print lib[9] }') )
+        arr2=( $(otool -L "$LIB_PACKAGE_DIR$i" | awk '/\/opt\/local\/Library/ { split($1,lib,"/"); print lib[9] }') )
         for lib in "${arr2[@]}"
         do
             echo $lib
             if [ "$i" == "$lib" ]
             then
                 # echo $i
-                install_name_tool -id $i $i
+                install_name_tool -id $i "$LIB_PACKAGE_DIR$i"
             else
-                install_name_tool -change /opt/local/Library/Frameworks/$lib.framework/Versions/5/$lib @loader_path/$lib $i
+                install_name_tool -change /opt/local/Library/Frameworks/$lib.framework/Versions/5/$lib @loader_path/$lib "$LIB_PACKAGE_DIR$i"
             fi
         done
     done
@@ -81,8 +80,8 @@ patch_loader_path()
 
 patch_for_other_dir()
 {
-    IMAGEFORMATS_DIR=$BIN_DIR/imageformats
-    PLATFORMS_DIR=$BIN_DIR/platforms
+    IMAGEFORMATS_DIR=$LIB_PACKAGE_DIR/imageformats
+    PLATFORMS_DIR=$LIB_PACKAGE_DIR/platforms
 
     for i in $PLATFORMS_DIR/libqcocoa.dylib $(ls $IMAGEFORMATS_DIR/*.dylib)
     do
@@ -122,72 +121,138 @@ trim_string()
     echo "$trimmed"
 }
 
-contains()
+# $1: source string
+# $2: string to search for
+contains_string()
 {
     string="$1"
     substring="$2"
     if test "${string#*$substring}" != "$string"
     then
-        echo $substring is in $string
+        echo "$RESULT_CONTAINS"
     else
-        echo $substring is not in $string
-        exit 1
+        echo "$RESULT_NOT_CONTAINS"
     fi
 }
 
+# $1: file to set permission
+set_permission()
+{
+    string="$(/usr/bin/file "$1")"
+    substring="executable"
+    if test "${string#*$substring}" != "$string"
+    then
+        echo $1 is excutable
+        chmod 755 "$1"
+    else
+        chmod 644 "$1"
+    fi
+}
+
+# $1: swt file path
+# TODO: checking version
 check_swt()
 {
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
     # especially check for swt.jar
-        unzip $2
-        TEMP_SWT_WS=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
-        SWT_WS=$(trim_string $TEMP_SWT_WS)
-        if [ $SWT_WS != $BUILD_WS ];then
-            echo $SWT_WS is not supported.
+    unzip -jo "$FILE" META-INF/MANIFEST.MF  -d "$TMP_SWT_DIR"
+    TEMP_SWT_WS=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
+    SWT_WS=$(trim_string $TEMP_SWT_WS)
+    if [ "$(contains_string $SWT_WS $BUILD_WS)" == "$RESULT_NOT_CONTAINS" ];then
+            echo "$SWT_SW not supported"
             exit 1
-        fi
-        TEMP_SWT_ARCH=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
-        SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
-        if [ $SWT_ARCH != $BUILD_ARCH ];then
-            echo $SWT_ARCH is not supported.
+    fi
+
+    TEMP_SWT_ARCH=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
+    SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
+    if [ "$(contains_string $SWT_ARCH $BUILD_ARCH)" == "$RESULT_NOT_CONTAINS" ];then
+            echo "$SWT_ARCH not supported"
             exit 1
-        fi
+    fi
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
+
+    # copy file if validation passed.
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
 }
 
 # $1: mf file path (e.g. xxx.mf)
-# $2: original binary/library file path (e.g. xxx.dylib)
-check_file()
+check_lib_file()
 {
-    # check arch from mf file
-    ARCHS=$(cat $1 | grep "Arch:" | cut -d ':' -f2)
-    contains "$ARCHS" $BUILD_ARCH
-    # do not use file command if file extension is not dylib.
-    if [ "$EXTENSION" == "dylib" ];then
-        ARCH_RESULT=$(file $2)
-        contains "$ARCH_RESULT" $BUILD_ARCH
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
+    FILE_RESULT="$(/usr/bin/file $FILE)"
+    # check architure if file is dynamic library
+    if [ "$(contains_string $FILE_RESULT "dynamically linked shared library")" == "$RESULT_CONTAINS" ];then
+        if [ "$(contains_string $FILE_RESULT $BUILD_ARCH)" == "$RESULT_NOT_CONTAINS" ];then
+            echo "$ARCHS not supported"
+            exit 1
+        fi
     fi
-    # TODO: some libraries do not have extension. need handling
     # check OS
     OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
-    contains "$OSES" $TARGET_OS
+    if [ "$(contains_string "$OSES" $TARGET_OS)" == "$RESULT_NOT_CONTAINS" ];then
+        echo "$OSES not supported"
+        exit 1
+    fi
+
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
 
     # copy file if validation passed.
-    echo "move $2 to $TMP_DIR"
-    mv -f "$2" $TMP_DIR
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
+}
+
+# $1: meta.mf file path
+check_dev_file() {
+    # check OS
+    TEMP_OS=$(cat $1 | grep "OS:" | cut -d ':' -f2)
+    OS=$(trim_string $TEMP_OS)
+    if [ "$OS" != "$TARGET_OS" ];then
+        echo "OS is not matched. build OS is ${TARGET_OS}, but yours is $OS"
+        exit 1
+    fi
+
+    # copy directory if validation passed.
+    DIR=$(dirname $1)
+    # TODO: need checking architecture of libraries under DIR
+    echo "copy $DIR to $TMP_DEV_DIR"
+    cp -pPR $DIR $TMP_DEV_DIR
 }
 
 clean()
 {
     rm -rf $SRCDIR/*.zip
-    rm -rf $SRCDIR/*.tar.gz
+
+    rm -rf $TMP_LIB_DIR
+    rm -rf $TMP_DEV_DIR
+    rm -rf $TMP_SWT_DIR
 }
 
 prepare()
 {
-    if [ ! -d $TMP_DIR ]
+    if [ ! -d $TMP_DEV_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_DEV_DIR )"
+        mkdir $TMP_DEV_DIR
+    fi
+    if [ ! -d $TMP_LIB_DIR ]
     then
-        echo "make temp directory for emulator install : ( $TMP_DIR )"
-        mkdir $TMP_DIR
+        echo "make temp directory for emulator install : ( $TMP_LIB_DIR )"
+        mkdir $TMP_LIB_DIR
     fi
+
 }
 
 # $1: root directory for traversing
@@ -197,59 +262,47 @@ traverse_manifest()
     for i in $(find $1 -iname '*.mf')
     do
         # skip if filename is meta.mf it's used for packaging dev
-        if [ "$META_MF" == $(basename "$i") ];then
-            echo "skip $i"
-            continue
-        fi
-
-        TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
-        PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
-        TEMP_EXTENSION=$(cat "$i" | grep "Extension:" | cut -d ':' -f2)
-        EXTENSIONS=$(trim_string "$(echo $TEMP_EXTENSION | tr "," "\n")")
-        BUILD_OK=0
-        for PACKAGE in $PACKAGES
-        do
-            if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" == $BUILD_PACKAGE ]
-            then
-                # BUILD_OK=1 means this manifest file support current build project
-                BUILD_OK=1
-
-                # find origin file(s) from manifest file
-                TRIM_EXTENSIONS=$(trim_string "$EXTENSIONS")
-                if [ "x" == "$TRIM_EXTENSIONS"x ];then
-                    # used for Qt library. they do not have extension.
-                    FILE=${i%%.mf}
-                    check_file "$i" "$FILE"
-                else
-                    for EXTENSION in $EXTENSIONS
-                    do
-                        echo found \"$PACKAGE\" in $i
-
-                        if [ ! -e $EXTENSION ]
-                        then
-                            FILE=${i%%.mf}.$EXTENSION
-                        else
-                            FILE=${i%%.mf}
-                        fi
-                        if [ ! -f "$FILE" ] ;then
-                            echo $FILE does not exist.
-                            exit 1
-                        fi
-                        if [ $(basename $i) == swt ];then
-                            check_swt "$i" "$FILE"
-                        else
-                            check_file "$i" "$FILE"
-                        fi
-                    done
+        BASENAME="$(basename "$i")"
+        if [ "$META_MF" == "$BASENAME" ];then
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" == $BUILD_DEV_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+                    check_dev_file "$i"
                 fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
+            fi
+        else
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" == $BUILD_LIB_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+
+                    # find origin file(s) from manifest file
+                    echo found \"$PACKAGE\" in $i
+
+                    if [ "${BASENAME%%.mf}" == "swt.jar" ];then
+                        check_swt "$i"
+                    else
+                        check_lib_file "$i"
+                    fi
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
             fi
-        done
-        if [ $BUILD_OK -eq 0 ]
-        then
-            echo "cannot find $BUILD_PACKAGE in $i skipped."
         fi
     done
-
 }
 
 build()
@@ -264,28 +317,28 @@ build()
 
 install()
 {
-    PLATFORMS_DIR=$TMP_DIR/platforms/
-    IMAGEFORMATS_DIR=$TMP_DIR/imageformats/
+    PLATFORMS_DIR=$TMP_LIB_DIR/platforms/
+    IMAGEFORMATS_DIR=$TMP_LIB_DIR/imageformats/
 
     # make directory structure
-    mkdir -p $BIN_DIR
+    mkdir -p $LIB_PACKAGE_DIR
     mkdir -p $PLATFORMS_DIR
     mkdir -p $IMAGEFORMATS_DIR
+    mkdir -p $DEV_PACKAGE_DIR
 
     # move for specific cases
-    mv $TMP_DIR/libqcocoa.dylib $PLATFORMS_DIR
-    mv $TMP_DIR/libqgif.dylib $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqicns.dylib $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqjpeg.dylib $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqico.dylib $IMAGEFORMATS_DIR
+    cp -f $TMP_LIB_DIR/libqcocoa.dylib $PLATFORMS_DIR
+    cp -f $TMP_LIB_DIR/libqgif.dylib $IMAGEFORMATS_DIR
+    cp -f $TMP_LIB_DIR/libqicns.dylib $IMAGEFORMATS_DIR
+    cp -f $TMP_LIB_DIR/libqjpeg.dylib $IMAGEFORMATS_DIR
+    cp -f $TMP_LIB_DIR/libqico.dylib $IMAGEFORMATS_DIR
 
     # move for general case
-    mv -f $TMP_DIR/* $BIN_DIR
+    mv -f $TMP_LIB_DIR/* $LIB_PACKAGE_DIR
 
     patch_loader_path
 
-    # after done, remove temp
-    rm -rf $TMP_DIR
+    mv -f $TMP_DEV_DIR/* $DEV_PACKAGE_DIR
 }
 
 [ "$1" = "clean" ] && clean
index e665a43..20882da 100755 (executable)
@@ -1,27 +1,18 @@
-#!/bin/sh -xe
+#!/bin/sh -e
 
-BUILD_ARCH=i386
-BUILD_PACKAGE=2.4-emulator-lib
+BUILD_ARCH=x86
+BUILD_LIB_PACKAGE=2.4-emulator-lib
+BUILD_DEV_PACKAGE=2.4-emulator-lib-dev
 BUILD_WS=gtk
+TMP_LIB_DIR="$SRCDIR/lib"
+TMP_DEV_DIR="$SRCDIR/dev"
+TMP_SWT_DIR="$SRCDIR/swt"
 META_MF=meta.mf
-TMP_DIR="$SRCDIR/data"
 OS_COMMON_DIR="$ROOTDIR/os-common"
-BIN_DIR="$SRCDIR/package/${BUILD_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
-
-clean()
-{
-    rm -rf $SRCDIR/*.zip
-    rm -rf $SRCDIR/*.tar.gz
-}
-
-prepare()
-{
-    if [ ! -d $TMP_DIR ]
-    then
-        echo "make temp directory for emulator install : ( $TMP_DIR )"
-        mkdir $TMP_DIR
-    fi
-}
+LIB_PACKAGE_DIR="$SRCDIR/package/${BUILD_LIB_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
+DEV_PACKAGE_DIR="$SRCDIR/package/${BUILD_DEV_PACKAGE}.package.${TARGET_OS}/data/"
+RESULT_CONTAINS=contains
+RESULT_NOT_CONTAINS=not_contains
 
 trim_string()
 {
@@ -32,60 +23,140 @@ trim_string()
     echo "$trimmed"
 }
 
-contains() {
+# $1: source string
+# $2: string to search for
+contains_string()
+{
     string="$1"
     substring="$2"
     if test "${string#*$substring}" != "$string"
     then
-        echo $substring is in $string
+        echo "$RESULT_CONTAINS"
     else
-        echo $substring is not in $string
-        exit 1
+        echo "$RESULT_NOT_CONTAINS"
     fi
 }
 
-# $1: mf file path (swt.mf)
-# $2: original swt.jar file path (e.g. data/ubuntu-64/swt.jar)
+# $1: file to set permission
+set_permission()
+{
+    string="$(/usr/bin/file "$1")"
+    substring="executable"
+    if test "${string#*$substring}" != "$string"
+    then
+        echo $1 is excutable
+        chmod 755 "$1"
+    else
+        chmod 644 "$1"
+    fi
+}
+
+# $1: swt file path
+# TODO: checking version
 check_swt()
 {
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
     # especially check for swt.jar
-    unzip $2
-    TEMP_SWT_WS=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
+    unzip -jo "$FILE" META-INF/MANIFEST.MF  -d "$TMP_SWT_DIR"
+    TEMP_SWT_WS=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
     SWT_WS=$(trim_string $TEMP_SWT_WS)
-    if [ $SWT_WS != $BUILD_WS ];then
-        echo $SWT_WS is not supported.
+    if [ "$(contains_string $SWT_WS $BUILD_WS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_SW not supported"
         exit 1
     fi
-    TEMP_SWT_ARCH=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
+
+    TEMP_SWT_ARCH=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
     SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
-    if [ $SWT_ARCH != "x86" ];then
-        echo $SWT_ARCH is not supported.
+    if [ "$(contains_string $SWT_ARCH $BUILD_ARCH)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_ARCH not supported"
         exit 1
     fi
-    mv -f "$2" $TMP_DIR
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
+
+    # copy file if validation passed.
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
 }
 
 # $1: mf file path (e.g. xxx.mf)
-# $2: original binary/library file path (e.g. xxx.dylib)
-check_file()
+check_lib_file()
 {
-    # check arch from mf file
-    ARCHS=$(cat $1 | grep "Arch:" | cut -d ':' -f2)
-    contains "$ARCHS" $BUILD_ARCH
-
-    # check the library to support build_architecture
-    if [ "$EXTENSION" = "so"* ];then
-        ARCH_RESULT=$(file $2)
-        contains "$ARCH_RESULT" "32-bit"
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
     fi
 
     # check OS
     OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
-    contains "$OSES" $TARGET_OS
+    if [ "$(contains_string "$OSES" $TARGET_OS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$OSES not supported"
+        exit 1
+    fi
+    # check Architecture
+    if [ "$(contains_string "$FILE" ".so")" = "$RESULT_CONTAINS" ];then
+        FILE_RESULT="$(/usr/bin/file $FILE)"
+        if [ "$(contains_string "$FILE_RESULT" "32-bit")" = "$RESULT_NOT_CONTAINS" ];then
+            echo "$FILE has not the supported architecture"
+            exit 1
+        else
+            echo "$FILE has the supported architecture"
+        fi
+    fi
+
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
 
     # copy file if validation passed.
-    echo "move $2 to $TMP_DIR"
-    mv -f "$2" $TMP_DIR
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
+}
+
+# $1: meta.mf file path
+check_dev_file() {
+    # check OS
+    TEMP_OS=$(cat $1 | grep "OS:" | cut -d ':' -f2)
+    OS=$(trim_string $TEMP_OS)
+    if [ "$OS" != "$TARGET_OS" ];then
+        echo "OS is not matched. build OS is ${TARGET_OS}, but yours is $OS"
+        exit 1
+    fi
+
+    # copy directory if validation passed.
+    DIR=$(dirname $1)
+    # TODO: need checking architecture of libraries under DIR
+    echo "copy $DIR to $TMP_DEV_DIR"
+    cp -pPR "$DIR" $TMP_DEV_DIR
+}
+
+clean()
+{
+    rm -rf $SRCDIR/*.zip
+
+    rm -rf $TMP_LIB_DIR
+    rm -rf $TMP_DEV_DIR
+    rm -rf $TMP_SWT_DIR
+}
+
+prepare()
+{
+    if [ ! -d $TMP_DEV_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_DEV_DIR )"
+        mkdir $TMP_DEV_DIR
+    fi
+    if [ ! -d $TMP_LIB_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_LIB_DIR )"
+        mkdir $TMP_LIB_DIR
+    fi
+
 }
 
 # $1: root directory for traversing
@@ -94,47 +165,45 @@ traverse_manifest()
     for i in $(find $1 -iname '*.mf')
     do
         # skip if filename is meta.mf it's used for packaging dev
-        if [ "$META_MF" = $(basename $i) ];then
-            echo "skip $i"
-            continue
-        fi
-
-        TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
-        PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
-        TEMP_EXTENSION=$(cat "$i" | grep "Extension:" | cut -d ':' -f2)
-        EXTENSIONS=$(trim_string "$(echo $TEMP_EXTENSION | tr "," "\n")")
-        BUILD_OK=0
-
-        for PACKAGE in $PACKAGES
-        do
-            if [ ! -e $PACKAGE ] && [ "$PACKAGE" = "$BUILD_PACKAGE" ];then
-                # BUILD_OK=1 means this manifest file support current build project
-                BUILD_OK=1
-
-                # find origin file(s) from manifest file
-                for EXTENSION in $EXTENSIONS
-                do
+        BASENAME="$(basename "$i")"
+        if [ "$META_MF" = "$BASENAME" ];then
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_DEV_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+                    check_dev_file "$i"
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
+            fi
+        else
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_LIB_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+
+                    # find origin file(s) from manifest file
                     echo found \"$PACKAGE\" in $i
-                    if [ ! -e $EXTENSION ];then
-                        FILE=${i%%.mf}.$EXTENSION
-                    else
-                        FILE=${i%%.mf}
-                    fi
-                    if [ ! -f "$FILE" ] ;then
-                        echo $FILE does not exist.
-                        exit 1
-                    fi
-                    if [ $(basename $i) = swt ];then
-                        check_swt "$i" "$FILE"
+
+                    if [ "${BASENAME%%.mf}" = "swt.jar" ];then
+                        check_swt "$i"
                     else
-                        check_file "$i" "$FILE"
+                        check_lib_file "$i"
                     fi
-                done
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
             fi
-        done
-        if [ $BUILD_OK -eq 0 ]
-        then
-            echo "cannot find $BUILD_PACKAGE in $i skipped."
         fi
     done
 }
@@ -151,30 +220,28 @@ build()
 
 install()
 {
-    cd $TMP_DIR
-
-    IMAGEFORMATS_DIR=$TMP_DIR/imageformats/
-    PLATFORMS_DIR=$TMP_DIR/platforms/
-    PLATFORMTHEMES_DIR=$TMP_DIR/platformthemes/
+    PLATFORMS_DIR=$TMP_LIB_DIR/platforms/
+    IMAGEFORMATS_DIR=$TMP_LIB_DIR/imageformats/
+    PLATFORMTHEMES_DIR=$TMP_LIB_DIR/platformthemes/
 
     # make directory structure
-    mkdir -p $BIN_DIR
-    mkdir -p $IMAGEFORMATS_DIR
+    mkdir -p $LIB_PACKAGE_DIR
+    mkdir -p $DEV_PACKAGE_DIR
     mkdir -p $PLATFORMS_DIR
+    mkdir -p $IMAGEFORMATS_DIR
     mkdir -p $PLATFORMTHEMES_DIR
 
-    mv $TMP_DIR/libqgif.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqico.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqjpeg.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqwbmp.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqxcb.so $PLATFORMS_DIR
-    mv $TMP_DIR/libqgtk2.so $PLATFORMTHEMES_DIR
-
-    # move all files in temp directory into pacakage directory
-    mv * $BIN_DIR/
-
-    # after done, remove temp directory
-    rm -rf $TMP_DIR
+    # move for specific cases
+    mv -f $TMP_LIB_DIR/libqgif.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqico.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqjpeg.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqwbmp.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqxcb.so $PLATFORMS_DIR
+    mv -f $TMP_LIB_DIR/libqgtk2.so $PLATFORMTHEMES_DIR
+
+    # move for general case
+    mv -f $TMP_LIB_DIR/* $LIB_PACKAGE_DIR
+    mv -f $TMP_DEV_DIR/* $DEV_PACKAGE_DIR
 }
 
 [ "$1" = "clean" ] && clean
index cadf25a..f648d6d 100755 (executable)
@@ -1,27 +1,18 @@
-#!/bin/sh -xe
+#!/bin/sh -e
 
 BUILD_ARCH=x86_64
-BUILD_PACKAGE=2.4-emulator-lib
+BUILD_LIB_PACKAGE=2.4-emulator-lib
+BUILD_DEV_PACKAGE=2.4-emulator-lib-dev
 BUILD_WS=gtk
+TMP_LIB_DIR="$SRCDIR/lib"
+TMP_DEV_DIR="$SRCDIR/dev"
+TMP_SWT_DIR="$SRCDIR/swt"
 META_MF=meta.mf
-TMP_DIR="$SRCDIR/data"
 OS_COMMON_DIR="$ROOTDIR/os-common"
-BIN_DIR="$SRCDIR/package/${BUILD_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
-
-clean()
-{
-    rm -rf $SRCDIR/*.zip
-    rm -rf $SRCDIR/*.tar.gz
-}
-
-prepare()
-{
-    if [ ! -d $TMP_DIR ]
-    then
-        echo "make temp directory for emulator install : ( $TMP_DIR )"
-        mkdir $TMP_DIR
-    fi
-}
+LIB_PACKAGE_DIR="$SRCDIR/package/${BUILD_LIB_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
+DEV_PACKAGE_DIR="$SRCDIR/package/${BUILD_DEV_PACKAGE}.package.${TARGET_OS}/data/"
+RESULT_CONTAINS=contains
+RESULT_NOT_CONTAINS=not_contains
 
 trim_string()
 {
@@ -32,60 +23,141 @@ trim_string()
     echo "$trimmed"
 }
 
-contains() {
+# $1: source string
+# $2: string to search for
+contains_string()
+{
     string="$1"
     substring="$2"
     if test "${string#*$substring}" != "$string"
     then
-        echo $substring is in $string
+        echo "$RESULT_CONTAINS"
     else
-        echo $substring is not in $string
-        exit 1
+        echo "$RESULT_NOT_CONTAINS"
     fi
 }
 
-# $1: mf file path (swt.mf)
-# $2: original swt.jar file path (e.g. data/ubuntu-64/swt.jar)
+# $1: file to set permission
+set_permission()
+{
+    string="$(/usr/bin/file "$1")"
+    substring="executable"
+    if test "${string#*$substring}" != "$string"
+    then
+        echo $1 is excutable
+        chmod 755 "$1"
+    else
+        chmod 644 "$1"
+    fi
+}
+
+# $1: swt file path
+# TODO: checking version
 check_swt()
 {
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
     # especially check for swt.jar
-    unzip $2
-    TEMP_SWT_WS=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
+    unzip -jo "$FILE" META-INF/MANIFEST.MF  -d "$TMP_SWT_DIR"
+    TEMP_SWT_WS=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
     SWT_WS=$(trim_string $TEMP_SWT_WS)
-    if [ $SWT_WS != $BUILD_WS ];then
-        echo $SWT_WS is not supported.
+    if [ "$(contains_string $SWT_WS $BUILD_WS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_SW not supported"
         exit 1
     fi
-    TEMP_SWT_ARCH=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
+
+    TEMP_SWT_ARCH=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
     SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
-    if [ $SWT_ARCH != $BUILD_ARCH ];then
-        echo $SWT_ARCH is not supported.
+    if [ "$(contains_string $SWT_ARCH $BUILD_ARCH)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_ARCH not supported"
         exit 1
     fi
-    mv -f "$2" $TMP_DIR
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
+
+    # copy file if validation passed.
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
 }
 
 # $1: mf file path (e.g. xxx.mf)
-# $2: original binary/library file path (e.g. xxx.dylib)
-check_file()
+check_lib_file()
 {
-    # check arch from mf file
-    ARCHS=$(cat $1 | grep "Arch:" | cut -d ':' -f2)
-    contains "$ARCHS" $BUILD_ARCH
-
-    # check the library to support build_architecture
-    if [ "$EXTENSION" = "so"* ];then
-        ARCH_RESULT=$(file $2)
-        contains "$ARCH_RESULT" "64-bit"
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
     fi
 
     # check OS
     OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
-    contains "$OSES" $TARGET_OS
+    if [ "$(contains_string "$OSES" $TARGET_OS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$OSES not supported"
+        exit 1
+    fi
+
+    # check Architecture
+    if [ "$(contains_string "$FILE" ".so")" = "$RESULT_CONTAINS" ];then
+        FILE_RESULT="$(/usr/bin/file $FILE)"
+        if [ "$(contains_string "$FILE_RESULT" "64-bit")" = "$RESULT_NOT_CONTAINS" ];then
+            echo "$FILE has not the supported architecture"
+            exit 1
+        else
+            echo "$FILE has the supported architecture"
+        fi
+    fi
+
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
 
     # copy file if validation passed.
-    echo "move $2 to $TMP_DIR"
-    mv -f "$2" $TMP_DIR
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
+}
+
+# $1: meta.mf file path
+check_dev_file() {
+    # check OS
+    TEMP_OS=$(cat $1 | grep "OS:" | cut -d ':' -f2)
+    OS=$(trim_string $TEMP_OS)
+    if [ "$OS" != "$TARGET_OS" ];then
+        echo "OS is not matched. build OS is ${TARGET_OS}, but yours is $OS"
+        exit 1
+    fi
+
+    # copy directory if validation passed.
+    DIR=$(dirname $1)
+    # TODO: need checking architecture of libraries under DIR
+    echo "copy $DIR to $TMP_DEV_DIR"
+    cp -pPR "$DIR" $TMP_DEV_DIR
+}
+
+clean()
+{
+    rm -rf $SRCDIR/*.zip
+
+    rm -rf $TMP_LIB_DIR
+    rm -rf $TMP_DEV_DIR
+    rm -rf $TMP_SWT_DIR
+}
+
+prepare()
+{
+    if [ ! -d $TMP_DEV_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_DEV_DIR )"
+        mkdir $TMP_DEV_DIR
+    fi
+    if [ ! -d $TMP_LIB_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_LIB_DIR )"
+        mkdir $TMP_LIB_DIR
+    fi
+
 }
 
 # $1: root directory for traversing
@@ -94,47 +166,45 @@ traverse_manifest()
     for i in $(find $1 -iname '*.mf')
     do
         # skip if filename is meta.mf it's used for packaging dev
-        if [ "$META_MF" = $(basename $i) ];then
-            echo "skip $i"
-            continue
-        fi
-
-        TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
-        PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
-        TEMP_EXTENSION=$(cat "$i" | grep "Extension:" | cut -d ':' -f2)
-        EXTENSIONS=$(trim_string "$(echo $TEMP_EXTENSION | tr "," "\n")")
-        BUILD_OK=0
-
-        for PACKAGE in $PACKAGES
-        do
-            if [ ! -e $PACKAGE ] && [ "$PACKAGE" = "$BUILD_PACKAGE" ];then
-                # BUILD_OK=1 means this manifest file support current build project
-                BUILD_OK=1
-
-                # find origin file(s) from manifest file
-                for EXTENSION in $EXTENSIONS
-                do
+        BASENAME="$(basename "$i")"
+        if [ "$META_MF" = "$BASENAME" ];then
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_DEV_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+                    check_dev_file "$i"
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
+            fi
+        else
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_LIB_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+
+                    # find origin file(s) from manifest file
                     echo found \"$PACKAGE\" in $i
-                    if [ ! -e $EXTENSION ];then
-                        FILE=${i%%.mf}.$EXTENSION
-                    else
-                        FILE=${i%%.mf}
-                    fi
-                    if [ ! -f "$FILE" ] ;then
-                        echo $FILE does not exist.
-                        exit 1
-                    fi
-                    if [ $(basename $i) = swt ];then
-                        check_swt "$i" "$FILE"
+
+                    if [ "${BASENAME%%.mf}" = "swt.jar" ];then
+                        check_swt "$i"
                     else
-                        check_file "$i" "$FILE"
+                        check_lib_file "$i"
                     fi
-                done
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
             fi
-        done
-        if [ $BUILD_OK -eq 0 ]
-        then
-            echo "cannot find $BUILD_PACKAGE in $i skipped."
         fi
     done
 }
@@ -151,30 +221,28 @@ build()
 
 install()
 {
-    cd $TMP_DIR
-
-    IMAGEFORMATS_DIR=$TMP_DIR/imageformats/
-    PLATFORMS_DIR=$TMP_DIR/platforms/
-    PLATFORMTHEMES_DIR=$TMP_DIR/platformthemes/
+    PLATFORMS_DIR=$TMP_LIB_DIR/platforms/
+    IMAGEFORMATS_DIR=$TMP_LIB_DIR/imageformats/
+    PLATFORMTHEMES_DIR=$TMP_LIB_DIR/platformthemes/
 
     # make directory structure
-    mkdir -p $BIN_DIR
-    mkdir -p $IMAGEFORMATS_DIR
+    mkdir -p $LIB_PACKAGE_DIR
+    mkdir -p $DEV_PACKAGE_DIR
     mkdir -p $PLATFORMS_DIR
+    mkdir -p $IMAGEFORMATS_DIR
     mkdir -p $PLATFORMTHEMES_DIR
 
-    mv $TMP_DIR/libqgif.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqico.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqjpeg.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqwbmp.so $IMAGEFORMATS_DIR
-    mv $TMP_DIR/libqxcb.so $PLATFORMS_DIR
-    mv $TMP_DIR/libqgtk2.so $PLATFORMTHEMES_DIR
-
-    # move all files in temp directory into pacakage directory
-    mv * $BIN_DIR/
-
-    # after done, remove temp directory
-    rm -rf $TMP_DIR
+    # move for specific cases
+    mv -f $TMP_LIB_DIR/libqgif.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqico.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqjpeg.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqwbmp.so $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/libqxcb.so $PLATFORMS_DIR
+    mv -f $TMP_LIB_DIR/libqgtk2.so $PLATFORMTHEMES_DIR
+
+    # move for general case
+    mv -f $TMP_LIB_DIR/* $LIB_PACKAGE_DIR
+    mv -f $TMP_DEV_DIR/* $DEV_PACKAGE_DIR
 }
 
 [ "$1" = "clean" ] && clean
index 3f67157..aeef18e 100755 (executable)
@@ -1,27 +1,18 @@
-#!/bin/sh -xe
+#!/bin/sh -e
 
-BUILD_ARCH=i386
-BUILD_PACKAGE=2.4-emulator-lib
+BUILD_ARCH=x86
+BUILD_LIB_PACKAGE=2.4-emulator-lib
+BUILD_DEV_PACKAGE=2.4-emulator-lib-dev
 BUILD_WS=win32
+TMP_LIB_DIR="$SRCDIR/lib"
+TMP_DEV_DIR="$SRCDIR/dev"
+TMP_SWT_DIR="$SRCDIR/swt"
 META_MF=meta.mf
-TMP_DIR="$SRCDIR/data"
 OS_COMMON_DIR="$ROOTDIR/os-common"
-BIN_DIR="$SRCDIR/package/${BUILD_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
-
-clean()
-{
-    rm -rf $SRCDIR/*.zip
-    rm -rf $SRCDIR/*.tar.gz
-}
-
-prepare()
-{
-    if [ ! -d $TMP_DIR ]
-    then
-        echo "make temp directory for emulator install : ( $TMP_DIR )"
-        mkdir $TMP_DIR
-    fi
-}
+LIB_PACKAGE_DIR="$SRCDIR/package/${BUILD_LIB_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
+DEV_PACKAGE_DIR="$SRCDIR/package/${BUILD_DEV_PACKAGE}.package.${TARGET_OS}/data/"
+RESULT_CONTAINS=contains
+RESULT_NOT_CONTAINS=not_contains
 
 trim_string()
 {
@@ -32,74 +23,146 @@ trim_string()
     echo "$trimmed"
 }
 
-contains()
+# $1: source string
+# $2: string to search for
+contains_string()
 {
     string="$1"
     substring="$2"
     if test "${string#*$substring}" != "$string"
     then
-        echo $substring is in $string
+        echo "$RESULT_CONTAINS"
     else
-        echo $substring is not in $string
-        exit 1
+        echo "$RESULT_NOT_CONTAINS"
+    fi
+}
+
+# $1: file to set permission
+set_permission()
+{
+    string="$(/usr/bin/file "$1")"
+    substring="executable"
+    if test "${string#*$substring}" != "$string"
+    then
+        echo $1 is excutable
+        chmod 755 "$1"
+    else
+        chmod 644 "$1"
     fi
 }
 
-# $1: mf file path (swt.mf)
-# $2: original swt.jar file path (e.g. data/ubuntu-64/swt.jar)
+# $1: swt file path
+# TODO: checking version
 check_swt()
 {
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
     # especially check for swt.jar
-    unzip $2
-    TEMP_SWT_WS=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
+    unzip -jo "$FILE" META-INF/MANIFEST.MF  -d "$TMP_SWT_DIR"
+    TEMP_SWT_WS=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
     SWT_WS=$(trim_string $TEMP_SWT_WS)
-    if [ $SWT_WS != $BUILD_WS ];then
-        echo $SWT_WS is not supported.
+    if [ "$(contains_string $SWT_WS $BUILD_WS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_SW not supported"
         exit 1
     fi
-    TEMP_SWT_ARCH=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
+
+    TEMP_SWT_ARCH=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
     SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
-    if [ $SWT_ARCH != "x86" ];then
-        echo $SWT_ARCH is not supported.
+    if [ "$(contains_string $SWT_ARCH $BUILD_ARCH)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_ARCH not supported"
         exit 1
     fi
-    mv -f "$2" $TMP_DIR
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
+
+    # copy file if validation passed.
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
 }
 
 # $1: mf file path (e.g. xxx.mf)
-# $2: original binary/library file path (e.g. xxx.dylib)
-check_file()
+check_lib_file()
 {
-    # check arch from mf file
-    ARCHS=$(cat $1 | grep "Arch:" | cut -d ':' -f2)
-    contains "$ARCHS" $BUILD_ARCH
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
 
-    # check the library or the binary to support build_architecture
-    if [ "$EXTENSION" = "dll" ] && [ "$EXTENSION" = "exe" ] ;then
-        ARCH_RESULT=$(file $2)
+    # check OS
+    OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
+    if [ "$(contains_string "$OSES" $TARGET_OS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$OSES not supported"
+        exit 1
+    fi
+    # check Architecture
+    if [ "$(contains_string "$FILE" ".dll")" = "$RESULT_CONTAINS" ];then
+        FILE_RESULT="$(/usr/bin/file $FILE)"
         ARCH_OK=0
-        if test "${ARCH_RESULT#*"32-bit"}" != "$ARCH_RESULT"
-        then
-            echo $ARCH_RESULT is in 32-bit
+        if [ "$(contains_string "$FILE_RESULT" "32-bit")" = "$RESULT_CONTAINS" ];then
+            echo "$FILE has the supported architecture"
             ARCH_OK=1
-        elif test "${ARCH_RESULT#*"PE32"}" != "$ARCH_RESULT"
-        then
-            echo $ARCH_RESULT is in PE32
+        elif [ "$(contains_string "$FILE_RESULT" "PE32")" = "$RESULT_CONTAINS" ];then
+            echo "$FILE has the supported architecture"
             ARCH_OK=1
-        elif test "${ARCH_OK}" == "0"
-        then
-            echo $2 is no architecture.
-            exit 1
         fi
     fi
+    if [ $ARCH_OK -eq 0 ];then
+        echo "$FILE has not the supported architecture"
+        exit 1
+    fi
 
-    # check OS
-    OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
-    contains "$OSES" $TARGET_OS
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
 
     # copy file if validation passed.
-    echo "move $2 to $TMP_DIR"
-    mv -f "$2" $TMP_DIR
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
+}
+
+# $1: meta.mf file path
+check_dev_file()
+{
+    # check OS
+    TEMP_OS=$(cat $1 | grep "OS:" | cut -d ':' -f2)
+    OS=$(trim_string $TEMP_OS)
+    if [ "$OS" != "$TARGET_OS" ];then
+        echo "OS is not matched. build OS is ${TARGET_OS}, but yours is $OS"
+        exit 1
+    fi
+
+    # copy directory if validation passed.
+    DIR=$(dirname $1)
+    # TODO: need checking architecture of libraries under DIR
+    echo "copy $DIR to $TMP_DEV_DIR"
+    cp -pPR "$DIR" $TMP_DEV_DIR
+}
+
+clean()
+{
+    rm -rf $SRCDIR/*.zip
+
+    rm -rf $TMP_LIB_DIR
+    rm -rf $TMP_DEV_DIR
+    rm -rf $TMP_SWT_DIR
+}
+
+prepare()
+{
+    if [ ! -d $TMP_DEV_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_DEV_DIR )"
+        mkdir $TMP_DEV_DIR
+    fi
+    if [ ! -d $TMP_LIB_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_LIB_DIR )"
+        mkdir $TMP_LIB_DIR
+    fi
 }
 
 # $1: root directory for traversing
@@ -108,47 +171,45 @@ traverse_manifest()
     for i in $(find $1 -iname '*.mf')
     do
         # skip if filename is meta.mf it's used for packaging dev
-        if [ "$META_MF" = $(basename $i) ];then
-            echo "skip $i"
-            continue
-        fi
-
-        TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
-        PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
-        TEMP_EXTENSION=$(cat "$i" | grep "Extension:" | cut -d ':' -f2)
-        EXTENSIONS=$(trim_string "$(echo $TEMP_EXTENSION | tr "," "\n")")
-        BUILD_OK=0
-
-        for PACKAGE in $PACKAGES
-        do
-            if [ ! -e $PACKAGE ] && [ "$PACKAGE" = "$BUILD_PACKAGE" ];then
-                # BUILD_OK=1 means this manifest file support current build project
-                BUILD_OK=1
-
-                # find origin file(s) from manifest file
-                for EXTENSION in $EXTENSIONS
-                do
+        BASENAME="$(basename "$i")"
+        if [ "$META_MF" = "$BASENAME" ];then
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_DEV_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+                    check_dev_file "$i"
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
+            fi
+        else
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_LIB_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+
+                    # find origin file(s) from manifest file
                     echo found \"$PACKAGE\" in $i
-                    if [ ! -e $EXTENSION ];then
-                        FILE=${i%%.mf}.$EXTENSION
-                    else
-                        FILE=${i%%.mf}
-                    fi
-                    if [ ! -f "$FILE" ] ;then
-                        echo $FILE does not exist.
-                        exit 1
-                    fi
-                    if [ $(basename $i) = swt ];then
-                        check_swt "$i" "$FILE"
+
+                    if [ "${BASENAME%%.mf}" = "swt.jar" ];then
+                        check_swt "$i"
                     else
-                        check_file "$i" "$FILE"
+                        check_lib_file "$i"
                     fi
-                done
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
             fi
-        done
-        if [ $BUILD_OK -eq 0 ]
-        then
-            echo "cannot find $BUILD_PACKAGE in $i skipped."
         fi
     done
 }
@@ -165,23 +226,26 @@ build()
 
 install()
 {
-    cd $TMP_DIR
-
-    IMAGEFORMATS_DIR=$TMP_DIR/imageformats/
-    PLATFORMS_DIR=$TMP_DIR/platforms/
+    PLATFORMS_DIR=$TMP_LIB_DIR/platforms/
+    IMAGEFORMATS_DIR=$TMP_LIB_DIR/imageformats/
 
     # make directory structure
-    mkdir -p $BIN_DIR
-    mkdir -p $IMAGEFORMATS_DIR
+    mkdir -p $LIB_PACKAGE_DIR
+    mkdir -p $DEV_PACKAGE_DIR
     mkdir -p $PLATFORMS_DIR
+    mkdir -p $IMAGEFORMATS_DIR
 
-    mv $TMP_DIR/qgif.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qico.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qjpeg.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qwindows.dll $PLATFORMS_DIR
-
-    # move all files in temp directory into pacakage directory
-    mv * $BIN_DIR/
+    # move for specific cases
+    mv -f $TMP_LIB_DIR/qgif.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qico.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qjpeg.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qwindows.dll $PLATFORMS_DIR
+
+    # move for general case
+    cd $TMP_LIB_DIR
+    mv -f * $LIB_PACKAGE_DIR
+    cd $TMP_DEV_DIR
+    mv -f * $DEV_PACKAGE_DIR
 }
 
 [ "$1" = "clean" ] && clean
index d1d90a1..df33242 100755 (executable)
@@ -1,27 +1,18 @@
-#!/bin/sh -xe
+#!/bin/sh -e
 
 BUILD_ARCH=x86_64
-BUILD_PACKAGE=2.4-emulator-lib
+BUILD_LIB_PACKAGE=2.4-emulator-lib
+BUILD_DEV_PACKAGE=2.4-emulator-lib-dev
 BUILD_WS=win32
+TMP_LIB_DIR="$SRCDIR/lib"
+TMP_DEV_DIR="$SRCDIR/dev"
+TMP_SWT_DIR="$SRCDIR/swt"
 META_MF=meta.mf
-TMP_DIR="$SRCDIR/data"
 OS_COMMON_DIR="$ROOTDIR/os-common"
-BIN_DIR="$SRCDIR/package/${BUILD_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
-
-clean()
-{
-    rm -rf $SRCDIR/*.zip
-    rm -rf $SRCDIR/*.tar.gz
-}
-
-prepare()
-{
-    if [ ! -d $TMP_DIR ]
-    then
-        echo "make temp directory for emulator install : ( $TMP_DIR )"
-        mkdir $TMP_DIR
-    fi
-}
+LIB_PACKAGE_DIR="$SRCDIR/package/${BUILD_LIB_PACKAGE}.package.${TARGET_OS}/data/platforms/tizen-2.4/common/emulator/bin/"
+DEV_PACKAGE_DIR="$SRCDIR/package/${BUILD_DEV_PACKAGE}.package.${TARGET_OS}/data/"
+RESULT_CONTAINS=contains
+RESULT_NOT_CONTAINS=not_contains
 
 trim_string()
 {
@@ -32,78 +23,149 @@ trim_string()
     echo "$trimmed"
 }
 
-contains()
+# $1: source string
+# $2: string to search for
+contains_string()
 {
     string="$1"
     substring="$2"
     if test "${string#*$substring}" != "$string"
     then
-        echo $substring is in $string
+        echo "$RESULT_CONTAINS"
     else
-        echo $substring is not in $string
-        exit 1
+        echo "$RESULT_NOT_CONTAINS"
     fi
 }
 
-# $1: mf file path (swt.mf)
-# $2: original swt.jar file path (e.g. data/ubuntu-64/swt.jar)
+# $1: file to set permission
+set_permission()
+{
+    string="$(/usr/bin/file "$1")"
+    substring="executable"
+    if test "${string#*$substring}" != "$string"
+    then
+        echo $1 is excutable
+        chmod 755 "$1"
+    else
+        chmod 644 "$1"
+    fi
+}
+
+# $1: swt file path
+# TODO: checking version
 check_swt()
 {
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
+
     # especially check for swt.jar
-    unzip $2
-    TEMP_SWT_WS=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
+    unzip -jo "$FILE" META-INF/MANIFEST.MF  -d "$TMP_SWT_DIR"
+    TEMP_SWT_WS=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-WS:" | cut -d ':' -f2)
     SWT_WS=$(trim_string $TEMP_SWT_WS)
-    if [ $SWT_WS != $BUILD_WS ];then
-        echo $SWT_WS is not supported.
+    if [ "$(contains_string $SWT_WS $BUILD_WS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_SW not supported"
         exit 1
     fi
-    TEMP_SWT_ARCH=$(cat $2/META-INF/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
+
+    TEMP_SWT_ARCH=$(cat $TMP_SWT_DIR/MANIFEST.MF | grep "SWT-Arch:" | cut -d ':' -f2)
     SWT_ARCH=$(trim_string $TEMP_SWT_ARCH)
-    if [ $SWT_ARCH != $BUILD_ARCH ];then
-        echo $SWT_ARCH is not supported.
+    if [ "$(contains_string $SWT_ARCH $BUILD_ARCH)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$SWT_ARCH not supported"
         exit 1
     fi
-    mv -f "$2" $TMP_DIR
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
+
+    # copy file if validation passed.
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
 }
 
 # $1: mf file path (e.g. xxx.mf)
-# $2: original binary/library file path (e.g. xxx.dylib)
-check_file()
+check_lib_file()
 {
-    # check arch from mf file
-    ARCHS=$(cat $1 | grep "Arch:" | cut -d ':' -f2)
-    contains "$ARCHS" $BUILD_ARCH
+    FILE=${1%%.mf}
+    if [ ! -f "$FILE" ];then
+        echo $FILE does not exist.
+        exit 1
+    fi
 
-    # check the library or the binary to support build_architecture
-    if [ "$EXTENSION" = "dll" ] && [ "$EXTENSION" = "exe" ] ;then
-        ARCH_RESULT=$(file $2)
+    # check OS
+    OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
+    if [ "$(contains_string "$OSES" $TARGET_OS)" = "$RESULT_NOT_CONTAINS" ];then
+        echo "$OSES not supported"
+        exit 1
+    fi
+    # check Architecture
+    if [ "$(contains_string "$FILE" ".dll")" = "$RESULT_CONTAINS" ];then
+        FILE_RESULT="$(/usr/bin/file $FILE)"
         ARCH_OK=0
-        if test "${ARCH_RESULT#*"64-bit"}" != "$ARCH_RESULT"
-        then
-            echo $ARCH_RESULT is in 64-bit
+        if [ "$(contains_string "$FILE_RESULT" "32-bit")" = "$RESULT_CONTAINS" ];then
+            echo "$FILE has the supported architecture"
             ARCH_OK=1
-        elif test "${ARCH_RESULT#*"32-bit"}" != "$ARCH_RESULT"
-        then
-            echo $ARCH_RESULT is in 32-bit
+        elif [ "$(contains_string "$FILE_RESULT" "64-bit")" = "$RESULT_CONTAINS" ];then
+            echo "$FILE has the supported architecture"
             ARCH_OK=1
-        elif test "${ARCH_RESULT#*"PE32"}" != "$ARCH_RESULT"
-        then
-            echo $ARCH_RESULT is in PE32
+        elif [ "$(contains_string "$FILE_RESULT" "PE32")" = "$RESULT_CONTAINS" ];then
+            echo "$FILE has the supported architecture"
             ARCH_OK=1
-        elif test "${ARCH_OK}" == "0"
-        then
-            echo $2 is no architecture.
-            exit 1
         fi
     fi
+    if [ $ARCH_OK -eq 0 ];then
+        echo "$FILE has not the supported architecture"
+        exit 1
+    fi
 
-    # check OS
-    OSES=$(cat $i | grep "OS:" | cut -d ':' -f2)
-    contains "$OSES" $TARGET_OS
+    # if file type has excutable, set 755 permission. if not, set 644 permission
+    set_permission "$FILE"
 
     # copy file if validation passed.
-    echo "move $2 to $TMP_DIR"
-    mv -f "$2" $TMP_DIR
+    echo "copy $FILE to $TMP_LIB_DIR"
+    cp -pPR "$FILE" $TMP_LIB_DIR
+}
+
+# $1: meta.mf file path
+check_dev_file() {
+    # check OS
+    TEMP_OS=$(cat $1 | grep "OS:" | cut -d ':' -f2)
+    OS=$(trim_string $TEMP_OS)
+    if [ "$OS" != "$TARGET_OS" ];then
+        echo "OS is not matched. build OS is ${TARGET_OS}, but yours is $OS"
+        exit 1
+    fi
+
+    # copy directory if validation passed.
+    DIR=$(dirname $1)
+    # TODO: need checking architecture of libraries under DIR
+    echo "copy $DIR to $TMP_DEV_DIR"
+    cp -pPR "$DIR" $TMP_DEV_DIR
+}
+
+clean()
+{
+    rm -rf $SRCDIR/*.zip
+
+    rm -rf $TMP_LIB_DIR
+    rm -rf $TMP_DEV_DIR
+    rm -rf $TMP_SWT_DIR
+}
+
+prepare()
+{
+    if [ ! -d $TMP_DEV_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_DEV_DIR )"
+        mkdir $TMP_DEV_DIR
+    fi
+    if [ ! -d $TMP_LIB_DIR ]
+    then
+        echo "make temp directory for emulator install : ( $TMP_LIB_DIR )"
+        mkdir $TMP_LIB_DIR
+    fi
+
 }
 
 # $1: root directory for traversing
@@ -112,47 +174,45 @@ traverse_manifest()
     for i in $(find $1 -iname '*.mf')
     do
         # skip if filename is meta.mf it's used for packaging dev
-        if [ "$META_MF" = $(basename $i) ];then
-            echo "skip $i"
-            continue
-        fi
+        BASENAME="$(basename "$i")"
+        if [ "$META_MF" = "$BASENAME" ];then
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_DEV_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
+                    check_dev_file "$i"
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
+            fi
+        else
+            TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
+            PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
+            BUILD_OK=0
+            for PACKAGE in $PACKAGES
+            do
+                if [ ! -e "$PACKAGE" ] && [ "$PACKAGE" = $BUILD_LIB_PACKAGE ];then
+                    # BUILD_OK=1 means this manifest file support current build project
+                    BUILD_OK=1
 
-        TEMP_PACKAGE=$(cat "$i" | grep "Package:" | cut -d ':' -f2)
-        PACKAGES=$(trim_string "$(echo $TEMP_PACKAGE | tr "," "\n")")
-        TEMP_EXTENSION=$(cat "$i" | grep "Extension:" | cut -d ':' -f2)
-        EXTENSIONS=$(trim_string "$(echo $TEMP_EXTENSION | tr "," "\n")")
-        BUILD_OK=0
-
-        for PACKAGE in $PACKAGES
-        do
-            if [ ! -e $PACKAGE ] && [ "$PACKAGE" = "$BUILD_PACKAGE" ];then
-                # BUILD_OK=1 means this manifest file support current build project
-                BUILD_OK=1
-
-                # find origin file(s) from manifest file
-                for EXTENSION in $EXTENSIONS
-                do
+                    # find origin file(s) from manifest file
                     echo found \"$PACKAGE\" in $i
-                    if [ ! -e $EXTENSION ];then
-                        FILE=${i%%.mf}.$EXTENSION
-                    else
-                        FILE=${i%%.mf}
-                    fi
-                    if [ ! -f "$FILE" ] ;then
-                        echo $FILE does not exist.
-                        exit 1
-                    fi
-                    if [ $(basename $i) = swt ];then
-                        check_swt "$i" "$FILE"
+
+                    if [ "${BASENAME%%.mf}" = "swt.jar" ];then
+                        check_swt "$i"
                     else
-                        check_file "$i" "$FILE"
+                        check_lib_file "$i"
                     fi
-                done
+                fi
+            done
+            if [ $BUILD_OK -eq 0 ];then
+                echo "cannot find $BUILD_LIB_PACKAGE in $i skipped."
             fi
-        done
-        if [ $BUILD_OK -eq 0 ]
-        then
-            echo "cannot find $BUILD_PACKAGE in $i skipped."
         fi
     done
 }
@@ -169,23 +229,26 @@ build()
 
 install()
 {
-    cd $TMP_DIR
-
-    IMAGEFORMATS_DIR=$TMP_DIR/imageformats/
-    PLATFORMS_DIR=$TMP_DIR/platforms/
+    PLATFORMS_DIR=$TMP_LIB_DIR/platforms/
+    IMAGEFORMATS_DIR=$TMP_LIB_DIR/imageformats/
 
     # make directory structure
-    mkdir -p $BIN_DIR
-    mkdir -p $IMAGEFORMATS_DIR
+    mkdir -p $LIB_PACKAGE_DIR
+    mkdir -p $DEV_PACKAGE_DIR
     mkdir -p $PLATFORMS_DIR
+    mkdir -p $IMAGEFORMATS_DIR
 
-    mv $TMP_DIR/qgif.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qico.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qjpeg.dll $IMAGEFORMATS_DIR
-    mv $TMP_DIR/qwindows.dll $PLATFORMS_DIR
+    # move for specific cases
+    mv -f $TMP_LIB_DIR/qgif.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qico.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qjpeg.dll $IMAGEFORMATS_DIR
+    mv -f $TMP_LIB_DIR/qwindows.dll $PLATFORMS_DIR
 
-    # move all files in temp directory into pacakage directory
-    mv * $BIN_DIR/
+    # move for general case
+    cd $TMP_LIB_DIR
+    mv -f * $LIB_PACKAGE_DIR
+    cd $TMP_DEV_DIR
+    mv -f * $DEV_PACKAGE_DIR
 }
 
 [ "$1" = "clean" ] && clean
index 1d19529..5cc6d9b 100644 (file)
@@ -31,3 +31,33 @@ OS : windows-64
 Build-host-os : windows-64
 Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
 Description : SWT and ECP libraries, and other runtime libraries for Tizen Emulator.
+
+Package: 2.4-emulator-lib-dev
+OS: ubuntu-32
+Build-host-os: ubuntu-32
+Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
+Description: Libraries and headers to build Tizen Emulator
+
+Package: 2.4-emulator-lib-dev
+OS: ubuntu-64
+Build-host-os: ubuntu-64
+Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
+Description: Libraries and headers to build Tizen Emulator
+
+Package: 2.4-emulator-lib-dev
+OS: windows-32
+Build-host-os: windows-32
+Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
+Description: Libraries and headers to build Tizen Emulator
+
+Package: 2.4-emulator-lib-dev
+OS: windows-64
+Build-host-os: windows-64
+Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
+Description: Libraries and headers to build Tizen Emulator
+
+Package: 2.4-emulator-lib-dev
+OS: macos-64
+Build-host-os: macos-64
+Build-dependency: 2.4-emulator-library-pool [ ubuntu-32 ]
+Description: Libraries and headers to build Tizen Emulator