From 2ab690bcbb6f11359bedc171a637cb8198f93251 Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" Date: Wed, 3 Mar 2004 20:11:20 +0000 Subject: [PATCH] Don't tie the script name to the .exe.so name. --- tools/winegcc/utils.c | 3 ++- tools/winegcc/utils.h | 2 +- tools/winegcc/winegcc.c | 15 +++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/winegcc/utils.c b/tools/winegcc/utils.c index 35381680d67..af8c771146d 100644 --- a/tools/winegcc/utils.c +++ b/tools/winegcc/utils.c @@ -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); } diff --git a/tools/winegcc/utils.h b/tools/winegcc/utils.h index 54ee5b78ddc..0e42acb906c 100644 --- a/tools/winegcc/utils.h +++ b/tools/winegcc/utils.h @@ -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); diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index 12c2f0b962e..1c710f7fbc2 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -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)); }