host GLES libs: change runtime path to QEMU executable directory
authorIgor Mitsyanko <i.mitsyanko@samsung.com>
Fri, 13 Jul 2012 13:57:15 +0000 (17:57 +0400)
committerEvgeny Voevodin <e.voevodin@samsung.com>
Fri, 27 Jul 2012 06:26:31 +0000 (10:26 +0400)
Windows searches for DLL libraries only in system paths and in executable
directory, therefore MINGW GCC ignores rpath linker option.
Copy host OpenGLES libraries to the same directory as QEMU executable rather then
to ./lib/gles folder, do the same on linux and windows host.

Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
Makefile.target
configure
tizen/src/Makefile

index 9b3e40a66fa09a86a7fad17fb663acf5b26970b7..d462dcf9a5152c1e5493cbd49edff392af59eeab 100755 (executable)
@@ -422,31 +422,24 @@ gles2_kernel_calls.o: gles2_kernel_calls.c gles2.h gles2_calls.h
 gles2_egl_calls.o: gles2_egl_calls.c gles2.h gles2_calls.h
 gles2_es11_calls.o: gles2_es11_calls.c gles2.h gles2_calls.h
 gles2_es20_calls.o: gles2_es20_calls.c gles2.h gles2_calls.h
-obj-$(TARGET_BASE_ARCH)-y += gles2.o gles2_egl.o gles2_es11.o gles2_es20.o
-obj-$(TARGET_BASE_ARCH)-y += gles2_kernel_calls.o  gles2_egl_calls.o gles2_es11_calls.o
-obj-$(TARGET_BASE_ARCH)-y += gles2_es20_calls.o
-
-PROG_GLESLIBS_ORIGIN=./lib/gles
+obj-y += gles2.o gles2_egl.o gles2_es11.o gles2_es20.o
+obj-y += gles2_kernel_calls.o  gles2_egl_calls.o gles2_es11_calls.o
+obj-y += gles2_es20_calls.o
 
 ifdef QEMU_PROGW
-PROG_GLESLIB_SRC:=$(addprefix $(CONFIG_GLES_LIBDIR)/,$(notdir $(wildcard \
-$(CONFIG_GLES_LIBDIR)/*.dll)))
-PROG_GLESLIB_DEP:=$(addprefix $(PROG_GLESLIBS_ORIGIN)/,$(notdir $(wildcard \
-$(CONFIG_GLES_LIBDIR)/*.dll)))
-$(QEMU_PROGW): $(PROG_GLESLIB_DEP)
+GLESLIBS_LINK_LIST:=$(wildcard $(CONFIG_GLES_LIBDIR)/*.dll)
 else
-PROG_GLESLIB_SRC:=$(addprefix $(CONFIG_GLES_LIBDIR)/,$(notdir $(wildcard \
-$(CONFIG_GLES_LIBDIR)/lib*)))
-PROG_GLESLIB_DEP:=$(addprefix $(PROG_GLESLIBS_ORIGIN)/,$(notdir $(wildcard \
-$(CONFIG_GLES_LIBDIR)/lib*)))
-$(QEMU_PROG): $(PROG_GLESLIB_DEP)
+GLESLIBS_LINK_LIST:=$(wildcard $(CONFIG_GLES_LIBDIR)/lib*)
 endif
 
-$(PROG_GLESLIB_DEP): $(PROG_GLESLIB_SRC)
-       @mkdir -p $(PROG_GLESLIBS_ORIGIN)
-       @cp -dp -t $(PROG_GLESLIBS_ORIGIN) $(PROG_GLESLIB_SRC)
+$(GLESLIBS_LINK_LIST):
+
+GLESLIBS_RUNTIME_LIST:=$(addprefix ./,$(notdir $(GLESLIBS_LINK_LIST)))
+
+$(GLESLIBS_RUNTIME_LIST): $(GLESLIBS_LINK_LIST)
+       @cp -dp -t ./ $(GLESLIBS_LINK_LIST)
 
-$(PROG_GLESLIB_SRC):
+$(QEMU_PROG): $(GLESLIBS_RUNTIME_LIST)
 
 endif # CONFIG_BUILD_GLES
 
@@ -496,9 +489,8 @@ ifneq ($(PROGS),)
 ifneq ($(STRIP),)
        $(STRIP) $(patsubst %,"$(DESTDIR)$(bindir)/%",$(PROGS))
 endif
-ifneq ($(PROG_GLESLIB_DEP),)
-       @mkdir -p $(DESTDIR)$(bindir)/$(PROG_GLESLIBS_ORIGIN)
-       $(INSTALL) -m 644 $(PROG_GLESLIB_DEP) "$(DESTDIR)$(bindir)/$(PROG_GLESLIBS_ORIGIN)"
+ifneq ($(GLESLIBS_RUNTIME_LIST),)
+       $(INSTALL) -m 644 $(GLESLIBS_RUNTIME_LIST) "$(DESTDIR)$(bindir)"
 endif
 endif
 ifdef CONFIG_TRACE_SYSTEMTAP
index e6469d1c682e425b3cfc7a030957fda5e1dae96b..139992bc09e4f463c8cdceefa4cf47c46f15f841 100755 (executable)
--- a/configure
+++ b/configure
@@ -3976,7 +3976,7 @@ if test "$target_arch2" = "arm" -a "$opengles" = "yes" ; then
   fi
   includes="-I$glesincdir $includes"
   ldflags="-L$gleslibdir $ldflags"
-  ldflags="-Wl,-rpath,'\$\$ORIGIN/lib/gles' $ldflags"
+  ldflags="-Wl,-rpath,'\$\$ORIGIN' $ldflags"
   echo "LIBS+=-lEGL" >> $config_target_mak
   echo "CONFIG_GLES_LIBDIR=$gleslibdir" >> $config_target_mak
   if test "$mingw32" = "no" ; then
index 1fa53afd2925ca4358b9e67177ed28a1599c3a02..7380a53d55ae0200d66de23e6a6956138a98f89b 100755 (executable)
@@ -10,6 +10,14 @@ endif
 
 export CONFIG_OPENGLES
 
+ifdef CONFIG_OPENGLES
+ifdef CONFIG_WIN32
+GLESLIBS_LIST:=$(wildcard ../../arm-softmmu/*.dll)
+else
+GLESLIBS_LIST:=$(wildcard ../../arm-softmmu/lib*)
+endif
+endif
+
 all: build_info qemu skin_client check_hax
 qemu:
        cd ../../ && $(MAKE)
@@ -68,10 +76,10 @@ install: all
            mkdir -p $(EMUL_DIR)/arm/data ;\
            echo "Copying arm-softmmu/qemu-system-arm to $(EMUL_DIR)/bin/emulator-arm" ;\
            cp ../../arm-softmmu/qemu-system-arm $(EMUL_DIR)/bin/emulator-arm ;\
-           if [ ! -z "$$CONFIG_OPENGLES" ] ; then mkdir -p $(EMUL_DIR)/bin/lib ;\
-           echo "Copying OpenGLES libraries to $(EMUL_DIR)/bin/lib" ;\
-           cp -dpr ../../arm-softmmu/lib/gles $(EMUL_DIR)/bin/lib ;\
-           fi \
+           if [ ! -z "$$CONFIG_OPENGLES" ] ; then \
+           echo "Copying OpenGLES libraries to $(EMUL_DIR)/bin/" ;\
+           cp -dp -t $(EMUL_DIR)/bin/ $(GLESLIBS_LIST) ;\
+           fi ;\
          ;; \
          esac \
        done