Alexandre Julliard : makefiles: Generate distclean rules from makedep.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jan 11 08:22:28 CST 2016


Module: wine
Branch: master
Commit: ba416a57810ca4571968ff9fef6808f5ca88d99e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ba416a57810ca4571968ff9fef6808f5ca88d99e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jan 11 18:41:18 2016 +0900

makefiles: Generate distclean rules from makedep.

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

---

 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 406f3b4..7fa79ff 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 4100005..7ed6963 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 fd661b2..d46c715 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:" );




More information about the wine-cvs mailing list