Module: wine Branch: master Commit: b78ef40ab170f5a2ec1ca86bf72b102a33a92593 URL: https://source.winehq.org/git/wine.git/?a=commit;h=b78ef40ab170f5a2ec1ca86bf...
Author: Alexandre Julliard julliard@winehq.org Date: Sat Nov 13 11:47:40 2021 +0100
makefiles: Don't copy the source makefile into the sub-directory stub makefiles.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
tools/makedep.c | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/tools/makedep.c b/tools/makedep.c index 9a9e443456e..161cbb8d879 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -1578,7 +1578,7 @@ static FILE *open_input_makefile( const struct makefile *make ) FILE *ret;
if (make->obj_dir) - input_file_name = root_src_dir_path( obj_dir_path( make, strmake( "%s.in", output_makefile_name ))); + input_file_name = root_src_dir_path( obj_dir_path( make, "Makefile.in" )); else input_file_name = output_makefile_name; /* always use output name for main Makefile */
@@ -3629,7 +3629,7 @@ static void output_subdirs( struct makefile *make ) strarray_addall( &all_targets, make->all_targets ); for (i = 0; i < subdirs.count; i++) { - strarray_add( &makefile_deps, src_dir_path( submakes[i], strmake ( "%s.in", output_makefile_name ))); + strarray_add( &makefile_deps, src_dir_path( submakes[i], "Makefile.in" )); strarray_addall_uniq( &make->phony_targets, submakes[i]->phony_targets ); strarray_addall_uniq( &make->uninstall_files, submakes[i]->uninstall_files ); strarray_addall_uniq( &dependencies, submakes[i]->dependencies ); @@ -3998,6 +3998,13 @@ static void output_stub_makefile( struct makefile *make ) struct strarray targets = empty_strarray; const char *make_var = strarray_get_value( &top_makefile->vars, "MAKE" );
+ if (make->obj_dir) create_dir( make->obj_dir ); + + output_file_name = obj_dir_path( make, "Makefile" ); + output_file = create_temp_file( output_file_name ); + + output( "# Auto-generated stub makefile; all rules forward to the top-level makefile\n\n" ); + if (make_var) output( "MAKE = %s\n\n", make_var ); output( "all:\n" );
@@ -4021,6 +4028,10 @@ static void output_stub_makefile( struct makefile *make ) output( ".PHONY:" ); output_filenames( targets ); output( "\n" ); + + fclose( output_file ); + output_file = NULL; + rename_temp_file( output_file_name ); }
@@ -4059,17 +4070,14 @@ static void output_silent_rules(void)
/******************************************************************* - * output_dependencies + * output_top_makefile */ -static void output_dependencies( struct makefile *make ) +static void output_top_makefile( struct makefile *make ) { - struct strarray ignore_files = empty_strarray; char buffer[1024]; FILE *src_file; int i, found = 0;
- if (make->obj_dir) create_dir( make->obj_dir ); - output_file_name = obj_dir_path( make, output_makefile_name ); output_file = create_temp_file( output_file_name );
@@ -4085,20 +4093,29 @@ static void output_dependencies( struct makefile *make )
if (!found) output( "\n%s (everything below this line is auto-generated; DO NOT EDIT!!)\n", separator );
- if (make == top_makefile) - { - if (silent_rules) output_silent_rules(); - for (i = 0; i < subdirs.count; i++) output_sources( submakes[i] ); - output_sources( make ); - } - else output_stub_makefile( make ); - + if (silent_rules) output_silent_rules(); + for (i = 0; i < subdirs.count; i++) output_sources( submakes[i] ); + output_sources( make ); /* disable implicit rules */ output( ".SUFFIXES:\n" );
fclose( output_file ); output_file = NULL; rename_temp_file( output_file_name ); +} + + +/******************************************************************* + * output_dependencies + */ +static void output_dependencies( struct makefile *make ) +{ + struct strarray ignore_files = empty_strarray; + + if (make->obj_dir) create_dir( make->obj_dir ); + + if (make == top_makefile) output_top_makefile( make ); + else output_stub_makefile( make );
strarray_addall( &ignore_files, make->distclean_files ); strarray_addall( &ignore_files, make->clean_files );