Alexandre Julliard : makefiles: Support installing scripts from the tools directory.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Apr 4 10:37:01 CDT 2016


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Apr  4 13:59:54 2016 +0900

makefiles: Support installing scripts from the tools directory.

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

---

 tools/makedep.c | 56 +++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 35 insertions(+), 21 deletions(-)

diff --git a/tools/makedep.c b/tools/makedep.c
index 47efda3..c0cfed0 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -2140,52 +2140,66 @@ static struct strarray output_install_rules( const struct makefile *make, struct
     if (!files.count) return uninstall;
 
     for (i = 0; i < files.count; i += 2)
-        if (strchr( "dps", files.str[i + 1][0] ))  /* only for files copied from object dir */
-            strarray_add_uniq( &targets, files.str[i] );
+    {
+        const char *file = files.str[i];
+        switch (*files.str[i + 1])
+        {
+        case 'd':  /* data file */
+        case 'p':  /* program file */
+        case 's':  /* script */
+            strarray_add_uniq( &targets, obj_dir_path( make, file ));
+            break;
+        case 't':  /* script in tools dir */
+            strarray_add_uniq( &targets, tools_dir_path( make, file ));
+            break;
+        }
+    }
 
     output( "install %s::", target );
-    output_filenames_obj_dir( make, targets );
+    output_filenames( targets );
     output( "\n" );
 
     install_sh = top_src_dir_path( make, "tools/install-sh" );
     for (i = 0; i < files.count; i += 2)
     {
         const char *file = files.str[i];
-        const char *dest = files.str[i + 1];
+        const char *dest = strmake( "$(DESTDIR)%s", files.str[i + 1] + 1 );
 
-        switch (*dest)
+        switch (*files.str[i + 1])
         {
         case 'd':  /* data file */
-            output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n",
-                    install_sh, obj_dir_path( make, file ), dest + 1 );
+            output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s %s\n",
+                    install_sh, obj_dir_path( make, file ), dest );
             break;
         case 'D':  /* data file in source dir */
-            output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s $(DESTDIR)%s\n",
-                    install_sh, src_dir_path( make, file ), dest + 1 );
+            output( "\t%s -m 644 $(INSTALL_DATA_FLAGS) %s %s\n",
+                    install_sh, src_dir_path( make, file ), dest );
             break;
         case 'p':  /* program file */
-            output( "\tSTRIPPROG=\"$(STRIP)\" %s $(INSTALL_PROGRAM_FLAGS) %s $(DESTDIR)%s\n",
-                    install_sh, obj_dir_path( make, file ), dest + 1 );
+            output( "\tSTRIPPROG=\"$(STRIP)\" %s $(INSTALL_PROGRAM_FLAGS) %s %s\n",
+                    install_sh, obj_dir_path( make, file ), dest );
             break;
         case 's':  /* script */
-            output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n",
-                    install_sh, obj_dir_path( make, file ), dest + 1 );
+            output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s %s\n",
+                    install_sh, obj_dir_path( make, file ), dest );
             break;
         case 'S':  /* script in source dir */
-            output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s $(DESTDIR)%s\n",
-                    install_sh, src_dir_path( make, file ), dest + 1 );
+            output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s %s\n",
+                    install_sh, src_dir_path( make, file ), dest );
+            break;
+        case 't':  /* script in tools dir */
+            output( "\t%s $(INSTALL_SCRIPT_FLAGS) %s %s\n",
+                    install_sh, tools_dir_path( make, file ), dest );
             break;
         case 'y':  /* symlink */
-            output( "\trm -f $(DESTDIR)%s && %s %s $(DESTDIR)%s\n", dest + 1, ln_s, file, dest + 1 );
+            output( "\trm -f %s && %s %s %s\n", dest, ln_s, file, dest );
             break;
         default:
             assert(0);
         }
+        strarray_add( &uninstall, dest );
     }
 
-    for (i = 0; i < files.count; i += 2)
-        strarray_add( &uninstall, strmake( "$(DESTDIR)%s", files.str[i + 1] + 1 ));
-
     strarray_add_uniq( phony_targets, "install" );
     strarray_add_uniq( phony_targets, target );
     return uninstall;
@@ -2808,8 +2822,8 @@ static struct strarray output_sources( const struct makefile *make )
         else if (*dll_ext)
         {
             char *binary = replace_extension( make->module, ".exe", "" );
-            add_install_rule( make, install_rules, binary, tools_dir_path( make, "wineapploader" ),
-                              strmake( "s$(bindir)/%s", binary ));
+            add_install_rule( make, install_rules, binary, "wineapploader",
+                              strmake( "t$(bindir)/%s", binary ));
         }
     }
 




More information about the wine-cvs mailing list