[PATCH 3/6] makefiles: Allow using *_PE_LIBS to specify linker flags to external static libraries.

Alexandre Julliard julliard at winehq.org
Tue Oct 19 10:57:49 CDT 2021


Zebediah Figura <zfigura at codeweavers.com> writes:

> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
> IMPORTS does not expect flags. That could be changed instead, however, as an
> alternative to this patch.

Yes that's my plan, I was going to do something like this:

diff --git a/tools/makedep.c b/tools/makedep.c
index d7bc210302a9..ce70f9857bba 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1411,6 +1411,7 @@ static struct file *open_include_file( const struct makefile *make, struct incl_
     {
         if (!strcmp( pFile->name, "stdarg.h" )) return NULL;
         if (!strcmp( pFile->name, "x86intrin.h" )) return NULL;
+        if (make->include_paths.count) return NULL;
         fprintf( stderr, "%s:%d: error: system header %s cannot be used with msvcrt\n",
                  pFile->included_by->file->name, pFile->included_line, pFile->name );
         exit(1);
@@ -1961,6 +1962,7 @@ static struct strarray get_local_dependencies( const struct makefile *make, cons
 static const char *get_static_lib( const struct makefile *make, const char *name )
 {
     if (!make->staticlib) return NULL;
+    if (make->disabled) return NULL;
     if (strncmp( make->staticlib, "lib", 3 )) return NULL;
     if (strncmp( make->staticlib + 3, name, strlen(name) )) return NULL;
     if (strcmp( make->staticlib + 3 + strlen(name), ".a" )) return NULL;
@@ -2079,9 +2081,20 @@ static struct strarray add_import_libs( const struct makefile *make, struct stra
 
     for (i = 0; i < imports.count; i++)
     {
-        const char *name = get_base_name( imports.str[i] );
+        const char *name = imports.str[i];
         const char *lib = NULL;
 
+        if (name[0] == '-')
+        {
+            switch (name[1])
+            {
+            case 'L': strarray_add( &ret, name ); continue;
+            case 'l': name += 2; break;
+            default: continue;
+            }
+        }
+        else name = get_base_name( name );
+
         for (j = 0; j < subdirs.count; j++)
         {
             if (submakes[j]->importlib && !strcmp( submakes[j]->importlib, name ))

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list