omjavaid updated this revision to Diff 67229.
omjavaid added a comment.

Adding context.


https://reviews.llvm.org/D20386

Files:
  packages/Python/lldbsuite/test/make/Makefile.rules

Index: packages/Python/lldbsuite/test/make/Makefile.rules
===================================================================
--- packages/Python/lldbsuite/test/make/Makefile.rules
+++ packages/Python/lldbsuite/test/make/Makefile.rules
@@ -265,8 +265,6 @@
                                         $(subst cc,c++,$(1))))))
 cxx_linker = $(if $(findstring /,$(1)),$(join $(dir $(1)), $(call 
cxx_linker_notdir,$(notdir $(1)))),$(call cxx_linker_notdir,$(1)))
 
-OBJCOPY := $(CROSS_COMPILE)objcopy
-
 #----------------------------------------------------------------------
 # Windows specific options
 #----------------------------------------------------------------------
@@ -291,20 +289,33 @@
     ifdef PIE
         LDFLAGS += -pie
     endif
-    replace_with = $(if $(findstring clang,$(1)), \
-                        $(subst clang,$(2),$(1)), \
-                        $(if $(findstring gcc,$(1)), \
-                             $(subst gcc,$(2),$(1)), \
-                             $(subst cc,$(2),$(1))))
-    ifeq "$(notdir $(CC))" "$(CC)"
-        replace_cc_with = $(call replace_with,$(CC),$(1))
-    else
-        replace_cc_with = $(join $(dir $(CC)),$(call replace_with,$(notdir 
$(CC)),$(1)))
-    endif
-    OBJCOPY = $(call replace_cc_with,objcopy)
-    AR = $(call replace_cc_with,ar)
 endif
 
+CLANG_OR_GCC := $(strip $(if $(findstring clang,$(CC)), \
+                             $(findstring clang,$(CC)), \
+                             $(if $(findstring gcc,$(CC)), \
+                                  $(findstring gcc,$(CC)), \
+                                  cc)))
+
+CC_LASTWORD := $(strip $(lastword $(subst -, ,$(CC))))
+
+replace_with = $(strip $(if $(findstring $(3),$(CC_LASTWORD)), \
+                       $(subst $(3),$(1),$(2)), \
+                       $(if $(findstring ar,$(1)), \
+                            $(if $(findstring gcc,$(3)), \
+                                 $(subst gcc,gcc-ar,$(2)), \
+                                 $(subst $(3),$(1),$(2))), \
+                            $(subst $(3),$(1),$(subst 
-$(CC_LASTWORD),,$(2))))))
+
+ifeq "$(notdir $(CC))" "$(CC)"
+    replace_cc_with = $(call replace_with,$(1),$(CC),$(CLANG_OR_GCC))
+else
+    replace_cc_with = $(join $(dir $(CC)),$(call replace_with,$(1),$(notdir 
$(CC)),$(CLANG_OR_GCC)))
+endif
+
+OBJCOPY = $(call replace_cc_with,objcopy)
+AR = $(call replace_cc_with,ar)
+
 #----------------------------------------------------------------------
 # C++ standard library options
 #----------------------------------------------------------------------


Index: packages/Python/lldbsuite/test/make/Makefile.rules
===================================================================
--- packages/Python/lldbsuite/test/make/Makefile.rules
+++ packages/Python/lldbsuite/test/make/Makefile.rules
@@ -265,8 +265,6 @@
                                         $(subst cc,c++,$(1))))))
 cxx_linker = $(if $(findstring /,$(1)),$(join $(dir $(1)), $(call cxx_linker_notdir,$(notdir $(1)))),$(call cxx_linker_notdir,$(1)))
 
-OBJCOPY := $(CROSS_COMPILE)objcopy
-
 #----------------------------------------------------------------------
 # Windows specific options
 #----------------------------------------------------------------------
@@ -291,20 +289,33 @@
     ifdef PIE
         LDFLAGS += -pie
     endif
-    replace_with = $(if $(findstring clang,$(1)), \
-                        $(subst clang,$(2),$(1)), \
-                        $(if $(findstring gcc,$(1)), \
-                             $(subst gcc,$(2),$(1)), \
-                             $(subst cc,$(2),$(1))))
-    ifeq "$(notdir $(CC))" "$(CC)"
-        replace_cc_with = $(call replace_with,$(CC),$(1))
-    else
-        replace_cc_with = $(join $(dir $(CC)),$(call replace_with,$(notdir $(CC)),$(1)))
-    endif
-    OBJCOPY = $(call replace_cc_with,objcopy)
-    AR = $(call replace_cc_with,ar)
 endif
 
+CLANG_OR_GCC := $(strip $(if $(findstring clang,$(CC)), \
+                             $(findstring clang,$(CC)), \
+                             $(if $(findstring gcc,$(CC)), \
+                                  $(findstring gcc,$(CC)), \
+                                  cc)))
+
+CC_LASTWORD := $(strip $(lastword $(subst -, ,$(CC))))
+
+replace_with = $(strip $(if $(findstring $(3),$(CC_LASTWORD)), \
+                       $(subst $(3),$(1),$(2)), \
+                       $(if $(findstring ar,$(1)), \
+                            $(if $(findstring gcc,$(3)), \
+                                 $(subst gcc,gcc-ar,$(2)), \
+                                 $(subst $(3),$(1),$(2))), \
+                            $(subst $(3),$(1),$(subst -$(CC_LASTWORD),,$(2))))))
+
+ifeq "$(notdir $(CC))" "$(CC)"
+    replace_cc_with = $(call replace_with,$(1),$(CC),$(CLANG_OR_GCC))
+else
+    replace_cc_with = $(join $(dir $(CC)),$(call replace_with,$(1),$(notdir $(CC)),$(CLANG_OR_GCC)))
+endif
+
+OBJCOPY = $(call replace_cc_with,objcopy)
+AR = $(call replace_cc_with,ar)
+
 #----------------------------------------------------------------------
 # C++ standard library options
 #----------------------------------------------------------------------
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to