From ba416a57810ca4571968ff9fef6808f5ca88d99e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 11 Jan 2016 18:41:18 +0900 Subject: [PATCH] makefiles: Generate distclean rules from makedep. Signed-off-by: Alexandre Julliard --- aclocal.m4 | 15 ++------------- configure | 15 ++------------- tools/makedep.c | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 406f3b4cccd..7fa79fffa4f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -302,11 +302,6 @@ install-dev:: $ac_dir/install-dev" wine_fn_clean_rules () { ac_clean=$[@] - ac_extraclean="$ac_dir/Makefile" - test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore" - case $ac_dir in - */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;; - esac if wine_fn_has_flag clean then @@ -320,24 +315,18 @@ wine_fn_clean_rules () fi wine_fn_append_rule \ "__clean__: $ac_dir/clean -.PHONY: $ac_dir/clean -distclean:: - \$(RM) $ac_extraclean" +.PHONY: $ac_dir/clean" } wine_fn_disabled_rules () { ac_clean=$[@] - ac_extraclean="$ac_dir/Makefile" - test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore" wine_fn_append_rule \ "__clean__: $ac_dir/clean .PHONY: $ac_dir/clean $ac_dir/clean: dummy - \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean -distclean:: - \$(RM) $ac_extraclean" + \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean" } wine_fn_config_makefile () diff --git a/configure b/configure index 41000054cd1..7ed69634d32 100755 --- a/configure +++ b/configure @@ -7497,11 +7497,6 @@ install-dev:: $ac_dir/install-dev" wine_fn_clean_rules () { ac_clean=$@ - ac_extraclean="$ac_dir/Makefile" - test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore" - case $ac_dir in - */tests) ac_extraclean="$ac_extraclean $ac_dir/testlist.c" ;; - esac if wine_fn_has_flag clean then @@ -7515,24 +7510,18 @@ wine_fn_clean_rules () fi wine_fn_append_rule \ "__clean__: $ac_dir/clean -.PHONY: $ac_dir/clean -distclean:: - \$(RM) $ac_extraclean" +.PHONY: $ac_dir/clean" } wine_fn_disabled_rules () { ac_clean=$@ - ac_extraclean="$ac_dir/Makefile" - test "$srcdir" = . && ac_extraclean="$ac_extraclean $ac_dir/.gitignore" wine_fn_append_rule \ "__clean__: $ac_dir/clean .PHONY: $ac_dir/clean $ac_dir/clean: dummy - \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean -distclean:: - \$(RM) $ac_extraclean" + \$(RM) \$(CLEAN_FILES:%=$ac_dir/%) $ac_clean" } wine_fn_config_makefile () diff --git a/tools/makedep.c b/tools/makedep.c index fd661b2c033..d46c715aff1 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -2843,6 +2843,24 @@ static struct strarray output_sources( const struct makefile *make ) strarray_add( &phony_targets, obj_dir_path( make, "clean" )); } + if (make->subdirs.count) + { + struct strarray distclean_files = empty_strarray; + for (i = 0; i < make->subdirs.count; i++) + { + strarray_add( &distclean_files, base_dir_path( make->submakes[i], output_makefile_name )); + if (!make->src_dir) + strarray_add( &distclean_files, base_dir_path( make->submakes[i], ".gitignore" )); + if (make->submakes[i]->testdll) + strarray_add( &distclean_files, base_dir_path( make->submakes[i], "testlist.c" )); + } + output( "distclean::\n"); + output( "\trm -f" ); + output_filenames( distclean_files ); + output( "\n" ); + strarray_add( &phony_targets, "distclean" ); + } + if (phony_targets.count) { output( ".PHONY:" );