package: use rpath based library loading for Linux
authorSeokYeon Hwang <syeon.hwang@samsung.com>
Thu, 9 Jun 2016 08:36:22 +0000 (17:36 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Fri, 10 Jun 2016 05:38:13 +0000 (14:38 +0900)
On Linux, now, we use rpath based library loading.
Some unnecessary dependency is detached from qt5_msgbox.

Change-Id: I43c9ed9f84b97c52240402728f46ff51bf12f78a
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
package/build.macos
tizen/emulator_configure.sh
tizen/src/scripts/emulator.cmd
tizen/src/scripts/emulator.sh
tizen/standalone-src/Makefile

index 1968f31..254e362 100755 (executable)
@@ -24,12 +24,6 @@ build()
 # install
 install()
 {
-       # add @rpath into binaries
-       for file in $(find "$SRCDIR/tizen/emulator/bin" -type f -exec file -F ' ' {} \; | grep "Mach-O" | grep "executable" | awk '{print $1}')
-       do
-               install_name_tool -add_rpath "@executable_path" "$file"
-       done
-
        . $SRCDIR/package/build.common
        install_common
 }
index b6a5df0..bb9e2d8 100755 (executable)
@@ -158,6 +158,7 @@ case $targetos in
 Linux*)
 CONFIGURE_APPEND="
  --extra-ldflags=-rdynamic
+ --extra-ldflags=-Wl,-rpath,'\$\$ORIGIN'
  --audio-drv-list=alsa
  --enable-sdl
  --enable-kvm
@@ -196,6 +197,7 @@ CONFIGURE_APPEND="
  --extra-cflags=-mmacosx-version-min=10.7
  --extra-cflags=-Wno-error=deprecated-declarations
  --extra-ldflags=-lstdc++
+ --extra-ldflags=-Wl,-rpath,'@executable_path'
  --audio-drv-list=coreaudio
  --enable-cocoa
  --enable-hax
index e950bc5..5261ac4 100644 (file)
@@ -5,7 +5,9 @@ SETLOCAL
 SET EMULATOR_BIN_PATH=%~dp0
 
 rem set environment variables
+rem for SDL display
 SET SDL_STDIO_REDIRECT=0
+rem for VIGS
 SET VIGS_SYNC_READ_PIXELS=1
 
 set WITH_GDB="no"
@@ -14,8 +16,6 @@ IF "%1"=="--with-gdb" (
        SHIFT
 )
 
-rem Workaround for windows audio problem
-set QEMU_AUDIO_DRV=none
 rem run emulator
 IF %WITH_GDB%=="yes" (
        gdb --args "%EMULATOR_BIN_PATH%\emulator-x86_64" %*
index 0d752c8..0e791f7 100755 (executable)
@@ -5,10 +5,11 @@ if [ "$(uname | cut -c 1-5)" = "Linux" ]; then
 SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
 EMULATOR_INSTALLED_PATH=$(readlink -f "$SCRIPT_DIR/..")
 EMULATOR_BIN_PATH=$EMULATOR_INSTALLED_PATH/bin
-EMULATOR_TOOL_PATH=$EMULATOR_INSTALLED_PATH/../../../../tools/emulator
 
 # set env variables for linux
-export LD_LIBRARY_PATH="$EMULATOR_BIN_PATH":"$EMULATOR_TOOL_PATH/remote/lib":
+# LD_LIBRARY_PATH is not mandatory anymore, but we leave it for sure.
+export LD_LIBRARY_PATH="$EMULATOR_BIN_PATH":
+
 elif [ "$(uname | cut -c 1-6)" = "Darwin" ]; then
 # under darwin
 EMULATOR_INSTALLED_PATH=$(cd "$(dirname "$0")"; cd ..; pwd)
@@ -16,16 +17,20 @@ EMULATOR_BIN_PATH=$EMULATOR_INSTALLED_PATH/bin
 
 # set env variables for darwin
 # nothing now...
+
 elif [ "$(uname | cut -c 1-5)" = "MINGW" ]; then
 # under mingw
 SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
 EMULATOR_INSTALLED_PATH=$(readlink -f "$SCRIPT_DIR/..")
 EMULATOR_BIN_PATH=$EMULATOR_INSTALLED_PATH/bin
 # set env variables for windows
+# for SDL display
 export SDL_STDIO_REDIRECT=0
+
 fi
 
 # set platform independent environment variables
+# for VIGS
 export VIGS_SYNC_READ_PIXELS=1
 
 # check "--with-gdb"
index 924aeb7..6ef4b54 100644 (file)
@@ -6,14 +6,19 @@ TARGET_EXE += qt5_msgbox$(EXESUF)
 ifdef CONFIG_QT
 EMUL_DIR=../emulator
 DIBS_COMMON_DIR=../common
+COMMON_FLAGS=$(QT_CFLAGS) $(libs_softmmu) -DQT_NO_OPENGL -lstdc++
 
 # for building qt5_msgbox
 $(TARGET_EXE): qt5_msgbox.cpp
 ifdef CONFIG_WIN32
        $(shell $(WINDRES) qt5_msgbox.rc -O coff -o qt5_msgbox.res)
-       $(CXX) -o $(TARGET_EXE) qt5_msgbox.res $< $(QT_CFLAGS) $(libs_softmmu) -lstdc++
-else
-       $(CXX) -o $(TARGET_EXE) $< $(QT_CFLAGS) $(libs_softmmu) -lstdc++
+       $(CXX) -o $(TARGET_EXE) qt5_msgbox.res $< $(COMMON_FLAGS)
+endif
+ifdef CONFIG_DARWIN
+       $(CXX) -o $(TARGET_EXE) $< $(COMMON_FLAGS) -Wl,-rpath,'@executable_path'
+endif
+ifdef CONFIG_LINUX
+       $(CXX) -o $(TARGET_EXE) $< $(COMMON_FLAGS) -Wl,-rpath,'$$ORIGIN'
 endif
 
 all: $(TARGET_EXE)