Alexandre Julliard : libwine: Added support for executing wine binaries out of the build dir.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Mar 16 14:40:56 CST 2006


Module: wine
Branch: refs/heads/master
Commit: bf566139d721defa3ee64121274b425f3e7b0899
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=bf566139d721defa3ee64121274b425f3e7b0899

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Mar 16 17:35:32 2006 +0100

libwine: Added support for executing wine binaries out of the build dir.

---

 dlls/ntdll/server.c |    4 ++--
 libs/wine/config.c  |   12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index aff0b8a..b647352 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -598,7 +598,7 @@ static void start_server(void)
         if (pid == -1) fatal_perror( "fork" );
         if (!pid)
         {
-            argv[0] = "wineserver";
+            argv[0] = "server/wineserver";
             argv[1] = TRACE_ON(server) ? "-d" : NULL;
             argv[2] = NULL;
             wine_exec_wine_binary( argv[0], argv, getenv("WINESERVER") );
@@ -797,7 +797,7 @@ static void create_config_dir(void)
     {
         const char *argv[6];
 
-        argv[0] = "wineprefixcreate";
+        argv[0] = "tools/wineprefixcreate";
         argv[1] = "--quiet";
         argv[2] = "--wait";
         argv[3] = "--prefix";
diff --git a/libs/wine/config.c b/libs/wine/config.c
index 1c2a325..79146d3 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -427,6 +427,18 @@ void wine_exec_wine_binary( const char *
         use_preloader = 1;
     }
 
+    if ((ptr = strrchr( name, '/' )))
+    {
+        /* if we are in build dir and name contains a path, try that */
+        if (build_dir)
+        {
+            argv[0] = build_path( build_dir, name );
+            preloader_exec( argv, use_preloader );
+            free( argv[0] );
+        }
+        name = ptr + 1;  /* get rid of path */
+    }
+
     /* first, bin directory from the current libdir or argv0 */
     if (bindir)
     {




More information about the wine-cvs mailing list