Alexandre Julliard : makefiles: Add a helper to split large file remove commands.

Alexandre Julliard julliard at winehq.org
Tue Feb 20 16:44:52 CST 2018


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb 19 21:18:38 2018 +0100

makefiles: Add a helper to split large file remove commands.

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

---

 tools/makedep.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/tools/makedep.c b/tools/makedep.c
index 8cd3559..779d60a 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -498,6 +498,31 @@ static void output_filenames( struct strarray array )
 
 
 /*******************************************************************
+ *         output_rm_filenames
+ */
+static void output_rm_filenames( struct strarray array )
+{
+    static const unsigned int max_cmdline = 30000;  /* to be on the safe side */
+    unsigned int i, len;
+
+    if (!array.count) return;
+    output( "\trm -f" );
+    for (i = len = 0; i < array.count; i++)
+    {
+        if (len > max_cmdline)
+        {
+            output( "\n" );
+            output( "\trm -f" );
+            len = 0;
+        }
+        output_filename( array.str[i] );
+        len += strlen( array.str[i] ) + 1;
+    }
+    output( "\n" );
+}
+
+
+/*******************************************************************
  *         get_extension
  */
 static char *get_extension( char *filename )
@@ -3323,9 +3348,7 @@ static void output_subdirs( struct makefile *make )
     output_filenames( makefile_deps );
     output( ":\n" );
     output( "distclean::\n");
-    output( "\trm -f" );
-    output_filenames( distclean_files );
-    output( "\n" );
+    output_rm_filenames( distclean_files );
     strarray_add( &make->phony_targets, "distclean" );
 
     if (build_deps.count)




More information about the wine-cvs mailing list