makefiles: Avoid running config.status when not necessary.
If it doesn't contain substitutions, we can use Makefile.in directly. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6222e49c37
commit
e0b1e8154d
|
@ -225,13 +225,24 @@ wine_fn_has_flag ()
|
||||||
|
|
||||||
wine_fn_depend_rules ()
|
wine_fn_depend_rules ()
|
||||||
{
|
{
|
||||||
wine_fn_append_rule \
|
if wine_fn_has_flag config
|
||||||
|
then
|
||||||
|
wine_fn_append_rule \
|
||||||
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP)
|
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP)
|
||||||
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir
|
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir
|
||||||
depend: $ac_dir/depend
|
depend: $ac_dir/depend
|
||||||
.PHONY: $ac_dir/depend
|
.PHONY: $ac_dir/depend
|
||||||
$ac_dir/depend: \$(MAKEDEP) dummy
|
$ac_dir/depend: \$(MAKEDEP) dummy
|
||||||
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir"
|
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir"
|
||||||
|
else
|
||||||
|
wine_fn_append_rule \
|
||||||
|
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP)
|
||||||
|
\$(MAKEDEP) $ac_dir
|
||||||
|
depend: $ac_dir/depend
|
||||||
|
.PHONY: $ac_dir/depend
|
||||||
|
$ac_dir/depend: \$(MAKEDEP) dummy
|
||||||
|
\$(MAKEDEP) $ac_dir"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
wine_fn_pot_rules ()
|
wine_fn_pot_rules ()
|
||||||
|
|
|
@ -7389,13 +7389,24 @@ wine_fn_has_flag ()
|
||||||
|
|
||||||
wine_fn_depend_rules ()
|
wine_fn_depend_rules ()
|
||||||
{
|
{
|
||||||
wine_fn_append_rule \
|
if wine_fn_has_flag config
|
||||||
|
then
|
||||||
|
wine_fn_append_rule \
|
||||||
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP)
|
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile config.status \$(MAKEDEP)
|
||||||
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir
|
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir
|
||||||
depend: $ac_dir/depend
|
depend: $ac_dir/depend
|
||||||
.PHONY: $ac_dir/depend
|
.PHONY: $ac_dir/depend
|
||||||
$ac_dir/depend: \$(MAKEDEP) dummy
|
$ac_dir/depend: \$(MAKEDEP) dummy
|
||||||
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) $ac_dir"
|
@./config.status --file $ac_dir/Makefile && \$(MAKEDEP) -iMakefile $ac_dir"
|
||||||
|
else
|
||||||
|
wine_fn_append_rule \
|
||||||
|
"$ac_dir/Makefile: $srcdir/$ac_dir/Makefile.in Makefile \$(MAKEDEP)
|
||||||
|
\$(MAKEDEP) $ac_dir
|
||||||
|
depend: $ac_dir/depend
|
||||||
|
.PHONY: $ac_dir/depend
|
||||||
|
$ac_dir/depend: \$(MAKEDEP) dummy
|
||||||
|
\$(MAKEDEP) $ac_dir"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
wine_fn_pot_rules ()
|
wine_fn_pot_rules ()
|
||||||
|
@ -18010,9 +18021,9 @@ wine_fn_config_makefile documentation enable_documentation clean
|
||||||
wine_fn_config_makefile fonts enable_fonts clean,install-lib
|
wine_fn_config_makefile fonts enable_fonts clean,install-lib
|
||||||
wine_fn_config_makefile include enable_include clean,install-dev
|
wine_fn_config_makefile include enable_include clean,install-dev
|
||||||
wine_fn_config_makefile libs/port enable_libs_port
|
wine_fn_config_makefile libs/port enable_libs_port
|
||||||
wine_fn_config_makefile libs/wine enable_libs_wine clean,install-dev,install-lib
|
wine_fn_config_makefile libs/wine enable_libs_wine clean,config,install-dev,install-lib
|
||||||
wine_fn_config_makefile libs/wpp enable_libs_wpp
|
wine_fn_config_makefile libs/wpp enable_libs_wpp
|
||||||
wine_fn_config_makefile loader enable_loader clean,install-lib,manpage
|
wine_fn_config_makefile loader enable_loader clean,config,install-lib,manpage
|
||||||
wine_fn_config_program arp enable_arp install
|
wine_fn_config_program arp enable_arp install
|
||||||
wine_fn_config_program aspnet_regiis enable_aspnet_regiis install
|
wine_fn_config_program aspnet_regiis enable_aspnet_regiis install
|
||||||
wine_fn_config_program attrib enable_attrib install,po
|
wine_fn_config_program attrib enable_attrib install,po
|
||||||
|
@ -18090,7 +18101,7 @@ wine_fn_config_program winemenubuilder enable_winemenubuilder install
|
||||||
wine_fn_config_program winemine enable_winemine install,installbin,manpage,po
|
wine_fn_config_program winemine enable_winemine install,installbin,manpage,po
|
||||||
wine_fn_config_program winemsibuilder enable_winemsibuilder install
|
wine_fn_config_program winemsibuilder enable_winemsibuilder install
|
||||||
wine_fn_config_program winepath enable_winepath install,installbin,manpage
|
wine_fn_config_program winepath enable_winepath install,installbin,manpage
|
||||||
wine_fn_config_program winetest enable_winetest clean
|
wine_fn_config_program winetest enable_winetest clean,config
|
||||||
wine_fn_config_program winevdm enable_win16 install
|
wine_fn_config_program winevdm enable_win16 install
|
||||||
wine_fn_config_program winhelp.exe16 enable_win16 install
|
wine_fn_config_program winhelp.exe16 enable_win16 install
|
||||||
wine_fn_config_program winhlp32 enable_winhlp32 install,po
|
wine_fn_config_program winhlp32 enable_winhlp32 install,po
|
||||||
|
|
|
@ -3494,9 +3494,9 @@ WINE_CONFIG_MAKEFILE([documentation],,[clean])
|
||||||
WINE_CONFIG_MAKEFILE([fonts],,[clean,install-lib])
|
WINE_CONFIG_MAKEFILE([fonts],,[clean,install-lib])
|
||||||
WINE_CONFIG_MAKEFILE([include],,[clean,install-dev])
|
WINE_CONFIG_MAKEFILE([include],,[clean,install-dev])
|
||||||
WINE_CONFIG_MAKEFILE([libs/port])
|
WINE_CONFIG_MAKEFILE([libs/port])
|
||||||
WINE_CONFIG_MAKEFILE([libs/wine],,[clean,install-dev,install-lib])
|
WINE_CONFIG_MAKEFILE([libs/wine],,[clean,config,install-dev,install-lib])
|
||||||
WINE_CONFIG_MAKEFILE([libs/wpp])
|
WINE_CONFIG_MAKEFILE([libs/wpp])
|
||||||
WINE_CONFIG_MAKEFILE([loader],,[clean,install-lib,manpage])
|
WINE_CONFIG_MAKEFILE([loader],,[clean,config,install-lib,manpage])
|
||||||
WINE_CONFIG_PROGRAM(arp,,[install])
|
WINE_CONFIG_PROGRAM(arp,,[install])
|
||||||
WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
|
WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
|
||||||
WINE_CONFIG_PROGRAM(attrib,,[install,po])
|
WINE_CONFIG_PROGRAM(attrib,,[install,po])
|
||||||
|
@ -3574,7 +3574,7 @@ WINE_CONFIG_PROGRAM(winemenubuilder,,[install])
|
||||||
WINE_CONFIG_PROGRAM(winemine,,[install,installbin,manpage,po])
|
WINE_CONFIG_PROGRAM(winemine,,[install,installbin,manpage,po])
|
||||||
WINE_CONFIG_PROGRAM(winemsibuilder,,[install])
|
WINE_CONFIG_PROGRAM(winemsibuilder,,[install])
|
||||||
WINE_CONFIG_PROGRAM(winepath,,[install,installbin,manpage])
|
WINE_CONFIG_PROGRAM(winepath,,[install,installbin,manpage])
|
||||||
WINE_CONFIG_PROGRAM(winetest,,[clean])
|
WINE_CONFIG_PROGRAM(winetest,,[clean,config])
|
||||||
WINE_CONFIG_PROGRAM(winevdm,enable_win16,[install])
|
WINE_CONFIG_PROGRAM(winevdm,enable_win16,[install])
|
||||||
WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16,[install])
|
WINE_CONFIG_PROGRAM(winhelp.exe16,enable_win16,[install])
|
||||||
WINE_CONFIG_PROGRAM(winhlp32,,[install,po])
|
WINE_CONFIG_PROGRAM(winhlp32,,[install,po])
|
||||||
|
|
|
@ -282,6 +282,10 @@ sub parse_makefile($)
|
||||||
{
|
{
|
||||||
die "Variable $1 in $file.in is obsolete";
|
die "Variable $1 in $file.in is obsolete";
|
||||||
}
|
}
|
||||||
|
if (/\@[A-Z_]+\@/) # config.status substitution variable
|
||||||
|
{
|
||||||
|
${$make{"=flags"}}{"config"} = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($file =~ /^programs\/([^\/]+)\/Makefile/)
|
if ($file =~ /^programs\/([^\/]+)\/Makefile/)
|
||||||
|
|
|
@ -171,7 +171,8 @@ struct makefile
|
||||||
|
|
||||||
static struct makefile *top_makefile;
|
static struct makefile *top_makefile;
|
||||||
|
|
||||||
static const char *makefile_name = "Makefile";
|
static const char *output_makefile_name = "Makefile";
|
||||||
|
static const char *input_makefile_name;
|
||||||
static const char *input_file_name;
|
static const char *input_file_name;
|
||||||
static const char *output_file_name;
|
static const char *output_file_name;
|
||||||
static const char *temp_file_name;
|
static const char *temp_file_name;
|
||||||
|
@ -184,7 +185,8 @@ static const char Usage[] =
|
||||||
"Usage: makedep [options] directories\n"
|
"Usage: makedep [options] directories\n"
|
||||||
"Options:\n"
|
"Options:\n"
|
||||||
" -R from to Compute the relative path between two directories\n"
|
" -R from to Compute the relative path between two directories\n"
|
||||||
" -fxxx Store output in file 'xxx' (default: Makefile)\n";
|
" -fxxx Store output in file 'xxx' (default: Makefile)\n"
|
||||||
|
" -ixxx Read input from file 'xxx' (default: Makefile.in)\n";
|
||||||
|
|
||||||
|
|
||||||
#ifndef __GNUC__
|
#ifndef __GNUC__
|
||||||
|
@ -1459,6 +1461,28 @@ static struct incl_file *add_src_file( struct makefile *make, const char *name )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
* open_input_makefile
|
||||||
|
*/
|
||||||
|
static FILE *open_input_makefile( struct makefile *make )
|
||||||
|
{
|
||||||
|
FILE *ret;
|
||||||
|
|
||||||
|
if (make->base_dir)
|
||||||
|
input_file_name = base_dir_path( make, input_makefile_name );
|
||||||
|
else
|
||||||
|
input_file_name = output_makefile_name; /* always use output name for main Makefile */
|
||||||
|
|
||||||
|
input_line = 0;
|
||||||
|
if (!(ret = fopen( input_file_name, "r" )))
|
||||||
|
{
|
||||||
|
input_file_name = root_dir_path( input_file_name );
|
||||||
|
if (!(ret = fopen( input_file_name, "r" ))) fatal_perror( "open" );
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
* get_make_variable
|
* get_make_variable
|
||||||
*/
|
*/
|
||||||
|
@ -1578,10 +1602,7 @@ static struct makefile *parse_makefile( const char *path, const char *separator
|
||||||
if (!strcmp( make->base_dir, "." )) make->base_dir = NULL;
|
if (!strcmp( make->base_dir, "." )) make->base_dir = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
input_file_name = base_dir_path( make, makefile_name );
|
file = open_input_makefile( make );
|
||||||
if (!(file = fopen( input_file_name, "r" ))) fatal_perror( "open" );
|
|
||||||
|
|
||||||
input_line = 0;
|
|
||||||
while ((buffer = get_line( file )))
|
while ((buffer = get_line( file )))
|
||||||
{
|
{
|
||||||
if (separator && !strncmp( buffer, separator, strlen(separator) )) break;
|
if (separator && !strncmp( buffer, separator, strlen(separator) )) break;
|
||||||
|
@ -2538,15 +2559,16 @@ static void output_dependencies( struct makefile *make )
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
FILE *src_file;
|
FILE *src_file;
|
||||||
|
|
||||||
output_file_name = base_dir_path( make, makefile_name );
|
output_file_name = base_dir_path( make, output_makefile_name );
|
||||||
output_file = create_temp_file( output_file_name );
|
output_file = create_temp_file( output_file_name );
|
||||||
output_top_variables( make );
|
output_top_variables( make );
|
||||||
|
|
||||||
/* copy the contents of the source makefile */
|
/* copy the contents of the source makefile */
|
||||||
if (!(src_file = fopen( output_file_name, "r" ))) fatal_perror( "open" );
|
src_file = open_input_makefile( make );
|
||||||
while (fgets( buffer, sizeof(buffer), src_file ))
|
while (fgets( buffer, sizeof(buffer), src_file ))
|
||||||
if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" );
|
if (fwrite( buffer, 1, strlen(buffer), output_file ) != strlen(buffer)) fatal_perror( "write" );
|
||||||
if (fclose( src_file )) fatal_perror( "close" );
|
if (fclose( src_file )) fatal_perror( "close" );
|
||||||
|
input_file_name = NULL;
|
||||||
|
|
||||||
targets = output_sources( make, &testlist_files );
|
targets = output_sources( make, &testlist_files );
|
||||||
|
|
||||||
|
@ -2640,6 +2662,9 @@ static void update_makefile( const char *path )
|
||||||
list_init( &make->sources );
|
list_init( &make->sources );
|
||||||
list_init( &make->includes );
|
list_init( &make->includes );
|
||||||
|
|
||||||
|
/* FIXME: target dir has to exist to allow locating srcdir-relative include files */
|
||||||
|
if (make->base_dir) create_dir( make->base_dir );
|
||||||
|
|
||||||
for (var = source_vars; *var; var++)
|
for (var = source_vars; *var; var++)
|
||||||
{
|
{
|
||||||
value = get_expanded_make_var_array( make, *var );
|
value = get_expanded_make_var_array( make, *var );
|
||||||
|
@ -2700,7 +2725,10 @@ static int parse_option( const char *opt )
|
||||||
switch(opt[1])
|
switch(opt[1])
|
||||||
{
|
{
|
||||||
case 'f':
|
case 'f':
|
||||||
if (opt[2]) makefile_name = opt + 2;
|
if (opt[2]) output_makefile_name = opt + 2;
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
if (opt[2]) input_makefile_name = opt + 2;
|
||||||
break;
|
break;
|
||||||
case 'R':
|
case 'R':
|
||||||
relative_dir_mode = 1;
|
relative_dir_mode = 1;
|
||||||
|
@ -2762,6 +2790,8 @@ int main( int argc, char *argv[] )
|
||||||
|
|
||||||
for (i = 0; i < HASH_SIZE; i++) list_init( &files[i] );
|
for (i = 0; i < HASH_SIZE; i++) list_init( &files[i] );
|
||||||
|
|
||||||
|
if (!input_makefile_name) input_makefile_name = strmake( "%s.in", output_makefile_name );
|
||||||
|
|
||||||
top_makefile = parse_makefile( NULL, "# End of common header" );
|
top_makefile = parse_makefile( NULL, "# End of common header" );
|
||||||
|
|
||||||
linguas = get_expanded_make_var_array( top_makefile, "LINGUAS" );
|
linguas = get_expanded_make_var_array( top_makefile, "LINGUAS" );
|
||||||
|
|
Loading…
Reference in New Issue