Alexandre Julliard : makefiles: Output rules for building generated .rc files.

Alexandre Julliard julliard at winehq.org
Fri Nov 30 14:34:41 CST 2018


Module: wine
Branch: master
Commit: 364f97c2e174f5969bbea65a13ba91a83ce6b635
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=364f97c2e174f5969bbea65a13ba91a83ce6b635

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Nov 30 12:55:18 2018 +0100

makefiles: Output rules for building generated .rc files.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/winetest/Makefile.in |  5 ++---
 tools/makedep.c               | 23 +++++++++++++----------
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in
index 85eacb9..d74a279 100644
--- a/programs/winetest/Makefile.in
+++ b/programs/winetest/Makefile.in
@@ -16,7 +16,7 @@ SVG_SRCS = winetest.svg
 
 EXTRA_OBJS = build.res
 
-EXTRA_TARGETS = build.rc build.nfo
+EXTRA_TARGETS = build.nfo
 
 INSTALL_LIB = none
 
@@ -26,8 +26,7 @@ build.rc: dummy
 build.nfo:
 	-$(CC) -v 2>$@
 
-build.res: build.rc build.nfo
-	$(WRC) -o $@ build.rc
+build.res: build.nfo
 
 dummy:
 .PHONY: dummy
diff --git a/tools/makedep.c b/tools/makedep.c
index e2f6d23..1afac8d 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1805,7 +1805,9 @@ static struct makefile *parse_makefile( const char *path )
  */
 static void add_generated_sources( struct makefile *make )
 {
+    unsigned int i;
     struct incl_file *source, *next, *file;
+    struct strarray objs = get_expanded_make_var_array( make, "EXTRA_OBJS" );
 
     LIST_FOR_EACH_ENTRY_SAFE( source, next, &make->sources, struct incl_file, entry )
     {
@@ -1904,6 +1906,16 @@ static void add_generated_sources( struct makefile *make )
         add_dependency( file->file, "wine/test.h", INCL_NORMAL );
         add_all_includes( make, file, file->file );
     }
+    for (i = 0; i < objs.count; i++)
+    {
+        /* default to .c for unknown extra object files */
+        if (strendswith( objs.str[i], ".o" ))
+            add_generated_source( make, objs.str[i], replace_extension( objs.str[i], ".o", ".c" ));
+        else if (strendswith( objs.str[i], ".res" ))
+            add_generated_source( make, replace_extension( objs.str[i], ".res", ".rc" ), NULL );
+        else
+            add_generated_source( make, objs.str[i], NULL );
+    }
 }
 
 
@@ -2514,6 +2526,7 @@ static void output_source_rc( struct makefile *make, struct incl_file *source, c
     struct strarray extradefs = get_expanded_file_local_var( make, obj, "EXTRADEFS" );
     unsigned int i;
 
+    if (source->file->flags & FLAG_GENERATED) strarray_add( &make->clean_files, source->name );
     strarray_add( &make->object_files, strmake( "%s.res", obj ));
     if (crosstarget) strarray_add( &make->crossobj_files, strmake( "%s.res", obj ));
     output( "%s.res: %s\n", obj_dir_path( make, obj ), source->filename );
@@ -4086,16 +4099,6 @@ static void load_sources( struct makefile *make )
 
     add_generated_sources( make );
 
-    value = get_expanded_make_var_array( make, "EXTRA_OBJS" );
-    for (i = 0; i < value.count; i++)
-    {
-        /* default to .c for unknown extra object files */
-        if (strendswith( value.str[i], ".o" ))
-            add_generated_source( make, value.str[i], replace_extension( value.str[i], ".o", ".c" ) );
-        else
-            add_generated_source( make, value.str[i], NULL );
-    }
-
     LIST_FOR_EACH_ENTRY( file, &make->includes, struct incl_file, entry ) parse_file( make, file, 0 );
     LIST_FOR_EACH_ENTRY( file, &make->sources, struct incl_file, entry ) get_dependencies( file, file );
 }




More information about the wine-cvs mailing list