Don't tie the script name to the .exe.so name.
authorDimitrie O. Paun <dpaun@rogers.com>
Wed, 3 Mar 2004 20:11:20 +0000 (20:11 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 3 Mar 2004 20:11:20 +0000 (20:11 +0000)
tools/winegcc/utils.c
tools/winegcc/utils.h
tools/winegcc/winegcc.c

index 35381680d67b89512500b586c1638da7ff808399..af8c771146d075dc5ddf5ec81a6e279b7d1fc82e 100644 (file)
@@ -187,7 +187,7 @@ char* get_basename(const char* file)
     return base_name;
 }
 
-void create_file(const char* name, const char* fmt, ...)
+void create_file(const char* name, int mode, const char* fmt, ...)
 {
     va_list ap;
     FILE *file;
@@ -198,6 +198,7 @@ void create_file(const char* name, const char* fmt, ...)
        error ("Can not create %s.", name);
     vfprintf(file, fmt, ap);
     va_end(ap);
+    fchmod(fileno(file), mode);
     fclose(file);
 }
 
index 54ee5b78ddc64445c8138a1eaa5679248cbb358d..0e42acb906cb8abddba7c067076f4105e5bcabb4 100644 (file)
@@ -59,7 +59,7 @@ typedef enum {
 } file_type;
 
 char* get_basename(const char* file);
-void create_file(const char* name, const char* fmt, ...);
+void create_file(const char* name, int mode, const char* fmt, ...);
 file_type get_file_type(const char* filename);
 file_type get_lib_type(strarray* path, const char* library, char** file);
 void spawn(const strarray* arr);
index 12c2f0b962ed02c815a9a546a9877df14e7919ad..1c710f7fbc28d453e7cc92a767a55b6dac2d28a5 100644 (file)
@@ -133,11 +133,11 @@ static const char *app_loader_template =
     "\n"
     "# figure out the full app path\n"
     "if [ -n \"$appdir\" ]; then\n"
-    "    apppath=\"$appdir/$appname.exe.so\"\n"
+    "    apppath=\"$appdir/$appname\"\n"
     "    WINEDLLPATH=\"$appdir:$WINEDLLPATH\"\n"
     "    export WINEDLLPATH\n"
     "else\n"
-    "    apppath=\"$appname.exe.so\"\n"
+    "    apppath=\"$appname\"\n"
     "fi\n"
     "\n"
     "# determine the WINELOADER\n"
@@ -363,7 +363,10 @@ static void build(struct options* opts)
     else base_name = base_file;
 
     if (opts->files->size == 1 && strendswith(opts->files->base[0], ".exe.so"))
-       goto only_app_loader;
+    {
+       create_file(base_file, 0755, app_loader_template, opts->files->base[0]);
+       return;
+    }
 
     /* prepare the linking path */
     lib_dirs = strarray_dup(opts->lib_dirs);
@@ -511,12 +514,8 @@ static void build(struct options* opts)
     spawn(link_args);
 
     /* create the loader script */
-only_app_loader:
     if (generate_app_loader)
-    {
-        create_file(base_file, app_loader_template, base_name);
-        chmod(base_file, 0755);
-    }
+        create_file(base_file, 0755, app_loader_template, strmake("%s.exe.so", base_name));
 }